瀏覽代碼

Merge branch 'master' of http://oa.sccehui.com:6101/cmc-coding/cmc-oa

lamphua 1 年之前
父節點
當前提交
1ef134b448

+ 5
- 1
oa-ui/src/components/FileUpload/index.vue 查看文件

16
       accept=".doc,.docx,.xls,.xlsx,.pdf"
16
       accept=".doc,.docx,.xls,.xlsx,.pdf"
17
     >
17
     >
18
       <!-- 上传按钮 -->
18
       <!-- 上传按钮 -->
19
-      <el-button size="mini" type="primary">选取文件</el-button>
19
+      <el-button size="mini" type="primary" :disabled="disabled">选取文件</el-button>
20
       <!-- 上传提示 -->
20
       <!-- 上传提示 -->
21
       <div class="el-upload__tip" slot="tip" v-if="showTip">
21
       <div class="el-upload__tip" slot="tip" v-if="showTip">
22
         请上传
22
         请上传
90
     filePathName:{
90
     filePathName:{
91
       type: String,
91
       type: String,
92
       default: '',
92
       default: '',
93
+    },
94
+    disabled:{
95
+      type: Boolean,
96
+      default:false,
93
     }
97
     }
94
   },
98
   },
95
   created(){
99
   created(){

+ 134
- 31
oa-ui/src/views/flowable/form/business/contractForm.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-05-10 15:31:57
3
  * @Date: 2024-05-10 15:31:57
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-13 18:58:07
5
+ * @LastEditTime: 2024-05-14 17:46:47
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
10
       <el-col :span="18" :xs="24">
10
       <el-col :span="18" :xs="24">
11
         <h2 class="text-center">承接合同评审表</h2>
11
         <h2 class="text-center">承接合同评审表</h2>
12
         <el-divider></el-divider>
12
         <el-divider></el-divider>
13
-        <el-form ref="form" :model="form" :rules="rules" label-width="130px">
13
+        <el-form ref="form" :model="form" :rules="rules" label-width="130px" :disabled="formDisabled">
14
           <el-row :gutter="20">
14
           <el-row :gutter="20">
15
             <el-col :span="12" :xs="24">
15
             <el-col :span="12" :xs="24">
16
               <el-form-item label="投标项目名称:" prop="tenderId">
16
               <el-form-item label="投标项目名称:" prop="tenderId">
17
-                <el-button type="primary" size="mini" @click="tbOpen = true">选择投标项目</el-button>
17
+                <el-button type="primary" size="mini" @click="tbOpen = true"
18
+                  v-if="taskName == '合同拟稿'">选择投标项目</el-button>
18
                 <!-- <el-select v-model="form.tenderId" filterable placeholder="请选择" @change="handleSelectTender"
19
                 <!-- <el-select v-model="form.tenderId" filterable placeholder="请选择" @change="handleSelectTender"
19
                   :disabled="taskName != '合同拟稿'" clearable>
20
                   :disabled="taskName != '合同拟稿'" clearable>
20
                   <el-option v-for="item in tenderList" :key="item.value" :label="item.projectName"
21
                   <el-option v-for="item in tenderList" :key="item.value" :label="item.projectName"
64
             </el-col>
65
             </el-col>
65
 
66
 
66
             <el-col :span="12" :xs="24">
67
             <el-col :span="12" :xs="24">
67
-              <el-form-item label="关联项目编号:" prop="projectIds">
68
+              <el-form-item label="关联项目:" prop="projectIds">
68
                 <!-- <el-select v-model="projectContractForm.projectIds" multiple filterable placeholder="请选择"
69
                 <!-- <el-select v-model="projectContractForm.projectIds" multiple filterable placeholder="请选择"
69
                   @change="handleSelectProject" :disabled="taskName != '合同拟稿'" clearable>
70
                   @change="handleSelectProject" :disabled="taskName != '合同拟稿'" clearable>
70
                   <el-option v-for="item in projectList" :key="item.value"
71
                   <el-option v-for="item in projectList" :key="item.value"
71
                     :label="item.projectNumber + item.projectName" :value="item.projectId">
72
                     :label="item.projectNumber + item.projectName" :value="item.projectId">
72
                   </el-option>
73
                   </el-option>
73
                 </el-select> -->
74
                 </el-select> -->
74
-                <el-button type="primary" size="mini" @click="open = true">选择项目</el-button>
75
+                <el-button type="primary" size="mini" @click="open = true" v-if="taskName == '合同拟稿'">选择项目</el-button>
75
               </el-form-item>
76
               </el-form-item>
76
               <el-table v-loading="loading" :data="chooseProjectList">
77
               <el-table v-loading="loading" :data="chooseProjectList">
77
                 <el-table-column label="项目编号" align="center" prop="projectNumber"></el-table-column>
78
                 <el-table-column label="项目编号" align="center" prop="projectNumber"></el-table-column>
83
 
84
 
84
           </el-row>
85
           </el-row>
85
           <el-form-item label="合同文件" prop="contractDocument">
86
           <el-form-item label="合同文件" prop="contractDocument">
86
-            <FileUpload v-if="form.tenderId == null" ref="contractFile" :limit="1" :filePathName="'合同文件'"
87
+            <FileUpload v-if="taskName == '合同拟稿'" ref="contractFile" :limit="1" :filePathName="'合同文件'"
87
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getContractPath"></FileUpload>
88
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getContractPath"></FileUpload>
88
-            <div v-if="form.tenderId != null">
89
+            <div v-if="taskName != '合同拟稿'">
89
               <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear"
90
               <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear"
90
                 tag="ul">
91
                 tag="ul">
91
                 <li key="li01" class="el-upload-list__item ele-upload-list__item-content">
92
                 <li key="li01" class="el-upload-list__item ele-upload-list__item-content">
92
                   <el-link :href="`${baseUrl}${'/profile/upload' + form.contractDocument}`" :underline="false"
93
                   <el-link :href="`${baseUrl}${'/profile/upload' + form.contractDocument}`" :underline="false"
93
                     target="_blank">
94
                     target="_blank">
94
-                    <span class="el-icon-document" style="color:#0011ff;text-decoration: underline;"> {{
95
-      getFileName(form.contractDocument) }} </span>
95
+                    <span class="el-icon-document" style="color:#0011ff;text-decoration: underline;">
96
+                      {{ getFileName(form.contractDocument) }}
97
+                    </span>
96
                   </el-link>
98
                   </el-link>
97
                 </li>
99
                 </li>
98
               </transition-group>
100
               </transition-group>
102
           <el-form-item label="合同计划工作量:">
104
           <el-form-item label="合同计划工作量:">
103
             <table border="1">
105
             <table border="1">
104
               <tr>
106
               <tr>
105
-                <td>序号</td>
107
+                <td style="width: 50px;">序号</td>
106
                 <td>工作内容</td>
108
                 <td>工作内容</td>
107
                 <td>等级或比例尺</td>
109
                 <td>等级或比例尺</td>
108
                 <td>单位</td>
110
                 <td>单位</td>
119
                     :disabled="taskName != '合同拟稿'"></el-input>
121
                     :disabled="taskName != '合同拟稿'"></el-input>
120
                 </td>
122
                 </td>
121
                 <td>
123
                 <td>
122
-                  <el-input v-model="work.scale" clearable :disabled="taskName != '合同拟稿'"></el-input>
124
+                  <el-select v-model="work.scale" placeholder="请选择" clearable :disabled="taskName != '合同拟稿'">
125
+                    <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
126
+                      :value="dict.label" />
127
+                  </el-select>
123
                 </td>
128
                 </td>
124
                 <td>
129
                 <td>
125
-                  <el-input v-model="work.unit" clearable :disabled="taskName != '合同拟稿'"></el-input>
130
+                  <el-select v-model="work.unit" placeholder="请选择" clearable :disabled="taskName != '合同拟稿'">
131
+                    <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label"
132
+                      :value="dict.label" />
133
+                  </el-select>
126
                 </td>
134
                 </td>
127
                 <td>
135
                 <td>
128
                   <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
136
                   <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
148
           <el-form-item label="合同回款计划:">
156
           <el-form-item label="合同回款计划:">
149
             <table border="1">
157
             <table border="1">
150
               <tr>
158
               <tr>
151
-                <td>序号</td>
159
+                <td style="width: 50px;">序号</td>
152
                 <td>回款条件</td>
160
                 <td>回款条件</td>
153
                 <td>回款比例(%)</td>
161
                 <td>回款比例(%)</td>
154
                 <td>回款金额(元)</td>
162
                 <td>回款金额(元)</td>
188
               :disabled="taskName != '合同拟稿'"></el-button>
196
               :disabled="taskName != '合同拟稿'"></el-button>
189
           </el-form-item>
197
           </el-form-item>
190
           <el-form-item label="合同备注" prop="remark">
198
           <el-form-item label="合同备注" prop="remark">
191
-            <el-input v-model="form.remark" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
199
+            <el-input v-model="form.remark" type="textarea" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
192
           </el-form-item>
200
           </el-form-item>
193
           <el-row>
201
           <el-row>
194
             <el-col :span="6" :xs="24" :offset="12">
202
             <el-col :span="6" :xs="24" :offset="12">
217
                 <td>会审部门</td>
225
                 <td>会审部门</td>
218
                 <td>会审人</td>
226
                 <td>会审人</td>
219
                 <td>会审意见</td>
227
                 <td>会审意见</td>
220
-                <td>会审附件</td>
228
+                <td style="width: 200px;">会审附件</td>
221
                 <td style="width: 90px;">签名</td>
229
                 <td style="width: 90px;">签名</td>
222
-                <td>日期</td>
230
+                <td style="width: 100px;">日期</td>
223
               </tr>
231
               </tr>
224
               <tr v-for="(comment, index) in commentList" :key="index">
232
               <tr v-for="(comment, index) in commentList" :key="index">
225
                 <td>
233
                 <td>
241
                 </td>
249
                 </td>
242
                 <td>
250
                 <td>
243
                   <el-input v-model="comment.comment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
251
                   <el-input v-model="comment.comment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
244
-                    :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"></el-input>
252
+                    :disabled="taskName != '线上会审' || (taskName == '线上会审' && comment.userId != userId)"></el-input>
245
                 </td>
253
                 </td>
246
-                <td style="text-align:left;">
247
-                  <FileUpload :limit="1" :filePathName="'合同文件'"
248
-                    :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input=""></FileUpload>
254
+                <td style="text-align:left;" @click="clickFile(comment)">
255
+                  <FileUpload v-if="comment.document == ''" ref="hs" :limit="1" :filePathName="'合同文件'"
256
+                    :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"
257
+                    :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="setCommentDocument">
258
+                  </FileUpload>
259
+
249
                   <!-- <el-input v-model="comment.document" clearable
260
                   <!-- <el-input v-model="comment.document" clearable
250
                     :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"></el-input> -->
261
                     :disabled="taskName != '线上会审' || (taskName == '线上会审' && !comment.commentUser)"></el-input> -->
251
-
262
+                  <div v-if="comment.document != ''">
263
+                    <transition-group class="upload-file-list el-upload-list el-upload-list--text"
264
+                      name="el-fade-in-linear" tag="ul">
265
+                      <li key="li01" class="el-upload-list__item ele-upload-list__item-content">
266
+                        <el-link :href="`${baseUrl}${'/profile/upload' + comment.document}`" :underline="false"
267
+                          target="_blank">
268
+                          <span class="el-icon-document" style="color:#0011ff;text-decoration: underline;">
269
+                            {{ getFileName(comment.document) }}
270
+                          </span>
271
+                        </el-link>
272
+                        <div class="ele-upload-list__item-content-action" v-if="comment.userId == userId">
273
+                          <el-link :underline="false" @click="handleFileDelete(comment, 'document')"
274
+                            type="danger">删除</el-link>
275
+                        </div>
276
+                      </li>
277
+                    </transition-group>
278
+                  </div>
252
                 </td>
279
                 </td>
253
                 <td>
280
                 <td>
254
                   <span class="auditor"> {{ comment.commentUser ? comment.commentUser.nickName : '' }} </span>
281
                   <span class="auditor"> {{ comment.commentUser ? comment.commentUser.nickName : '' }} </span>
302
               <tr>
329
               <tr>
303
                 <td>评审意见表</td>
330
                 <td>评审意见表</td>
304
                 <td colspan="5">
331
                 <td colspan="5">
305
-                  <el-input v-model="meetingForm.document" clearable :disabled="taskName != '会议评审'"></el-input>
332
+                  <FileUpload v-if="taskName == '会议评审'" ref="contractFile" :limit="1" :filePathName="'合同文件'"
333
+                    :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getMeetingPath"></FileUpload>
334
+                  <!-- <el-input v-model="meetingForm.document" clearable :disabled="taskName != '会议评审'"></el-input> -->
306
                 </td>
335
                 </td>
307
               </tr>
336
               </tr>
308
               <tr>
337
               <tr>
326
             </table>
355
             </table>
327
           </el-form-item>
356
           </el-form-item>
328
           <el-form-item label="分管审批意见" prop="remark">
357
           <el-form-item label="分管审批意见" prop="remark">
329
-            <el-input v-model="form.managerComment" placeholder="请输入分管审批意见" :disabled="taskName != '分管审核'" />
358
+            <el-input v-model="form.managerComment" type="textarea" placeholder="请输入审批意见"
359
+              :disabled="taskName != '分管审核'" />
330
           </el-form-item>
360
           </el-form-item>
331
           <el-row>
361
           <el-row>
332
             <el-col :span="6" :xs="24" :offset="12">
362
             <el-col :span="6" :xs="24" :offset="12">
347
             </el-date-picker>
377
             </el-date-picker>
348
           </el-form-item>
378
           </el-form-item>
349
           <el-form-item label="签订备注" prop="signRemark">
379
           <el-form-item label="签订备注" prop="signRemark">
350
-            <el-input v-model="form.signRemark" placeholder="请输入签订备注" :disabled="taskName != '合同签订'" />
380
+            <el-input v-model="form.signRemark" type="textarea" placeholder="请输入签订备注" :disabled="taskName != '合同签订'" />
351
           </el-form-item>
381
           </el-form-item>
352
           <el-form-item label="签订扫描件" prop="signScan">
382
           <el-form-item label="签订扫描件" prop="signScan">
353
-            <el-input v-model="form.signScan" placeholder="请输入签订扫描件" :disabled="taskName != '合同签订'" />
383
+            <!-- <el-input v-model="form.signScan" placeholder="请输入签订扫描件" :disabled="taskName != '合同签订'" /> -->
384
+            <FileUpload v-if="form.signScan == null || form.signScan == ''" ref="contractFile" :limit="1"
385
+              :filePathName="'合同文件'" :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getSignScanPath">
386
+            </FileUpload>
387
+            <div v-if="form.signScan != null && form.signScan != ''">
388
+              <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear"
389
+                tag="ul">
390
+                <li key="li01" class="el-upload-list__item ele-upload-list__item-content">
391
+                  <el-link :href="`${baseUrl}${'/profile/upload' + form.signScan}`" :underline="false" target="_blank">
392
+                    <span class="el-icon-document" style="color:#0011ff;text-decoration: underline;">
393
+                      {{ getFileName(form.signScan) }}
394
+                    </span>
395
+                  </el-link>
396
+                  <div class="ele-upload-list__item-content-action" v-if="taskName != ''">
397
+                    <el-link :underline="false" @click="handleFileDelete(form, 'signScan')" type="danger">删除</el-link>
398
+                  </div>
399
+                </li>
400
+              </transition-group>
401
+            </div>
354
           </el-form-item>
402
           </el-form-item>
355
         </el-form>
403
         </el-form>
356
         <div style="text-align: center;">
404
         <div style="text-align: center;">
357
-          <el-button type="primary" @click="submitForm">确 定</el-button>
358
-          <el-button @click="cancel">取 消</el-button>
405
+          <el-button type="primary" @click="submitForm" :disabled="formDisabled">提 交</el-button>
406
+          <!-- <el-button @click="cancel">取 消</el-button> -->
359
         </div>
407
         </div>
360
       </el-col>` `
408
       </el-col>` `
361
       <el-col :span="6" :xs="24">
409
       <el-col :span="6" :xs="24">
369
     </el-row>
417
     </el-row>
370
 
418
 
371
     <el-dialog title="选择项目" :visible.sync="open" width="70%" append-to-body>
419
     <el-dialog title="选择项目" :visible.sync="open" width="70%" append-to-body>
372
-      <choose-project @chooseProject="confirmProject" :chooseList="chooseProjectList"></choose-project>
420
+      <choose-project @chooseProject="confirmProject"></choose-project>
373
     </el-dialog>
421
     </el-dialog>
374
     <el-dialog title="选择投标项目" :visible.sync="tbOpen" width="70%" append-to-body>
422
     <el-dialog title="选择投标项目" :visible.sync="tbOpen" width="70%" append-to-body>
375
       <choose-tender @choose="confirmTender"></choose-tender>
423
       <choose-tender @choose="confirmTender"></choose-tender>
395
 import { flowXmlAndNode } from "@/api/flowable/definition";
443
 import { flowXmlAndNode } from "@/api/flowable/definition";
396
 import ChooseProject from '../components/chooseProject.vue';
444
 import ChooseProject from '../components/chooseProject.vue';
397
 import ChooseTender from '../components/chooseTender.vue';
445
 import ChooseTender from '../components/chooseTender.vue';
446
+import { mapGetters } from "vuex";
398
 export default {
447
 export default {
448
+  dicts: ['cmc_scale_grade', 'cmc_unit'],
399
   components: {
449
   components: {
400
     flow,
450
     flow,
401
     ChooseProject,
451
     ChooseProject,
409
     taskForm: {
459
     taskForm: {
410
       type: Object,
460
       type: Object,
411
       required: true
461
       required: true
462
+    },
463
+    formDisabled: {
464
+      type: Boolean,
465
+      default: false
412
     }
466
     }
413
   },
467
   },
468
+  computed: {
469
+    ...mapGetters(["userId"]),
470
+  },
414
   name: "Contract",
471
   name: "Contract",
415
   data() {
472
   data() {
416
     return {
473
     return {
533
       isSelect: false,
590
       isSelect: false,
534
       formTotal: 0,
591
       formTotal: 0,
535
       flowData: {},
592
       flowData: {},
593
+      clickTd: {},
536
     };
594
     };
537
   },
595
   },
538
   created() {
596
   created() {
752
         arr.splice(index, 1);
810
         arr.splice(index, 1);
753
       }
811
       }
754
     },
812
     },
813
+    setCommentDocument(val) {
814
+      let arr = val.split('/upload');
815
+      this.clickTd.document = arr[1];
816
+    },
817
+    handleFileDelete(key, val) {
818
+      key[val] = ''
819
+    },
820
+    clickFile(val) {
821
+      this.clickTd = val
822
+    },
755
     deletCommentItem(index) {
823
     deletCommentItem(index) {
756
       let arr = this.commentList;
824
       let arr = this.commentList;
757
       if (arr.length == 1) {
825
       if (arr.length == 1) {
937
       if (val == "") {
1005
       if (val == "") {
938
         this.form.contractDocument = ""
1006
         this.form.contractDocument = ""
939
       }
1007
       }
1008
+    },
1009
+    getSignScanPath(val) {
1010
+      let arr = val.split('/upload')
1011
+      this.form.signScan = arr[1]
1012
+      if (val == "") {
1013
+        this.form.signScan = ""
1014
+      }
1015
+    },
1016
+    getMeetingPath(val){
1017
+      
940
     },
1018
     },
941
     getFileName(name) {
1019
     getFileName(name) {
942
-      let arr = name.split('/')
943
-      return arr[arr.length - 1];
1020
+      if (name) {
1021
+        let arr = name.split('/')
1022
+        return arr[arr.length - 1];
1023
+      }
1024
+
944
     },
1025
     },
945
-    confirmProject(val) {
1026
+    confirmProject(val) { 
946
       this.open = false
1027
       this.open = false
947
       for (let v of val) {
1028
       for (let v of val) {
948
         this.projectContractForm.projectIds.push(v.projectId);
1029
         this.projectContractForm.projectIds.push(v.projectId);
974
     padding: 5px;
1055
     padding: 5px;
975
   }
1056
   }
976
 }
1057
 }
1058
+
1059
+.upload-file-uploader {
1060
+  margin-bottom: 5px;
1061
+}
1062
+
1063
+.upload-file-list .el-upload-list__item {
1064
+  border: 1px solid #e4e7ed;
1065
+  line-height: 2;
1066
+  margin-bottom: 10px;
1067
+  position: relative;
1068
+}
1069
+
1070
+.upload-file-list .ele-upload-list__item-content {
1071
+  display: flex;
1072
+  justify-content: space-between;
1073
+  align-items: center;
1074
+  color: inherit;
1075
+}
1076
+
1077
+.ele-upload-list__item-content-action .el-link {
1078
+  margin-right: 10px;
1079
+}
977
 </style>
1080
 </style>

+ 75
- 71
oa-ui/src/views/flowable/form/business/subContract.vue 查看文件

6
         <el-form ref="form" :model="form" :rules="rules" label-width="130px">
6
         <el-form ref="form" :model="form" :rules="rules" label-width="130px">
7
           <el-divider></el-divider>
7
           <el-divider></el-divider>
8
           <el-form-item label="项目编号:" prop="projectId">
8
           <el-form-item label="项目编号:" prop="projectId">
9
-            <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
9
+            <el-button type="primary" size="mini" @click="open = true" v-if="taskName == '合同拟稿'">选择项目</el-button>
10
+            <!-- <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
10
               :disabled="taskName != '合同拟稿'" clearable>
11
               :disabled="taskName != '合同拟稿'" clearable>
11
               <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber + item.projectName"
12
               <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber + item.projectName"
12
                 :value="item.projectId">
13
                 :value="item.projectId">
13
               </el-option>
14
               </el-option>
14
-            </el-select>
15
+            </el-select> -->
15
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
16
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
16
-              <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
17
-              }}</el-descriptions-item>
17
+              <el-descriptions-item label="项目编号" label-class-name="my-label">
18
+                {{ chooseProject.projectNumber }}</el-descriptions-item>
18
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
19
               <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
19
-              }}</el-descriptions-item>
20
+                }}</el-descriptions-item>
20
               <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseProject.partyA
21
               <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseProject.partyA
21
-              }}</el-descriptions-item>
22
+                }}</el-descriptions-item>
22
               <el-descriptions-item label="承担部门" label-class-name="my-label">
23
               <el-descriptions-item label="承担部门" label-class-name="my-label">
23
                 <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
24
                 <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
24
               </el-descriptions-item>
25
               </el-descriptions-item>
25
               <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
26
               <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
26
-              }}</el-descriptions-item>
27
+                }}</el-descriptions-item>
27
             </el-descriptions>
28
             </el-descriptions>
28
           </el-form-item>
29
           </el-form-item>
29
           <el-row :gutter="20">
30
           <el-row :gutter="20">
51
               </el-form-item>
52
               </el-form-item>
52
             </el-col>
53
             </el-col>
53
             <el-col :span="8" :xs="24">
54
             <el-col :span="8" :xs="24">
54
-              <el-form-item label="分包合同金额" prop="subAmount">
55
+              <el-form-item label="分包合同金额(元)" prop="subAmount" label-width="160px">
55
                 <el-input v-model="form.subAmount" placeholder="请输入分包合同金额" :disabled="taskName != '合同拟稿'" />
56
                 <el-input v-model="form.subAmount" placeholder="请输入分包合同金额" :disabled="taskName != '合同拟稿'" />
56
               </el-form-item>
57
               </el-form-item>
57
             </el-col>
58
             </el-col>
59
           <el-row :gutter="20">
60
           <el-row :gutter="20">
60
             <el-col :span="16" :xs="24">
61
             <el-col :span="16" :xs="24">
61
               <el-form-item label="承接单位" prop="partnerId">
62
               <el-form-item label="承接单位" prop="partnerId">
62
-                <el-select v-model="form.partnerId" filterable placeholder="请选择" :disabled="taskName != '合同拟稿'" clearable>
63
+                <el-select v-model="form.partnerId" filterable placeholder="请选择" :disabled="taskName != '合同拟稿'"
64
+                  clearable>
63
                   <el-option v-for="item in partnerList" :key="item.value" :label="item.partnerName"
65
                   <el-option v-for="item in partnerList" :key="item.value" :label="item.partnerName"
64
                     :value="item.partnerId">
66
                     :value="item.partnerId">
65
                   </el-option>
67
                   </el-option>
76
           <el-form-item label="合同计划工作量:">
78
           <el-form-item label="合同计划工作量:">
77
             <table border="1">
79
             <table border="1">
78
               <tr>
80
               <tr>
79
-                <td>序号</td>
81
+                <td style="width:50px;">序号</td>
80
                 <td>工作内容</td>
82
                 <td>工作内容</td>
81
                 <td>等级或比例尺</td>
83
                 <td>等级或比例尺</td>
82
                 <td>单位</td>
84
                 <td>单位</td>
93
                     :disabled="taskName != '合同拟稿'"></el-input>
95
                     :disabled="taskName != '合同拟稿'"></el-input>
94
                 </td>
96
                 </td>
95
                 <td>
97
                 <td>
96
-                  <el-input v-model="work.scale" clearable :disabled="taskName != '合同拟稿'"></el-input>
98
+                  <el-select v-model="work.scale" placeholder="请选择" clearable :disabled="taskName != '合同拟稿'">
99
+                    <el-option v-for="dict in dict.type.cmc_scale_grade" :key="dict.value" :label="dict.label"
100
+                      :value="dict.label" />
101
+                  </el-select>
97
                 </td>
102
                 </td>
98
                 <td>
103
                 <td>
99
-                  <el-input v-model="work.unit" clearable :disabled="taskName != '合同拟稿'"></el-input>
104
+                  <el-select v-model="work.unit" placeholder="请选择" clearable :disabled="taskName != '合同拟稿'">
105
+                    <el-option v-for="dict in dict.type.cmc_unit" :key="dict.value" :label="dict.label"
106
+                      :value="dict.label" />
107
+                  </el-select>
100
                 </td>
108
                 </td>
101
                 <td>
109
                 <td>
102
                   <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
110
                   <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
122
           <el-form-item label="合同付款计划:">
130
           <el-form-item label="合同付款计划:">
123
             <table border="1">
131
             <table border="1">
124
               <tr>
132
               <tr>
125
-                <td>序号</td>
133
+                <td style="width:50px;">序号</td>
126
                 <td>付款条件</td>
134
                 <td>付款条件</td>
127
                 <td>付款比例(%)</td>
135
                 <td>付款比例(%)</td>
128
                 <td>付款金额(元)</td>
136
                 <td>付款金额(元)</td>
144
                   <el-input v-model="payment.paymentAmount" clearable :disabled="taskName != '合同拟稿'"></el-input>
152
                   <el-input v-model="payment.paymentAmount" clearable :disabled="taskName != '合同拟稿'"></el-input>
145
                 </td>
153
                 </td>
146
                 <td>
154
                 <td>
147
-                  <el-date-picker style="width: 140px" v-model="payment.paymentTime" value-format="yyyy-MM-dd" type="date"
148
-                    placeholder="选择日期" :disabled="taskName != '合同拟稿'">
155
+                  <el-date-picker style="width: 140px" v-model="payment.paymentTime" value-format="yyyy-MM-dd"
156
+                    type="date" placeholder="选择日期" :disabled="taskName != '合同拟稿'">
149
                   </el-date-picker>
157
                   </el-date-picker>
150
                 </td>
158
                 </td>
151
                 <td>
159
                 <td>
272
               <tr>
280
               <tr>
273
                 <td>评审意见表</td>
281
                 <td>评审意见表</td>
274
                 <td colspan="5">
282
                 <td colspan="5">
275
-                  <el-input v-model="meetingForm.document" clearable :disabled="taskName != '会议评审'"></el-input>
283
+                  <!-- <el-input v-model="meetingForm.document" clearable :disabled="taskName != '会议评审'"></el-input> -->
284
+                  <FileUpload v-if="taskName == '会议评审'" ref="contractFile" :limit="1" :filePathName="'合同文件'"
285
+                    :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getMeetingPath"></FileUpload>
276
                 </td>
286
                 </td>
277
               </tr>
287
               </tr>
278
               <tr>
288
               <tr>
312
           </el-row>
322
           </el-row>
313
           <el-divider></el-divider>
323
           <el-divider></el-divider>
314
           <el-form-item label="签订日期" prop="signDate">
324
           <el-form-item label="签订日期" prop="signDate">
315
-            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期"
316
-              :disabled="taskName != '合同签订'">
325
+            <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd"
326
+              placeholder="请选择签订日期" :disabled="taskName != '合同签订'">
317
             </el-date-picker>
327
             </el-date-picker>
318
           </el-form-item>
328
           </el-form-item>
319
           <el-form-item label="签订备注" prop="signRemark">
329
           <el-form-item label="签订备注" prop="signRemark">
324
           </el-form-item>
334
           </el-form-item>
325
         </el-form>
335
         </el-form>
326
         <div style="text-align: center;">
336
         <div style="text-align: center;">
327
-          <el-button type="primary" @click="submitForm">确 定</el-button>
328
-          <el-button @click="cancel">取 消</el-button>
337
+          <el-button type="primary" @click="submitForm">提 交</el-button>
329
         </div>
338
         </div>
330
       </el-col>
339
       </el-col>
331
       <el-col :span="6" :xs="24">
340
       <el-col :span="6" :xs="24">
337
         </el-card>
346
         </el-card>
338
       </el-col>
347
       </el-col>
339
     </el-row>
348
     </el-row>
349
+
350
+    <el-dialog title="选择项目" :visible.sync="open" width="70%" append-to-body>
351
+      <project-choose @chooseProject="confirmProject"></project-choose>
352
+    </el-dialog>
340
   </div>
353
   </div>
341
 </template>
354
 </template>
342
 
355
 
357
 import flow from '@/views/flowable/task/todo/detail/flow'
370
 import flow from '@/views/flowable/task/todo/detail/flow'
358
 import { flowXmlAndNode } from "@/api/flowable/definition";
371
 import { flowXmlAndNode } from "@/api/flowable/definition";
359
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
372
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
373
+import projectChoose from '../components/chooseProject.vue';
360
 export default {
374
 export default {
375
+  dicts: ['cmc_scale_grade', 'cmc_unit'],
361
   components: {
376
   components: {
362
-    flow
377
+    flow,
378
+    projectChoose
363
   },
379
   },
364
   props: {
380
   props: {
365
     taskName: {
381
     taskName: {
574
               })
590
               })
575
             })
591
             })
576
           }
592
           }
577
-          listContractWork({contractId: this.taskForm.formId}).then(res => {
593
+          listContractWork({ contractId: this.taskForm.formId }).then(res => {
578
             if (res.rows)
594
             if (res.rows)
579
               this.workList = res.rows;
595
               this.workList = res.rows;
580
           });
596
           });
581
-          listContractPayment({contractId: this.taskForm.formId}).then(res => {
597
+          listContractPayment({ contractId: this.taskForm.formId }).then(res => {
582
             if (res.rows)
598
             if (res.rows)
583
               this.paymentList = res.rows;
599
               this.paymentList = res.rows;
584
           });
600
           });
585
-          listContractComment({contractId: this.taskForm.formId}).then(res => {
601
+          listContractComment({ contractId: this.taskForm.formId }).then(res => {
586
             if (res.rows)
602
             if (res.rows)
587
               this.commentList = res.rows;
603
               this.commentList = res.rows;
588
             for (let comment of this.commentList) {
604
             for (let comment of this.commentList) {
795
       };
811
       };
796
       this.resetForm("form");
812
       this.resetForm("form");
797
     },
813
     },
798
-    /** 搜索按钮操作 */
799
-    handleQuery() {
800
-      this.queryParams.pageNum = 1;
801
-      this.getList();
802
-    },
803
-    /** 重置按钮操作 */
804
-    resetQuery() {
805
-      this.resetForm("queryForm");
806
-      this.handleQuery();
807
-    },
808
-    // 多选框选中数据
809
-    handleSelectionChange(selection) {
810
-      this.ids = selection.map(item => item.subContractId)
811
-      this.single = selection.length !== 1
812
-      this.multiple = !selection.length
813
-    },
814
-    /** 新增按钮操作 */
815
-    handleAdd() {
816
-      this.reset();
817
-      this.open = true;
818
-      this.title = "添加cmc分包合同评审";
819
-    },
820
-    /** 修改按钮操作 */
821
-    handleUpdate(row) {
822
-      this.reset();
823
-      const subContractId = row.subContractId || this.ids
824
-      getSubContract(subContractId).then(response => {
825
-        this.form = response.data;
826
-        this.open = true;
827
-        this.title = "修改cmc分包合同评审";
828
-      });
829
-    },
830
     /** 提交按钮 */
814
     /** 提交按钮 */
831
     submitForm() {
815
     submitForm() {
816
+      console.log(this.form);
832
       this.$refs["form"].validate(valid => {
817
       this.$refs["form"].validate(valid => {
833
         if (valid) {
818
         if (valid) {
819
+          debugger
834
           if (this.formTotal != 0) {
820
           if (this.formTotal != 0) {
835
             updateSubContract(this.form).then(response => {
821
             updateSubContract(this.form).then(response => {
836
               this.$modal.msgSuccess("修改成功");
822
               this.$modal.msgSuccess("修改成功");
839
             });
825
             });
840
             const params = { taskId: this.taskForm.taskId };
826
             const params = { taskId: this.taskForm.taskId };
841
             getNextFlowNode(params).then(res => {
827
             getNextFlowNode(params).then(res => {
828
+          debugger
842
               if (this.taskName == '分管审核') {
829
               if (this.taskName == '分管审核') {
843
                 complete(this.taskForm).then(response => {
830
                 complete(this.taskForm).then(response => {
844
                   this.$modal.msgSuccess(response.msg);
831
                   this.$modal.msgSuccess(response.msg);
859
                 })
846
                 })
860
               }
847
               }
861
               else if (this.taskName == '会议评审') {
848
               else if (this.taskName == '会议评审') {
849
+                debugger
862
                 this.meetingForm.contractId = this.form.subContractId;
850
                 this.meetingForm.contractId = this.form.subContractId;
863
                 let formData = new FormData();
851
                 let formData = new FormData();
864
                 let jsonForm = JSON.stringify(this.meetingForm);
852
                 let jsonForm = JSON.stringify(this.meetingForm);
940
         }
928
         }
941
       });
929
       });
942
     },
930
     },
943
-    /** 删除按钮操作 */
944
-    handleDelete(row) {
945
-      const subContractIds = row.subContractId || this.ids;
946
-      this.$modal.confirm('是否确认删除cmc分包合同评审编号为"' + subContractIds + '"的数据项?').then(function () {
947
-        return delSubContract(subContractIds);
948
-      }).then(() => {
949
-        this.getList();
950
-        this.$modal.msgSuccess("删除成功");
951
-      }).catch(() => { });
931
+    confirmProject(val) {
932
+      this.open = false
933
+      if (val.length > 1) {
934
+        this.$message.error('请选择一个项目');
935
+        return
936
+      } else if (val.length == 1) {
937
+        this.chooseProject = val[0]
938
+        this.isSelect = true
939
+        this.form.projectId = val[0].projectId
940
+        listProjectContract({ projectId: val.projectId }).then(response => {
941
+          if (response.rows) {
942
+            for (let row of response.rows) {
943
+              getContract(row.contractId).then(r => {
944
+                this.chooseContract.amount.push(r.data.amount);
945
+                this.chooseContract.contractCode.push(r.data.contractCode);
946
+                this.chooseContract.contractNumber.push(r.data.contractNumber);
947
+                this.amount = this.chooseContract.amount.join('、');
948
+                this.contractCode = this.chooseContract.contractCode.join('、');
949
+                this.contractNumber = this.chooseContract.contractNumber.join('、');
950
+              });
951
+            }
952
+          }
953
+          else
954
+            this.chooseContract = {};
955
+        })
956
+      }
957
+    },
958
+    getMeetingPath(val) {
959
+
952
     },
960
     },
953
-    /** 导出按钮操作 */
954
-    handleExport() {
955
-      this.download('oa/subContract/export', {
956
-        ...this.queryParams
957
-      }, `subContract_${new Date().getTime()}.xlsx`)
958
-    }
959
   }
961
   }
960
 };
962
 };
961
 </script>
963
 </script>
962
 
964
 
963
 <style lang="scss" scoped>
965
 <style lang="scss" scoped>
966
+@import "@/assets/styles/element-reset.scss";
967
+
964
 table {
968
 table {
965
   /*居中*/
969
   /*居中*/
966
   margin: 0 auto;
970
   margin: 0 auto;

+ 1
- 5
oa-ui/src/views/flowable/form/components/chooseProject.vue 查看文件

53
 import { listUser, getUser } from '@/api/system/user'
53
 import { listUser, getUser } from '@/api/system/user'
54
 export default {
54
 export default {
55
   props: {
55
   props: {
56
-    chooseList: {
57
-      type: Array,
58
-      default: []
59
-    }
56
+    
60
   },
57
   },
61
   data() {
58
   data() {
62
     return {
59
     return {
78
   created() {
75
   created() {
79
     this.getList();
76
     this.getList();
80
     this.getUserList();
77
     this.getUserList();
81
-    this.chooseProject = this.chooseList;
82
   },
78
   },
83
   methods: {
79
   methods: {
84
     // 查询项目列表
80
     // 查询项目列表

+ 6
- 2
oa-ui/src/views/flowable/form/components/conditionDisplay.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-23 17:08:16
3
  * @Date: 2024-04-23 17:08:16
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-10 16:29:22
5
+ * @LastEditTime: 2024-05-14 13:45:45
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
18
     <safe-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
18
     <safe-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
19
     <settle-form :taskForm="taskForm" :taskName="''" :disabled="true" v-else-if="taskForm.procDefName == '项目结算'"></settle-form>
19
     <settle-form :taskForm="taskForm" :taskName="''" :disabled="true" v-else-if="taskForm.procDefName == '项目结算'"></settle-form>
20
     <budget-info :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目预算'"></budget-info>
20
     <budget-info :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目预算'"></budget-info>
21
+    <contract-form :taskForm="taskForm" :taskName="''" :formDisabled="true" v-else-if="taskForm.procDefName == '承接合同评审'"></contract-form>
21
   </div>
22
   </div>
22
 </template>
23
 </template>
23
 
24
 
34
 import SafeForm from '@/views/flowable/form/safeForm.vue';
35
 import SafeForm from '@/views/flowable/form/safeForm.vue';
35
 import SettleForm from '@/views/flowable/form/settleForm.vue';
36
 import SettleForm from '@/views/flowable/form/settleForm.vue';
36
 import BudgetInfo from '../budget/budgetInfo.vue';
37
 import BudgetInfo from '../budget/budgetInfo.vue';
38
+import ContractForm from '../business/contractForm.vue';
37
 export default {
39
 export default {
38
   props: {
40
   props: {
39
     passingParam: {
41
     passingParam: {
57
     TechnicalForm,
59
     TechnicalForm,
58
     SafeForm,
60
     SafeForm,
59
     SettleForm,
61
     SettleForm,
60
-    BudgetInfo
62
+    BudgetInfo,
63
+    ContractForm
61
   },
64
   },
62
   data() {
65
   data() {
63
     return {
66
     return {
71
   },
74
   },
72
   methods: {
75
   methods: {
73
     init(val) {
76
     init(val) {
77
+      console.log(val);
74
       this.taskForm = val
78
       this.taskForm = val
75
       this.taskName = val.taskName
79
       this.taskName = val.taskName
76
       this.procDefName = val.procDefName
80
       this.procDefName = val.procDefName

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

15
           </el-col>
15
           </el-col>
16
         </el-tab-pane> -->
16
         </el-tab-pane> -->
17
         <el-tab-pane label="表单信息" name="1">
17
         <el-tab-pane label="表单信息" name="1">
18
-          <sc-table :taskForm="taskForm" :tableForm="tableForm" v-if="taskForm.procDefName == '生产部门考核'"></sc-table>
18
+          <!-- <sc-table :taskForm="taskForm" :tableForm="tableForm" v-if="taskForm.procDefName == '生产部门考核'"></sc-table>
19
           <jy-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '经营发展部考核'"></jy-table>
19
           <jy-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '经营发展部考核'"></jy-table>
20
           <js-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '技术质量部考核'"></js-table>
20
           <js-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '技术质量部考核'"></js-table>
21
           <xm-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '项目管理部考核'"></xm-table>
21
           <xm-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '项目管理部考核'"></xm-table>
29
             <div class="test-form">
29
             <div class="test-form">
30
               <parser :key="new Date().getTime()" :form-conf="variablesData" />
30
               <parser :key="new Date().getTime()" :form-conf="variablesData" />
31
             </div>
31
             </div>
32
-          </el-col>
32
+          </el-col> -->
33
+          <conditionDisplay :passingParam="taskForm"></conditionDisplay>
33
         </el-tab-pane>
34
         </el-tab-pane>
34
         <!--流程流转记录-->
35
         <!--流程流转记录-->
35
         <el-tab-pane label="流转记录" name="2">
36
         <el-tab-pane label="流转记录" name="2">
98
 import projectProcess from '@/views/flowable/form/projectProcess/index'
99
 import projectProcess from '@/views/flowable/form/projectProcess/index'
99
 import TechnicalForm from '../../../form/technicalForm.vue';
100
 import TechnicalForm from '../../../form/technicalForm.vue';
100
 import SafeForm from '../../../form/safeForm.vue';
101
 import SafeForm from '../../../form/safeForm.vue';
101
-
102
+import conditionDisplay from '@/views/flowable/form/components/conditionDisplay.vue'
102
 export default {
103
 export default {
103
   name: "Record",
104
   name: "Record",
104
   components: {
105
   components: {
113
     CarForm,
114
     CarForm,
114
     projectProcess,
115
     projectProcess,
115
     TechnicalForm,
116
     TechnicalForm,
116
-    SafeForm
117
+    SafeForm,
118
+    conditionDisplay
117
   },
119
   },
118
   props: {},
120
   props: {},
119
   data() {
121
   data() {
151
       variablesData: {}, // 流程变量数据
153
       variablesData: {}, // 流程变量数据
152
       variableOpen: false, // 是否加载流程变量数据
154
       variableOpen: false, // 是否加载流程变量数据
153
       // 表单信息
155
       // 表单信息
154
-      tableForm: {}
156
+      tableForm: {},
157
+      passingParam: {},
155
     };
158
     };
156
   },
159
   },
157
   created() {
160
   created() {
160
     this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId;
163
     this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId;
161
     this.taskForm.formId = this.$route.query.formId;
164
     this.taskForm.formId = this.$route.query.formId;
162
     this.taskForm.procDefName = this.$route.query.procDefName;
165
     this.taskForm.procDefName = this.$route.query.procDefName;
166
+    this.taskForm.taskName = ''
163
     // 回显流程记录
167
     // 回显流程记录
164
     // 流程任务重获取变量表单
168
     // 流程任务重获取变量表单
165
     if (this.taskForm.taskId) {
169
     if (this.taskForm.taskId) {

Loading…
取消
儲存