浏览代码

修改用车审批

余思翰 1年前
父节点
当前提交
fe68854292

+ 6
- 5
oa-ui/src/store/getters.js 查看文件

1
 /*
1
 /*
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-01-03 09:23:11
3
  * @Date: 2024-01-03 09:23:11
4
- * @LastEditors: 
5
- * @LastEditTime: 2024-02-29 14:57:41
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-03-08 09:29:30
6
  */
6
  */
7
 const getters = {
7
 const getters = {
8
   sidebar: state => state.app.sidebar,
8
   sidebar: state => state.app.sidebar,
14
   token: state => state.user.token,
14
   token: state => state.user.token,
15
   avatar: state => state.user.avatar,
15
   avatar: state => state.user.avatar,
16
   name: state => state.user.name,
16
   name: state => state.user.name,
17
+  userId: state => state.user.id,
17
   deptName: state => state.user.deptName,
18
   deptName: state => state.user.deptName,
18
   introduction: state => state.user.introduction,
19
   introduction: state => state.user.introduction,
19
   roles: state => state.user.roles,
20
   roles: state => state.user.roles,
20
   permissions: state => state.user.permissions,
21
   permissions: state => state.user.permissions,
21
   permission_routes: state => state.permission.routes,
22
   permission_routes: state => state.permission.routes,
22
-  topbarRouters:state => state.permission.topbarRouters,
23
-  defaultRoutes:state => state.permission.defaultRoutes,
24
-  sidebarRouters:state => state.permission.sidebarRouters,
23
+  topbarRouters: state => state.permission.topbarRouters,
24
+  defaultRoutes: state => state.permission.defaultRoutes,
25
+  sidebarRouters: state => state.permission.sidebarRouters,
25
 }
26
 }
26
 export default getters
27
 export default getters

+ 0
- 1
oa-ui/src/store/modules/user.js 查看文件

59
       return new Promise((resolve, reject) => {
59
       return new Promise((resolve, reject) => {
60
         getInfo().then(res => {
60
         getInfo().then(res => {
61
           const user = res.user
61
           const user = res.user
62
-          console.log(user);
63
           const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/user.png") : process.env.VUE_APP_BASE_API + user.avatar;
62
           const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/user.png") : process.env.VUE_APP_BASE_API + user.avatar;
64
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
63
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
65
             commit('SET_ROLES', res.roles)
64
             commit('SET_ROLES', res.roles)

+ 107
- 20
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-07 17:25:40
5
+ * @LastEditTime: 2024-03-08 15:12:42
6
 -->
6
 -->
7
 <!--
7
 <!--
8
  * @Author: wrh
8
  * @Author: wrh
15
   <div>
15
   <div>
16
     <h2 style="text-align: center;">用车申请表</h2>
16
     <h2 style="text-align: center;">用车申请表</h2>
17
     <div>
17
     <div>
18
-      <el-form :model="form" label-width="100px">
18
+      <el-form ref="carForm" :model="form" label-width="100px" :rules="rules">
19
         <!-- 申请人填写 -->
19
         <!-- 申请人填写 -->
20
         <el-row :gutter="20">
20
         <el-row :gutter="20">
21
           <el-col :span="6" :xs="24">
21
           <el-col :span="6" :xs="24">
22
             <el-form-item label="申请人:" prop="user">
22
             <el-form-item label="申请人:" prop="user">
23
-              <el-input v-model="form.user"></el-input>
23
+              <!-- <el-input v-model="form.user"></el-input> -->
24
+              {{ form.user }}
24
             </el-form-item>
25
             </el-form-item>
25
           </el-col>
26
           </el-col>
26
           <el-col :span="6" :xs="24">
27
           <el-col :span="6" :xs="24">
27
             <el-form-item label="所在部门:" prop="deptName">
28
             <el-form-item label="所在部门:" prop="deptName">
28
-              <el-input v-model="form.deptName"></el-input>
29
+              <!-- <el-input v-model="form.deptName"></el-input> -->
30
+              {{ form.deptName }}
29
             </el-form-item>
31
             </el-form-item>
30
           </el-col>
32
           </el-col>
31
           <el-col :span="6" :xs="24">
33
           <el-col :span="6" :xs="24">
32
             <el-form-item label="申请时间:" prop="date">
34
             <el-form-item label="申请时间:" prop="date">
33
-              <el-date-picker style="width:140px;" v-model="form.date" value-format="yyyy-MM-dd" type="date"
35
+              <el-date-picker style="width:140px;" v-model="form.applyDate" value-format="yyyy-MM-dd" type="date"
34
                 placeholder="选择日期">
36
                 placeholder="选择日期">
35
               </el-date-picker>
37
               </el-date-picker>
36
             </el-form-item>
38
             </el-form-item>
65
         </el-form-item>
67
         </el-form-item>
66
         <el-row>
68
         <el-row>
67
           <el-col :span="6" :xs="24">
69
           <el-col :span="6" :xs="24">
68
-            <el-form-item label="开始日期:">
70
+            <el-form-item label="开始日期:" prop="beginDate">
69
               <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
71
               <el-date-picker style="width:140px;" v-model="form.beginDate" value-format="yyyy-MM-dd" type="date"
70
                 placeholder="选择日期" @change="calculateDay">
72
                 placeholder="选择日期" @change="calculateDay">
71
               </el-date-picker>
73
               </el-date-picker>
72
             </el-form-item>
74
             </el-form-item>
73
           </el-col>
75
           </el-col>
74
           <el-col :span="6" :xs="24">
76
           <el-col :span="6" :xs="24">
75
-            <el-form-item label="结束日期:">
77
+            <el-form-item label="结束日期:" prop="endDate">
76
               <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
78
               <el-date-picker style="width:140px;" v-model="form.endDate" value-format="yyyy-MM-dd" type="date"
77
                 placeholder="选择日期" @change="calculateDay">
79
                 placeholder="选择日期" @change="calculateDay">
78
               </el-date-picker>
80
               </el-date-picker>
115
       <el-row style="text-align: center;" v-if="taskName == '用车申请'">
117
       <el-row style="text-align: center;" v-if="taskName == '用车申请'">
116
         <el-button type="primary" @click="submit">提交申请</el-button>
118
         <el-button type="primary" @click="submit">提交申请</el-button>
117
       </el-row>
119
       </el-row>
120
+      <el-row style="text-align: center;" v-else>
121
+        <el-button type="primary" @click="completeApply">完成审批</el-button>
122
+      </el-row>
118
     </div>
123
     </div>
119
   </div>
124
   </div>
120
 </template>
125
 </template>
121
 
126
 
122
 <script>
127
 <script>
123
 import { listProject, getProject } from "@/api/oa/project/project";
128
 import { listProject, getProject } from "@/api/oa/project/project";
124
-import { listCar } from "@/api/oa/car/car";
129
+import { listCar, getCar } from "@/api/oa/car/car";
130
+import { listCarApproval, getCarApproval, updateCarApproval, submitCarApproval, modifyCarApproval } from '@/api/oa/car/carApproval'
125
 import { listDriver } from "@/api/system/post";
131
 import { listDriver } from "@/api/system/post";
126
 import {
132
 import {
127
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
133
   complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm,
139
     }
145
     }
140
   },
146
   },
141
   created() {
147
   created() {
142
-    this.form.user = this.$store.getters.name;
143
-    this.form.deptName = this.$store.getters.deptName;
148
+
144
     this.getProjectList();
149
     this.getProjectList();
145
     this.getCarList();
150
     this.getCarList();
146
     this.getDriverList();
151
     this.getDriverList();
148
   data() {
153
   data() {
149
     return {
154
     return {
150
       form: {
155
       form: {
151
-        date: new Date(),
152
         days: '',
156
         days: '',
153
-        drivers: []
157
+        drivers: [],
158
+        user: '',
159
+        applyDate: undefined,
160
+        deptName: '',
161
+        applier: '',
162
+      },
163
+      rules: {
164
+        projectNumber: [
165
+          { required: true, message: '请选择项目编号', trigger: 'change' },
166
+        ],
167
+        passengers: [
168
+          { required: true, message: '请选择输入乘车人数', trigger: 'change' },
169
+        ],
170
+        beginDate: [
171
+          { required: true, message: '请选择开始日期', trigger: 'change' },
172
+        ],
173
+        endDate: [
174
+          { required: true, message: '请选择结束日期', trigger: 'change' },
175
+        ],
176
+        applyReason: [
177
+          { required: true, message: '请输入用车理由', trigger: 'blur' },
178
+        ],
154
       },
179
       },
155
       projectList: [],
180
       projectList: [],
156
       carList: [],
181
       carList: [],
157
       driverList: [],
182
       driverList: [],
158
       chooseProject: {},
183
       chooseProject: {},
159
       isSelect: false,
184
       isSelect: false,
185
+      formTotal: 0
160
     }
186
     }
161
   },
187
   },
188
+  mounted() {
189
+    this.initForm();
190
+  },
162
   methods: {
191
   methods: {
192
+    // 初始化表单
193
+    initForm() {
194
+      getCarApproval(this.taskForm.formId).then(res => {
195
+        if (this.isEmptyObject(res.data)) {
196
+          this.formTotal = 0;
197
+          this.form.user = this.$store.getters.name;
198
+          this.form.applier = this.$store.getters.userId;
199
+          this.form.deptName = this.$store.getters.deptName;
200
+          this.form.applyDate = new Date();
201
+        }
202
+        else {
203
+          this.formTotal = 1;
204
+          console.log(res);
205
+          let data = res.data;
206
+          if (res.data.drivers == null || res.rows.drivers == undefined || res.rows.drivers == "") {
207
+            data.drivers = []
208
+          } else {
209
+            data.drivers = data.drivers.split(',');
210
+          }
211
+          this.form = data;
212
+        }
213
+      })
214
+    },
163
     submit() {
215
     submit() {
216
+      this.$refs['carForm'].validate((valid) => {
217
+        debugger
218
+        if (valid) {
219
+          this.form.formId = this.taskForm.formId;
220
+          let formData = new FormData();
221
+          let jsonForm = JSON.stringify(this.form);
222
+          formData.append("form", jsonForm);
223
+          const params = { taskId: this.taskForm.taskId };
224
+          if (this.formTotal != 0) {
225
+            modifyCarApproval(formData);
226
+          } else {
227
+            submitCarApproval(formData);
228
+          }
229
+          // 获取下一个流程节点
230
+          getNextFlowNode(params).then(res => {
231
+            const data = res.data;
232
+            this.taskForm.formData = formData;
233
+            this.getNextFlowNodeApproval();
234
+          })
235
+        }
236
+      })
237
+    },
238
+    completeApply() {
164
       let formData = new FormData();
239
       let formData = new FormData();
165
       let jsonForm = JSON.stringify(this.form);
240
       let jsonForm = JSON.stringify(this.form);
166
       formData.append("form", jsonForm);
241
       formData.append("form", jsonForm);
167
-      const params = { taskId: this.taskForm.taskId }
242
+      modifyCarApproval(formData);
243
+      const params = { taskId: this.taskForm.taskId };
168
       // 获取下一个流程节点
244
       // 获取下一个流程节点
169
       getNextFlowNode(params).then(res => {
245
       getNextFlowNode(params).then(res => {
170
         const data = res.data;
246
         const data = res.data;
171
-        debugger
172
         this.taskForm.formData = formData;
247
         this.taskForm.formData = formData;
173
-        complete(this.taskForm).then(response => {
174
-          this.$modal.msgSuccess(response.msg);
175
-          this.goBack();
176
-        });
248
+        this.getNextFlowNodeApproval();
177
       })
249
       })
178
     },
250
     },
179
     // 获取下一个审批人
251
     // 获取下一个审批人
180
     getNextFlowNodeApproval() {
252
     getNextFlowNodeApproval() {
181
-      getUsersDeptLeader()
182
-      this.$set(this.taskForm.variables, "approval", selectVal.join(','));
253
+      getUsersDeptLeader({ userId: this.$store.getters.userId }).then(res => {
254
+        let userId = res.data.userId;
255
+        this.$set(this.taskForm.variables, "approval", userId);
256
+        complete(this.taskForm).then(response => {
257
+          this.$modal.msgSuccess(response.msg);
258
+          this.$emit('goBack')
259
+        });
260
+      })
183
     },
261
     },
184
     // 查询项目列表
262
     // 查询项目列表
185
     getProjectList() {
263
     getProjectList() {
228
         let y2 = new Date(this.form.endDate);
306
         let y2 = new Date(this.form.endDate);
229
         if (y2 < y1) {
307
         if (y2 < y1) {
230
           this.form.days = '';
308
           this.form.days = '';
309
+          this.$message.error('开始时期和结束日期选择错误');
231
           return
310
           return
232
         }
311
         }
233
         let sub = Math.abs(y2 - y1);
312
         let sub = Math.abs(y2 - y1);
237
         this.form.days = '';
316
         this.form.days = '';
238
       }
317
       }
239
 
318
 
319
+    },
320
+    isEmptyObject(obj) {
321
+      for (var key in obj) {
322
+        if (obj.hasOwnProperty(key)) {
323
+          return false;
324
+        }
325
+      }
326
+      return true;
240
     }
327
     }
241
   },
328
   },
242
 }
329
 }

+ 12
- 5
oa-ui/src/views/flowable/task/todo/detail/index.vue 查看文件

22
             v-else-if="taskForm.procDefName == '财务部考核'"></cw-table>
22
             v-else-if="taskForm.procDefName == '财务部考核'"></cw-table>
23
           <zh-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
23
           <zh-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
24
             v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
24
             v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
25
-          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'"></car-form>
26
-          <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"></device-form>
25
+          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'" @goBack="goBack"></car-form>
26
+          <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
27
+            @goBack="goBack"></device-form>
27
           <el-row type="flex" justify="center" v-show="isShowApprove()">
28
           <el-row type="flex" justify="center" v-show="isShowApprove()">
28
             <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
29
             <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
29
               @click="handleComplete">审核通过
30
               @click="handleComplete">审核通过
49
                         <el-tag type="info" size="mini">{{ item.deptName }}</el-tag>
50
                         <el-tag type="info" size="mini">{{ item.deptName }}</el-tag>
50
                       </el-descriptions-item>
51
                       </el-descriptions-item>
51
                       <el-descriptions-item v-if="item.candidate" label-class-name="my-label">
52
                       <el-descriptions-item v-if="item.candidate" label-class-name="my-label">
53
+
52
                         <template slot="label"><i class="el-icon-user"></i>候选办理</template>
54
                         <template slot="label"><i class="el-icon-user"></i>候选办理</template>
53
                         {{ item.candidate }}
55
                         {{ item.candidate }}
54
                       </el-descriptions-item>
56
                       </el-descriptions-item>
55
                       <el-descriptions-item label-class-name="my-label">
57
                       <el-descriptions-item label-class-name="my-label">
58
+
56
                         <template slot="label"><i class="el-icon-date"></i>接收时间</template>
59
                         <template slot="label"><i class="el-icon-date"></i>接收时间</template>
57
                         {{ item.createTime }}
60
                         {{ item.createTime }}
58
                       </el-descriptions-item>
61
                       </el-descriptions-item>
59
                       <el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
62
                       <el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
63
+
60
                         <template slot="label"><i class="el-icon-date"></i>处理时间</template>
64
                         <template slot="label"><i class="el-icon-date"></i>处理时间</template>
61
                         {{ item.finishTime }}
65
                         {{ item.finishTime }}
62
                       </el-descriptions-item>
66
                       </el-descriptions-item>
63
                       <el-descriptions-item v-if="item.duration" label-class-name="my-label">
67
                       <el-descriptions-item v-if="item.duration" label-class-name="my-label">
68
+
64
                         <template slot="label"><i class="el-icon-time"></i>耗时</template>
69
                         <template slot="label"><i class="el-icon-time"></i>耗时</template>
65
                         {{ item.duration }}
70
                         {{ item.duration }}
66
                       </el-descriptions-item>
71
                       </el-descriptions-item>
67
                       <el-descriptions-item v-if="item.comment" label-class-name="my-label">
72
                       <el-descriptions-item v-if="item.comment" label-class-name="my-label">
73
+
68
                         <template slot="label"><i class="el-icon-tickets"></i>处理意见</template>
74
                         <template slot="label"><i class="el-icon-tickets"></i>处理意见</template>
69
                         {{ item.comment }}
75
                         {{ item.comment }}
70
                       </el-descriptions-item>
76
                       </el-descriptions-item>
535
       })
541
       })
536
     },
542
     },
537
     // 是否显示审批通过
543
     // 是否显示审批通过
538
-    isShowApprove(){
539
-      if(this.taskName == '员工填报' || this.taskName == '用车申请' || this.taskName == '设备申请'){
544
+    isShowApprove() {
545
+      if (this.taskName == '员工填报' || this.taskForm.procDefName == '用车审批' || tthis.taskForm.procDefName == '设备审批') {
540
         return false
546
         return false
541
-      }else{
547
+      } else {
542
         return true
548
         return true
543
       }
549
       }
544
     }
550
     }
545
   },
551
   },
546
 };
552
 };
547
 </script>
553
 </script>
554
+
548
 <style lang="scss" scoped>
555
 <style lang="scss" scoped>
549
 .test-form {
556
 .test-form {
550
   margin: 15px auto;
557
   margin: 15px auto;

正在加载...
取消
保存