Bladeren bron

修改甲方单位组件的搜索,新增签名组件,修改成果归档

余思翰 7 maanden geleden
bovenliggende
commit
91abb56357

+ 4
- 1
oa-ui/src/main.js Bestand weergeven

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-10 11:08:03
5
+ * @LastEditTime: 2024-09-18 17:01:43
6 6
  */
7 7
 import Vue from 'vue'
8 8
 
@@ -52,6 +52,8 @@ import VueMeta from 'vue-meta'
52 52
 import DictData from '@/components/DictData'
53 53
 
54 54
 import Tinymce from '@/components/tinymce/index.vue'
55
+// 签名组件
56
+import AuditorRow from '@/views/flowable/form/components/auditorRow.vue';
55 57
 
56 58
 import publicData from '@/assets/datas/publicData'
57 59
 
@@ -85,6 +87,7 @@ Vue.component('ImageUpload', ImageUpload)
85 87
 Vue.component('ImagePreview', ImagePreview)
86 88
 Vue.component('tinymce', Tinymce)
87 89
 Vue.component('RowTitle', RowTitle)
90
+Vue.component('AuditorRow', AuditorRow)
88 91
 
89 92
 Vue.use(directive)
90 93
 Vue.use(plugins)

+ 16
- 10
oa-ui/src/views/file/filesProject/achievement.vue Bestand weergeven

@@ -3,8 +3,8 @@
3 3
  * @version: 
4 4
  * @Author: ysh
5 5
  * @Date: 2022-09-08 17:16:12
6
- * @LastEditors: wrh
7
- * @LastEditTime: 2024-06-13 22:42:16
6
+ * @LastEditors: Please set LastEditors
7
+ * @LastEditTime: 2024-09-18 16:03:28
8 8
 -->
9 9
 <template>
10 10
   <div>
@@ -94,15 +94,18 @@
94 94
     <el-dialog :title="addTitle" :visible.sync="addOpen" width="50%">
95 95
       <el-form :model="form" ref="achiRef" label-width="110px" :rules="rules">
96 96
         <el-row :gutter="10">
97
-          <el-col :span="4">
98
-            <el-button type="primary" size="mini" @click="openProject = true">选择项目</el-button>
99
-          </el-col>
100 97
           <el-col :span="15">
101
-            <el-form-item label="项目名称" prop="projectNumber">
102
-              <el-input v-model="chooseProject.projectNumber" placeholder="请输入项目名称" />
98
+            <el-form-item label="项目编号" prop="projectNumber">
99
+              <el-input v-model="form.projectNumber" disabled placeholder="请输入项目编号" />
100
+            </el-form-item>
101
+            <el-form-item label="项目名称" prop="projectName">
102
+              <el-input v-model="form.projectName" disabled placeholder="请输入项目名称" />
103 103
             </el-form-item>
104 104
           </el-col>
105
-          <el-col :span="5">
105
+          <el-col :span="3">
106
+            <el-button type="primary" size="mini" @click="openProject = true">选择项目</el-button>
107
+          </el-col>
108
+          <el-col :span="6">
106 109
             <el-form-item label="数据年份" prop="dataYear">
107 110
               <el-input v-model="form.dataYear" placeholder="请输入数据年份" />
108 111
             </el-form-item>
@@ -546,7 +549,7 @@ export default {
546 549
     handleDelete(row) {
547 550
       const achiIds = row.id;
548 551
       const achiName = row.achiName
549
-      this.$modal.confirm('是否确认删除用户编号为"' + achiName + '"的数据项?').then(function () {
552
+      this.$modal.confirm('是否确认成果名为"' + achiName + '"的数据项?').then(function () {
550 553
         return delAchievement(achiIds);
551 554
       }).then(() => {
552 555
         this.getAchiList();
@@ -757,8 +760,11 @@ export default {
757 760
         return
758 761
       } else if (val.length == 1) {
759 762
         this.chooseProject = val[0]
760
-        this.chooseProject.projectNumber = this.chooseProject.projectNumber + '-' + this.chooseProject.projectName;
763
+        // this.chooseProject.projectNumber = this.chooseProject.projectNumber + '-' + this.chooseProject.projectName;
764
+        this.$set(this.form,'projectNumber',this.chooseProject.projectNumber)
765
+        this.$set(this.form,'projectName',this.chooseProject.projectName)
761 766
         this.form.projectId = val[0].projectId
767
+        this.$refs.achiRef.validateField('projectNumber')
762 768
         this.form.dataYear = val[0].projectNumber.substring(0, 4)
763 769
       }
764 770
       this.openProject = false

+ 37
- 15
oa-ui/src/views/file/filesProject/project.vue Bestand weergeven

@@ -36,9 +36,10 @@
36 36
         <el-table-column type="selection" width="50px" :reserve-selection="true" />
37 37
         <el-table-column prop="isFinished" label="项目状态" align="center">
38 38
           <template #default="scope">
39
-            <el-tag :type="scope.row.isFinished === '1' ? 'warning' : 'success'" disable-transitions>{{ scope.row.isFinished
40
-              === "1" ? '已结束' : '正在进行'
41
-            }}</el-tag>
39
+            <el-tag :type="scope.row.isFinished === '1' ? 'warning' : 'success'" disable-transitions>{{
40
+        scope.row.isFinished
41
+          === "1" ? '已结束' : '正在进行'
42
+      }}</el-tag>
42 43
           </template>
43 44
         </el-table-column>
44 45
         <el-table-column prop="projectNumber" label="项目编号" align="center" />
@@ -52,20 +53,22 @@
52 53
         <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
53 54
           <template #default="scope">
54 55
             <el-tooltip content="详情" placement="top">
55
-              <el-button type="text" icon="View" @click="handleLook(scope.row)" v-hasPermi="['oa:archive:query']">
56
+              <el-button type="text" icon="View" @click="handleLook(scope.row)" v-hasPermi="['file:achievement:query']">
56 57
               </el-button>
57 58
             </el-tooltip>
58 59
             <el-tooltip content="成果" placement="top">
59 60
               <el-button type="text" icon="Document" @click="handleLookAchi(scope.row)"
60
-                v-hasPermi="['oa:archive:query']">
61
+                v-hasPermi="['file:achievement:query']">
61 62
               </el-button>
62 63
             </el-tooltip>
63 64
             <el-tooltip content="修改" placement="top">
64
-              <el-button type="text" icon="el-icon-edit-outline" @click="handleUpdate(scope.row)" v-hasPermi="['oa:archive:edit']">
65
+              <el-button type="text" icon="el-icon-edit-outline" @click="handleUpdate(scope.row)"
66
+                v-hasPermi="['file:achievement:edit']">
65 67
               </el-button>
66 68
             </el-tooltip>
67 69
             <el-tooltip content="删除" placement="top">
68
-              <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['oa:archive:remove']">
70
+              <el-button type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
71
+                v-hasPermi="['file:achievement:remove']">
69 72
               </el-button>
70 73
             </el-tooltip>
71 74
           </template>
@@ -135,8 +138,8 @@
135 138
                 </div>
136 139
                 <div>
137 140
                   <el-upload ref="uploadProCPKml" class="upload-demo" :headers="upload.headers" action=""
138
-                    :auto-upload="false" :on-success="successUploadProKml" accept=".kml" :on-change="handleCpUploadChange"
139
-                    :show-file-list="false">
141
+                    :auto-upload="false" :on-success="successUploadProKml" accept=".kml"
142
+                    :on-change="handleCpUploadChange" :show-file-list="false">
140 143
                     <el-button type="primary" icon="el-icon-plus"></el-button>
141 144
                   </el-upload>
142 145
                 </div>
@@ -184,7 +187,8 @@
184 187
         <el-row :gutter="20">
185 188
           <el-col :span="12">
186 189
             <el-form-item label="存放地址" prop="storageAddress">
187
-              <el-select v-model="modifyForm.storageAddress" placeholder="请选择" filterable allow-create clearable style="width: 100%;">
190
+              <el-select v-model="modifyForm.storageAddress" placeholder="请选择" filterable allow-create clearable
191
+                style="width: 100%;">
188 192
                 <el-option v-for="item, index in storageList" :key="index" :label="item.storageAddress"
189 193
                   :value="item.storageAddress" />
190 194
               </el-select>
@@ -222,8 +226,8 @@
222 226
                 </div>
223 227
                 <div>
224 228
                   <el-upload ref="uploadProCPKml" class="upload-demo" :headers="upload.headers" action="l"
225
-                    :auto-upload="false" :on-success="successUploadProKml" accept=".kml" :on-change="handleCpUploadChange"
226
-                    :show-file-list="false">
229
+                    :auto-upload="false" :on-success="successUploadProKml" accept=".kml"
230
+                    :on-change="handleCpUploadChange" :show-file-list="false">
227 231
                     <el-button type="primary" icon="el-icon-plus"></el-button>
228 232
                   </el-upload>
229 233
                 </div>
@@ -480,7 +484,7 @@ export default {
480 484
     handleUpdate(row) {
481 485
       this.modifyForm = row;
482 486
       let leaderObj = this.$store.state.user.userList.find(obj => obj.userId == row.projectLeader);
483
-      if(leaderObj)
487
+      if (leaderObj)
484 488
         this.modifyForm.projectLeaderName = leaderObj.nickName
485 489
       this.modifyOpen = true;
486 490
       this.position = [];
@@ -527,9 +531,26 @@ export default {
527 531
       this.$refs["projectModifyRef"].validate(valid => {
528 532
         if (valid) {
529 533
           delete this.modifyForm.params
530
-          for (let i in this.modifyForm) {
531
-            this.uploadKmlData.append(i, this.modifyForm[i] == null ? "" : this.modifyForm[i]);
534
+          // 初始化一个对象来收集要发送的数据  
535
+          const formDataEntries = [];
536
+          // 遍历 modifyForm,收集非空、非对象、非特定跳过的字段  
537
+          for (let key in this.modifyForm) {
538
+            if (key === 'contract' || key === 'partyA' || key === 'projectPlannerUser' || this.modifyForm[key] instanceof Object) {
539
+              continue;
540
+            }
541
+
542
+            // 添加字段到 formDataEntries 数组  
543
+            formDataEntries.push([key, this.modifyForm[key] != null ? this.modifyForm[key] : '']);
532 544
           }
545
+          // 将收集的数据添加到 FormData  
546
+          formDataEntries.forEach(([key, value]) => {
547
+            this.uploadKmlData.append(key, value);
548
+          });
549
+          // for (let i in this.modifyForm) {
550
+          //   if (i == 'contract' || i == 'partyA') continue
551
+          //   if (this.modifyForm[i] instanceof Object) continue
552
+          //   this.uploadKmlData.append(i, this.modifyForm[i] == null ? '' : this.modifyForm[i]);
553
+          // }
533 554
           // return
534 555
           updateProject(this.uploadKmlData).then(response => {
535 556
             this.$modal.msgSuccess("修改成功");
@@ -873,6 +894,7 @@ export default {
873 894
 
874 895
 <style lang="scss" scoped>
875 896
 @import "@/assets/styles/element-reset.scss";
897
+
876 898
 .centerBox {
877 899
   border: 1px dashed #bccfec;
878 900
   padding: 5px;

+ 59
- 183
oa-ui/src/views/flowable/form/archiveForm.vue Bestand weergeven

@@ -1,33 +1,39 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-06-21 18:51:51
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-09-18 16:56:44
6
+-->
1 7
 <template>
2 8
   <div class="app-container">
3 9
     <el-row :gutter="20">
4
-      <el-col :span="isFlow ? 18:24" :xs="24">
10
+      <el-col :span="isFlow ? 18 : 24" :xs="24">
5 11
         <h2 class="text-center">成果归档记录表</h2>
6 12
         <el-divider></el-divider>
7 13
         <el-form ref="form" :model="form" :rules="rules" label-width="120px">
8 14
           <el-form-item label="项目信息" prop="projectId">
9
-            <el-button type="primary" size="mini" @click="openProject = true" v-if="taskName == '成果上传'">选择项目</el-button>
15
+            <el-button type="primary" size="mini" @click="openProject = true" v-if="taskName == '归档发起'">选择项目</el-button>
10 16
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="2">
11 17
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
12
-              }}</el-descriptions-item>
18
+                }}</el-descriptions-item>
13 19
               <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
14
-              }}</el-descriptions-item>
20
+                }}</el-descriptions-item>
15 21
               <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseProject.partyA.partyAName
16
-              }}</el-descriptions-item>
22
+                }}</el-descriptions-item>
17 23
               <el-descriptions-item label="合同编码" label-class-name="my-label">{{ contractCode
18
-              }}</el-descriptions-item>
24
+                }}</el-descriptions-item>
19 25
               <el-descriptions-item label="承担部门" label-class-name="my-label">{{
20
-                chooseProject.undertakingDeptName
21
-              }}</el-descriptions-item>
26
+      chooseProject.undertakingDeptName
27
+    }}</el-descriptions-item>
22 28
               <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser
23
-                ? chooseProject.projectLeaderUser.nickName : ''
24
-              }}</el-descriptions-item>
29
+      ? chooseProject.projectLeaderUser.nickName : ''
30
+                }}</el-descriptions-item>
25 31
               <el-descriptions-item label="技术负责人" label-class-name="my-label">{{
26
-                chooseProject.technicalDirectorUser ? chooseProject.technicalDirectorUser.nickName :
27
-                '' }}</el-descriptions-item>
32
+      chooseProject.technicalDirectorUser ? chooseProject.technicalDirectorUser.nickName :
33
+        '' }}</el-descriptions-item>
28 34
               <el-descriptions-item label="质检审核员" label-class-name="my-label">{{
29
-                chooseProject.qualityInspectorName
30
-              }}</el-descriptions-item>
35
+      chooseProject.qualityInspectorName
36
+    }}</el-descriptions-item>
31 37
               <!-- <el-descriptions-item label="坐标经度" label-class-name="my-label">{{ chooseProject.kmlLng
32 38
               }}</el-descriptions-item>
33 39
               <el-descriptions-item label="坐标纬度" label-class-name="my-label">{{ chooseProject.kmlLat
@@ -39,27 +45,27 @@
39 45
           </el-form-item>
40 46
           <el-form-item label="成果提交日期" prop="submitTime">
41 47
             <el-date-picker clearable v-model="form.submitTime" type="date" value-format="yyyy-MM-dd"
42
-              placeholder="请选择成果提交日期" :disabled="taskName != '成果上传'">
48
+              placeholder="请选择成果提交日期" :disabled="taskName != '归档发起'">
43 49
             </el-date-picker>
44 50
           </el-form-item>
45 51
           <el-form-item label="备注说明" prop="submitSituation">
46
-            <el-input type="textarea" v-model="form.submitSituation" placeholder="请输入备注说明" :disabled="taskName != '成果上传'"
47
-              :autosize="{ minRows: 4 }" />
52
+            <el-input type="textarea" v-model="form.submitSituation" placeholder="请输入备注说明"
53
+              :disabled="taskName != '归档发起'" :autosize="{ minRows: 4 }" />
48 54
           </el-form-item>
49
-          <el-divider></el-divider>
50
-          <el-form-item label="部门检查员检查" prop="produceComment">
55
+          <!-- <el-divider></el-divider> -->
56
+          <!-- <el-form-item label="部门检查员检查" prop="produceComment">
51 57
             <el-input type="textarea" v-model="form.produceComment" placeholder="请输入部门检查员检查意见"
52 58
               :disabled="taskName != '部门检查'" :autosize="{ minRows: 4 }" />
53 59
           </el-form-item>
54 60
           <el-row>
55 61
             <el-col :span="6" :xs="24" :offset="12">
56
-              <el-form-item label="签名:" label-width="120px" v-if="taskName != '成果上传'">
62
+              <el-form-item label="签名:" label-width="120px" v-if="taskName != '归档发起'">
57 63
                 <span class="auditor"> {{ form.produceUser ? form.produceUser.nickName : produceUser }}
58 64
                 </span>
59 65
               </el-form-item>
60 66
             </el-col>
61 67
             <el-col :span="6">
62
-              <el-form-item label="日期:" label-width="120px" v-if="taskName != '成果上传'">
68
+              <el-form-item label="日期:" label-width="120px" v-if="taskName != '归档发起'">
63 69
                 <span> {{ form.produceTime ? form.produceTime : produceTime }} </span>
64 70
               </el-form-item>
65 71
             </el-col>
@@ -75,34 +81,23 @@
75 81
           </el-form-item>
76 82
           <el-row>
77 83
             <el-col :span="6" :xs="24" :offset="12">
78
-              <el-form-item label="签名:" label-width="120px" v-if="taskName != '成果上传' && taskName != '部门检查'">
84
+              <el-form-item label="签名:" label-width="120px" v-if="taskName != '归档发起' && taskName != '部门检查'">
79 85
                 <span class="auditor"> {{ form.qualityUser ? form.qualityUser.nickName : qualityUser }}
80 86
                 </span>
81 87
               </el-form-item>
82 88
             </el-col>
83 89
             <el-col :span="6">
84
-              <el-form-item label="日期:" label-width="120px" v-if="taskName != '成果上传' && taskName != '部门检查'">
90
+              <el-form-item label="日期:" label-width="120px" v-if="taskName != '归档发起' && taskName != '部门检查'">
85 91
                 <span> {{ form.qualityTime ? form.qualityTime : qualityTime }} </span>
86 92
               </el-form-item>
87 93
             </el-col>
88
-          </el-row>
94
+          </el-row> -->
89 95
           <el-form-item label="技术质量与安全部负责人审核" prop="deptComment">
90 96
             <el-input type="textarea" v-model="form.deptComment" placeholder="请输入技术质量与安全部负责人审核意见"
91
-              :disabled="taskName != '技术部审核'" :autosize="{ minRows: 4 }" />
97
+              :disabled="taskName != '技术质量部审核'" :autosize="{ minRows: 4 }" />
92 98
           </el-form-item>
93
-          <el-row>
94
-            <el-col :span="6" :xs="24" :offset="12">
95
-              <el-form-item label="签名:" label-width="120px" v-if="taskName == '技术部审核' || taskName == '成果归档' || taskName == ''">
96
-                <span class="auditor"> {{ form.deptUser ? form.deptUser.nickName : deptUser }}
97
-                </span>
98
-              </el-form-item>
99
-            </el-col>
100
-            <el-col :span="6">
101
-              <el-form-item label="日期:" label-width="120px" v-if="taskName == '技术部审核' || taskName == '成果归档' || taskName == ''">
102
-                <span> {{ form.deptTime ? form.deptTime : deptTime }} </span>
103
-              </el-form-item>
104
-            </el-col>
105
-          </el-row>
99
+          <auditor-row key="1" :isCurrent="taskName == '技术质量部审核'" :signature="form.deptLeader"
100
+            :signTime="form.deptTime"></auditor-row>
106 101
           <el-form-item label="资料管理">
107 102
             <el-button type="success" size="mini" @click="gotoFile" :disabled="taskName != '成果归档'">前往资料管理系统</el-button>
108 103
           </el-form-item>
@@ -110,23 +105,11 @@
110 105
             <el-input type="textarea" v-model="form.archiveComment" placeholder="请输入技术质量与安全部归档意见"
111 106
               :disabled="taskName != '成果归档'" :autosize="{ minRows: 4 }" />
112 107
           </el-form-item>
113
-          <el-row>
114
-            <el-col :span="6" :xs="24" :offset="12">
115
-              <el-form-item label="签名:" label-width="120px" v-if="taskName == '成果归档' || taskName == ''">
116
-                <span class="auditor"> {{ form.archiveUser ? form.archiveUser.nickName : archiveUser }}
117
-                </span>
118
-              </el-form-item>
119
-            </el-col>
120
-            <el-col :span="6">
121
-              <el-form-item label="归档日期:" label-width="120px" v-if="taskName == '成果归档' || taskName == ''">
122
-                <span> {{ form.archiveTime ? form.archiveTime : archiveTime }} </span>
123
-              </el-form-item>
124
-            </el-col>
125
-          </el-row>
108
+          <auditor-row key="2" :isCurrent="taskName == '成果归档'" :signature="form.archiver" :signTime="form.archiveTime"></auditor-row>
126 109
         </el-form>
127 110
         <div style="text-align: center;" v-if="isFlow">
128
-          <el-button type="primary" @click="submitForm" :disabled="taskName == '成果归档' && hasArchievement == false">
129
-            交</el-button>
111
+          <el-button type="primary" @click="submitForm" :disabled="taskName == '成果归档' && hasArchievement == false">
112
+            提交并结束流程</el-button>
130 113
         </div>
131 114
       </el-col>
132 115
       <el-col :span="6" :xs="24" v-if="isFlow">
@@ -169,12 +152,14 @@ import { flowXmlAndNode } from "@/api/flowable/definition";
169 152
 import { getUserByRole } from "@/api/system/role";
170 153
 import projectChoose from '@/views/flowable/form/components/chooseProject.vue';
171 154
 import { listAchievement } from "@/api/file/achievement";
155
+import auditorRow from './components/auditorRow.vue';
172 156
 
173 157
 export default {
174 158
   components: {
175 159
     FlowUser,
176 160
     projectChoose,
177
-    flow
161
+    flow,
162
+    auditorRow
178 163
   },
179 164
   props: {
180 165
     taskName: {
@@ -190,8 +175,8 @@ export default {
190 175
       default: true
191 176
     }
192 177
   },
193
-  watch:{
194
-    'taskForm.formId'(){
178
+  watch: {
179
+    'taskForm.formId'() {
195 180
       this.initForm()
196 181
     }
197 182
   },
@@ -222,31 +207,6 @@ export default {
222 207
       archiveList: [],
223 208
       // 弹出层标题
224 209
       title: "",
225
-      // 是否显示弹出层
226
-      open: false,
227
-      // 查询参数
228
-      queryParams: {
229
-        pageNum: 1,
230
-        pageSize: 10,
231
-        projectId: null,
232
-        submitTime: null,
233
-        submitSituation: null,
234
-        locationLng: null,
235
-        locationLat: null,
236
-        produceInspector: null,
237
-        qualityInspector: null,
238
-        deptLeader: null,
239
-        archiver: null,
240
-        receiveTime: null,
241
-        qualityTime: null,
242
-        produceTime: null,
243
-        deptTime: null,
244
-        archiveTime: null,
245
-        produceComment: null,
246
-        qualityComment: null,
247
-        deptComment: null,
248
-        archiveComment: null
249
-      },
250 210
       // 表单参数
251 211
       form: {
252 212
         submitTime: undefined,
@@ -289,7 +249,7 @@ export default {
289 249
       this.qualityUser = this.$store.getters.name;
290 250
       this.qualityTime = parseTime(new Date(), '{y}-{m}-{d}')
291 251
     }
292
-    else if (this.taskName == '技术部审核') {
252
+    else if (this.taskName == '技术质量部审核') {
293 253
       this.deptUser = this.$store.getters.name;
294 254
       this.deptTime = parseTime(new Date(), '{y}-{m}-{d}')
295 255
     }
@@ -298,7 +258,6 @@ export default {
298 258
       this.archiveTime = parseTime(new Date(), '{y}-{m}-{d}')
299 259
     }
300 260
     this.getProjectList();
301
-    this.getList();
302 261
     if (this.isFlow) {
303 262
       flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
304 263
         this.flowData = res.data;
@@ -335,7 +294,7 @@ export default {
335 294
       })
336 295
     },
337 296
     initRules() {
338
-      if (this.taskName == '成果上传') {
297
+      if (this.taskName == '归档发起') {
339 298
         this.rules = {
340 299
           submitTime: [
341 300
             { required: true, message: '请选择成果提交日期', trigger: 'change' }
@@ -356,7 +315,7 @@ export default {
356 315
             { required: true, message: '请填写审核意见', trigger: 'blur' }
357 316
           ]
358 317
         }
359
-      } else if (this.taskName == '技术部审核') {
318
+      } else if (this.taskName == '技术质量部审核') {
360 319
         this.rules = {
361 320
           deptComment: [
362 321
             { required: true, message: '请填写审核意见', trigger: 'blur' }
@@ -364,20 +323,6 @@ export default {
364 323
         }
365 324
       }
366 325
     },
367
-    /** 查询cmc成果归档列表 */
368
-    getList() {
369
-      this.loading = true;
370
-      listArchive(this.queryParams).then(response => {
371
-        this.archiveList = response.rows;
372
-        this.total = response.total;
373
-        this.loading = false;
374
-      });
375
-    },
376
-    // 取消按钮
377
-    cancel() {
378
-      this.open = false;
379
-      this.reset();
380
-    },
381 326
     // 查询项目列表
382 327
     getProjectList() {
383 328
       this.loading = true
@@ -416,63 +361,6 @@ export default {
416 361
         });
417 362
       }
418 363
     },
419
-    // 表单重置
420
-    reset() {
421
-      this.form = {
422
-        archiveId: null,
423
-        projectId: null,
424
-        submitTime: null,
425
-        submitSituation: null,
426
-        locationLng: null,
427
-        locationLat: null,
428
-        produceInspector: null,
429
-        qualityInspector: null,
430
-        deptLeader: null,
431
-        archiver: null,
432
-        receiveTime: null,
433
-        qualityTime: null,
434
-        produceTime: null,
435
-        deptTime: null,
436
-        archiveTime: null,
437
-        produceComment: null,
438
-        qualityComment: null,
439
-        deptComment: null,
440
-        archiveComment: null
441
-      };
442
-      this.resetForm("form");
443
-    },
444
-    /** 搜索按钮操作 */
445
-    handleQuery() {
446
-      this.queryParams.pageNum = 1;
447
-      this.getList();
448
-    },
449
-    /** 重置按钮操作 */
450
-    resetQuery() {
451
-      this.resetForm("queryForm");
452
-      this.handleQuery();
453
-    },
454
-    // 多选框选中数据
455
-    handleSelectionChange(selection) {
456
-      this.ids = selection.map(item => item.archiveId)
457
-      this.single = selection.length !== 1
458
-      this.multiple = !selection.length
459
-    },
460
-    /** 新增按钮操作 */
461
-    handleAdd() {
462
-      this.reset();
463
-      this.open = true;
464
-      this.title = "添加cmc成果归档";
465
-    },
466
-    /** 修改按钮操作 */
467
-    handleUpdate(row) {
468
-      this.reset();
469
-      const archiveId = row.archiveId || this.ids
470
-      getArchive(archiveId).then(response => {
471
-        this.form = response.data;
472
-        this.open = true;
473
-        this.title = "修改cmc成果归档";
474
-      });
475
-    },
476 364
     /** 提交按钮 */
477 365
     submitForm() {
478 366
       this.$refs["form"].validate(valid => {
@@ -480,16 +368,22 @@ export default {
480 368
           if (this.formTotal != 0) {
481 369
             updateArchive(this.form).then(response => {
482 370
               this.$modal.msgSuccess("修改成功");
483
-              this.open = false;
484
-              this.getList();
485 371
             });
486 372
             const params = { taskId: this.taskForm.taskId };
487 373
             getNextFlowNode(params).then(res => {
488
-              if (this.taskName == '成果上传') {
489
-                const params = { taskId: this.taskForm.taskId };
490
-                this.checkSendUser = true;
491
-                this.completeOpen = true;
492
-                this.completeTitle = "流程审批";
374
+              if (this.taskName == '归档发起') {
375
+                // const params = { taskId: this.taskForm.taskId };
376
+                // this.checkSendUser = true;
377
+                // this.completeOpen = true;
378
+                // this.completeTitle = "流程审批";
379
+                getUsersDeptLeaderByDept({ deptId: 109 }).then(res => {
380
+                  let userId = res.data.userId;
381
+                  this.$set(this.taskForm.variables, "approval", userId);
382
+                  complete(this.taskForm).then(response => {
383
+                    this.$modal.msgSuccess(response.msg);
384
+                    this.$emit('goBack')
385
+                  });
386
+                });
493 387
               }
494 388
               if (this.taskName == '部门检查') {
495 389
                 let approvalList = this.chooseProject.qualityInspector.split(',')
@@ -509,7 +403,7 @@ export default {
509 403
                   });
510 404
                 });
511 405
               }
512
-              if (this.taskName == '技术部审核') {
406
+              if (this.taskName == '技术质量部审核') {
513 407
                 getUserByRole({ roleId: 6 }).then(result => {
514 408
                   this.$set(this.taskForm.variables, "approval", result.data[0]);
515 409
                   complete(this.taskForm).then(response => {
@@ -529,8 +423,6 @@ export default {
529 423
             this.form.archiveId = this.taskForm.formId;
530 424
             addArchive(this.form).then(response => {
531 425
               this.$modal.msgSuccess("新增成功");
532
-              this.open = false;
533
-              this.getList();
534 426
             });
535 427
             const params = { taskId: this.taskForm.taskId };
536 428
             getNextFlowNode(params).then(res => {
@@ -542,22 +434,6 @@ export default {
542 434
         }
543 435
       });
544 436
     },
545
-    /** 删除按钮操作 */
546
-    handleDelete(row) {
547
-      const archiveIds = row.archiveId || this.ids;
548
-      this.$modal.confirm('是否确认删除cmc成果归档编号为"' + archiveIds + '"的数据项?').then(function () {
549
-        return delArchive(archiveIds);
550
-      }).then(() => {
551
-        this.getList();
552
-        this.$modal.msgSuccess("删除成功");
553
-      }).catch(() => { });
554
-    },
555
-    /** 导出按钮操作 */
556
-    handleExport() {
557
-      this.download('oa/archive/export', {
558
-        ...this.queryParams
559
-      }, `archive_${new Date().getTime()}.xlsx`)
560
-    },
561 437
     confirmProject(val) {
562 438
       if (val.length > 1) {
563 439
         this.$message.error('请选择一个项目');
@@ -597,7 +473,7 @@ export default {
597 473
       })
598 474
     },
599 475
     gotoFile() {
600
-      this.$router.push({ path: '/file' })
476
+      this.$router.push({ path: '/product/archive/file' })
601 477
     },
602 478
     typeText(flag) {
603 479
       if (flag == true)

+ 80
- 0
oa-ui/src/views/flowable/form/components/auditorRow.vue Bestand weergeven

@@ -0,0 +1,80 @@
1
+<template>
2
+  <div>
3
+    <el-row>
4
+      <el-col :span="5" :xs="24" :offset="13">
5
+        <label for="signature" class="labelclass">
6
+          签名: <span class="auditor font-nomal"> {{ localSignature }}</span>
7
+        </label>
8
+      </el-col>
9
+      <el-col :span="6">
10
+        <label for="signTime" class="labelclass">
11
+          日期:<span class="font-nomal"> {{ loaclSignTime }} </span>
12
+        </label>
13
+      </el-col>
14
+    </el-row>
15
+  </div>
16
+</template>
17
+
18
+<script>
19
+import { parseTime } from "@/utils/ruoyi";
20
+export default {
21
+  props: {
22
+    signature: {
23
+      type: Number,
24
+    },
25
+    signTime: {
26
+      type: String,
27
+      default: ''
28
+    },
29
+    isCurrent: {
30
+      type: Boolean,
31
+      default: true
32
+    }
33
+  },
34
+  data() {
35
+    return {
36
+      localSignature: '',
37
+      loaclSignTime: ''
38
+    }
39
+  },
40
+  watch: {
41
+    signature(newval) {
42
+      if (newval)
43
+        this.localSignature = this.getUserName(newval);
44
+    },
45
+    signTime(newval) {
46
+      if (newval)
47
+        this.loaclSignTime = newval;
48
+    }
49
+  },
50
+  mounted() {
51
+    if (this.isCurrent) {
52
+      this.localSignature = this.$store.getters.name;
53
+      this.loaclSignTime = parseTime(new Date(), '{y}-{m}-{d}');
54
+    } else {
55
+      this.localSignature = this.signature;
56
+      this.loaclSignTime = this.signTime;
57
+    }
58
+  }
59
+}
60
+</script>
61
+
62
+<style lang="scss" scoped>
63
+.labelclass {
64
+  text-align: right;
65
+  vertical-align: middle;
66
+  float: left;
67
+  font-size: 14px;
68
+  color: #606266;
69
+  line-height: 40px;
70
+  padding: 0 12px 0 0;
71
+  -webkit-box-sizing: border-box;
72
+  box-sizing: border-box;
73
+}
74
+
75
+.font-nomal {
76
+  padding-left: 15px;
77
+  font-weight: normal;
78
+  color: #000;
79
+}
80
+</style>

+ 22
- 5
oa-ui/src/views/flowable/form/components/choosePartyA.vue Bestand weergeven

@@ -2,13 +2,18 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-18 17:38:50
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-05 14:09:31
5
+ * @LastEditTime: 2024-09-18 11:16:02
6 6
 -->
7 7
 <template>
8 8
   <div>
9 9
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
10 10
       <el-form-item label="单位名称" prop="partyAName">
11
-        <el-input v-model="queryParams.partyAName" placeholder="请输入单位名称" clearable @keyup.enter.native="handleQuery()"/>
11
+        <el-select v-model="queryParams.partyAName" clearable filterable remote reserve-keyword placeholder="请输入单位名称"
12
+          :remote-method="remoteMethod" :loading="queryLoading" style="width: 400px;" @change="handleQuery()">
13
+          <el-option v-for="partyA in queryPartyAList" :key="partyA.partyAId" :label="partyA.partyAName"
14
+            :value="partyA.partyAName">
15
+          </el-option>
16
+        </el-select>
12 17
       </el-form-item>
13 18
       <el-form-item style="margin-bottom:0;display:none;"> <el-input></el-input> </el-form-item>
14 19
       <el-form-item>
@@ -32,8 +37,8 @@
32 37
       <el-table-column label="备注说明" align="center" prop="remark" />
33 38
     </el-table>
34 39
 
35
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" :autoScroll="false"
36
-      @pagination="getList" />
40
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
41
+      :autoScroll="false" @pagination="getList" />
37 42
     <div>
38 43
       已选单位:<el-tag v-for="item in choosePartyA" style="margin: 5px;" :key="item.partyAId">{{ item.partyAName }}</el-tag>
39 44
     </div>
@@ -81,6 +86,7 @@ export default {
81 86
     return {
82 87
       // 遮罩层
83 88
       loading: true,
89
+      queryLoading: true,
84 90
       // 选中数组
85 91
       ids: [],
86 92
       // 非单个禁用
@@ -113,7 +119,8 @@ export default {
113 119
           { required: true, message: '请输入单位名称', trigger: 'blur' },
114 120
         ]
115 121
       },
116
-      choosePartyA: []
122
+      choosePartyA: [],
123
+      queryPartyAList: []
117 124
     };
118 125
   },
119 126
   created() {
@@ -139,6 +146,16 @@ export default {
139 146
         this.loading = false;
140 147
       });
141 148
     },
149
+    remoteMethod(val) {
150
+      listPartyA({
151
+        pageNum: 1,
152
+        pageSize: 30,
153
+        partyAName: val
154
+      }).then(res => {
155
+        this.queryPartyAList = res.rows;
156
+        this.queryLoading = false;
157
+      })
158
+    },
142 159
     // 取消按钮
143 160
     cancel() {
144 161
       this.open = false;

+ 4
- 1
oa-ui/src/views/flowable/form/finance/borrowForm.vue Bestand weergeven

@@ -94,7 +94,7 @@
94 94
                 </td> -->
95 95
                 <td v-if="form.borrowUsage == 0 || form.borrowUsage == 1">
96 96
                   <el-input v-model="detail.managerAmount" :disabled="taskName != '分管审核'"
97
-                    @change="calculateManagerAmount(detail)"></el-input>
97
+                    @blur="calculateManagerAmount(detail)"></el-input>
98 98
                 </td>
99 99
                 <td>
100 100
                   <el-button type="text" style="color:#F56C6C" icon="el-icon-delete" size="mini" circle
@@ -460,6 +460,9 @@ export default {
460 460
         this.rules = {
461 461
           managerComment: [
462 462
             { required: true, message: '请输入分管领导审核意见', trigger: 'blur' }
463
+          ],
464
+          managerAmount:[
465
+            { required: true, message: '请输入核准金额', trigger: 'blur' }
463 466
           ]
464 467
         }
465 468
       } else if (this.taskName == '总经理审核') {

Laden…
Annuleren
Opslaan