yusm 1 неделя назад
Родитель
Сommit
71a1a6834a

+ 147 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/project/closureApprovalConfig.vue

@@ -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>