瀏覽代碼

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

余思翰 1 年之前
父節點
當前提交
74925c712f

+ 154
- 127
oa-ui/src/views/flowable/form/carForm.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-29 11:44:28
3
  * @Date: 2024-02-29 11:44:28
4
  * @LastEditors: Please set LastEditors
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
  * @Author: wrh
8
  * @Author: wrh
13
 
13
 
14
 <template>
14
 <template>
15
   <div>
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
   </div>
155
   </div>
137
 </template>
156
 </template>
138
 
157
 
145
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
164
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
146
 } from "@/api/flowable/todo";
165
 } from "@/api/flowable/todo";
147
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
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
 export default {
169
 export default {
170
+  components: {
171
+    flow
172
+  },
149
   props: {
173
   props: {
150
     taskName: {
174
     taskName: {
151
       type: String,
175
       type: String,
157
     }
181
     }
158
   },
182
   },
159
   created() {
183
   created() {
160
-
161
     this.getProjectList();
184
     this.getProjectList();
162
     this.getCarList();
185
     this.getCarList();
163
     this.getDriverList();
186
     this.getDriverList();
187
+    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
188
+      this.flowData = res.data;
189
+    })
164
   },
190
   },
165
   data() {
191
   data() {
166
     return {
192
     return {
171
         applyDate: undefined,
197
         applyDate: undefined,
172
         deptName: '',
198
         deptName: '',
173
         applier: '',
199
         applier: '',
174
-        cars:[]
200
+        cars: []
175
       },
201
       },
176
       rules: {
202
       rules: {
177
         projectNumber: [
203
         projectNumber: [
195
       driverList: [],
221
       driverList: [],
196
       chooseProject: {},
222
       chooseProject: {},
197
       isSelect: false,
223
       isSelect: false,
198
-      formTotal: 0
224
+      formTotal: 0,
225
+      flowData: {}
199
     }
226
     }
200
   },
227
   },
201
   mounted() {
228
   mounted() {
220
           } else {
247
           } else {
221
             let arr = []
248
             let arr = []
222
             data.drivers = data.drivers.split(',');
249
             data.drivers = data.drivers.split(',');
223
-            for(let driver of data.drivers){
250
+            for (let driver of data.drivers) {
224
               arr.push(parseInt(driver))
251
               arr.push(parseInt(driver))
225
             }
252
             }
226
             data.drivers = arr
253
             data.drivers = arr
230
           } else {
257
           } else {
231
             data.cars = data.cars.split(',');
258
             data.cars = data.cars.split(',');
232
             let arr = []
259
             let arr = []
233
-            for(let d of data.cars){
260
+            for (let d of data.cars) {
234
               arr.push(parseInt(d))
261
               arr.push(parseInt(d))
235
             }
262
             }
236
             data.cars = arr;
263
             data.cars = arr;
280
     getNextFlowNodeApproval() {
307
     getNextFlowNodeApproval() {
281
       if (this.taskName == '用车申请') {
308
       if (this.taskName == '用车申请') {
282
         getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
309
         getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
283
-          let userId = res.data.userId;          
310
+          let userId = res.data.userId;
284
           if (this.taskForm.procDefName == '用车审批') {
311
           if (this.taskForm.procDefName == '用车审批') {
285
             this.$set(this.taskForm.variables, "approval", userId);
312
             this.$set(this.taskForm.variables, "approval", userId);
286
           }
313
           }

+ 251
- 91
oa-ui/src/views/flowable/form/deviceForm.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-07 13:44:39
3
  * @Date: 2024-03-07 13:44:39
4
  * @LastEditors: Please set LastEditors
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
 <template>
8
 <template>
9
   <div>
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
   </div>
139
   </div>
101
 </template>
140
 </template>
102
 
141
 
107
 import {
146
 import {
108
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
147
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
109
 } from "@/api/flowable/todo";
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
 export default {
152
 export default {
153
+  components: {
154
+    flow
155
+  },
111
   props: {
156
   props: {
112
     taskName: {
157
     taskName: {
113
       type: String,
158
       type: String,
122
     this.form.user = this.$store.getters.name;
167
     this.form.user = this.$store.getters.name;
123
     this.form.deptName = this.$store.getters.deptName;
168
     this.form.deptName = this.$store.getters.deptName;
124
     this.getProjectList();
169
     this.getProjectList();
170
+    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
171
+      this.flowData = res.data;
172
+    })
125
   },
173
   },
126
   data() {
174
   data() {
127
     return {
175
     return {
131
       },
179
       },
132
       projectList: [],
180
       projectList: [],
133
       chooseProject: {},
181
       chooseProject: {},
182
+      flowData: {},
134
       isSelect: false,
183
       isSelect: false,
135
       rules: {
184
       rules: {
136
         projectNumber: [
185
         projectNumber: [
149
           { required: true, message: '请输入用车理由', trigger: 'blur' },
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
   methods: {
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
     submit() {
232
     submit() {
156
       this.$refs['deviceForm'].validate((valid) => {
233
       this.$refs['deviceForm'].validate((valid) => {
157
         if (valid) {
234
         if (valid) {
235
+          debugger
158
           this.form.formId = this.taskForm.formId;
236
           this.form.formId = this.taskForm.formId;
159
           let formData = new FormData();
237
           let formData = new FormData();
160
           let jsonForm = JSON.stringify(this.form);
238
           let jsonForm = JSON.stringify(this.form);
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
     getProjectList() {
310
     getProjectList() {
179
       this.loading = true
311
       this.loading = true
195
         this.isSelect = false
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
     calculateDay() {
351
     calculateDay() {
200
       if (this.form.beginDate && this.form.endDate) {
352
       if (this.form.beginDate && this.form.endDate) {
223
 }
375
 }
224
 </script>
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 查看文件

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

Loading…
取消
儲存