|
|
@@ -0,0 +1,147 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-card>
|
|
|
+ <!--工具条-->
|
|
|
+ <el-col :span="24" class="toolbar">
|
|
|
+ <el-form :inline="true">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="small" type="primary" @click="loadData">查询</el-button>
|
|
|
+ <el-button size="small" type="success" @click="handleAdd">添加审批步骤</el-button>
|
|
|
+ <el-button size="small" @click="$router.back()">返回</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!--列表-->
|
|
|
+ <el-table :data="list" v-loading="listLoading" border style="width: 100%;">
|
|
|
+ <el-table-column type="index" label="步骤顺序" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="roleName" :label="$t('审批角色') || '审批角色'" min-width="150"></el-table-column>
|
|
|
+ <el-table-column prop="createTime" :label="$t('创建时间') || '创建时间'" width="160"></el-table-column>
|
|
|
+ <el-table-column :label="$t('操作') || '操作'" width="200" fixed="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" type="primary" @click="handleEdit(scope.row)">编辑</el-button>
|
|
|
+ <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-card>
|
|
|
+
|
|
|
+ <!--添加/编辑弹窗-->
|
|
|
+ <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="400px">
|
|
|
+ <el-form :model="form" label-width="100px">
|
|
|
+ <el-form-item label="审批角色">
|
|
|
+ <el-select v-model="form.roleId" placeholder="选择角色" style="width: 100%;">
|
|
|
+ <el-option v-for="role in roleList" :key="role.id" :label="role.roleName" :value="role.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="步骤顺序">
|
|
|
+ <el-input-number v-model="form.stepOrder" :min="1" :max="99"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="handleSubmit">确定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ list: [],
|
|
|
+ listLoading: true,
|
|
|
+ dialogVisible: false,
|
|
|
+ dialogTitle: '添加审批步骤',
|
|
|
+ isEdit: false,
|
|
|
+ editId: null,
|
|
|
+ form: {
|
|
|
+ roleId: null,
|
|
|
+ stepOrder: 1
|
|
|
+ },
|
|
|
+ roleList: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.loadData()
|
|
|
+ this.loadRoles()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ loadData() {
|
|
|
+ this.listLoading = true
|
|
|
+ this.http.get('/project-closure-apply/config/list', (res) => {
|
|
|
+ if (res.code === 200 || res.code === 'ok') {
|
|
|
+ this.list = res.data || []
|
|
|
+ }
|
|
|
+ this.listLoading = false
|
|
|
+ }, () => {
|
|
|
+ this.listLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ loadRoles() {
|
|
|
+ const roles = this.$store.state.user.roles || [
|
|
|
+ { id: 1, roleName: '项目经理' },
|
|
|
+ { id: 2, roleName: '部门主管' },
|
|
|
+ { id: 3, roleName: '财务总监' }
|
|
|
+ ]
|
|
|
+ this.roleList = roles
|
|
|
+ },
|
|
|
+ handleAdd() {
|
|
|
+ this.dialogTitle = '添加审批步骤'
|
|
|
+ this.isEdit = false
|
|
|
+ this.form = { roleId: null, stepOrder: 1 }
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+ handleEdit(row) {
|
|
|
+ this.dialogTitle = '编辑审批步骤'
|
|
|
+ this.isEdit = true
|
|
|
+ this.editId = row.id
|
|
|
+ this.form = {
|
|
|
+ roleId: row.roleId,
|
|
|
+ stepOrder: row.stepOrder
|
|
|
+ }
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+ handleDelete(row) {
|
|
|
+ this.$confirm('确定删除该审批步骤吗?', '提示', { type: 'warning' }).then(() => {
|
|
|
+ this.http.delete(`/project-closure-apply/config/${row.id}`, (res) => {
|
|
|
+ if (res.code === 200 || res.code === 'ok') {
|
|
|
+ this.$message.success('删除成功')
|
|
|
+ this.loadData()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg || '删除失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(() => {})
|
|
|
+ },
|
|
|
+ handleSubmit() {
|
|
|
+ if (!this.form.roleId) {
|
|
|
+ this.$message.warning('请选择审批角色')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.isEdit) {
|
|
|
+ this.http.put(`/project-closure-apply/config/${this.editId}`, this.form, (res) => {
|
|
|
+ if (res.code === 200 || res.code === 'ok') {
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.loadData()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg || '修改失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.http.post('/project-closure-apply/config/save', [this.form], (res) => {
|
|
|
+ if (res.code === 200 || res.code === 'ok') {
|
|
|
+ this.$message.success('添加成功')
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.loadData()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg || '添加失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|