parent
2690a4b1f9
commit
1bc058616f
6 changed files with 432 additions and 5 deletions
@ -0,0 +1,117 @@ |
||||
<template> |
||||
<el-row class="container"> |
||||
<el-col :span="24" class="header"> |
||||
<el-col :span="20" class="logo"> |
||||
<i class="iconfont iconset2 sys-icon"></i> |
||||
<span class="sys-name">智信链后台管理系统</span> |
||||
</el-col> |
||||
</el-col> |
||||
<el-col :span="24" class="menu"> |
||||
<!--导航菜单--> |
||||
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal"> |
||||
<el-menu-item index="1"><router-link to="/train/case/list">实训管理</router-link></el-menu-item> |
||||
</el-menu> |
||||
<section class="content-container"> |
||||
<div class="grid-content bg-purple-light"> |
||||
<el-col :span="24" class="content-wrapper"> |
||||
<transition name="fade" mode="out-in"> |
||||
<router-view></router-view> |
||||
</transition> |
||||
</el-col> |
||||
</div> |
||||
</section> |
||||
</el-col> |
||||
</el-row> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "TrainHome", |
||||
data() { |
||||
return { |
||||
activeIndex: '1'//当前激活菜单的 index |
||||
}; |
||||
}, |
||||
mounted() { |
||||
this.$router.push({name: 'CaseList'}) |
||||
}, |
||||
methods: { |
||||
|
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped lang="scss"> |
||||
@import '../styles/link.scss'; |
||||
|
||||
.container { |
||||
position: absolute; |
||||
top: 0px; |
||||
bottom: 0px; |
||||
width: 100%; |
||||
.header { |
||||
width: 100%; |
||||
height: 60px; |
||||
line-height: 60px; |
||||
background: $color-primary; |
||||
color:#fff; |
||||
.sys-icon { |
||||
font-size: 40px; |
||||
vertical-align: middle; |
||||
margin-right: 10px; |
||||
} |
||||
.sys-name { |
||||
font-size: 18px; |
||||
} |
||||
.userinfo { |
||||
// text-align: right; |
||||
padding-right: 35px; |
||||
float: right; |
||||
.userinfo-inner { |
||||
cursor: pointer; |
||||
color:#fff; |
||||
} |
||||
} |
||||
.logo { |
||||
//width:230px; |
||||
height:60px; |
||||
font-size: 22px; |
||||
padding-left:$pad-primary; |
||||
padding-right:$pad-primary; |
||||
img { |
||||
width: 40px; |
||||
float: left; |
||||
margin: 10px 10px 10px 18px; |
||||
} |
||||
.txt { |
||||
color:#fff; |
||||
} |
||||
} |
||||
.logo-width{ |
||||
width:230px; |
||||
} |
||||
.logo-collapse-width{ |
||||
width:60px |
||||
} |
||||
} |
||||
|
||||
.menu { |
||||
width: 100%; |
||||
/deep/ .el-menu--horizontal { |
||||
height: 46px; |
||||
line-height: 46px; |
||||
.el-menu-item { |
||||
height: 46px; |
||||
line-height: 46px; |
||||
a { |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
.el-menu-item:first-child { |
||||
margin-left: 20px; |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,13 @@ |
||||
<template> |
||||
<div>案例新增查看修改</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "case-detail" |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
@ -0,0 +1,278 @@ |
||||
<template> |
||||
<div style="background-color: #eeeeee;"> |
||||
<div style="padding: 10px 0px 0px 20px;margin-bottom: 10px;background-color: #FFFFFF;"> |
||||
<el-form :inline="true" :model="searchObj" class="demo-form-inline"> |
||||
<el-form-item label="实训用途"> |
||||
<el-select v-model="searchObj.type" placeholder="实训用途"> |
||||
<el-option label="全部" value=""></el-option> |
||||
<el-option label="考核" value="1"></el-option> |
||||
<el-option label="练习" value="2"></el-option> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="创建人"> |
||||
<el-select v-model="searchObj.isAdmin" placeholder="创建人"> |
||||
<el-option label="全部" value=""></el-option> |
||||
<el-option label="管理员" value="1"></el-option> |
||||
<el-option label="教师" value="2"></el-option> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="实训名称"> |
||||
<el-input v-model="searchObj.name" placeholder="实训名称"></el-input> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" @click="doSearch">查询</el-button> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" @click="doNew">创建</el-button> |
||||
</el-form-item> |
||||
<!--<el-form-item> |
||||
<el-button type="danger" @click="doBatchDel">批量删除</el-button> |
||||
</el-form-item>--> |
||||
</el-form> |
||||
</div> |
||||
<div style="padding: 20px;background-color: #FFFFFF;"> |
||||
<el-table ref="multipleTable" :data="listData" @selection-change="handleProjectSelectionChange" border style="width: 100%"> |
||||
<el-table-column type="selection" width="55"></el-table-column> |
||||
<el-table-column type="index" label="序号" width="100"></el-table-column> |
||||
<el-table-column prop="name" label="项目名称" width="400"></el-table-column> |
||||
<el-table-column prop="type" label="项目权限" width="120"> |
||||
<template slot-scope="scope"> |
||||
{{ scope.row.type === 1 ? '练习': '' }} |
||||
{{ scope.row.type === 2 ? '考核': '' }} |
||||
{{ scope.row.type === 3 ? '竞赛': '' }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="isAdmin" label="创建人" width="120"> |
||||
<template slot-scope="scope"> |
||||
{{ scope.row.isAdmin === 0 ? '教师': '' }} |
||||
{{ scope.row.isAdmin === 1 ? '系统': '' }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="createTime" label="创建时间" width="200"></el-table-column> |
||||
<el-table-column label="操作"> |
||||
|
||||
<template slot-scope="scope"> |
||||
<div v-if="showSearchDiv==1"> |
||||
<el-button @click="toInputForm(scope.row,0)" type="text" size="small">查看</el-button> |
||||
<el-button @click="toInputForm(scope.row,1)" type="text" size="small" |
||||
v-if="isShowEditOrDelBtn(scope.row)">编辑 |
||||
</el-button> |
||||
<el-button @click="doSingleDel(scope.row)" type="text" size="small" v-if="isShowEditOrDelBtn(scope.row)"> |
||||
删除 |
||||
</el-button> |
||||
</div> |
||||
<div v-else> |
||||
<el-button @click="gotoDb(scope.row)" type="text" size="small">进入</el-button> |
||||
</div> |
||||
</template> |
||||
|
||||
</el-table-column> |
||||
</el-table> |
||||
<el-pagination |
||||
@size-change="handleSizeChange" |
||||
@current-change="handleCurrentChange" |
||||
:current-page="currentPage" |
||||
:page-sizes="[5,10,15,20,25,30]" |
||||
:page-size="pageSize" |
||||
layout="total,sizes, prev, pager, next,jumper" |
||||
:total="totalCount"> |
||||
</el-pagination> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: 'case-list', |
||||
data() { |
||||
return { |
||||
searchObj: { |
||||
type: '', |
||||
isAdmin: '', |
||||
name: '', |
||||
showSearchDiv: 1, |
||||
selfIsAdmin:1 |
||||
}, |
||||
listData: [], |
||||
delProjectItems: [], |
||||
totalCount: 0, |
||||
currentPage: 1, |
||||
pageSize: 10, |
||||
|
||||
} |
||||
}, |
||||
created() { |
||||
this.initList(); |
||||
}, |
||||
methods: { |
||||
setDefaultUserName(loginId) { |
||||
this.$util.setCookie('userLoginId', loginId); |
||||
}, |
||||
gotoDb: function (row) { |
||||
let self = this; |
||||
let userType = this.$store.state.app.user.userType; |
||||
let customerManager = JSON.parse(self.$util.getCookie("customerManager")); |
||||
self.$store.commit('startLoading'); |
||||
self.$http.post('/pmtapi/base_Account/login', { |
||||
username: customerManager.userName, |
||||
password: customerManager.password, |
||||
caseId: row.id, |
||||
captchaCode: "yyyf", |
||||
}).then(function (response) { |
||||
self.$store.commit('loginIn', { |
||||
appKey: response.appKey, |
||||
userId: response.userId, |
||||
userLoginId: response.userLoginId, |
||||
userDisplayName: response.userDisplayName, |
||||
userMobile: response.userMobile, |
||||
userType: userType, |
||||
showSearchDiv: 0, |
||||
currentRole:0 |
||||
}); |
||||
|
||||
self.$store.commit('endLoading'); |
||||
|
||||
self.setDefaultUserName(customerManager.userName); |
||||
|
||||
let toPath = null; |
||||
if (!toPath || self.$router.currentRoute.name == 'login' || self.$router.currentRoute.name == '404') { |
||||
toPath = "/"; |
||||
} |
||||
self.$router.push({ |
||||
path: toPath |
||||
}); |
||||
|
||||
self.$message({ |
||||
message: '成功进入', |
||||
type: 'success', |
||||
onClose: function () { |
||||
$("body").removeClass("el-loading-parent--hidden").removeClass("el-loading-parent--relative"); |
||||
} |
||||
}); |
||||
}).catch(function (error) { |
||||
self.$store.commit('endLoading'); |
||||
self.$message.error(error); |
||||
}); |
||||
}, |
||||
initList(searchObj) { |
||||
this.searchObj.selfIsAdmin = this.$store.state.app.user.userType == 1 ? 0 : 1; |
||||
this.$http.post('/authapi/bs_projectManage/getProjectPagedList', { |
||||
skipCount: this.currentPage, |
||||
maxResultCount: this.pageSize, |
||||
searchObj: this.searchObj |
||||
}).then(response => { |
||||
if (response) { |
||||
this.listData = response.items; |
||||
this.totalCount = response.totalCount; |
||||
} |
||||
}).catch(error => { |
||||
console.info(error) |
||||
}); |
||||
this.showSearchDiv = this.$store.state.app.user.showSearchDiv; |
||||
}, |
||||
isShowEditOrDelBtn(row) { |
||||
let userType = this.$store.state.app.user.userType; |
||||
let projectType = row.isAdmin; |
||||
if (userType == 1 && projectType == 1) {// 教师只能查看内置项目 |
||||
return false; |
||||
} |
||||
if(userType==2 && projectType==0 ) {// 管理员只能查看教师项目 |
||||
return false; |
||||
} |
||||
return true; |
||||
}, |
||||
doNew() {// 新增 |
||||
this.toInputForm(); |
||||
}, |
||||
handleProjectSelectionChange(val) { |
||||
this.delProjectItems = val; |
||||
}, |
||||
doBatchDel() {// 批量删除 |
||||
if (!this.delProjectItems || this.delProjectItems.length === 0) { |
||||
this.$notify.warning({ |
||||
title: '系统提示', |
||||
message: '您没选择任何行,无法操作!', |
||||
duration: 2000, |
||||
}); |
||||
return; |
||||
} |
||||
let ids = this.delProjectItems.map(function (row) { |
||||
return row.id; |
||||
}); |
||||
this.$confirm('确认要删除这 ' + ids.length + ' 项数据吗?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.$http.post('/authapi/bs_projectManage/batchDeleteProjects', ids).then(response => { |
||||
|
||||
if (response.status==1) { |
||||
this.$notify.success({ |
||||
title: '系统删除成功', |
||||
message: '系统批量删除成功!', |
||||
}); |
||||
this.initList(); |
||||
} else { |
||||
this.$notify.error({ |
||||
title: '错误提示', |
||||
message: response.msg, |
||||
}); |
||||
} |
||||
}).catch(error => { |
||||
console.info(error) |
||||
}) |
||||
}).catch(() => { |
||||
}); |
||||
}, |
||||
doSingleDel(row) { // 单个删除 |
||||
this.$confirm('确认要删除这项数据吗?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.$http.post('/authapi/bs_projectManage/singleDeleteProject', {id: row.id}).then(response => { |
||||
if (response.status==1) { |
||||
this.$notify.success({ |
||||
title: '系统删除成功', |
||||
message: '系统删除成功!', |
||||
}); |
||||
this.initList(); |
||||
} else { |
||||
this.$notify.error({ |
||||
title: '错误提示', |
||||
message: response.msg, |
||||
}); |
||||
} |
||||
}).catch(error => { |
||||
console.info(error) |
||||
}) |
||||
}).catch(() => { |
||||
}); |
||||
}, |
||||
doSearch() { |
||||
this.initList(this.searchObj); |
||||
this.currentPage = 1; |
||||
}, |
||||
toInputForm(row, isEdit) { |
||||
let toPath = '/backstage/project/inputForm'; |
||||
if (row) { |
||||
this.$router.push({path: toPath, query: {id: row.id, isEdit: isEdit}});// 编辑或查看 |
||||
} else { |
||||
this.$router.push({path: toPath});// 新增 |
||||
} |
||||
}, |
||||
handleSizeChange(size) { |
||||
this.pageSize = size; |
||||
this.initList(this.searchObj); |
||||
}, |
||||
handleCurrentChange(currentPage) { |
||||
this.currentPage = currentPage; |
||||
this.initList(this.searchObj); |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
|
||||
</style> |
Loading…
Reference in new issue