<template> <div class="app-container"> <!--工具栏--> <div class="head-container"> <eHeader :dict="dict" :permission="permission" /> <crudOperation :permission="permission" /> </div> <!--表格渲染--> <el-table ref="table" v-loading="crud.loading" :data="crud.data" style="width: 100%;" @selection-change="crud.selectionChangeHandler"> <el-table-column type="selection" width="55" /> <el-table-column prop="name" label="名称" /> <el-table-column prop="jobSort" label="排序"> <template slot-scope="scope"> {{ scope.row.jobSort }} </template> </el-table-column> <el-table-column prop="status" label="状态" align="center"> <template slot-scope="scope"> <el-switch v-model="scope.row.enabled" active-color="#409EFF" inactive-color="#F56C6C" @change="changeEnabled(scope.row, scope.row.enabled)" /> </template> </el-table-column> <el-table-column prop="createTime" label="创建日期" /> <!-- 编辑与删除 --> <el-table-column v-if="checkPer(['admin','job:edit','job:del'])" label="操作" width="130px" align="center" fixed="right" > <template slot-scope="scope"> <udOperation :data="scope.row" :permission="permission" /> </template> </el-table-column> </el-table> <!--分页组件--> <pagination /> <!--表单渲染--> <eForm :job-status="dict.job_status" /> </div> </template> <script> import crudJob from '@/api/system/job' import eHeader from './module/header' import eForm from './module/form' import CRUD, { presenter } from '@crud/crud' import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' import udOperation from '@crud/UD.operation' export default { name: 'Job', components: { eHeader, eForm, crudOperation, pagination, udOperation }, cruds() { return CRUD({ title: '岗位', url: 'api/job', sort: ['jobSort,asc', 'id,desc'], crudMethod: { ...crudJob } }) }, mixins: [presenter()], // 数据字典 dicts: ['job_status'], data() { return { permission: { add: ['admin', 'job:add'], edit: ['admin', 'job:edit'], del: ['admin', 'job:del'] } } }, methods: { // 改变状态 changeEnabled(data, val) { this.$confirm('此操作将 "' + this.dict.label.job_status[val] + '" ' + data.name + '岗位, 是否继续?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { // eslint-disable-next-line no-undef crudJob.edit(data).then(() => { // eslint-disable-next-line no-undef this.crud.notify(this.dict.label.job_status[val] + '成功', 'success') }).catch(err => { data.enabled = !data.enabled console.log(err.data.message) }) }).catch(() => { data.enabled = !data.enabled }) } } } </script> <style rel="stylesheet/scss" lang="scss" scoped> ::v-deep .el-input-number .el-input__inner { text-align: left; } </style>