Browse Source

修改设备申请表里的已归还设备选择;

修改项目流转里项目安排的操作逻辑。
余思翰 10 months ago
parent
commit
c76aa0636c

+ 2
- 2
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java View File

@@ -168,7 +168,7 @@ public class CmcDeviceApprovalController extends BaseController
168 168
         }
169 169
         if (formDataJson.getDate("returnDate") != null) {
170 170
             cmcDeviceApproval.setRemark(formDataJson.getString("remark"));
171
-            if (formDataJson.getDate("repairDevices") != null && formDataJson.getJSONArray("repairDevices").size() > 0) {
171
+            if (formDataJson.getString("repairDevices") != null && formDataJson.getJSONArray("repairDevices").size() > 0) {
172 172
                 String deviceString = formDataJson.getString("repairDevices").substring(1, formDataJson.getString("repairDevices").length() - 1);
173 173
                 cmcDeviceApproval.setRepairDevices(deviceString);
174 174
                 String[] devices = deviceString.split(",");
@@ -178,7 +178,7 @@ public class CmcDeviceApprovalController extends BaseController
178 178
                     cmcDeviceService.updateCmcDevice(cmcDevice);
179 179
                 }
180 180
             }
181
-            if (formDataJson.getDate("returnDevices") != null && formDataJson.getJSONArray("returnDevices").size() > 0) {
181
+            if (formDataJson.getString("returnDevices") != null && formDataJson.getJSONArray("returnDevices").size() > 0) {
182 182
                 String deviceString = formDataJson.getString("returnDevices").substring(1, formDataJson.getString("returnDevices").length() - 1);
183 183
                 cmcDeviceApproval.setReturnDevices(deviceString);
184 184
                 String[] devices = deviceString.split(",");

+ 1
- 1
oa-ui/src/api/oa/project/project.js View File

@@ -24,7 +24,7 @@ export function getProject(projectId) {
24 24
 }
25 25
 
26 26
 // 查询cmc项目详细
27
-export function getProject(query) {
27
+export function getProjectNmuber(query) {
28 28
   return request({
29 29
     url: '/oa/project/projectNumber',
30 30
     method: 'get',

+ 0
- 3
oa-ui/src/views/file/filesProject/project.vue View File

@@ -520,7 +520,6 @@ export default {
520 520
       this.uploadKmlData.append("kmlfile", this.kmlfile);
521 521
       this.uploadKmlData.append("cpfile", this.cpfile);
522 522
       this.modifyForm.partyA = null
523
-      console.log( this.kmlfile);
524 523
       if (this.position.length != 0) {
525 524
         this.modifyForm.kmlLng = this.position[0];
526 525
         this.modifyForm.kmlLat = this.position[1];
@@ -531,8 +530,6 @@ export default {
531 530
           for (let i in this.modifyForm) {
532 531
             this.uploadKmlData.append(i, this.modifyForm[i] == null ? "" : this.modifyForm[i]);
533 532
           }
534
-          console.log(this.modifyForm);
535
-          console.log((this.uploadKmlData) );
536 533
           // return
537 534
           updateProject(this.uploadKmlData).then(response => {
538 535
             this.$modal.msgSuccess("修改成功");

+ 0
- 1
oa-ui/src/views/file/index/infoBox.vue View File

@@ -58,7 +58,6 @@ export default {
58 58
     }
59 59
   },
60 60
   mounted() {
61
-    console.log(this.datas);
62 61
   },
63 62
   methods: {},
64 63
 }

+ 1
- 1
oa-ui/src/views/flowable/form/components/conditionDisplay.vue View File

@@ -29,7 +29,7 @@
29 29
     <borrow-form :key="'bor'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '借款审批'"></borrow-form>
30 30
     <brand-form :key="'brand'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '品牌项目支付'"></brand-form>
31 31
     <deposit-form :key="'deposit'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '保证金审批'"></deposit-form>
32
-    <device-form :key="'device'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '设备审批'"></device-form>
32
+    <device-form :key="'device'+taskForm.taskId" :taskForm="taskForm" :taskName="''" :formDisabled="true" v-else-if="taskForm.procDefName == '设备审批'"></device-form>
33 33
   </div>
34 34
 </template>
35 35
 

+ 47
- 3
oa-ui/src/views/flowable/form/oa/deviceForm.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-07 13:44:39
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-30 11:40:54
5
+ * @LastEditTime: 2024-07-31 13:54:57
6 6
 -->
7 7
 
8 8
 <template>
@@ -12,7 +12,7 @@
12 12
         <el-card>
13 13
           <h2 style="text-align: center;">设备申请表</h2>
14 14
           <div>
15
-            <el-form ref="deviceForm" :model="form" label-width="120px" :rules="rules">
15
+            <el-form ref="deviceForm" :model="form" label-width="120px" :rules="rules" :disabled="formDisabled">
16 16
               <!-- 申请人填写 -->
17 17
               <el-divider></el-divider>
18 18
               <el-row :gutter="20">
@@ -149,6 +149,17 @@
149 149
               </el-row>
150 150
               <!-- 归还确认 -->
151 151
               <el-divider></el-divider>
152
+              <el-form-item label="已归还设备" >
153
+                <el-table ref="returnDevicesRef" :data="returnDevicesList" @selection-change="handleSelectionReturn" >
154
+                  <el-table-column type="selection" width="55" disabled />
155
+                  <el-table-column label="序号" type="index" />
156
+                  <el-table-column label="出厂编号" align="center" prop="code" />
157
+                  <el-table-column label="设备品牌" align="center" prop="brand" />
158
+                  <el-table-column label="设备名称" align="center" prop="name" />
159
+                  <el-table-column label="规格型号" align="center" prop="series" />
160
+                  <el-table-column label="存放地址" align="center" prop="place" />
161
+                </el-table>
162
+              </el-form-item>
152 163
               <el-form-item label="需维修设备:" prop="state" label-width="120px">
153 164
                 <el-select style="width: 100%;" v-model="form.repairDevices" filterable multiple placeholder="请选择"
154 165
                   clearable :disabled="taskName != '归还确认'">
@@ -177,7 +188,6 @@
177 188
             </el-row>
178 189
           </div>
179 190
         </el-card>
180
-
181 191
       </el-col>
182 192
       <el-col :span="6" :xs="24" v-if="flowDisabled">
183 193
         <el-card>
@@ -230,6 +240,10 @@ export default {
230 240
     flowDisabled: {
231 241
       type: Boolean,
232 242
       default: true
243
+    },
244
+    formDisabled:{
245
+      type: Boolean,
246
+      default: false
233 247
     }
234 248
   },
235 249
   watch: {
@@ -284,6 +298,7 @@ export default {
284 298
       deviceList: [],
285 299
       grantDeviceList: [],
286 300
       modifyDeviceList: [],
301
+      returnDevicesList: [],
287 302
       formTotal: 0,
288 303
       clicDevice: {},
289 304
       clickRowIndex: 0,
@@ -350,6 +365,7 @@ export default {
350 365
           this.formTotal = 1;
351 366
           let data = res.data;
352 367
           this.form = data;
368
+          // 处理devices
353 369
           if (res.data.devices == null || res.data.devices == undefined || res.data.devices == "") {
354 370
             data.devices = []
355 371
           } else {
@@ -364,6 +380,7 @@ export default {
364 380
             }
365 381
             data.devices = arr;
366 382
           }
383
+          // 处理modifyDevices
367 384
           if (res.data.modifyDevices == null || res.data.modifyDevices == undefined || res.data.modifyDevices == "") {
368 385
             data.modifyDevices = []
369 386
             this.modifyDeviceList = this.deviceList
@@ -381,6 +398,28 @@ export default {
381 398
             data.modifyDevices = arr;
382 399
             this.form.modifyDevices = arr;
383 400
           }
401
+          // 处理 returnDevices  
402
+          if (!data.returnDevices || data.returnDevices === "") {
403
+            data.returnDevices = [];
404
+            this.returnDevicesList = this.modifyDeviceList; // 如果逻辑允许,这里可以直接赋值 
405
+          } else {
406
+            this.returnDevicesList = this.modifyDeviceList;
407
+            let selectReturnDevicesIds = data.returnDevices.split(',');
408
+            let selectReturnDevicesPromises = selectReturnDevicesIds.map(d => getDevice(d).then(result => result.data));
409
+            Promise.all(selectReturnDevicesPromises).then(returnDevices => {
410
+              if (returnDevices) {
411
+                let deviceIdsSet = new Set(this.returnDevicesList.map(device => device.deviceId));
412
+                returnDevices.forEach(device1 => {
413
+                  if (deviceIdsSet.has(device1.deviceId)) {
414
+                    const matchingDevice = this.returnDevicesList.find(device2 => device2.deviceId === device1.deviceId);
415
+                    if (matchingDevice) {
416
+                      this.$refs.returnDevicesRef.toggleRowSelection(matchingDevice);
417
+                    }
418
+                  }
419
+                });
420
+              }
421
+            })
422
+          }
384 423
           if (data.projectId) {
385 424
             getProject(data.projectId).then(response => {
386 425
               this.chooseProject = response.data;
@@ -609,6 +648,11 @@ export default {
609 648
     addRowdata() {
610 649
       this.openDevice = true;
611 650
       this.multiple = true;
651
+    },
652
+    // 选择已归还设备
653
+    handleSelectionReturn(val) {
654
+      const ids = val.map(item => item.deviceId);
655
+      this.form.returnDevices = ids
612 656
     }
613 657
   },
614 658
 }

+ 14
- 5
oa-ui/src/views/flowable/form/projectProcess/addproject.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 11:00:04
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-23 14:55:46
5
+ * @LastEditTime: 2024-07-30 17:43:08
6 6
 -->
7 7
 <template>
8 8
   <div class="project-wrapper">
@@ -58,7 +58,8 @@
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="'项目任务书/' + parseTime(new Date(),'{y}-{m}-{d}-{h}-{i}-{s}')"
61
+        <FileUpload v-if="$route.query.taskName == '项目登记'" ref="orz" :limit="1"
62
+          :filePathName="'项目任务书/' + parseTime(new Date(), '{y}-{m}-{d}-{h}-{i}-{s}')"
62 63
           :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setProjectDocument">
63 64
         </FileUpload>
64 65
       </el-form-item>
@@ -95,7 +96,7 @@
95 96
 <script>
96 97
 import { parseTime } from "@/utils/ruoyi";
97 98
 import { mapGetters } from "vuex";
98
-import { listProject, getProject, addProject, updateProject, delProject } from "@/api/oa/project/project";
99
+import { listProject, getProject, addProject, updateProject, delProject, getProjectNmuber } from "@/api/oa/project/project";
99 100
 import { getUser } from "@/api/system/user";
100 101
 import { getUsersDeptLeaderByDept } from "@/api/system/post";
101 102
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
@@ -145,7 +146,7 @@ export default {
145 146
         registerTime: undefined,
146 147
         projectRegistrant: "",
147 148
         projectLevel: "0",
148
-        taskDocument:''
149
+        taskDocument: ''
149 150
       },
150 151
       chooseContractInfo: {
151 152
         contractCode: '',
@@ -379,14 +380,22 @@ export default {
379 380
     changeProjectSource(val) {
380 381
       let params = {
381 382
         pageNum: 1,
382
-        pageSize: 1000, // 假设这是一个合理的值  
383
+        pageSize: 1000,
383 384
       };
385
+      let year = new Date().getFullYear();
386
+      let isCorW = '';
384 387
       if (val === '0') {
385 388
         params.partyAName = '中国电建集团成都勘测设计研究院有限公司';
389
+        isCorW = 'C'
390
+      } else {
391
+        isCorW = 'W'
386 392
       }
387 393
       listPartyA(params).then(response => {
388 394
         this.partyAList = response.rows;
389 395
       })
396
+      getProjectNmuber({ projectNumber: year + isCorW }).then(res => {
397
+        this.$set(this.addForm, 'projectNumber', res.msg)
398
+      })
390 399
     }
391 400
   },
392 401
 };

+ 27
- 35
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-19 09:24:06
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-24 11:04:44
5
+ * @LastEditTime: 2024-07-31 10:59:19
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -31,20 +31,21 @@
31 31
       <el-row :gutter="20">
32 32
         <el-col :span="12" :xs="24">
33 33
           <el-form-item label="项目负责人:" prop="projectLeader">
34
-            <el-select v-model="form.projectLeader" placeholder="请选择项目负责人" size="large" disabled>
35
-              <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
34
+            <el-select v-model="peopleForm.deptId" @change="handleChangeDept" clearable style="width:60%">
35
+              <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName"
36
+                :value="item.deptId" v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
37
+              </el-option>
38
+            </el-select>
39
+            <el-select v-model="form.projectLeader" placeholder="请选择项目负责人" clearable style="width:40%">
40
+              <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName"
36 41
                 :value="item.userId" />
37 42
             </el-select>
38
-            <!-- <el-tag effect="plain" type="warning" style="margin-right: 10px;"
39
-              v-if="form.projectLeader != '' && form.projectLeader != undefined">{{
40
-      form.projectLeaderName }}</el-tag> -->
41
-            <el-button type="primary" plain icon="el-icon-plus" @click="choosePeople">选择</el-button>
42 43
           </el-form-item>
43 44
         </el-col>
44 45
         <el-col :span="12" :xs="24">
45 46
           <el-form-item label="现场负责人:" prop="siteLeader">
46 47
             <el-select v-model="form.siteLeader" filterable clearable style="width:100%">
47
-              <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
48
+              <el-option v-for="item in peopleForm.allDeptUserList" :key="item.userId" :label="item.nickName"
48 49
                 :value="item.userId" v-if="item.nickName != 'admin'">
49 50
               </el-option>
50 51
             </el-select>
@@ -77,31 +78,8 @@
77 78
         </el-col>
78 79
       </el-row> -->
79 80
     </el-form>
80
-    <!-- 人员选择对话框 -->
81
-    <el-dialog width="320px" title="选择项目负责人" :visible.sync="peopleVisible" append-to-body>
82
-      <el-form>
83
-        <el-form-item label="部门:">
84
-          <el-select v-model="peopleForm.deptId" @change="handleChangeDept">
85
-            <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName"
86
-              :value="item.deptId" v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
87
-            </el-option>
88
-          </el-select>
89
-        </el-form-item>
90
-        <el-form-item label="人员:">
91
-          <el-select v-model="peopleForm.userId">
92
-            <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName"
93
-              :value="item.userId">
94
-            </el-option>
95
-          </el-select>
96
-        </el-form-item>
97
-        <el-form-item style="text-align: center;">
98
-          <el-button @click="confirmPeople" type="primary">确定</el-button>
99
-          <el-button @click="cancelChoosePeople">取消</el-button>
100
-        </el-form-item>
101
-      </el-form>
102
-    </el-dialog>
103 81
     <div slot="footer" class="dialog-footer" style="text-align: center;">
104
-      <!-- <el-button type="warning" @click="save" :disabled="disabled">保 存</el-button> -->
82
+      <el-button type="warning" @click="save" :disabled="disabled">保 存</el-button>
105 83
       <el-button type="primary" @click="confirmPlanForm" :disabled="disabled">提 交</el-button>
106 84
     </div>
107 85
   </div>
@@ -149,7 +127,8 @@ export default {
149 127
         deptId: '',
150 128
         deptList: [],
151 129
         userId: '',
152
-        userList: []
130
+        userList: [],
131
+        allDeptUserList: []
153 132
       },
154 133
     }
155 134
   },
@@ -204,6 +183,14 @@ export default {
204 183
           this.form.deptLeader = this.deptLeaderList;
205 184
         })
206 185
       }
186
+      val.forEach(item => {
187
+        listUser({ pageSize: 999, deptId: item }).then(res => {
188
+          res.rows.forEach(row => {
189
+            this.peopleForm.allDeptUserList.push(row)
190
+          })
191
+        })
192
+      })
193
+      this.handleChangeDept(val[0])
207 194
     },
208 195
     // 人员选择
209 196
     choosePeople() {
@@ -212,6 +199,7 @@ export default {
212 199
     // 改变部门选择
213 200
     handleChangeDept(deptId) {
214 201
       this.peopleForm.userId = '';
202
+      this.$set(this.peopleForm, 'deptId', deptId)
215 203
       listUser({ pageSize: 999999, deptId }).then(res => {
216 204
         this.peopleForm.userList = res.rows
217 205
       })
@@ -243,7 +231,11 @@ export default {
243 231
         if (vaild) {
244 232
           this.form.projectId = this.taskForm.formId;
245 233
           this.form.undertakingDept = this.form.deptId.join(',');
246
-          updateProject(this.form)
234
+          updateProject(this.form).then(res => {
235
+            this.$message.success('保存成功')
236
+          })
237
+        } else {
238
+          this.$message.error('请完善必填项')
247 239
         }
248 240
       })
249 241
     },
@@ -273,7 +265,7 @@ export default {
273 265
                 this.$emit('goBack');
274 266
               });
275 267
             })
276
-          }else{
268
+          } else {
277 269
             this.$message.error('请完善必填项')
278 270
           }
279 271
         })

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/scConfirm.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-08 13:56:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-15 13:52:22
5
+ * @LastEditTime: 2024-07-31 16:56:06
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">

+ 0
- 1
oa-ui/src/views/flowable/task/form/index.vue View File

@@ -239,7 +239,6 @@ export default {
239 239
         this.formTitle = "自定义表单";
240 240
       }else{
241 241
         this.formConfOpen = true;
242
-        console.log(JSON.parse(row.formContent));
243 242
         this.formTitle = "流程表单配置详细";
244 243
         this.formConf = JSON.parse(row.formContent)
245 244
       }

+ 1
- 1
oa-ui/src/views/oa/device/approval.vue View File

@@ -152,7 +152,7 @@ export default {
152 152
       // 查询参数
153 153
       queryParams: {
154 154
         pageNum: 1,
155
-        pageSize: 10,
155
+        pageSize: 50,
156 156
         applier: null,
157 157
         useDept: null,
158 158
         devices: null,

+ 1
- 1
oa-ui/src/views/oa/device/expense.vue View File

@@ -190,7 +190,7 @@ export default {
190 190
       // 查询参数
191 191
       queryParams: {
192 192
         pageNum: 1,
193
-        pageSize: 10,
193
+        pageSize: 50,
194 194
         deviceId: null,
195 195
         userId: null,
196 196
         expenseType: null,

+ 2
- 2
oa-ui/src/views/oa/device/index.vue View File

@@ -170,7 +170,7 @@
170 170
           <el-col :span="12">
171 171
             <el-form-item label="管理部门" prop="manageDept">
172 172
               <el-select v-model="form.manageDept" filterable placeholder="请选择" clearable>
173
-                <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
173
+                <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
174 174
                 </el-option>
175 175
               </el-select>
176 176
             </el-form-item>
@@ -232,7 +232,7 @@ export default {
232 232
       // 查询参数
233 233
       queryParams: {
234 234
         pageNum: 1,
235
-        pageSize: 10,
235
+        pageSize: 50,
236 236
         code: null,
237 237
         type: '仪器设备',
238 238
         acquisitionTime: null,

+ 1
- 1
oa-ui/src/views/oa/device/scrap.vue View File

@@ -164,7 +164,7 @@ export default {
164 164
       // 查询参数
165 165
       queryParams: {
166 166
         pageNum: 1,
167
-        pageSize: 10,
167
+        pageSize: 50,
168 168
         deviceId: null,
169 169
         cost: null,
170 170
         scrapDate: null,

+ 1
- 1
oa-ui/src/views/oa/staff/index.vue View File

@@ -116,7 +116,7 @@
116 116
           <el-table-column label="专业" align="center" key="major" prop="major" v-if="columns[11].visible" />
117 117
           <el-table-column label="学历" align="center" key="degree" prop="degree" :formatter="formatterDegree"
118 118
             v-if="columns[12].visible" />
119
-          <el-table-column label="籍贯" align="center" key="nativePlace" prop="native_place" v-if="columns[13].visible" />
119
+          <el-table-column label="籍贯" align="center" key="nativePlace" prop="nativePlace" v-if="columns[13].visible" />
120 120
           <el-table-column label="政治面貌" align="center" key="politicalAffiliation" :formatter="formatterPoliticalAffiliation" prop="politicalAffiliation"
121 121
             v-if="columns[14].visible" />
122 122
           <el-table-column label="民族" align="center" key="ethnic" prop="ethnic"  v-if="columns[15].visible" />

+ 1
- 1
oa-ui/src/views/oa/supply/handover.vue View File

@@ -193,7 +193,7 @@ export default {
193 193
       // 查询参数
194 194
       queryParams: {
195 195
         pageNum: 1,
196
-        pageSize: 10,
196
+        pageSize: 50,
197 197
         deviceId: null,
198 198
         handoverDeptId: null,
199 199
         handoverUserId: null,

+ 6
- 2
oa-ui/src/views/oa/supply/index.vue View File

@@ -158,7 +158,11 @@
158 158
           </el-col>
159 159
         </el-row>
160 160
         <el-form-item label="管理部门" prop="dept.deptName">
161
-          <el-input v-model="form.deptName" placeholder="请输入管理部门" />
161
+          <el-select v-model="form.manageDept" filterable placeholder="请选择" clearable>
162
+            <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
163
+              :value="item.deptId">
164
+            </el-option>
165
+          </el-select>
162 166
         </el-form-item>
163 167
         <el-row :gutter="20">
164 168
           <el-col :span="24">
@@ -205,7 +209,7 @@ export default {
205 209
       // 查询参数
206 210
       queryParams: {
207 211
         pageNum: 1,
208
-        pageSize: 10,
212
+        pageSize: 50,
209 213
         code: null,
210 214
         type: '办公设备',
211 215
         acquisitionTime: null,

Loading…
Cancel
Save