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> |
||||
<!-- 分类管理 --> |
||||
<div> |
||||
<div class="tool"> |
||||
<ul class="filter"> |
||||
<!-- 分类管理 --> |
||||
<div> |
||||
<div class="tool"> |
||||
<ul class="filter"> |
||||
|
||||
</ul> |
||||
<div style="margin-top: 24px"> |
||||
<el-button v-auth="'分类管理:新增'" type="primary" round @click="addClass">新增</el-button> |
||||
</div> |
||||
</div> |
||||
<el-table :data="list" class="table" stripe header-align="center" @selection-change="handleSelectionChange" row-key="id"> |
||||
<el-table-column type="index" width="100" label="序号" align="center"> |
||||
<template slot-scope="scope"> |
||||
{{ scope.$index + (page - 1) * pageSize + 1 }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="classificationName" label="课程分类名称"> |
||||
</el-table-column> |
||||
<el-table-column label="操作" align="center" width="300"> |
||||
<template slot-scope="scope"> |
||||
<el-button v-auth="'分类管理:修改'" type="text" @click="editClass(scope.row)">修改</el-button> |
||||
<el-divider v-auth="'分类管理:修改'" direction="vertical"></el-divider> |
||||
<el-button v-auth="'分类管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<div class="pagination"> |
||||
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" :current-page="page"> |
||||
</el-pagination> |
||||
</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> |
||||
</ul> |
||||
<div style="margin-top: 24px"> |
||||
<el-button v-auth="'分类管理:新增'" type="primary" round @click="addClass">新增</el-button> |
||||
</div> |
||||
</div> |
||||
<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"> |
||||
<template slot-scope="scope"> |
||||
{{ scope.$index + (page - 1) * pageSize + 1 }} |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column prop="classificationName" label="课程分类名称"> |
||||
</el-table-column> |
||||
<el-table-column label="操作" align="center" width="300"> |
||||
<template slot-scope="scope"> |
||||
<el-button v-auth="'分类管理:修改'" type="text" @click="editClass(scope.row)">修改</el-button> |
||||
<el-divider v-auth="'分类管理:修改'" direction="vertical"></el-divider> |
||||
<el-button v-auth="'分类管理:删除'" type="text" @click="handleDelete(scope.row)">删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
<div class="pagination"> |
||||
<el-pagination background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" |
||||
:current-page="page"> |
||||
</el-pagination> |
||||
</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> |
||||
|
||||
<script> |
||||
import util from "@/libs/util"; |
||||
import Setting from '@/setting' |
||||
export default { |
||||
name: "sortManagement", |
||||
data() { |
||||
return { |
||||
list: [], |
||||
multipleSelection: [], |
||||
page: 1, |
||||
pageSize: 10, |
||||
total: 0, |
||||
classVisible: false, |
||||
curRow: {}, |
||||
classificationName: "", |
||||
nameRepeat: false |
||||
}; |
||||
}, |
||||
watch: { |
||||
classificationName: function(val) { |
||||
clearTimeout(this.searchTimer); |
||||
this.searchTimer = setTimeout(() => { |
||||
this.nameChange(); |
||||
}, 100); |
||||
} |
||||
}, |
||||
mounted() { |
||||
this.getData(); |
||||
name: "sortManagement", |
||||
data () { |
||||
return { |
||||
list: [], |
||||
multipleSelection: [], |
||||
page: 1, |
||||
pageSize: 10, |
||||
total: 0, |
||||
classVisible: false, |
||||
curRow: {}, |
||||
classificationName: "", |
||||
nameRepeat: false |
||||
}; |
||||
}, |
||||
watch: { |
||||
classificationName: function (val) { |
||||
clearTimeout(this.searchTimer); |
||||
this.searchTimer = setTimeout(() => { |
||||
this.nameChange(); |
||||
}, 100); |
||||
} |
||||
}, |
||||
mounted () { |
||||
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: { |
||||
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 => { |
||||
}); |
||||
}, |
||||
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; |
||||
handleDelete (row) { |
||||
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", { |
||||
type: "warning" |
||||
}) |
||||
.then(() => { |
||||
this.$post(this.api.delClassification, [row.id]).then(res => { |
||||
util.successMsg("删除成功"); |
||||
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 => { |
||||
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 => { |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
}) |
||||
.catch(() => { |
||||
}); |
||||
}, |
||||
handleSelectionChange (val) { |
||||
this.multipleSelection = val; |
||||
}, |
||||
closeColumn () { |
||||
this.classificationName = ""; |
||||
this.curRow = {}; |
||||
}, |
||||
handleCurrentChange (val) { |
||||
this.page = val; |
||||
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 => { |
||||
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> |
||||
|
||||
<style lang="scss" scoped> |
||||
|
||||
</style> |
||||
<style lang="scss" scoped></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 字体路径变量,必需 */ |
||||
$--font-path: '~element-ui/lib/theme-chalk/fonts'; |
||||
|