瀏覽代碼

新增项目委外,修改一些小问题

余思翰 8 月之前
父節點
當前提交
96de93838e

+ 8
- 1
oa-ui/src/utils/deleteResource.js 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-13 17:07:59
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-20 13:59:08
5
+ * @LastEditTime: 2024-09-23 15:43:29
6 6
  */
7 7
 import request from '@/utils/request'
8 8
 
@@ -103,6 +103,13 @@ const apiEndpoints = [
103 103
       '/oa/procurePlan/:id'
104 104
     ]
105 105
   },
106
+  {
107
+    procDefName: '项目委外',
108
+    apiUrl: [
109
+      '/oa/outsource/:id',
110
+      '/oa/outsourceWork/:id'
111
+    ]
112
+  },
106 113
 ]
107 114
 
108 115
 // 编写一个方法来处理删除请求,并同时发送所有API请求  

+ 5
- 2
oa-ui/src/views/flowable/form/components/conditionDisplay.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-23 17:08:16
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-20 16:45:23
5
+ * @LastEditTime: 2024-09-23 15:47:25
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -36,6 +36,7 @@
36 36
     <declare :key="'work'+taskForm.taskId" :taskForm="taskForm" :taskName="''" :formDisabled="true" v-else-if="taskForm.procDefName == '工作填报'"></declare>
37 37
     <procure-form :key="'procure'+taskForm.taskId"  :taskForm="taskForm" :taskName="''" :isFlow ="true" v-else-if="taskForm.procDefName == '采购审批'"></procure-form>
38 38
     <outsource-form :key="'outsource'+taskForm.taskId"  :taskForm="taskForm" :taskName="''" :isFlow ="true" v-else-if="taskForm.procDefName == '项目委外'"></outsource-form>
39
+    <performance-form :key="'performance'+taskForm.taskId"  :taskForm="taskForm" :taskName="''" :isFlow ="true" v-else-if="taskForm.procDefName == '绩效审批'"></performance-form>
39 40
   </div>
40 41
 </template>
41 42
 
@@ -67,6 +68,7 @@ import workFilling from "@/views/flowable/form/work/declareForm.vue";
67 68
 import declare from "@/views/flowable/form/work/declareForm.vue";
68 69
 import procureForm from "@/views/flowable/form/procure/procureForm.vue";
69 70
 import outsourceForm from '@/views/flowable/form/outsource/outsourceForm.vue';
71
+import performanceForm from '@/views/flowable/form/performance/performanceForm.vue';
70 72
 export default {
71 73
   props: {
72 74
     passingParam: {
@@ -104,7 +106,8 @@ export default {
104 106
     changeForm,
105 107
     declare,
106 108
     procureForm,
107
-    outsourceForm
109
+    outsourceForm,
110
+    performanceForm,
108 111
   },
109 112
   data() {
110 113
     return {

+ 5
- 1
oa-ui/src/views/flowable/form/components/detailDisplay.vue 查看文件

@@ -50,6 +50,8 @@
50 50
       @goBack="goBack"></procure-form>
51 51
     <outsource-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目委外'"
52 52
       @goBack="goBack"></outsource-form>
53
+    <performance-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '绩效审批'"
54
+      @goBack="goBack"></performance-form>
53 55
   </div>
54 56
 </template>
55 57
 
@@ -81,6 +83,7 @@ import changeForm from '@/views/flowable/form/changeForm.vue';
81 83
 import declareForm from '@/views/flowable/form/work/declareForm.vue';
82 84
 import procureForm from '@/views/flowable/form/procure/procureForm.vue';
83 85
 import outsourceForm from '@/views/flowable/form/outsource/outsourceForm.vue';
86
+import prformanceForm from '@/views/flowable/form/performance/performanceForm.vue';
84 87
 export default {
85 88
   components: {
86 89
     ScTable,
@@ -109,7 +112,8 @@ export default {
109 112
     changeForm,
110 113
     declareForm,
111 114
     procureForm,
112
-    outsourceForm
115
+    outsourceForm,
116
+    prformanceForm,
113 117
   },
114 118
   props: {
115 119
     taskForm: {

+ 228
- 7
oa-ui/src/views/flowable/form/outsource/outsourceForm.vue 查看文件

@@ -2,15 +2,84 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-09-20 16:09:07
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-20 16:46:18
5
+ * @LastEditTime: 2024-09-23 16:22:14
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
9 9
     <el-row :gutter="20">
10 10
       <el-col :span="isFlow ? 18 : 24" :xs="24">
11
-        <el-form ref="form" :model="form" :rules="rules" label-width="100px" :disabled="taskName == ''">
12
-          <h2 style="text-align: center;">项目委外审批表</h2>
11
+        <h2 style="text-align: center;">项目委外审批表</h2>
12
+        <el-form ref="form" :model="form" :rules="rules" :disabled="taskName == ''">
13
+          <el-row :gutter="20">
14
+            <el-col :span="7" :xs="24">
15
+              <el-form-item label="申请人:" prop="applier" label-width="100px">
16
+                {{ getUserName(form.applier) }}
17
+              </el-form-item>
18
+            </el-col>
19
+            <el-col :span="7" :xs="24">
20
+              <el-form-item label="申请部门:" prop="applyDept" label-width="100px">
21
+                {{ getDeptName(form.applyDept) }}
22
+              </el-form-item>
23
+            </el-col>
24
+            <el-col :span="7" :xs="24">
25
+              <el-form-item label="申请时间:" prop="date" label-width="100px">
26
+                {{ form.applyTime }}
27
+              </el-form-item>
28
+            </el-col>
29
+          </el-row>
30
+          <el-form-item label="项目名称:" prop="projectId" label-width="100px">
31
+            <el-button icon="el-icon-plus" type="primary" @click="prOpen = true" size="mini"
32
+              v-if="taskName == '委外申请'">选择项目</el-button>
33
+            <el-descriptions class="mb20" border v-if="form.projectId" style="margin-top: 10px" :column="1">
34
+              <el-descriptions-item label="项目编号">
35
+                {{ project.projectNumber }}
36
+              </el-descriptions-item>
37
+              <el-descriptions-item label="项目名称">
38
+                {{ project.projectName }}
39
+              </el-descriptions-item>
40
+              <el-descriptions-item label="项目负责人">
41
+                {{ getUserName(project.projectLeader) }}
42
+              </el-descriptions-item>
43
+              <el-descriptions-item label="项目类型">
44
+                {{ project.projectType }}
45
+              </el-descriptions-item>
46
+              <el-descriptions-item label="承担部门">
47
+                {{ getDeptNames(project.undertakingDept) }}
48
+              </el-descriptions-item>
49
+            </el-descriptions>
50
+          </el-form-item>
51
+          <el-form-item label="合作单位:" prop="partnerId">
52
+            <el-tag class="mr10" v-for="item in partnerList" v-if="partnerList.length != 0">
53
+              {{ item.partnerName }}
54
+            </el-tag>
55
+            <el-button icon="el-icon-plus" type="primary" @click="partOpen = true" size="mini"
56
+              v-if="taskName == '委外申请'">选择合作单位</el-button>
57
+          </el-form-item>
58
+          <el-form-item label="委外说明:" prop="applyReason">
59
+            <el-input type="textarea" v-model="form.applyReason" :autosize="{ minRows: 4 }"
60
+              :disabled="taskName != '委外申请'"></el-input>
61
+          </el-form-item>
62
+          <el-form-item label="委外工作计划:">
63
+            <outsource-plan ref="planRef" :taskForm="taskForm" :taskName="taskName"
64
+              :outsoureId="outsoureId"></outsource-plan>
65
+          </el-form-item>
66
+          <el-form-item label="分管审核意见:" prop="managerComment" label-width="130px">
67
+            <el-input type="textarea" v-model="form.managerComment" :autosize="{ minRows: 4 }"
68
+              :disabled="taskName != '分管审核'"></el-input>
69
+            <auditor-row ref="fgRef" :isCurrent="taskName == '分管审核'"
70
+              :signature="form.managerUserId ? form.managerUserId : null" :signTime="form.managerTime"></auditor-row>
71
+          </el-form-item>
72
+          <el-form-item label="总经理审批意见:" prop="zjlComment" label-width="130px">
73
+            <el-input type="textarea" v-model="form.zjlComment" :autosize="{ minRows: 4 }"
74
+              :disabled="taskName != '总经理审批'"></el-input>
75
+            <auditor-row ref="zjlRef" :isCurrent="taskName == '总经理审批'"
76
+              :signature="form.zjlUserId ? form.zjlUserId : null" :signTime="form.zjlTime"></auditor-row>
77
+          </el-form-item>
13 78
         </el-form>
79
+        <el-row style="text-align: center;" v-if="taskName != ''">
80
+          <el-button type="warning" @click="saves()">保存</el-button>
81
+          <el-button type="primary" @click="completeApply()">提交</el-button>
82
+        </el-row>
14 83
       </el-col>
15 84
       <el-col :span="6" :xs="24" v-if="isFlow">
16 85
         <el-card>
@@ -21,14 +90,31 @@
21 90
         </el-card>
22 91
       </el-col>
23 92
     </el-row>
93
+    <el-dialog title="选择项目" :visible.sync="prOpen" :width="'60%'" append-to-body>
94
+      <choose-project @chooseProject="confirmProject"></choose-project>
95
+    </el-dialog>
96
+    <el-dialog title="选择合作单位" :visible.sync="partOpen" :width="'60%'" append-to-body>
97
+      <choose-partner @confirm="confirmPartner"></choose-partner>
98
+    </el-dialog>
24 99
   </div>
25 100
 </template>
26 101
 
27 102
 <script>
28 103
 import flow from '@/views/flowable/task/todo/detail/flow';
29 104
 import { flowXmlAndNode } from "@/api/flowable/definition";
105
+import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
106
+import { parseTime } from "@/utils/ruoyi";
107
+import { getProject } from "@/api/oa/project/project";
108
+import { listOutsource, getOutsource, addOutsource, updateOutsource, delOutsource } from "@/api/oa/outsource/outsource";
109
+import { listOutsourceWork, getOutsourceWork, addOutsourceWork, updateOutsourceWork, delOutsourceWork } from "@/api/oa/outsource/outsourceWork";
110
+import { getUsersDeptLeaderByDept, getUsersManageLeaderByDept, getUserByPost } from '@/api/system/post'
111
+import { getPartner } from "@/api/oa/partner/partner";
112
+import chooseProject from '@/views/flowable/form/components/chooseProject.vue';
113
+import ChoosePartner from '@/views/flowable/form/components/choosePartner.vue';
114
+import outsourcePlan from './outsourcePlan.vue';
115
+import AuditorRow from '@/views/flowable/form/components/auditorRow.vue';
30 116
 export default {
31
-  components: { flow },
117
+  components: { flow, chooseProject, ChoosePartner, outsourcePlan, AuditorRow },
32 118
   props: {
33 119
     taskName: {
34 120
       type: String,
@@ -45,12 +131,34 @@ export default {
45 131
   },
46 132
   data() {
47 133
     return {
48
-      flowData:{}
134
+      flowData: {},
135
+      form: {
136
+        deptId: undefined,
137
+        applyTime: undefined,
138
+        applier: undefined,
139
+      },
140
+      rules: {
141
+        applyReason: [
142
+          { required: true, message: '请输入委外说明', trigger: 'blur' }
143
+        ],
144
+        projectId: [
145
+          { required: true, message: '请选择项目', trigger: 'change' }
146
+        ],
147
+        partnerId: [
148
+          { required: true, message: '请选择合作单位', trigger: 'change' }
149
+        ]
150
+      },
151
+      project: {},
152
+      partnerList: [],
153
+      prOpen: false,
154
+      partOpen: false,
155
+      formTotal: 0,
156
+      outsoureId: ''
49 157
     }
50 158
   },
51 159
   created() {
52 160
     this.initFlow();
53
-    // this.initForm();
161
+    this.initForm();
54 162
   },
55 163
   methods: {
56 164
     initFlow() {
@@ -60,8 +168,121 @@ export default {
60 168
         })
61 169
       }
62 170
     },
171
+    initForm() {
172
+      const formId = this.taskForm.formId;
173
+      this.outsoureId = formId;
174
+      getOutsource(formId).then(res => {
175
+        if (res.data) {
176
+          this.formTotal = 1
177
+          this.form = res.data;
178
+          this.getPartnerList(res.data.partnerId);
179
+          this.getProjectInfo(res.data.projectId);
180
+        }
181
+        if (this.taskName == '委外申请') {
182
+          this.form.applier = this.$store.getters.userId;
183
+          this.form.applyDept = this.$store.getters.deptId;
184
+          this.form.applyTime = parseTime(new Date(), "{y}-{m}-{d}")
185
+        }
186
+      })
187
+    },
188
+    getProjectInfo(projectId) {
189
+      getProject(projectId).then(res => {
190
+        if (res.data)
191
+          this.project = res.data
192
+      })
193
+    },
194
+    getPartnerList(partnerId) {
195
+      if(!partnerId) return
196
+      this.partnerList = [];
197
+      let ids = partnerId.split(',');
198
+      ids.forEach(async item => {
199
+        let res = await getPartner(item);
200
+        if (res.data)
201
+          this.partnerList.push(res.data)
202
+      })
203
+    },
204
+    async saves() {
205
+      if (this.formTotal) {
206
+        if (this.taskName == '分管审核') {
207
+          this.form.managerUserId = this.$refs.fgRef.localSignatureUserId;
208
+          this.form.managerTime = this.$refs.fgRef.loaclSignTime;
209
+        } else if (this.taskName == '总经理审批') {
210
+          this.form.zjlUserId = this.$refs.zjlRef.localSignatureUserId;
211
+          this.form.zjlTime = this.$refs.zjlRef.loaclSignTime;
212
+        }
213
+        await updateOutsource(this.form)
214
+      } else {
215
+        this.form.outsoureId = this.taskForm.formId;
216
+        await addOutsource(this.form)
217
+      }
218
+      this.savePlan()
219
+      this.$message.success('保存成功')
220
+    },
221
+    async savePlan() {
222
+      const planList = this.$refs.planRef.workList;
223
+      const isAdd = this.$refs.planRef.formTotal;
224
+      const outsourceId = this.taskForm.formId;
225
+      if (isAdd)
226
+        await delOutsourceWork(outsourceId)
227
+      for (let plan of planList) {
228
+        plan.outsourceId = outsourceId
229
+        await addOutsourceWork(plan)
230
+      }
231
+    },
232
+    completeApply() {
233
+      const params = { taskId: this.taskForm.taskId };
234
+      this.$refs['form'].validate(valid => {
235
+        if (valid) {
236
+          this.saves();
237
+          getNextFlowNode(params).then(async res => {
238
+            if (this.taskName == '委外申请') {
239
+              let managerList = []
240
+              let result = await getUsersManageLeaderByDept({ deptId: this.form.applyDept });
241
+              result.data.forEach(element => {
242
+                managerList.push(element.userId)
243
+              });
244
+              this.$set(this.taskForm.variables, "approvalList", managerList);
245
+              this.successComplete();
246
+            } else if (this.taskName == '分管审核') {
247
+              let result = await getUserByPost({ postName: '总经理' })
248
+              this.$set(this.taskForm.variables, "approval", result.data[0].userId);
249
+              this.successComplete();
250
+            } else if (this.taskName == '总经理审批') {
251
+              this.successComplete();
252
+            }
253
+          })
254
+        } else {
255
+          this.$message.error('请完善必填项')
256
+        }
257
+      })
258
+    },
259
+    successComplete() {
260
+      complete(this.taskForm).then(response => {
261
+        this.$modal.msgSuccess(response.msg);
262
+        this.$emit('goBack')
263
+      })
264
+    },
265
+    confirmProject(val) {
266
+      if (val.length != 1) {
267
+        this.$message.error("项目只能选择一个!");
268
+        return;
269
+      }
270
+      this.project = val[0]
271
+      this.$set(this.form, 'projectId', val[0].projectId)
272
+      this.prOpen = false;
273
+      this.$refs.form.validateField('projectId');
274
+    },
275
+    confirmPartner(val) {
276
+      this.partnerList = val;
277
+      this.partOpen = false;
278
+      const ids = val.map(obj => obj.partnerId).join(',');
279
+      this.$set(this.form, 'partnerId', ids)
280
+      this.$refs.form.validateField('partnerId');
281
+    }
63 282
   },
64 283
 }
65 284
 </script>
66 285
 
67
-<style lang="scss" scoped></style>
286
+<style lang="scss" scoped>
287
+@import "@/assets/styles/element-reset.scss";
288
+</style>

+ 197
- 0
oa-ui/src/views/flowable/form/outsource/outsourcePlan.vue 查看文件

@@ -0,0 +1,197 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-09-23 11:17:31
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-09-23 15:39:39
6
+-->
7
+<template>
8
+  <div style="width:100%">
9
+    <table class="table" border="1" style="width:100%">
10
+      <!-- <tr>
11
+        <td style="width:55px;">序号</td>
12
+        <td>委外内容</td>
13
+        <td style="width:50px;" v-if="taskName == '委外申请'">操作</td>
14
+      </tr>
15
+      <tr v-for="(work, index) in workList" :key="index">
16
+        <td>
17
+          {{ index + 1 }}
18
+        </td>
19
+        <td class="text-center">
20
+          <el-descriptions :column="4" border size="mini">
21
+            <el-descriptions-item label="工作内容" :span="4">
22
+              <el-input type="textarea" v-model="work.content" :autosize="{ minRows: 2 }"></el-input>
23
+            </el-descriptions-item>
24
+            <el-descriptions-item label="等级或比例尺" :span="2">
25
+              <el-select v-model="work.scale" placeholder="请选择" clearable style="width:100%">
26
+                <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
27
+                  :value="dict.label" />
28
+              </el-select>
29
+            </el-descriptions-item>
30
+            <el-descriptions-item label="单位" :span="2">
31
+              <el-select v-model="work.unit" placeholder="请选择" clearable style="width:100%">
32
+                <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label"
33
+                  :value="dict.label" />
34
+              </el-select>
35
+            </el-descriptions-item>
36
+            <el-descriptions-item label="工作量" :span="2">
37
+              <el-input v-model="work.workload" clearable></el-input>
38
+            </el-descriptions-item>
39
+            <el-descriptions-item label="要求完成时间" :span="2">
40
+              <el-date-picker style="width:100%" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
41
+                placeholder="选择日期">
42
+              </el-date-picker>
43
+            </el-descriptions-item>
44
+            <el-descriptions-item label="备注" :span="4">
45
+              <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4 }"></el-input>
46
+            </el-descriptions-item>
47
+          </el-descriptions>
48
+        </td>
49
+        <td v-if="taskName == '委外申请'">
50
+          <div class="delete-btn" @click="deletWorkItem(index)">
51
+            <i class="el-icon-circle-close"></i>
52
+          </div>
53
+        </td>
54
+      </tr> -->
55
+      <tr>
56
+        <td style="width: 280px">工作内容</td>
57
+        <td>等级或比例尺</td>
58
+        <td>单位</td>
59
+        <td>工作量</td>
60
+        <td style="width: 100px">要求完成时间</td>
61
+        <td>备注</td>
62
+      </tr>
63
+      <tr v-for="(work, index) in workList" :key="index">
64
+        <td>
65
+          <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }" :disabled="taskName != '委外申请'"></el-input>
66
+        </td>
67
+        <td>
68
+          <el-select v-model="work.scale" placeholder="请选择" clearable :disabled="taskName != '委外申请'">
69
+            <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
70
+              :value="dict.label" />
71
+          </el-select>
72
+        </td>
73
+        <td>
74
+          <el-select v-model="work.unit" placeholder="请选择" clearable :disabled="taskName != '委外申请'">
75
+            <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label" :value="dict.label" />
76
+          </el-select>
77
+        </td>
78
+        <td>
79
+          <el-input v-model="work.workload" clearable :disabled="taskName != '委外申请'"></el-input>
80
+        </td>
81
+        <td>
82
+          <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
83
+            placeholder="选择日期" :disabled="taskName != '委外申请'">
84
+          </el-date-picker>
85
+        </td>
86
+        <td>
87
+          <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }" :disabled="taskName != '委外申请'"></el-input>
88
+        </td>
89
+        <td v-if="taskName == '委外申请'">
90
+          <div class="delete-btn" @click="deletWorkItem(index)">
91
+            <i class="el-icon-circle-close"></i>
92
+          </div>
93
+        </td>
94
+      </tr>
95
+    </table>
96
+    <el-button icon="el-icon-plus" type="primary" plain size="mini" @click="addWorkList"></el-button>
97
+  </div>
98
+</template>
99
+
100
+<script>
101
+import { listOutsourceWork, getOutsourceWork, addOutsourceWork, updateOutsourceWork, delOutsourceWork } from "@/api/oa/outsource/outsourceWork";
102
+export default {
103
+  dicts: ['cmc_scale_grade', 'cmc_unit'],
104
+  props: {
105
+    taskForm: {
106
+      type: Object,
107
+    },
108
+    taskName: {
109
+      type: String,
110
+      required: true
111
+    },
112
+    outsoureId: {
113
+      type: String,
114
+      default: ''
115
+    }
116
+  },
117
+  data() {
118
+    return {
119
+      workList: [
120
+        {
121
+          content: "",
122
+          scale: "",
123
+          unit: "",
124
+          workload: "",
125
+          deadline: undefined,
126
+          remark: "",
127
+        },
128
+      ],
129
+      formTotal: 0
130
+    }
131
+  },
132
+  mounted() {
133
+    this.initTable()
134
+  },
135
+  methods: {
136
+    initTable() {
137
+      if (!this.outsoureId) return
138
+      listOutsourceWork({ pageNum: 1, pageSize: 100, outsourceId: this.outsoureId }).then(res => {
139
+        if (res.rows.length > 0) {
140
+          this.formTotal = 1;
141
+          this.workList = res.rows;
142
+        } else {
143
+          this.workList = [{
144
+            content: "",
145
+            scale: "",
146
+            unit: "",
147
+            workload: "",
148
+            deadline: undefined,
149
+            remark: "",
150
+          }]
151
+        }
152
+      });
153
+    },
154
+    addWorkList() {
155
+      this.workList.push({
156
+        content: "",
157
+        scale: "",
158
+        unit: "",
159
+        workload: "",
160
+        deadline: undefined,
161
+        remark: "",
162
+      });
163
+    },
164
+    deletWorkItem(index) {
165
+      let arr = this.workList;
166
+      if (arr.length == 1) {
167
+        return;
168
+      }
169
+      if (index >= 0 && index < arr.length) {
170
+        arr.splice(index, 1);
171
+      }
172
+    },
173
+  },
174
+}
175
+</script>
176
+
177
+<style lang="scss" scoped>
178
+table {
179
+  /*居中*/
180
+  margin: 0 auto;
181
+  /*边框*/
182
+  /* border: 1px solid black; */
183
+  text-align: center;
184
+  border-collapse: collapse;
185
+  /*设置背景颜色*/
186
+  /* background-color: #bfa; */
187
+}
188
+
189
+.delete-btn {
190
+  color: #F56C6C;
191
+  cursor: pointer;
192
+
193
+  i {
194
+    font-size: 25px;
195
+  }
196
+}
197
+</style>

+ 15
- 0
oa-ui/src/views/flowable/form/performance/performanceForm.vue 查看文件

@@ -0,0 +1,15 @@
1
+<template>
2
+  <div>
3
+
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+  export default {
9
+    
10
+  }
11
+</script>
12
+
13
+<style lang="scss" scoped>
14
+
15
+</style>

+ 2
- 2
oa-ui/src/views/flowable/form/procure/procureForm.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-09-19 13:45:43
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-20 15:05:52
5
+ * @LastEditTime: 2024-09-23 14:27:46
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -86,7 +86,7 @@ import { getUsersDeptLeaderByDept, getUsersManageLeaderByDept, getUserByPost } f
86 86
 import { listProcureApproval, getProcureApproval, addProcureApproval, updateProcureApproval, delProcureApproval } from "@/api/oa/procure/procureApproval";
87 87
 import { listProcurePlan, getProcurePlan, addProcurePlan, updateProcurePlan, delProcurePlan } from "@/api/oa/procure/procurePlan";
88 88
 import plan from './plan.vue'
89
-import AuditorRow from '../components/auditorRow.vue';
89
+import AuditorRow from '@/views/flowable/form/components/auditorRow.vue';
90 90
 import FlowUser from '@/components/flow/User';
91 91
 export default {
92 92
   components: { flow, FlowUser, plan, AuditorRow },

+ 2
- 2
oa-ui/src/views/flowable/task/myProcess/index.vue 查看文件

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-19 11:18:09
5
+ * @LastEditTime: 2024-09-23 15:50:44
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -449,7 +449,7 @@ export default {
449 449
     /** 删除按钮操作 */
450 450
     handleDelete(row) {
451 451
       const ids = row.procInsId || this.ids;// 暂不支持删除多个流程
452
-      this.$confirm('是否确定取消流程?', "警告", {
452
+      this.$confirm('取消流程将删除对应数据,是否确定取消流程?', "警告", {
453 453
         confirmButtonText: "确定",
454 454
         cancelButtonText: "取消",
455 455
         type: "warning"

+ 13
- 3
oa-ui/src/views/oa/project/index.vue 查看文件

@@ -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-09-20 16:56:04
5
+ * @LastEditTime: 2024-09-23 16:15:25
6 6
 -->
7 7
 <template>
8 8
   <div class="project-wrapper">
@@ -23,12 +23,19 @@
23 23
             <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
24 24
           </el-select>
25 25
         </el-form-item>
26
-        <el-form-item label="状态" prop="isFinished">
26
+        <el-form-item label="承担部门" prop="undertakingDept">
27
+          <el-select v-model="queryParams.undertakingDept" filterable clearable @change="handleQuery">
28
+            <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
29
+              :value="item.deptId">
30
+            </el-option>
31
+          </el-select>
32
+        </el-form-item>
33
+        <!-- <el-form-item label="状态" prop="isFinished">
27 34
           <el-select v-model="queryParams.isFinished" clearable>
28 35
             <el-option label="进行中" value="0"></el-option>
29 36
             <el-option label="已结束" value="1"></el-option>
30 37
           </el-select>
31
-        </el-form-item>
38
+        </el-form-item> -->
32 39
         <el-form-item>
33 40
           <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
34 41
         </el-form-item>
@@ -454,6 +461,9 @@ export default {
454 461
       this.peopleVisible = false;
455 462
     },
456 463
     formatStatus(row) {
464
+      if (!row) {
465
+        row = 0
466
+      }
457 467
       if (row <= 20) {
458 468
         return 'exception'
459 469
       } else if (row > 20 && row <= 50) {

+ 6
- 1
oa-ui/src/views/oa/project/info.vue 查看文件

@@ -355,7 +355,7 @@
355 355
               </template>
356 356
               <el-select v-model="devices" multiple disabled style="width:100%">
357 357
                 <el-option v-for="item in deviceList" :key="item.deviceId" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
358
-        + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
358
+        + (item.code != null ? '(设备编号:' + item.code + ')' : '') " :value="item.deviceId">
359 359
                 </el-option>
360 360
               </el-select>
361 361
             </el-descriptions-item>
@@ -948,4 +948,9 @@ html {
948 948
 ::v-deep .el-descriptions .is-bordered .el-descriptions-item__cell {
949 949
   border: 1px solid #cdd0d3;
950 950
 }
951
+
952
+::v-deep .el-tag.el-tag--info{
953
+  border-color: #d1d1dc;
954
+  color:#101010
955
+}
951 956
 </style>

Loading…
取消
儲存