Przeglądaj źródła

修改设备申请和用车申请界面布局

余思翰 1 rok temu
rodzic
commit
74925c712f

+ 154
- 127
oa-ui/src/views/flowable/form/carForm.vue Wyświetl plik

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-29 11:44:28
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-03-11 10:43:10
5
+ * @LastEditTime: 2024-03-11 16:55:39
6 6
 -->
7 7
 <!--
8 8
  * @Author: wrh
@@ -13,126 +13,145 @@
13 13
 
14 14
 <template>
15 15
   <div>
16
-    <h2 style="text-align: center;">用车申请表</h2>
17
-    <div>
18
-      <el-form ref="carForm" :model="form" label-width="100px" :rules="rules">
19
-        <!-- 申请人填写 -->
20
-        <el-row :gutter="20">
21
-          <el-col :span="6" :xs="24">
22
-            <el-form-item label="申请人:" prop="user">
23
-              <!-- <el-input v-model="form.user"></el-input> -->
24
-              {{ form.user }}
25
-            </el-form-item>
26
-          </el-col>
27
-          <el-col :span="6" :xs="24">
28
-            <el-form-item label="所在部门:" prop="deptName">
29
-              <!-- <el-input v-model="form.deptName"></el-input> -->
30
-              {{ form.deptName }}
31
-            </el-form-item>
32
-          </el-col>
33
-          <el-col :span="6" :xs="24">
34
-            <el-form-item label="申请时间:" prop="date">
35
-              <el-date-picker style="width:140px;" v-model="form.applyDate" value-format="yyyy-MM-dd" type="date"
36
-                placeholder="选择日期">
37
-              </el-date-picker>
38
-            </el-form-item>
39
-          </el-col>
40
-        </el-row>
41
-        <el-form-item label="项目编号:" prop="projectNumber" v-if="taskForm.procDefName == '用车审批'">
42
-          <el-select v-model="form.projectNumber" filterable placeholder="请选择" @change="handleSelectProject" clearable>
43
-            <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber" :value="item.projectId">
44
-            </el-option>
45
-          </el-select>
46
-          <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
47
-            <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
48
-            }}</el-descriptions-item>
49
-            <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
50
-            }}</el-descriptions-item>
51
-            <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
52
-            }}</el-descriptions-item>
53
-            <el-descriptions-item label="承担部门" label-class-name="my-label">
54
-              <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
55
-            </el-descriptions-item>
56
-            <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
57
-            }}</el-descriptions-item>
58
-          </el-descriptions>
59
-        </el-form-item>
60
-        <el-form-item label="乘车人数:" prop="passengers">
61
-          <el-input-number v-model="form.passengers" :min="1"></el-input-number>
62
-        </el-form-item>
63
-        <el-form-item label="用车事由:" prop="applyReason">
64
-          <el-input type="textarea" :rows="2" placeholder="请输入用车事由" v-model="form.applyReason">
65
-          </el-input>
66
-        </el-form-item>
67
-        <el-row>
68
-          <el-col :span="6" :xs="24">
69
-            <el-form-item label="开始日期:" prop="beginDate">
70
-              <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
71
-                placeholder="选择日期" @change="calculateDay">
72
-              </el-date-picker>
73
-            </el-form-item>
74
-          </el-col>
75
-          <el-col :span="6" :xs="24">
76
-            <el-form-item label="结束日期:" prop="endDate">
77
-              <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
78
-                placeholder="选择日期" @change="calculateDay">
79
-              </el-date-picker>
80
-            </el-form-item>
81
-          </el-col>
82
-          <el-col :span="8" :xs="24">
83
-            <el-form-item label="共计:">
84
-              {{ form.days + '天' }}
85
-            </el-form-item>
86
-          </el-col>
87
-        </el-row>
88
-        <el-divider></el-divider>
89
-        <!-- 部门审核意见 -->
90
-        <el-form-item label="部门审核意见:" prop="deptComment" label-width="120px"
91
-          v-if="taskForm.procDefName == '用车审批' && (taskName == '部门审核' || taskName == '分管审核' || taskName == '安排用车' || taskName == '申请确认')">
92
-          <el-input type="textarea" :rows="2" placeholder="请输入部门审核意见" v-model="form.deptComment">
93
-          </el-input>
94
-        </el-form-item>
95
-        <!-- 分管审核意见 -->
96
-        <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px"
97
-          v-if="taskForm.procDefName == '用车审批' && (taskName == '分管审核' || taskName == '安排用车' || taskName == '申请确认')">
98
-          <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment">
99
-          </el-input>
100
-        </el-form-item>
101
-        <!-- 工会审核意见 -->
102
-        <el-form-item label="工会审核意见:" prop="unionComment" label-width="120px"
103
-          v-if="taskForm.procDefName == '用车审批(工会)' && (taskName == '工会审核' || taskName == '安排用车' || taskName == '申请确认')">
104
-          <el-input type="textarea" :rows="2" placeholder="请输入工会审核意见" v-model="form.unionComment">
105
-          </el-input>
106
-        </el-form-item>
107
-        <!-- 安排用车意见 -->
108
-        <el-form-item label="安排用车意见:" prop="dispatchComment" label-width="120px"
109
-          v-if="taskName == '安排用车' || taskName == '申请确认'">
110
-          <el-input type="textarea" :rows="2" placeholder="请输入安排用车意见" v-model="form.dispatchComment">
111
-          </el-input>
112
-        </el-form-item>
113
-        <!-- 综合事务部管理人员填写 -->
114
-        <el-form-item label="车牌号:" v-if="taskName == '安排用车' || taskName == '申请确认'">
115
-          <el-checkbox-group v-model="form.cars">
116
-            <el-checkbox :label="item.carId" v-for="item in carList" :key="item.carId" :value="item.carId">{{ item.licensePlate }}</el-checkbox>
117
-          </el-checkbox-group>
118
-        </el-form-item>
119
-        <el-form-item label="驾驶员:" v-if="taskName == '安排用车' || taskName == '申请确认'">
120
-          <!-- <el-select v-model="form.drivers" filterable multiple placeholder="请选择" clearable>
121
-            <el-option v-for="item in driverList" :key="item.userId" :label="item.nickName" :value="item.userId">
122
-            </el-option>
123
-          </el-select> -->
124
-          <el-checkbox-group v-model="form.drivers">
125
-            <el-checkbox :label="item.userId" v-for="item in driverList" :key="item.userId" :value="item.userId">{{ item.nickName }}</el-checkbox>
126
-          </el-checkbox-group>
127
-        </el-form-item>
128
-      </el-form>
129
-      <el-row style="text-align: center;" v-if="taskName == '用车申请'">
130
-        <el-button type="primary" @click="submit">提交申请</el-button>
131
-      </el-row>
132
-      <el-row style="text-align: center;" v-else>
133
-        <el-button type="primary" @click="completeApply">{{ taskName == '申请确认' ? "确认" : "完成审批" }}</el-button>
134
-      </el-row>
135
-    </div>
16
+    <el-row :gutter="20">
17
+      <el-col :span="18" :xs="24">
18
+        <el-card>
19
+          <h2 style="text-align: center;">用车申请表</h2>
20
+          <div>
21
+            <el-form ref="carForm" :model="form" label-width="100px" :rules="rules">
22
+              <!-- 申请人填写 -->
23
+              <el-row :gutter="20">
24
+                <el-col :span="6" :xs="24">
25
+                  <el-form-item label="申请人:" prop="user">
26
+                    <!-- <el-input v-model="form.user"></el-input> -->
27
+                    {{ form.user }}
28
+                  </el-form-item>
29
+                </el-col>
30
+                <el-col :span="6" :xs="24">
31
+                  <el-form-item label="所在部门:" prop="deptName">
32
+                    <!-- <el-input v-model="form.deptName"></el-input> -->
33
+                    {{ form.deptName }}
34
+                  </el-form-item>
35
+                </el-col>
36
+                <el-col :span="6" :xs="24">
37
+                  <el-form-item label="申请时间:" prop="date">
38
+                    <el-date-picker style="width:140px;" v-model="form.applyDate" value-format="yyyy-MM-dd" type="date"
39
+                      placeholder="选择日期" :disabled="taskName != '用车申请'">
40
+                    </el-date-picker>
41
+                  </el-form-item>
42
+                </el-col>
43
+              </el-row>
44
+              <el-form-item label="项目编号:" prop="projectNumber" v-if="taskForm.procDefName == '用车审批'">
45
+                <el-select v-model="form.projectNumber" filterable placeholder="请选择" @change="handleSelectProject"
46
+                  :disabled="taskName != '用车申请'" clearable>
47
+                  <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
48
+                    :value="item.projectId">
49
+                  </el-option>
50
+                </el-select>
51
+                <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
52
+                  <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
53
+                    }}</el-descriptions-item>
54
+                  <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
55
+                    }}</el-descriptions-item>
56
+                  <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
57
+                    }}</el-descriptions-item>
58
+                  <el-descriptions-item label="承担部门" label-class-name="my-label">
59
+                    <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
60
+                  </el-descriptions-item>
61
+                  <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
62
+                    }}</el-descriptions-item>
63
+                </el-descriptions>
64
+              </el-form-item>
65
+              <el-form-item label="乘车人数:" prop="passengers">
66
+                <el-input-number v-model="form.passengers" :min="1" :disabled="taskName != '用车申请'"></el-input-number>
67
+              </el-form-item>
68
+              <el-form-item label="用车事由:" prop="applyReason">
69
+                <el-input type="textarea" :rows="2" placeholder="请输入用车事由" v-model="form.applyReason"
70
+                  :disabled="taskName != '用车申请'">
71
+                </el-input>
72
+              </el-form-item>
73
+              <el-row>
74
+                <el-col :span="6" :xs="24">
75
+                  <el-form-item label="开始日期:" prop="beginDate">
76
+                    <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
77
+                      placeholder="选择日期" @change="calculateDay" :disabled="taskName != '用车申请'">
78
+                    </el-date-picker>
79
+                  </el-form-item>
80
+                </el-col>
81
+                <el-col :span="6" :xs="24">
82
+                  <el-form-item label="结束日期:" prop="endDate">
83
+                    <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
84
+                      placeholder="选择日期" @change="calculateDay" :disabled="taskName != '用车申请'">
85
+                    </el-date-picker>
86
+                  </el-form-item>
87
+                </el-col>
88
+                <el-col :span="8" :xs="24">
89
+                  <el-form-item label="共计:">
90
+                    {{ form.days + '天' }}
91
+                  </el-form-item>
92
+                </el-col>
93
+              </el-row>
94
+              <el-divider></el-divider>
95
+              <!-- 部门审核意见 -->
96
+              <el-form-item label="部门审核意见:" prop="deptComment" label-width="120px">
97
+                <el-input type="textarea" :rows="2" placeholder="请输入部门审核意见" v-model="form.deptComment"
98
+                  :disabled="taskName != '部门审核'">
99
+                </el-input>
100
+              </el-form-item>
101
+              <!-- 分管审核意见 -->
102
+              <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px">
103
+                <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment"
104
+                  :disabled="taskName != '分管审核'">
105
+                </el-input>
106
+              </el-form-item>
107
+              <!-- 工会审核意见 -->
108
+              <el-form-item label="工会审核意见:" prop="unionComment" label-width="120px" v-if="taskName == '工会审核'">
109
+                <el-input type="textarea" :rows="2" placeholder="请输入工会审核意见" v-model="form.unionComment"
110
+                  :disabled="taskName != '工会审核'">
111
+                </el-input>
112
+              </el-form-item>
113
+              <!-- 安排用车意见 -->
114
+              <el-form-item label="安排用车意见:" prop="dispatchComment" label-width="120px">
115
+                <el-input type="textarea" :rows="2" placeholder="请输入安排用车意见" v-model="form.dispatchComment"
116
+                  :disabled="taskName != '安排用车'">
117
+                </el-input>
118
+              </el-form-item>
119
+              <!-- 综合事务部管理人员填写 -->
120
+              <el-form-item label="车牌号:">
121
+                <el-checkbox-group v-model="form.cars" :disabled="taskName != '安排用车'">
122
+                  <el-checkbox :label="item.carId" v-for="item in carList" :key="item.carId" :value="item.carId">
123
+                    {{ item.licensePlate }}
124
+                  </el-checkbox>
125
+                </el-checkbox-group>
126
+              </el-form-item>
127
+              <el-form-item label="驾驶员:">
128
+                <el-checkbox-group v-model="form.drivers" :disabled="taskName != '安排用车'">
129
+                  <el-checkbox :label="item.userId" v-for="item in driverList" :key="item.userId" :value="item.userId">
130
+                    {{ item.nickName }}
131
+                  </el-checkbox>
132
+                </el-checkbox-group>
133
+              </el-form-item>
134
+            </el-form>
135
+            <el-row style="text-align: center;" v-if="taskName == '用车申请'">
136
+              <el-button type="primary" @click="submit">提交申请</el-button>
137
+            </el-row>
138
+            <el-row style="text-align: center;" v-else>
139
+              <el-button type="primary" @click="completeApply">{{ taskName == '申请确认' ? "确认" : "完成审批" }}</el-button>
140
+            </el-row>
141
+          </div>
142
+        </el-card>
143
+
144
+      </el-col>
145
+      <el-col :span="6" :xs="24">
146
+        <el-card>
147
+          <h2 style="text-align: center;">流程进度</h2>
148
+          <div>
149
+            <flow :flowData="flowData" />
150
+          </div>
151
+        </el-card>
152
+      </el-col>
153
+    </el-row>
154
+
136 155
   </div>
137 156
 </template>
138 157
 
@@ -145,7 +164,12 @@ import {
145 164
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
146 165
 } from "@/api/flowable/todo";
147 166
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
167
+import flow from '@/views/flowable/task/todo/detail/flow'
168
+import { flowXmlAndNode } from "@/api/flowable/definition";
148 169
 export default {
170
+  components: {
171
+    flow
172
+  },
149 173
   props: {
150 174
     taskName: {
151 175
       type: String,
@@ -157,10 +181,12 @@ export default {
157 181
     }
158 182
   },
159 183
   created() {
160
-
161 184
     this.getProjectList();
162 185
     this.getCarList();
163 186
     this.getDriverList();
187
+    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
188
+      this.flowData = res.data;
189
+    })
164 190
   },
165 191
   data() {
166 192
     return {
@@ -171,7 +197,7 @@ export default {
171 197
         applyDate: undefined,
172 198
         deptName: '',
173 199
         applier: '',
174
-        cars:[]
200
+        cars: []
175 201
       },
176 202
       rules: {
177 203
         projectNumber: [
@@ -195,7 +221,8 @@ export default {
195 221
       driverList: [],
196 222
       chooseProject: {},
197 223
       isSelect: false,
198
-      formTotal: 0
224
+      formTotal: 0,
225
+      flowData: {}
199 226
     }
200 227
   },
201 228
   mounted() {
@@ -220,7 +247,7 @@ export default {
220 247
           } else {
221 248
             let arr = []
222 249
             data.drivers = data.drivers.split(',');
223
-            for(let driver of data.drivers){
250
+            for (let driver of data.drivers) {
224 251
               arr.push(parseInt(driver))
225 252
             }
226 253
             data.drivers = arr
@@ -230,7 +257,7 @@ export default {
230 257
           } else {
231 258
             data.cars = data.cars.split(',');
232 259
             let arr = []
233
-            for(let d of data.cars){
260
+            for (let d of data.cars) {
234 261
               arr.push(parseInt(d))
235 262
             }
236 263
             data.cars = arr;
@@ -280,7 +307,7 @@ export default {
280 307
     getNextFlowNodeApproval() {
281 308
       if (this.taskName == '用车申请') {
282 309
         getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
283
-          let userId = res.data.userId;          
310
+          let userId = res.data.userId;
284 311
           if (this.taskForm.procDefName == '用车审批') {
285 312
             this.$set(this.taskForm.variables, "approval", userId);
286 313
           }

+ 251
- 91
oa-ui/src/views/flowable/form/deviceForm.vue Wyświetl plik

@@ -2,101 +2,140 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-07 13:44:39
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-03-08 17:15:18
5
+ * @LastEditTime: 2024-03-11 16:34:24
6 6
 -->
7 7
 
8 8
 <template>
9 9
   <div>
10
-    <h2 style="text-align: center;">设备申请表</h2>
11
-    <div>
12
-      <el-form ref="deviceForm" :model="form" label-width="100px" :rules="rules">
13
-        <!-- 申请人填写 -->
14
-        <el-row :gutter="20">
15
-          <el-col :span="6" :xs="24">
16
-            <el-form-item label="申请人:" prop="user">
17
-              <!-- <el-input v-model="form.user"></el-input> -->
18
-              {{ form.user }}
19
-            </el-form-item>
20
-          </el-col>
21
-          <el-col :span="6" :xs="24">
22
-            <el-form-item label="所在部门:" prop="deptName">
23
-              <!-- <el-input v-model="form.deptName"></el-input> -->
24
-              {{ form.deptName }}
25
-            </el-form-item>
26
-          </el-col>
27
-          <el-col :span="6" :xs="24">
28
-            <el-form-item label="申请时间:" prop="applyDate">
29
-              <el-date-picker style="width:140px;" v-model="form.applyDate" value-format="yyyy-MM-dd" type="date"
30
-                placeholder="选择日期">
31
-              </el-date-picker>
32
-            </el-form-item>
33
-          </el-col>
34
-        </el-row>
35
-        <el-form-item label="项目编号:" prop="projectNumber">
36
-          <el-select v-model="form.projectNumber" filterable allow-create placeholder="请选择"
37
-            @change="handleSelectProject" clearable>
38
-            <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
39
-              :value="item.projectId">
40
-            </el-option>
41
-          </el-select>
42
-          <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
43
-            <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
44
-              }}</el-descriptions-item>
45
-            <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
46
-              }}</el-descriptions-item>
47
-            <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
48
-              }}</el-descriptions-item>
49
-            <el-descriptions-item label="承担部门" label-class-name="my-label">
50
-              <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
51
-            </el-descriptions-item>
52
-            <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
53
-              }}</el-descriptions-item>
54
-          </el-descriptions>
55
-        </el-form-item>
56
-        <el-form-item label="申领事由:" prop="applyReason">
57
-          <el-input type="textarea" :rows="2" placeholder="请输入申领事由" v-model="form.applyReason">
58
-          </el-input>
59
-        </el-form-item>
60
-        <el-row>
61
-          <el-col :span="6" :xs="24">
62
-            <el-form-item label="开始日期:" prop="beginDate">
63
-              <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
64
-                placeholder="选择日期" @change="calculateDay">
65
-              </el-date-picker>
66
-            </el-form-item>
67
-          </el-col>
68
-          <el-col :span="6" :xs="24">
69
-            <el-form-item label="结束日期:" prop="endDate">
70
-              <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
71
-                placeholder="选择日期" @change="calculateDay">
72
-              </el-date-picker>
73
-            </el-form-item>
74
-          </el-col>
75
-          <el-col :span="8" :xs="24">
76
-            <el-form-item label="共计:">
77
-              {{ form.days + '天' }}
78
-            </el-form-item>
79
-          </el-col>
80
-        </el-row>
81
-        <el-divider></el-divider>
10
+    <el-row :gutter="20">
11
+      <el-col :span="18" :xs="24">
12
+        <el-card>
13
+          <h2 style="text-align: center;">设备申请表</h2>
14
+          <div>
15
+            <el-form ref="deviceForm" :model="form" label-width="100px" :rules="rules">
16
+              <!-- 申请人填写 -->
17
+              <el-row :gutter="20">
18
+                <el-col :span="6" :xs="24">
19
+                  <el-form-item label="申请人:" prop="user">
20
+                    <!-- <el-input v-model="form.user"></el-input> -->
21
+                    {{ form.user }}
22
+                  </el-form-item>
23
+                </el-col>
24
+                <el-col :span="6" :xs="24">
25
+                  <el-form-item label="所在部门:" prop="deptName">
26
+                    <!-- <el-input v-model="form.deptName"></el-input> -->
27
+                    {{ form.deptName }}
28
+                  </el-form-item>
29
+                </el-col>
30
+                <el-col :span="6" :xs="24">
31
+                  <el-form-item label="申请时间:" prop="applyDate">
32
+                    <el-date-picker style="width:140px;" v-model="form.applyDate" value-format="yyyy-MM-dd" type="date"
33
+                      placeholder="选择日期" :disabled="taskName != '设备申请'">
34
+                    </el-date-picker>
35
+                  </el-form-item>
36
+                </el-col>
37
+              </el-row>
38
+              <el-form-item label="项目编号:" prop="projectNumber">
39
+                <el-select v-model="form.projectNumber" filterable allow-create placeholder="请选择"
40
+                  @change="handleSelectProject" clearable :disabled="taskName != '设备申请'">
41
+                  <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
42
+                    :value="item.projectId">
43
+                  </el-option>
44
+                </el-select>
45
+                <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
46
+                  <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
47
+                    }}</el-descriptions-item>
48
+                  <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
49
+                    }}</el-descriptions-item>
50
+                  <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
51
+                    }}</el-descriptions-item>
52
+                  <el-descriptions-item label="承担部门" label-class-name="my-label">
53
+                    <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
54
+                  </el-descriptions-item>
55
+                  <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
56
+                    }}</el-descriptions-item>
57
+                </el-descriptions>
58
+              </el-form-item>
59
+              <el-form-item label="申领事由:" prop="applyReason">
60
+                <el-input type="textarea" :rows="2" placeholder="请输入申领事由" v-model="form.applyReason"
61
+                  :disabled="taskName != '设备申请'">
62
+                </el-input>
63
+              </el-form-item>
64
+              <el-row>
65
+                <el-col :span="6" :xs="24">
66
+                  <el-form-item label="开始日期:" prop="beginDate">
67
+                    <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
68
+                      placeholder="选择日期" @change="calculateDay" :disabled="taskName != '设备申请'">
69
+                    </el-date-picker>
70
+                  </el-form-item>
71
+                </el-col>
72
+                <el-col :span="6" :xs="24">
73
+                  <el-form-item label="结束日期:" prop="endDate">
74
+                    <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
75
+                      placeholder="选择日期" @change="calculateDay" :disabled="taskName != '设备申请'">
76
+                    </el-date-picker>
77
+                  </el-form-item>
78
+                </el-col>
79
+                <el-col :span="8" :xs="24">
80
+                  <el-form-item label="共计:">
81
+                    {{ form.days + '天' }}
82
+                  </el-form-item>
83
+                </el-col>
84
+              </el-row>
85
+              <el-divider></el-divider>
86
+
87
+              <!-- 部门审核意见 -->
88
+              <el-form-item label="部门审核意见:" prop="deptComment" label-width="120px">
89
+                <el-input type="textarea" :rows="2" placeholder="请输入部门审核意见" v-model="form.deptComment" :disabled="taskName != '部门审核'">
90
+                </el-input>
91
+              </el-form-item>
92
+              <!-- 分管审核意见 -->
93
+              <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px">
94
+                <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment" :disabled="taskName != '分管审核'">
95
+                </el-input>
96
+              </el-form-item>
97
+              <!-- 安排设备意见 -->
98
+              <el-form-item label="安排设备意见:" prop="dispatchComment" label-width="120px">
99
+                <el-input type="textarea" :rows="2" placeholder="请输入安排设备意见" v-model="form.dispatchComment" :disabled="taskName != '安排设备'">
100
+                </el-input>
101
+              </el-form-item>
102
+              <!-- 设备安排 -->
103
+              <el-form-item label-width="120px" label="设备选择:">
104
+                <el-select v-model="form.devices" filterable placeholder="请选择" @change="handleSelectDevice" clearable :disabled="taskName != '安排设备'">
105
+                  <el-option v-for="item in deviceList" :key="item.code" :label="item.code" :value="item.code">
106
+                  </el-option>
107
+                </el-select>
108
+                <el-descriptions border v-if="isDeviceSelect" style="margin-top: 10px;" :column="1">
109
+                  <el-descriptions-item label="设备编号" label-class-name="my-label">{{ chooseDevice.code
110
+                    }}</el-descriptions-item>
111
+                  <el-descriptions-item label="设备类别" label-class-name="my-label">{{ chooseDevice.type
112
+                    }}</el-descriptions-item>
113
+                  <el-descriptions-item label="设备系列" label-class-name="my-label">{{ chooseDevice.series
114
+                    }}</el-descriptions-item>
115
+                </el-descriptions>
116
+              </el-form-item>
117
+            </el-form>
118
+            <el-row style="text-align: center;" v-if="taskName == '设备申请'">
119
+              <el-button type="primary" @click="submit">提交申请</el-button>
120
+            </el-row>
121
+            <el-row style="text-align: center;" v-else>
122
+              <el-button type="primary" @click="completeApply">{{ taskName == '申请确认' ? "确认" : "完成审批" }}</el-button>
123
+            </el-row>
124
+          </div>
125
+        </el-card>
126
+
127
+      </el-col>
128
+      <el-col :span="6" :xs="24">
129
+        <el-card>
130
+          <h2 style="text-align: center;">流程进度</h2>
131
+          <div>
132
+            <flow :flowData="flowData" />
133
+          </div>
134
+        </el-card>
135
+
136
+      </el-col>
137
+    </el-row>
82 138
 
83
-        <!-- 部门审核意见 -->
84
-        <el-form-item label="部门审核意见:" prop="deptComment" label-width="120px"
85
-          v-if="taskName == '部门审核' || taskName == '分管审核' || taskName == '安排设备'">
86
-          <el-input type="textarea" :rows="2" placeholder="请输入部门审核意见" v-model="form.deptComment">
87
-          </el-input>
88
-        </el-form-item>
89
-        <!-- 分管审核意见 -->
90
-        <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px"
91
-          v-if="taskName == '分管审核' || taskName == '安排设备'">
92
-          <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment">
93
-          </el-input>
94
-        </el-form-item>
95
-      </el-form>
96
-      <el-row style="text-align: center;" v-if="taskName == '设备申请'">
97
-        <el-button type="primary" @click="submit">提交申请</el-button>
98
-      </el-row>
99
-    </div>
100 139
   </div>
101 140
 </template>
102 141
 
@@ -107,7 +146,13 @@ import { listDeviceApproval, getDeviceApproval, updateDeviceApproval, submitDevi
107 146
 import {
108 147
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
109 148
 } from "@/api/flowable/todo";
149
+import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
150
+import flow from '@/views/flowable/task/todo/detail/flow'
151
+import { flowXmlAndNode } from "@/api/flowable/definition";
110 152
 export default {
153
+  components: {
154
+    flow
155
+  },
111 156
   props: {
112 157
     taskName: {
113 158
       type: String,
@@ -122,6 +167,9 @@ export default {
122 167
     this.form.user = this.$store.getters.name;
123 168
     this.form.deptName = this.$store.getters.deptName;
124 169
     this.getProjectList();
170
+    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
171
+      this.flowData = res.data;
172
+    })
125 173
   },
126 174
   data() {
127 175
     return {
@@ -131,6 +179,7 @@ export default {
131 179
       },
132 180
       projectList: [],
133 181
       chooseProject: {},
182
+      flowData: {},
134 183
       isSelect: false,
135 184
       rules: {
136 185
         projectNumber: [
@@ -149,12 +198,41 @@ export default {
149 198
           { required: true, message: '请输入用车理由', trigger: 'blur' },
150 199
         ],
151 200
       },
201
+      deviceList: [],
202
+      chooseDevice: {},
203
+      isDeviceSelect: false,
204
+      formTotal: 0
152 205
     }
153 206
   },
207
+  mounted() {
208
+    this.initForm();
209
+  },
154 210
   methods: {
211
+    // 初始化表单
212
+    initForm() {
213
+      getDeviceApproval(this.taskForm.formId).then(res => {
214
+        debugger
215
+        if (this.isEmptyObject(res.data)) {
216
+          this.formTotal = 0;
217
+          this.form.user = this.$store.getters.name;
218
+          this.form.applier = this.$store.getters.userId;
219
+          this.form.deptName = this.$store.getters.deptName;
220
+          this.form.applyDate = new Date();
221
+        } else {
222
+          this.formTotal = 1;
223
+          let data = res.data;
224
+          this.form = data;
225
+          getProject(data.projectNumber).then(response => {
226
+            this.chooseProject = response.data;
227
+            this.isSelect = true
228
+          })
229
+        }
230
+      })
231
+    },
155 232
     submit() {
156 233
       this.$refs['deviceForm'].validate((valid) => {
157 234
         if (valid) {
235
+          debugger
158 236
           this.form.formId = this.taskForm.formId;
159 237
           let formData = new FormData();
160 238
           let jsonForm = JSON.stringify(this.form);
@@ -174,6 +252,60 @@ export default {
174 252
         }
175 253
       })
176 254
     },
255
+    completeApply() {
256
+      this.form.formId = this.taskForm.formId;
257
+      this.form.deviceApplyId = this.taskForm.formId;
258
+      let formData = new FormData();
259
+      let jsonForm = JSON.stringify(this.form);
260
+      formData.append("form", jsonForm);
261
+      modifyDeviceApproval(formData);
262
+      const params = { taskId: this.taskForm.taskId };
263
+      // 获取下一个流程节点
264
+      getNextFlowNode(params).then(res => {
265
+        const data = res.data;
266
+        this.taskForm.formData = formData;
267
+        this.getNextFlowNodeApproval();
268
+      })
269
+    },
270
+    // 获取下一个审批人
271
+    getNextFlowNodeApproval() {
272
+      if (this.taskName == '设备申请') {
273
+        getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
274
+          let userId = res.data.userId;
275
+          this.$set(this.taskForm.variables, "approval", userId);
276
+          complete(this.taskForm).then(response => {
277
+            this.$modal.msgSuccess(response.msg);
278
+            this.$emit('goBack')
279
+          });
280
+        })
281
+      } else if (this.taskName == '部门审核') {
282
+        getUsersManageLeader({ userId: this.$store.getters.userId }).then(res => {
283
+          let userId = res.data.userId;
284
+          this.$set(this.taskForm.variables, "approval", userId);
285
+          complete(this.taskForm).then(response => {
286
+            this.$modal.msgSuccess(response.msg);
287
+            this.$emit('goBack')
288
+          });
289
+        })
290
+      } else if (this.taskName == '分管审核') {
291
+        this.$set(this.taskForm.variables, "approval", 16);
292
+        complete(this.taskForm).then(response => {
293
+          this.$modal.msgSuccess(response.msg);
294
+          this.$emit('goBack')
295
+        });
296
+      } else if (this.taskName == '安排设备') {
297
+        complete(this.taskForm).then(response => {
298
+          this.$modal.msgSuccess(response.msg);
299
+          this.$emit('goBack')
300
+        });
301
+      } else {
302
+        complete(this.taskForm).then(response => {
303
+          this.$modal.msgSuccess(response.msg);
304
+          this.$emit('goBack')
305
+        });
306
+      }
307
+
308
+    },
177 309
     // 查询项目列表
178 310
     getProjectList() {
179 311
       this.loading = true
@@ -195,6 +327,26 @@ export default {
195 327
         this.isSelect = false
196 328
       }
197 329
     },
330
+    // 获取设备列表
331
+    getDeviceList() {
332
+      listDevice({
333
+        pageNum: 1,
334
+        pageSize: 9999999999
335
+      }).then(res => {
336
+        this.deviceList = res.rows
337
+      })
338
+    },
339
+    // 选择设备
340
+    handleSelectDevice(val) {
341
+      if (val != "" && val != undefined && val != null) {
342
+        getDevice(val).then(res => {
343
+          this.chooseDevice = res.data;
344
+          this.isDeviceSelect = true
345
+        })
346
+      } else {
347
+        this.isDeviceSelect = false
348
+      }
349
+    },
198 350
     // 计算天数
199 351
     calculateDay() {
200 352
       if (this.form.beginDate && this.form.endDate) {
@@ -223,4 +375,12 @@ export default {
223 375
 }
224 376
 </script>
225 377
 
226
-<style lang="scss" scoped></style>
378
+<style lang="scss" scoped>
379
+::v-deep .el-input.is-disabled .el-input__inner {
380
+  color: #121212 !important;
381
+}
382
+
383
+::v-deep .el-textarea.is-disabled .el-textarea__inner {
384
+  color: #121212 !important;
385
+}
386
+</style>

+ 1
- 1
oa-ui/src/views/flowable/task/todo/detail/flowview.vue Wyświetl plik

@@ -56,7 +56,7 @@ export default {
56 56
       const self = this
57 57
       try {
58 58
         await self.bpmnViewer.importXML(flowData.xmlData);
59
-        self.fitViewport()
59
+        // self.fitViewport()
60 60
         if (flowData.nodeData !==undefined && flowData.nodeData.length > 0 ) {
61 61
           self.fillColor(flowData.nodeData)
62 62
         }

Ładowanie…
Anuluj
Zapisz