After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 3.7 KiB |
@ -1,163 +1,163 @@ |
|||||||
<template> |
<template> |
||||||
<!-- 分类管理 --> |
<!-- 分类管理 --> |
||||||
<div> |
<div> |
||||||
<div class="tool"> |
<div class="tool"> |
||||||
<ul class="filter"> |
<ul class="filter"> |
||||||
|
|
||||||
</ul> |
</ul> |
||||||
<div style="margin-top: 24px"> |
<div style="margin-top: 24px"> |
||||||
<el-button v-auth="'分类管理:新增'" type="primary" round @click="addClass">新增</el-button> |
<el-button v-auth="'分类管理:新增'" type="primary" round @click="addClass">新增</el-button> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<el-table :data="list" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> |
<el-table :data="list" class="table" header-align="center" @selection-change="handleSelectionChange" row-key="id"> |
||||||
<el-table-column type="index" width="100" label="序号" align="center"> |
<el-table-column type="index" width="100" label="序号" align="center"> |
||||||
<template slot-scope="scope"> |
<template slot-scope="scope"> |
||||||
{{ scope.$index + (page - 1) * pageSize + 1 }} |
{{ scope.$index + (page - 1) * pageSize + 1 }} |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column prop="classificationName" label="课程分类名称"> |
<el-table-column prop="classificationName" label="课程分类名称"> |
||||||
</el-table-column> |
</el-table-column> |
||||||
<el-table-column label="操作" align="center" width="300"> |
<el-table-column label="操作" align="center" width="300"> |
||||||
<template slot-scope="scope"> |
<template slot-scope="scope"> |
||||||
<el-button v-auth="'分类管理:修改'" type="text" @click="editClass(scope.row)">修改</el-button> |
<el-button v-auth="'分类管理:修改'" type="text" @click="editClass(scope.row)">修改</el-button> |
||||||
<el-divider v-auth="'分类管理:修改'" direction="vertical"></el-divider> |
<el-divider v-auth="'分类管理:修改'" direction="vertical"></el-divider> |
||||||
<el-button v-auth="'分类管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> |
<el-button v-auth="'分类管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> |
||||||
</template> |
</template> |
||||||
</el-table-column> |
</el-table-column> |
||||||
</el-table> |
</el-table> |
||||||
<div class="pagination"> |
<div class="pagination"> |
||||||
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> |
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" |
||||||
</el-pagination> |
:current-page="page"> |
||||||
</div> |
</el-pagination> |
||||||
|
|
||||||
<el-dialog :title="!curRow.id ? '添加分类' : '编辑分类'" :visible.sync="classVisible" width="400px" :close-on-click-modal="false" @close="closeColumn"> |
|
||||||
<el-form> |
|
||||||
<el-form-item> |
|
||||||
<el-input placeholder="分类名称" v-model="classificationName"></el-input> |
|
||||||
</el-form-item> |
|
||||||
</el-form> |
|
||||||
<span slot="footer" class="dialog-footer"> |
|
||||||
<el-button @click="classVisible = false">取 消</el-button> |
|
||||||
<el-button type="primary" @click="classSubmit">确 定</el-button> |
|
||||||
</span> |
|
||||||
</el-dialog> |
|
||||||
</div> |
</div> |
||||||
|
|
||||||
|
<el-dialog :title="!curRow.id ? '添加分类' : '编辑分类'" :visible.sync="classVisible" width="400px" |
||||||
|
:close-on-click-modal="false" @close="closeColumn"> |
||||||
|
<el-form> |
||||||
|
<el-form-item> |
||||||
|
<el-input placeholder="分类名称" v-model="classificationName"></el-input> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
<span slot="footer" class="dialog-footer"> |
||||||
|
<el-button @click="classVisible = false">取 消</el-button> |
||||||
|
<el-button type="primary" @click="classSubmit">确 定</el-button> |
||||||
|
</span> |
||||||
|
</el-dialog> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script> |
<script> |
||||||
import util from "@/libs/util"; |
import util from "@/libs/util"; |
||||||
import Setting from '@/setting' |
import Setting from '@/setting' |
||||||
export default { |
export default { |
||||||
name: "sortManagement", |
name: "sortManagement", |
||||||
data() { |
data () { |
||||||
return { |
return { |
||||||
list: [], |
list: [], |
||||||
multipleSelection: [], |
multipleSelection: [], |
||||||
page: 1, |
page: 1, |
||||||
pageSize: 10, |
pageSize: 10, |
||||||
total: 0, |
total: 0, |
||||||
classVisible: false, |
classVisible: false, |
||||||
curRow: {}, |
curRow: {}, |
||||||
classificationName: "", |
classificationName: "", |
||||||
nameRepeat: false |
nameRepeat: false |
||||||
}; |
}; |
||||||
}, |
}, |
||||||
watch: { |
watch: { |
||||||
classificationName: function(val) { |
classificationName: function (val) { |
||||||
clearTimeout(this.searchTimer); |
clearTimeout(this.searchTimer); |
||||||
this.searchTimer = setTimeout(() => { |
this.searchTimer = setTimeout(() => { |
||||||
this.nameChange(); |
this.nameChange(); |
||||||
}, 100); |
}, 100); |
||||||
} |
} |
||||||
}, |
}, |
||||||
mounted() { |
mounted () { |
||||||
this.getData(); |
this.getData(); |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
getData () { |
||||||
|
this.$post(this.api.listClassification, { |
||||||
|
pageNum: this.page, |
||||||
|
pageSize: this.pageSize, |
||||||
|
platformSource: Setting.platformSource |
||||||
|
}).then(({ page }) => { |
||||||
|
this.list = page.records |
||||||
|
this.total = page.total |
||||||
|
}).catch(res => { |
||||||
|
}); |
||||||
}, |
}, |
||||||
methods: { |
handleDelete (row) { |
||||||
getData() { |
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", { |
||||||
this.$post(this.api.listClassification, { |
type: "warning" |
||||||
pageNum: this.page, |
}) |
||||||
pageSize: this.pageSize, |
.then(() => { |
||||||
platformSource: Setting.platformSource |
this.$post(this.api.delClassification, [row.id]).then(res => { |
||||||
}).then(({ page }) => { |
util.successMsg("删除成功"); |
||||||
this.list = page.records |
|
||||||
this.total = page.total |
|
||||||
}).catch(res => { |
|
||||||
}); |
|
||||||
}, |
|
||||||
handleDelete(row) { |
|
||||||
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", { |
|
||||||
type: "warning" |
|
||||||
}) |
|
||||||
.then(() => { |
|
||||||
this.$post(this.api.delClassification, [row.id]).then(res => { |
|
||||||
util.successMsg("删除成功"); |
|
||||||
this.getData(); |
|
||||||
}).catch(res => { |
|
||||||
}); |
|
||||||
}) |
|
||||||
.catch(() => { |
|
||||||
}); |
|
||||||
}, |
|
||||||
handleSelectionChange(val) { |
|
||||||
this.multipleSelection = val; |
|
||||||
}, |
|
||||||
closeColumn() { |
|
||||||
this.classificationName = ""; |
|
||||||
this.curRow = {}; |
|
||||||
}, |
|
||||||
handleCurrentChange(val) { |
|
||||||
this.page = val; |
|
||||||
this.getData(); |
this.getData(); |
||||||
}, |
|
||||||
addClass() { |
|
||||||
this.classVisible = true; |
|
||||||
}, |
|
||||||
editClass(row) { |
|
||||||
this.curRow = row; |
|
||||||
this.classificationName = row.classificationName; |
|
||||||
this.classVisible = true; |
|
||||||
}, |
|
||||||
nameChange(val) { |
|
||||||
const row = this.curRow |
|
||||||
this.$post(this.api.checkRepeat, { |
|
||||||
id: row.id, |
|
||||||
platformSource: Setting.platformSource, |
|
||||||
classificationName: this.classificationName |
|
||||||
}).then(res => { |
|
||||||
this.nameRepeat = false |
|
||||||
}).catch(res => { |
}).catch(res => { |
||||||
this.nameRepeat = true |
}); |
||||||
}) |
}) |
||||||
}, |
.catch(() => { |
||||||
classSubmit() { |
}); |
||||||
if (!this.classificationName) return util.errorMsg("请填写分类名称"); |
}, |
||||||
if (this.nameRepeat) return util.errorMsg("当前分类已存在!"); |
handleSelectionChange (val) { |
||||||
let data = { |
this.multipleSelection = val; |
||||||
classificationName: this.classificationName, |
}, |
||||||
platformSource: Setting.platformSource |
closeColumn () { |
||||||
}; |
this.classificationName = ""; |
||||||
if (this.curRow.id) { |
this.curRow = {}; |
||||||
data.id = this.curRow.id; |
}, |
||||||
this.$post(this.api.updateClassification, data).then(res => { |
handleCurrentChange (val) { |
||||||
util.successMsg("修改成功"); |
this.page = val; |
||||||
this.classVisible = false; |
this.getData(); |
||||||
this.getData(); |
}, |
||||||
}).catch(res => { |
addClass () { |
||||||
}); |
this.classVisible = true; |
||||||
} else { |
}, |
||||||
this.$post(this.api.saveClassification, data).then(res => { |
editClass (row) { |
||||||
util.successMsg("添加成功"); |
this.curRow = row; |
||||||
this.classVisible = false; |
this.classificationName = row.classificationName; |
||||||
this.getData(); |
this.classVisible = true; |
||||||
}).catch(res => { |
}, |
||||||
}); |
nameChange (val) { |
||||||
} |
const row = this.curRow |
||||||
} |
this.$post(this.api.checkRepeat, { |
||||||
|
id: row.id, |
||||||
|
platformSource: Setting.platformSource, |
||||||
|
classificationName: this.classificationName |
||||||
|
}).then(res => { |
||||||
|
this.nameRepeat = false |
||||||
|
}).catch(res => { |
||||||
|
this.nameRepeat = true |
||||||
|
}) |
||||||
|
}, |
||||||
|
classSubmit () { |
||||||
|
if (!this.classificationName) return util.errorMsg("请填写分类名称"); |
||||||
|
if (this.nameRepeat) return util.errorMsg("当前分类已存在!"); |
||||||
|
let data = { |
||||||
|
classificationName: this.classificationName, |
||||||
|
platformSource: Setting.platformSource |
||||||
|
}; |
||||||
|
if (this.curRow.id) { |
||||||
|
data.id = this.curRow.id; |
||||||
|
this.$post(this.api.updateClassification, data).then(res => { |
||||||
|
util.successMsg("修改成功"); |
||||||
|
this.classVisible = false; |
||||||
|
this.getData(); |
||||||
|
}).catch(res => { |
||||||
|
}); |
||||||
|
} else { |
||||||
|
this.$post(this.api.saveClassification, data).then(res => { |
||||||
|
util.successMsg("添加成功"); |
||||||
|
this.classVisible = false; |
||||||
|
this.getData(); |
||||||
|
}).catch(res => { |
||||||
|
}); |
||||||
|
} |
||||||
} |
} |
||||||
|
} |
||||||
}; |
}; |
||||||
</script> |
</script> |
||||||
|
|
||||||
<style lang="scss" scoped> |
<style lang="scss" scoped></style> |
||||||
|
|
||||||
</style> |
|
@ -0,0 +1,123 @@ |
|||||||
|
<template> |
||||||
|
<div class="wrap"> |
||||||
|
<div class="block"> |
||||||
|
<div class="title">功能模块</div> |
||||||
|
<div class="apps"> |
||||||
|
<div class="app" @click="to('/assessment')"> |
||||||
|
<img src="@/assets/img/workbench/1.png" alt=""> |
||||||
|
<p class="name">考核管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/achievement')"> |
||||||
|
<img src="@/assets/img/workbench/2.png" alt=""> |
||||||
|
<p class="name">成绩管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/evaluation')"> |
||||||
|
<img src="@/assets/img/workbench/3.png" alt=""> |
||||||
|
<p class="name">测评管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/course')"> |
||||||
|
<img src="@/assets/img/workbench/4.png" alt=""> |
||||||
|
<p class="name">精品课程管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/review')"> |
||||||
|
<img src="@/assets/img/workbench/5.png" alt=""> |
||||||
|
<p class="name">评阅中心</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/information')"> |
||||||
|
<img src="@/assets/img/workbench/6.png" alt=""> |
||||||
|
<p class="name">资讯管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/project')"> |
||||||
|
<img src="@/assets/img/workbench/7.png" alt=""> |
||||||
|
<p class="name">项目管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/resourse')"> |
||||||
|
<img src="@/assets/img/workbench/8.png" alt=""> |
||||||
|
<p class="name">资源库</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="block block1"> |
||||||
|
<div class="title">全部应用</div> |
||||||
|
<div class="apps"> |
||||||
|
<div class="app" @click="to('/match')"> |
||||||
|
<img src="@/assets/img/workbench/9.png" alt=""> |
||||||
|
<p class="name">理论考试系统</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/data')"> |
||||||
|
<img src="@/assets/img/workbench/10.png" alt=""> |
||||||
|
<p class="name">备课管理</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('/match')"> |
||||||
|
<img src="@/assets/img/workbench/11.png" alt=""> |
||||||
|
<p class="name">赛事管理专业版</p> |
||||||
|
</div> |
||||||
|
<div class="app" @click="to('data')"> |
||||||
|
<img src="@/assets/img/workbench/12.png" alt=""> |
||||||
|
<p class="name">数据前瞻平台</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import Setting from '@/setting' |
||||||
|
export default { |
||||||
|
data () { |
||||||
|
return { |
||||||
|
systems: [], |
||||||
|
|
||||||
|
}; |
||||||
|
}, |
||||||
|
mounted () { |
||||||
|
|
||||||
|
}, |
||||||
|
methods: { |
||||||
|
to (path) { |
||||||
|
path === 'data' ? window.open('https://www.dataforward.cn/') : this.$router.push(path) |
||||||
|
}, |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.wrap { |
||||||
|
width: 90%; |
||||||
|
margin: 0 auto; |
||||||
|
|
||||||
|
.block { |
||||||
|
padding: 30px 30px 40px; |
||||||
|
margin-bottom: 30px; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 20px; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.title { |
||||||
|
margin-bottom: 30px; |
||||||
|
font-size: 18px; |
||||||
|
font-weight: 600; |
||||||
|
} |
||||||
|
|
||||||
|
.apps { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
} |
||||||
|
|
||||||
|
.app { |
||||||
|
padding: 0 30px; |
||||||
|
margin: 0 20px; |
||||||
|
text-align: center; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
.name { |
||||||
|
margin-top: 10px; |
||||||
|
font-size: 14px; |
||||||
|
color: #333; |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,16 @@ |
|||||||
|
import BasicLayout from "@/layouts/home"; |
||||||
|
|
||||||
|
const meta = {}; |
||||||
|
|
||||||
|
export default { |
||||||
|
path: '/workbench', |
||||||
|
meta, |
||||||
|
component: BasicLayout, |
||||||
|
children: [ |
||||||
|
{ |
||||||
|
path: '/workbench', |
||||||
|
component: () => import('@/pages/workbench/list'), |
||||||
|
meta: { title: '工作台' } |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
@ -1,6 +1,6 @@ |
|||||||
/* 改变主题色变量 */ |
/* 改变主题色变量 */ |
||||||
|
|
||||||
$--color-primary: #9278ff; |
$--color-primary: #062c87; |
||||||
|
|
||||||
/* 改变 icon 字体路径变量,必需 */ |
/* 改变 icon 字体路径变量,必需 */ |
||||||
$--font-path: '~element-ui/lib/theme-chalk/fonts'; |
$--font-path: '~element-ui/lib/theme-chalk/fonts'; |
||||||
|