Kaynağa Gözat

修改前端用车审批的返回时间

余思翰 10 ay önce
ebeveyn
işleme
85d2c67775

+ 1
- 1
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcCarApproval.java Dosyayı Görüntüle

@@ -171,7 +171,7 @@ public class CmcCarApproval extends BaseEntity
171 171
     private Date dispatchTime;
172 172
 
173 173
     /** 返回时间 */
174
-    @JsonFormat(pattern = "yyyy-MM-dd")
174
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
175 175
     @Excel(name = "返回时间", width = 30, dateFormat = "yyyy-MM-dd")
176 176
     private Date returnDate;
177 177
 

+ 10
- 6
oa-ui/src/views/flowable/form/oa/carForm.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-29 11:44:28
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-22 17:57:05
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-23 10:23:54
6 6
 -->
7 7
 
8 8
 <template>
@@ -25,7 +25,7 @@
25 25
                 <el-col :span="7" :xs="24">
26 26
                   <el-form-item label="所在部门:" prop="dept.deptName">
27 27
                     <!-- <el-input v-model="form.deptName"></el-input> -->
28
-                    {{ form.dept ? form.dept.deptName:'' }}
28
+                    {{ form.dept ? form.dept.deptName : '' }}
29 29
                   </el-form-item>
30 30
                 </el-col>
31 31
                 <el-col :span="7" :xs="24">
@@ -230,13 +230,17 @@
230 230
               <el-row>
231 231
                 <el-col :span="12" :xs="24">
232 232
                   <el-form-item label="返回日期" prop="returnDate">
233
-                    <el-date-picker v-model="form.returnDate" clearable type="date" value-format="yyyy-MM-dd" placeholder="选择日期" :disabled="taskName != '安排用车'">
233
+                    <!-- <el-date-picker v-model="form.returnDate" clearable type="datetime" value-format="yyyy-MM-dd-HH-mm"
234
+                      placeholder="选择日期" :disabled="taskName != '安排用车'">
235
+                    </el-date-picker> -->
236
+                    <el-date-picker v-model="form.returnDate" type="datetime" placeholder="选择日期时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" :disabled="taskName != '安排用车'">
234 237
                     </el-date-picker>
235 238
                   </el-form-item>
236 239
                 </el-col>
237 240
                 <el-col :span="12" :xs="24">
238 241
                   <el-form-item label="行驶公里:" prop="kilometers" label-width="120px">
239
-                    <el-input placeholder="请输入行驶公里" v-model="form.kilometers" style="width: 200px;" :disabled="taskName != '安排用车'"/>
242
+                    <el-input placeholder="请输入行驶公里" v-model="form.kilometers" style="width: 200px;"
243
+                      :disabled="taskName != '安排用车'" />
240 244
                     <span> 公里</span>
241 245
                   </el-form-item>
242 246
                 </el-col>
@@ -335,7 +339,7 @@ export default {
335 339
       this.dispatchUser = this.$store.getters.name;
336 340
       this.dispatchTime = parseTime(new Date(), '{y}-{m}-{d}')
337 341
     }
338
-    this.dept = this.$store.getters.deptId;    
342
+    this.dept = this.$store.getters.deptId;
339 343
     this.getProjectList();
340 344
     this.getCarList();
341 345
     this.getDriverList();

+ 3
- 3
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 11:00:04
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-22 12:39:12
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-23 14:55:46
6 6
 -->
7 7
 <template>
8 8
   <div class="project-wrapper">
@@ -58,7 +58,7 @@
58 58
             <span class="el-icon-download">下载文件</span>
59 59
           </el-link>
60 60
         </div>
61
-        <FileUpload v-if="$route.query.taskName == '项目登记'" ref="orz" :limit="1" :filePathName="'项目任务书'"
61
+        <FileUpload v-if="$route.query.taskName == '项目登记'" ref="orz" :limit="1" :filePathName="'项目任务书/' + parseTime(new Date(),'{y}-{m}-{d}-{h}-{i}-{s}')"
62 62
           :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setProjectDocument">
63 63
         </FileUpload>
64 64
       </el-form-item>

+ 70
- 13
oa-ui/src/views/index.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-16 15:20:45
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-23 16:54:28
6 6
 -->
7 7
 
8 8
 <template>
@@ -50,15 +50,7 @@
50 50
 
51 51
     </el-row>
52 52
     <el-row :gutter="20">
53
-      <el-col :span="8" :xs="24">
54
-        <div class="header">日历</div>
55
-        <div class="calendar-warpper">
56
-          <!-- <Calendar></Calendar> -->
57
-          <el-calendar v-model="times">
58
-          </el-calendar>
59
-        </div>
60
-      </el-col>
61
-      <el-col :span="16" :xs="24">
53
+      <el-col :span="10" :xs="24">
62 54
         <div class="header">通知公示</div>
63 55
         <div class="notice-content">
64 56
           <el-table v-loading="noticeLoading" :data="noticeList" height="320px">
@@ -90,6 +82,34 @@
90 82
 
91 83
         </div>
92 84
       </el-col>
85
+      <el-col :span="14" :xs="24">
86
+        <div class="header">待办任务</div>
87
+        <div class="calendar-warpper">
88
+          <el-table v-loading="taskLoading" :data="todoList" height="400px">
89
+            <el-table-column type="index" label="序号" width="55" align="center" />
90
+            <el-table-column label="流程名称" align="center" prop="procDefName" />
91
+            <el-table-column label="当前节点" align="center" prop="taskName" />
92
+            <el-table-column label="流程发起人" align="center">
93
+              <template slot-scope="scope">
94
+                <label>{{ scope.row.startUserName }} <el-tag type="info" size="mini">{{ scope.row.startDeptName
95
+                    }}</el-tag></label>
96
+              </template>
97
+            </el-table-column>
98
+            <el-table-column label="接收时间" align="center" prop="createTime" width="180" />
99
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
100
+              <template slot-scope="scope">
101
+                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理
102
+                </el-button>
103
+              </template>
104
+            </el-table-column>
105
+          </el-table>
106
+        </div>
107
+        <!-- <div class="calendar-warpper"> -->
108
+        <!-- <Calendar></Calendar> -->
109
+        <!-- <el-calendar v-model="times"> -->
110
+        <!-- </el-calendar> -->
111
+        <!-- </div> -->
112
+      </el-col>
93 113
       <!-- <el-col :span="8" :xs="24">
94 114
         <div class="header">XXXX</div>
95 115
         <div class="project-content">
@@ -113,6 +133,7 @@ import { todoList } from "@/api/flowable/todo";
113 133
 import { finishedList } from "@/api/flowable/finished";
114 134
 import Calendar from '@/components/Calendar';
115 135
 import { listNotice } from "@/api/system/notice";
136
+import { getProcessVariables } from "@/api/flowable/definition"
116 137
 export default {
117 138
   dicts: ['sys_notice_status', 'sys_notice_type'],
118 139
   components: {
@@ -140,7 +161,9 @@ export default {
140 161
       noticeList: [],// 数据
141 162
       noticeTotal: 0,
142 163
       clickNotice: {},
164
+      todoList: [],
143 165
       noticeLoading: true,
166
+      taskLoading: true,
144 167
       noticeQueryParams: {
145 168
         pageNum: 1,
146 169
         pageSize: 10
@@ -266,12 +289,15 @@ export default {
266 289
     },
267 290
     // 获取考核待办
268 291
     getDetail() {
292
+      this.taskLoading = true;
269 293
       todoList({
270 294
         pageNum: 1,
271
-        pageSize: 10,
295
+        pageSize: 999,
272 296
         name: null
273 297
       }).then(response => {
274 298
         this.detail = response.data.total;
299
+        this.todoList = response.data.records;
300
+        this.taskLoading = false;
275 301
       });
276 302
     },
277 303
     getFinish() {
@@ -329,7 +355,37 @@ export default {
329 355
         });
330 356
       }
331 357
       return html;
332
-    }
358
+    },
359
+    handleProcess(row){
360
+      let path = this.getRoutePath(row);
361
+      getProcessVariables(row.taskId).then(res => {
362
+        this.$router.push({
363
+          path: path,
364
+          query: {
365
+            procInsId: row.procInsId,
366
+            executionId: row.executionId,
367
+            deployId: row.deployId,
368
+            taskId: row.taskId,
369
+            taskName: row.taskName,
370
+            startUser: row.startUserName + '-' + row.startDeptName,
371
+            formId: res.data.formId,
372
+            procDefName: row.procDefName
373
+          }
374
+        })
375
+      })
376
+    },
377
+    getRoutePath(row) {
378
+      let path;
379
+      for (let p of this.publicData.pathRoute) {
380
+        if (p.name == row.procDefName) {
381
+          path = p.path
382
+          break
383
+        } else {
384
+          path = '/flowable/task/todo/detail/index'
385
+        }
386
+      }
387
+      return path
388
+    },
333 389
   }
334 390
 }
335 391
 </script>
@@ -430,6 +486,7 @@ export default {
430 486
 }
431 487
 
432 488
 .calendar-warpper {
489
+padding: 10px;
433 490
   width: 100%;
434 491
   height: 400px;
435 492
   background-color: #ffffff;

+ 69
- 4
oa-ui/src/views/oa/contract/index.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 09:05:41
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-07-03 11:33:28
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-07-23 17:11:21
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -54,6 +54,10 @@
54 54
         <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
55 55
           v-hasPermi="['oa:contract:remove']">删除</el-button>
56 56
       </el-col> -->
57
+      <!-- <el-col :span="1.5">
58
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleRegister"
59
+          v-hasPermi="['oa:contract:add']">登记合同</el-button>
60
+      </el-col> -->
57 61
       <el-col :span="1.5">
58 62
         <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
59 63
           v-hasPermi="['oa:contract:export']">导出</el-button>
@@ -178,6 +182,10 @@
178 182
 import { listContract, getContract, delContract, addContract, updateContract } from "@/api/oa/contract/contract";
179 183
 import contractInfo from './contractInfo.vue';
180 184
 import ContractForm from '../../flowable/form/business/contractForm.vue';
185
+import { listDefinition } from "@/api/flowable/definition";
186
+import { definitionStart, flowXmlAndNode } from "@/api/flowable/definition";
187
+import { todoList, getNextFlowNodeByStart } from "@/api/flowable/todo";
188
+import { Snowflake } from '@/utils/snowFlake.js'
181 189
 export default {
182 190
   components: { contractInfo, ContractForm },
183 191
   name: "Contract",
@@ -224,7 +232,7 @@ export default {
224 232
       rules: {
225 233
       },
226 234
       project: {},
227
-      taskForm:{}
235
+      taskForm: {}
228 236
     };
229 237
   },
230 238
   created() {
@@ -301,7 +309,7 @@ export default {
301 309
       this.openInfo = true;
302 310
       this.title = "合同详情";
303 311
       this.form = row;
304
-      this.$set(this.taskForm,'formId',row.contractId)
312
+      this.$set(this.taskForm, 'formId', row.contractId)
305 313
     },
306 314
     /** 修改按钮操作 */
307 315
     handleUpdate(row) {
@@ -313,6 +321,63 @@ export default {
313 321
         this.title = "修改cmc合同评审";
314 322
       });
315 323
     },
324
+    // 登记合同
325
+    handleRegister(row) {
326
+      // this.handleStartProcess(row)
327
+    },
328
+    handleStartProcess(row) {
329
+      let formId = new Snowflake(1n, 1n, 0n).nextId().toString();
330
+      getNextFlowNodeByStart({ deploymentId: row.deploymentId, variables: { formId: formId } }).then(res => {
331
+        let data = res.data;
332
+        const variables = {};
333
+        const formData = {};
334
+        formData.disabled = true;
335
+        formData.formBtns = false;
336
+        formData.formId = formId
337
+        if (row.id) {
338
+          variables.variables = formData;
339
+          let routePath = this.getRoutePath(row);
340
+          definitionStart(row.id, JSON.stringify(variables)).then(res => {
341
+            this.$modal.msgSuccess(res.msg);
342
+            let procInstanceId = res.data;
343
+            todoList({
344
+              pageNum: 1,
345
+              pageSize: 99999999, processInsId: procInstanceId
346
+            }).then(toDoRes => {
347
+              let records = toDoRes.data.records;
348
+              if (records.length == 1) {
349
+                records = records[0]
350
+              }
351
+              this.$router.push({
352
+                path: routePath,
353
+                query: {
354
+                  procInsId: records.procInsId,
355
+                  executionId: records.executionId,
356
+                  deployId: records.deployId,
357
+                  taskId: records.taskId,
358
+                  taskName: records.taskName,
359
+                  startUser: records.startUserName + '-' + records.startDeptName,
360
+                  formId: formData.formId,
361
+                  procDefName: records.procDefName
362
+                }
363
+              })
364
+            })
365
+          })
366
+        }
367
+      })
368
+    },
369
+    getRoutePath(row) {
370
+      let path;
371
+      for (let p of this.publicData.pathRoute) {
372
+        if (p.name == row.name) {
373
+          path = p.path
374
+          break
375
+        } else {
376
+          path = '/flowable/task/todo/detail/index'
377
+        }
378
+      }
379
+      return path
380
+    },
316 381
     /** 提交按钮 */
317 382
     submitForm() {
318 383
       this.$refs["form"].validate(valid => {

Loading…
İptal
Kaydet