From d9bb98ca91dc00e852ce2a8477c3e4957afa7183 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 18 八月 2022 19:16:14 +0800
Subject: [PATCH] shenpiguize

---
 src/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue |  114 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 68 insertions(+), 46 deletions(-)

diff --git a/src/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue b/src/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue
index 33185c6..6f92adb 100644
--- a/src/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue
+++ b/src/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue
@@ -1,5 +1,5 @@
 <template>
-    <el-dialog v-model="approveItemDialog" :title="title">
+    <el-dialog v-model="approveItemDialog" :title="title" :close-on-click-modal="false">
         <el-form :model="approveItemForm" label-width="150px" ref="approveItemFormRef" :rules="approveItemFormRule">
             <el-col :span="24" style="margin-bottom: 24px">
                 <el-form-item label="审批项名称" prop="itemName">
@@ -8,21 +8,28 @@
             </el-col>
             <el-col :span="24" style="margin-bottom: 24px">
                 <el-form-item label="审批项类型" prop="type">
-                    <el-select v-model="approveItemForm.type" placeholder="请选择审批项类型" class="input-add">
+                    <el-select v-model="approveItemForm.type" @change="clearValue" placeholder="请选择审批项类型" class="input-add" clearable filterable>
                         <el-option v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name"></el-option>
                     </el-select>
                 </el-form-item>
             </el-col>
-            <el-col :span="24" style="margin-bottom: 24px">
+            <!--            <el-col :span="24" style="margin-bottom: 24px">-->
+            <!--                <el-form-item label="措施或标准" prop="smType">-->
+            <!--                    <el-select v-model="approveItemForm.smType" @change="clearValue" placeholder="请选择措施或标准" class="input-add" clearable filterable>-->
+            <!--                        <el-option v-for="item in smTypeList" :key="item.id" :value="item.id" :label="item.name"></el-option>-->
+            <!--                    </el-select>-->
+            <!--                </el-form-item>-->
+            <!--            </el-col>-->
+            <el-col v-if="approveItemForm.type === 2 || approveItemForm.type === 3" :span="24" style="margin-bottom: 24px">
                 <el-form-item label="措施名称" prop="measureId">
-                    <el-select v-model="approveItemForm.measureId" placeholder="请选择措施" class="input-add">
+                    <el-select v-model="approveItemForm.measureId" placeholder="请选择措施" class="input-add" clearable filterable>
                         <el-option v-for="item in actionList" :key="item.id" :value="item.id" :label="item.context"></el-option>
                     </el-select>
                 </el-form-item>
             </el-col>
-            <el-col :span="24" style="margin-bottom: 20px">
+            <el-col v-if="approveItemForm.type === 1" :span="24" style="margin-bottom: 20px">
                 <el-form-item label="标准名称" prop="standId">
-                    <el-select v-model="approveItemForm.standId" class="input-add" placeholder="选择标准">
+                    <el-select v-model="approveItemForm.standId" class="input-add" placeholder="选择标准" clearable filterable>
                         <el-option v-for="item in standardList" :key="item.ruleStandId" :value="item.ruleStandId" :label="item.title"></el-option>
                     </el-select>
                 </el-form-item>
@@ -37,7 +44,7 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, ref, onMounted } from 'vue';
+import { reactive, toRefs, ref, onMounted, nextTick } from 'vue';
 import { ElMessage } from 'element-plus/es';
 import { userApi } from '/@/api/systemManage/user';
 import { safetyActionApi } from '/@/api/specialWorkSystem/safetyAction';
@@ -47,18 +54,20 @@
     title: string;
     activeName: string;
     approveItemDialog: boolean;
-    approveItemForm: stepAddReqDTO;
+    approveItemForm: step;
     approveItemFormRule: {};
     actionList: Array<type>;
     typeList: Array<type>;
+    smTypeList: Array<type>;
     standardList: [];
-    order: '';
+    order: number | null;
 }
-interface stepAddReqDTO {
+interface step {
     itemName: string | null;
     type: null;
     measureId: number | null;
     standId: number | null;
+    smType: number | null;
 }
 interface type {
     id: number;
@@ -76,29 +85,54 @@
                 itemName: null,
                 type: null,
                 measureId: null,
+                smType: 1,
                 standId: null
             },
-            approveItemFormRule: {},
+            approveItemFormRule: {
+                itemName: [{ required: true, message: '请填写审批项名称', trigger: 'blur' }],
+                type: [{ required: true, message: '请选择审批项类型', trigger: 'change' }],
+                measureId: [{ required: true, message: '请选择措施', trigger: 'change' }],
+                smType: [{ required: true, message: '请选择措施或标准', trigger: 'change' }],
+                standId: [{ required: true, message: '请选择标准', trigger: 'change' }]
+            },
             actionList: [],
-            typeList: [
-                { id: 1, name: '数值' },
-                { id: 2, name: '选项' },
-                { id: 3, name: '填空' }
+            typeList: [],
+            smTypeList: [
+                { id: 1, name: '标准' },
+                { id: 2, name: '措施' }
             ],
             standardList: [],
             order: null
         });
 
-        const showApproveItemDialog = (type: string, value: {}, index: number) => {
+        const showApproveItemDialog = (type: string, value: {}, index: number, approveLevelForm: { type: number }, standardList: [], actionList: []) => {
             data.approveItemDialog = true;
+            data.standardList = standardList;
+            data.actionList = actionList;
             data.order = index;
+            if (approveLevelForm.type === 3) {
+                data.typeList = [
+                    { id: 1, name: '数值' },
+                    { id: 2, name: '选项' },
+                    { id: 3, name: '填空' }
+                ];
+            } else {
+                data.typeList = [
+                    { id: 2, name: '选项' },
+                    { id: 3, name: '填空' }
+                ];
+            }
+            nextTick(() => {
+                approveItemFormRef.value.clearValidate();
+            });
             if (type === '新增') {
                 data.title = '新增审批项';
                 data.approveItemForm = {
                     itemName: null,
                     type: null,
                     measureId: null,
-                    standId: null
+                    standId: null,
+                    smType: 1
                 };
             } else {
                 data.title = '修改审批项';
@@ -107,43 +141,31 @@
         };
 
         const submitApproveItem = async () => {
-            context.emit('addApprovalItem', data.approveItemForm, data.title, data.order);
-            data.approveItemDialog = false;
+            approveItemFormRef.value.validate((valid: Boolean) => {
+                if (valid) {
+                    data.approveItemForm.smType = 1;
+                    context.emit('addApprovalItem', data.approveItemForm, data.title, data.order);
+                    data.approveItemDialog = false;
+                } else {
+                    ElMessage({
+                        type: 'warning',
+                        message: '请完善审批项基本信息'
+                    });
+                }
+            });
         };
 
-        //获取措施项
-        const getActionData = async () => {
-            let res = await safetyActionApi().getAllSafetyActionList({ workType: null, type: null, context: null });
-            if (res.data.code === '200') {
-                data.actionList = res.data.data;
+        const clearValue = () => {
+            if (data.approveItemForm.type === 1) {
+                data.approveItemForm.measureId = null;
             } else {
-                ElMessage({
-                    type: 'warning',
-                    message: res.data.msg
-                });
+                data.approveItemForm.standId = null;
             }
         };
 
-        //获取标准
-        const getStandardData = async () => {
-            let res = await approveBasicApi().getAllApproveBasicList({ ruleStandType: null, title: null });
-            if (res.data.code === '200') {
-                data.standardList = res.data.data;
-            } else {
-                ElMessage({
-                    type: 'warning',
-                    message: res.data.msg
-                });
-            }
-        };
-
-        // 页面加载时
-        onMounted(() => {
-            getActionData();
-            getStandardData();
-        });
         return {
             ...toRefs(data),
+            clearValue,
             approveItemFormRef,
             submitApproveItem,
             showApproveItemDialog

--
Gitblit v1.9.2