Browse Source

修改经营审核、分管审核

余思翰 1 year ago
parent
commit
74c1fd33fc

+ 3
- 1
oa-ui/src/store/index.js View File

@@ -7,6 +7,7 @@ import tagsView from './modules/tagsView'
7 7
 import permission from './modules/permission'
8 8
 import settings from './modules/settings'
9 9
 import getters from './getters'
10
+import projectProcess from './modules/projectProcess'
10 11
 
11 12
 Vue.use(Vuex)
12 13
 
@@ -17,7 +18,8 @@ const store = new Vuex.Store({
17 18
     user,
18 19
     tagsView,
19 20
     permission,
20
-    settings
21
+    settings,
22
+    projectProcess
21 23
   },
22 24
   getters
23 25
 })

+ 15
- 0
oa-ui/src/store/modules/projectProcess.js View File

@@ -0,0 +1,15 @@
1
+const projectProcess = {
2
+  state: {
3
+    underDeptId: [],
4
+    underLeaderId: []
5
+  },
6
+  mutations: {
7
+    SET_UNDERDEPTID: (state, underDeptId) => {
8
+      state.underDeptId = underDeptId
9
+    },
10
+    SET_UNDERLEADERID: (state, underLeaderId) => {
11
+      state.underLeaderId = underLeaderId
12
+    }
13
+  }
14
+}
15
+export default projectProcess

+ 17
- 1
oa-ui/src/utils/ruoyi.js View File

@@ -88,7 +88,7 @@ export function selectDictLabel(datas, value) {
88 88
 
89 89
 // 回显数据字典(字符串、数组)
90 90
 export function selectDictLabels(datas, value, separator) {
91
-  if (value === undefined || value.length ===0) {
91
+  if (value === undefined || value.length === 0) {
92 92
     return "";
93 93
   }
94 94
   if (Array.isArray(value)) {
@@ -231,3 +231,19 @@ export function tansParams(params) {
231 231
 export function blobValidate(data) {
232 232
   return data.type !== 'application/json'
233 233
 }
234
+
235
+export function setArray(arr) {
236
+  if (arr != [] && arr != undefined) {
237
+    let datalist = [...new Set(arr)];
238
+    let list = [];
239
+    for (let i of datalist) {
240
+      let obj = new Object();
241
+      obj.label = i;
242
+      obj.value = i;
243
+      list.push(obj);
244
+    }
245
+    return list;
246
+  } else {
247
+    return [];
248
+  }
249
+}

+ 4
- 4
oa-ui/src/views/flowable/form/projectProcess/addproject.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-27 14:49:15
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-10 14:08:00
5
+ * @LastEditTime: 2024-04-11 14:13:45
6 6
 -->
7 7
 
8 8
 <template>
@@ -41,7 +41,7 @@
41 41
       <el-form-item label="项目概况:">
42 42
         <table border="1">
43 43
           <tr>
44
-            <td style="width: 250px">工作内容</td>
44
+            <td style="width: 180px">工作内容</td>
45 45
             <td>等级或比例尺</td>
46 46
             <td>单位</td>
47 47
             <td>工作量</td>
@@ -50,7 +50,7 @@
50 50
           </tr>
51 51
           <tr v-for="(work, index) in workList" :key="index">
52 52
             <td>
53
-              <el-input v-model="work.content" type="textarea" autosize clearable></el-input>
53
+              <el-input v-model="work.content" type="textarea"  clearable :autosize="{ minRows: 4, maxRows: 10}"></el-input>
54 54
             </td>
55 55
             <td>
56 56
               <el-input v-model="work.scale" clearable></el-input>
@@ -67,7 +67,7 @@
67 67
               </el-date-picker>
68 68
             </td>
69 69
             <td>
70
-              <el-input v-model="work.remark" type="textarea" autosize clearable></el-input>
70
+              <el-input v-model="work.remark" type="textarea"  clearable :autosize="{ minRows: 4, maxRows: 10}"></el-input>
71 71
             </td>
72 72
             <td>
73 73
               <el-button type="danger" icon="el-icon-minus" size="mini" circle

+ 2
- 2
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-19 09:24:06
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-08 14:11:02
5
+ * @LastEditTime: 2024-04-11 16:24:28
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -199,7 +199,7 @@ export default {
199 199
           this.$set(this.taskForm.variables, "approval", userId);
200 200
           complete(this.taskForm).then(response => {
201 201
             this.$modal.msgSuccess(response.msg);
202
-            this.$emit('goBack')
202
+            this.$emit('goBack');
203 203
           });
204 204
         })
205 205
       })

+ 48
- 20
oa-ui/src/views/flowable/form/projectProcess/businessReview.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-08 13:56:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-10 17:59:08
5
+ * @LastEditTime: 2024-04-11 17:03:10
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -13,7 +13,7 @@
13 13
         </el-input>
14 14
       </el-form-item>
15 15
       <el-form-item label="审核人:">
16
-        <span class="auditor">{{ form.jyApprover }}</span>
16
+        <span class="auditor">{{ form.jyApproverName }}</span>
17 17
       </el-form-item>
18 18
       <el-form-item label="审核时间:">
19 19
         {{ form.jyApprovalTime }}
@@ -30,9 +30,11 @@ import { mapGetters } from 'vuex';
30 30
 import { parseTime } from "@/utils/ruoyi";
31 31
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
32 32
 import { getProjectComment, addProjectComment } from "@/api/oa/project/projectComment"
33
+import { listProject, getProject, addProject, updateProject, delProject, submitProject, modifyProject } from "@/api/oa/project/project";
34
+import { getUsersManageLeaderByDept } from '@/api/system/post'
33 35
 export default {
34 36
   computed: {
35
-    ...mapGetters(['name']),
37
+    ...mapGetters(['name', 'userId']),
36 38
   },
37 39
   props: {
38 40
     disabled: {
@@ -43,58 +45,84 @@ export default {
43 45
       type: Object,
44 46
       required: true,
45 47
     },
48
+    taskName: {
49
+      type: String,
50
+      required: true,
51
+    }
46 52
   },
47 53
   data() {
48 54
     return {
49 55
       form: {
50 56
         jyApprover: '',
57
+        jyApproverName: '',
51 58
         jyApprovalTime: ''
52 59
       },
53 60
       rules: {
54 61
         jyComment: [{ required: true, message: "请输入审核意见", trigger: "blur" }]
55 62
       },
56
-      jyComment: "",
57
-      jyApprovalTime: ""
63
+      jyApprovalTime: "",
64
+      managerList: []
58 65
     }
59 66
   },
60 67
   created() {
61
-    this.initForm();
68
+    if (this.$route.query.taskName != '项目登记' && this.$route.query.taskName != '项目安排') {
69
+      this.initForm();
70
+    }
71
+  },
72
+  mounted() {
73
+    if (this.$route.query.taskName != '项目登记' && this.$route.query.taskName != '项目安排') {
74
+      this.getDeptManageLeader()
75
+    }
62 76
   },
63 77
   methods: {
64 78
     initForm() {
65
-      console.log(this.taskForm);
66 79
       getProjectComment(this.taskForm.formId).then(res => {
67 80
         if (res.data) {
68 81
           this.form = res.data
82
+          if (this.form.jyUser) {
83
+            this.form.jyApproverName = this.form.jyUser.nickName
84
+          }
69 85
         } else {
70 86
           if (this.taskName == '经营审核') {
71
-            this.form.jyApprover = this.name;
87
+            this.form.jyApproverName = this.name;
88
+            this.form.jyApprover = this.userId;
72 89
             this.form.jyApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
73
-            console.log(this.form);
74 90
           } else {
75 91
             this.form.jyApprover = '';
76 92
             this.form.jyApprovalTime = '';
77 93
           }
78
-
79
-          console.log(this.form);
94
+        }
95
+      })
96
+    },
97
+    getDeptManageLeader() {
98
+      getProject(this.$route.query.formId).then(res => {
99
+        let deptId = res.data.undertakingDept.split(',');
100
+        this.$store.commit('SET_UNDERDEPTID', deptId);
101
+        for (let d of deptId) {
102
+          getUsersManageLeaderByDept({ deptId: Number(d) }).then(resopnse => {
103
+            if (resopnse.data) {
104
+              this.managerList.push(resopnse.data.userId)
105
+            }
106
+          })
80 107
         }
81 108
       })
82 109
     },
83 110
     confirm() {
111
+      this.form.projectId = this.taskForm.formId
112
+      addProjectComment({ projectId: this.taskForm.formId, jyComment: this.form.jyComment })
84 113
       const params = { taskId: this.taskForm.taskId };
85 114
       // 获取下一个流程节点
86 115
       getNextFlowNode(params).then(res => {
87
-        // getUsersDeptLeaderByDept({ deptId: 107 }).then(res => {
88
-        //   let userId = res.data.userId;
89
-        //   this.$set(this.taskForm.variables, "approval", userId);
90
-        //   complete(this.taskForm).then(response => {
91
-        //     this.$modal.msgSuccess(response.msg);
92
-        //     this.$emit("goBack");
93
-        //   });
94
-        // });
116
+        this.managerList.push(10)
117
+        this.managerList.push(7)
118
+        this.managerList = Array.from(new Set(this.managerList));
119
+        this.$set(this.taskForm.variables, "approvalList", this.managerList);
120
+        complete(this.taskForm).then(response => {
121
+          this.$modal.msgSuccess(response.msg);
122
+          this.$emit("goBack");
123
+        });
95 124
       });
96 125
     },
97
-
98 126
   },
99 127
 }
100 128
 </script>

+ 6
- 4
oa-ui/src/views/flowable/form/projectProcess/index.vue View File

@@ -17,13 +17,15 @@
17 17
             <arrangeProject :taskForm="taskForm" :disabled="taskName != '项目安排'" @goBack="goBack"></arrangeProject>
18 18
           </el-tab-pane>
19 19
           <el-tab-pane label="项目预算" name="项目预算">
20
-            
20
+
21 21
           </el-tab-pane>
22 22
           <el-tab-pane label="经营审核" name="经营审核">
23
-            <business-review :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '经营审核'" @goBack="goBack"></business-review>
23
+            <business-review :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '经营审核'"
24
+              @goBack="goBack"></business-review>
24 25
           </el-tab-pane>
25 26
           <el-tab-pane label="分管审核" name="分管审核">
26
-            <manage-review :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '分管审核'" @goBack="goBack"></manage-review>
27
+            <manage-review :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '分管审核'"
28
+              @goBack="goBack"></manage-review>
27 29
           </el-tab-pane>
28 30
           <el-tab-pane label="生产确认" name="生产确认"></el-tab-pane>
29 31
           <el-tab-pane label="项目生产" name="项目生产"></el-tab-pane>
@@ -102,7 +104,7 @@ export default {
102 104
         deadline: '',
103 105
         remark: ''
104 106
       }],
105
-      flowData: {}
107
+      flowData: {},
106 108
     }
107 109
   },
108 110
   created() {

+ 50
- 22
oa-ui/src/views/flowable/form/projectProcess/manageReview.vue View File

@@ -2,18 +2,18 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-08 13:56:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-10 17:56:58
5
+ * @LastEditTime: 2024-04-11 17:25:29
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
9 9
     <h2 style="text-align:center;">分管审核</h2>
10 10
     <el-form :model="form" :rules="rules" label-width="100px" :disabled="disabled">
11
-      <el-form-item label="审核意见:" prop="jyComment">
12
-        <el-input type="textarea" :rows="4" placeholder="请输入审核意见" v-model="form.jyComment">
11
+      <el-form-item label="审核意见:" prop="manageComment">
12
+        <el-input type="textarea" :rows="4" placeholder="请输入审核意见" v-model="form.manageComment">
13 13
         </el-input>
14 14
       </el-form-item>
15 15
       <el-form-item label="审核人:">
16
-        <span class="auditor">{{ form.manageApprover }}</span>
16
+        <span class="auditor">{{ form.manageApproverName }}</span>
17 17
       </el-form-item>
18 18
       <el-form-item label="审核时间:">
19 19
         {{ form.manageApprovalTime }}
@@ -29,10 +29,11 @@
29 29
 import { mapGetters } from 'vuex';
30 30
 import { parseTime } from "@/utils/ruoyi";
31 31
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
32
-import { getProjectComment, addProjectComment } from "@/api/oa/project/projectComment"
32
+import { getProjectComment, addProjectComment, updateProjectComment } from "@/api/oa/project/projectComment"
33
+import { getUsersDeptLeaderByDept } from '@/api/system/post'
33 34
 export default {
34 35
   computed: {
35
-    ...mapGetters(['name']),
36
+    ...mapGetters(['name', 'userId']),
36 37
   },
37 38
   props: {
38 39
     disabled: {
@@ -52,49 +53,76 @@ export default {
52 53
     return {
53 54
       form: {
54 55
         manageApprover: '',
56
+        manageApproverName: '',
55 57
         manageApprovalTime: ''
56 58
       },
57 59
       rules: {
58
-        jyComment: [{ required: true, message: "请输入审核意见", trigger: "blur" }]
60
+        manageComment: [{ required: true, message: "请输入审核意见", trigger: "blur" }]
59 61
       },
60
-      jyComment: "",
61
-      manageApprovalTime: ""
62
+      deptLeaderList: []
62 63
     }
63 64
   },
64 65
   created() {
65
-    this.initForm();
66
+    if (this.$route.query.taskName != '项目登记' && this.$route.query.taskName != '项目安排') {
67
+      this.initForm();
68
+    }
69
+  },
70
+  watch: {
71
+    underDeptId(newVal, oldVal) {
72
+      console.log(newVal);
73
+      this.getDeptLeader(newVal)
74
+    }
75
+  },
76
+  computed: {
77
+    underDeptId() {
78
+      return this.$store.state.projectProcess.underDeptId;
79
+    }
66 80
   },
67 81
   methods: {
68 82
     initForm() {
69
-      console.log(this.taskForm);
70 83
       getProjectComment(this.taskForm.formId).then(res => {
71 84
         if (res.data) {
72 85
           this.form = res.data
86
+          if (this.taskName == '分管审核') {
87
+            this.form.manageApprover = this.$store.state.user.userId;
88
+            this.form.manageApproverName = this.$store.state.user.name;
89
+            this.form.manageApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
90
+          } else {
91
+            if (res.data.managerUser)
92
+              this.form.manageApproverName = res.data.managerUser.nickName
93
+          }
73 94
         } else {
74 95
           if (this.taskName == '分管审核') {
75
-            this.form.manageApprover = this.name;
96
+            this.form.manageApprover = this.$store.state.user.userId;
97
+            this.form.manageApproverName = this.$store.state.user.name;
76 98
             this.form.manageApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
77
-            console.log(this.form);
78 99
           } else {
79 100
             this.form.manageApprover = '';
80 101
             this.form.manageApprovalTime = '';
81 102
           }
82
-
83 103
         }
84 104
       })
85 105
     },
106
+    getDeptLeader(val) {
107
+      this.deptLeaderList = [];
108
+      for (let v of val) {
109
+        getUsersDeptLeaderByDept({ deptId: Number(v) }).then(res => {
110
+          this.deptLeaderList.push(res.data.userId);
111
+          this.$store.commit('SET_UNDERLEADERID', this.deptLeaderList)
112
+        })
113
+      }
114
+    },
86 115
     confirm() {
116
+      this.form.projectId = this.taskForm.formId
117
+      updateProjectComment({ projectId: this.taskForm.formId, manageComment: this.form.manageComment })
87 118
       const params = { taskId: this.taskForm.taskId };
88 119
       // 获取下一个流程节点
89 120
       getNextFlowNode(params).then(res => {
90
-        // getUsersDeptLeaderByDept({ deptId: 107 }).then(res => {
91
-        //   let userId = res.data.userId;
92
-        //   this.$set(this.taskForm.variables, "approval", userId);
93
-        //   complete(this.taskForm).then(response => {
94
-        //     this.$modal.msgSuccess(response.msg);
95
-        //     this.$emit("goBack");
96
-        //   });
97
-        // });
121
+        this.$set(this.taskForm.variables, "approvalList", this.deptLeaderList);
122
+        complete(this.taskForm).then(response => {
123
+          this.$modal.msgSuccess(response.msg);
124
+          this.$emit("goBack");
125
+        });
98 126
       });
99 127
     },
100 128
 

+ 7
- 7
oa-ui/src/views/flowable/form/safeForm.vue View File

@@ -1,8 +1,8 @@
1 1
 <template>
2 2
   <div class="app-container">
3
-    <el-row>
3
+    <el-row :gutter="20">
4 4
       <el-col :span="18" :xs="24">
5
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
5
+        <el-form ref="form" :model="form" :rules="rules" label-width="150px">
6 6
           <el-form-item label="项目编号:" prop="projectId" v-if="taskForm.procDefName == '安全交底'">
7 7
             <el-input v-model="chooseProject.projectNumber" placeholder="请输入项目编号" disabled style="width: 300px" />
8 8
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
@@ -21,7 +21,7 @@
21 21
             </el-descriptions>
22 22
           </el-form-item>
23 23
           <el-form-item label="接受交底人" prop="disclosureAccepter">
24
-            <el-select v-model="form.disclosureAccepter" filterable clearable style="width:120px"
24
+            <el-select v-model="form.disclosureAccepter" filterable clearable style="width:220px"
25 25
               :disabled="taskName != '安全交底'">
26 26
               <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
27 27
                 v-if="item.nickName != 'admin'">
@@ -29,16 +29,16 @@
29 29
             </el-select>
30 30
           </el-form-item>
31 31
           <el-form-item label="环境管理要求" prop="environmentComment" :disabled="taskName != '安全交底'">
32
-            <el-input v-model="form.environmentComment" placeholder="请输入环境管理要求" type="textarea"/>
32
+            <el-input v-model="form.environmentComment" placeholder="请输入环境管理要求" type="textarea" :autosize="{ minRows: 8 }"/> 
33 33
           </el-form-item>
34 34
           <el-form-item label="安全生产与职业健康要求" prop="outsideComment" :disabled="taskName != '安全交底'">
35
-            <el-input v-model="form.outsideComment" placeholder="请输入安全生产与职业健康要求" type="textarea"/>
35
+            <el-input v-model="form.outsideComment" placeholder="请输入安全生产与职业健康要求" type="textarea" :autosize="{ minRows: 8 }"/>
36 36
           </el-form-item>
37 37
           <el-form-item label="信息安全管理要求" prop="insideComment" :disabled="taskName != '安全交底'">
38
-            <el-input v-model="form.insideComment" placeholder="请输入信息安全管理要求" type="textarea"/>
38
+            <el-input v-model="form.insideComment" placeholder="请输入信息安全管理要求" type="textarea" :autosize="{ minRows: 8 }"/>
39 39
           </el-form-item>
40 40
           <el-form-item label="安全交底意见" prop="disclosureComment" :disabled="taskName != '安全交底'">
41
-            <el-input v-model="form.disclosureComment" placeholder="请输入安全交底意见" />
41
+            <el-input v-model="form.disclosureComment" placeholder="请输入安全交底意见" type="textarea" :autosize="{ minRows: 4 }" />
42 42
           </el-form-item>
43 43
           <el-form-item label="安全交底人" prop="disclosurer">
44 44
             {{ form.disclosurerUser ? form.disclosurerUser.nickName : form.user.nickName }}

+ 2
- 4
oa-ui/src/views/oa/budget/addBudget.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-25 15:05:59
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-10 15:33:40
5
+ * @LastEditTime: 2024-04-11 10:25:37
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -727,9 +727,7 @@ export default {
727 727
       }
728 728
       for (let work of form.workList) {
729 729
         work.budgetId = form.budgetId;
730
-        addBudgetSettle(work).then(res => {
731
-          this.$modal.msgSuccess("预算表生成成功");
732
-        });
730
+        addBudgetSettle(work)
733 731
       }
734 732
     },
735 733
     calculateThatCost() {

+ 6
- 2
oa-ui/src/views/oa/budget/components/chooseMoney.vue View File

@@ -91,7 +91,11 @@
91 91
               {{ work.workload }}
92 92
             </td>
93 93
             <td>
94
-              <el-input v-model="work.coefficient" placeholder="请输入系数" @blur="getTotal(work)"></el-input>
94
+              <el-input-number v-model="work.coefficient"  
95
+              :controls="false" :precision="2" :step="0.01" :max="10" @blur="getTotal(work)"
96
+              style="width:60px;">
97
+              </el-input-number>
98
+              <!-- <el-input v-model="work.coefficient" placeholder="请输入系数" @blur="getTotal(work)"></el-input> -->
95 99
             </td>
96 100
             <td class="workTotal">
97 101
               {{ work.settle }}
@@ -244,6 +248,7 @@ export default {
244 248
           this.setValue(work, 'price', res.data.price)
245 249
           this.setValue(work, 'coefficient', 1)
246 250
           if (work.workload != undefined || work.workload != '') {
251
+
247 252
             this.getTotal(work);
248 253
           }
249 254
         }
@@ -264,7 +269,6 @@ export default {
264 269
       for (let work of this.workList) {
265 270
         sum = sum + Number(work.settle)
266 271
       }
267
-      debugger
268 272
       sum = sum + this.inOutPriceSum;
269 273
       this.settle = sum.toFixed(2);
270 274
       let obj = {}

Loading…
Cancel
Save