余思翰 пре 1 година
родитељ
комит
466930a582

+ 926
- 1732
oa-back/sql/cmc_oa(小余测试数据).sql
Разлика између датотеке није приказан због своје велике величине
Прегледај датотеку


+ 0
- 1
oa-ui/src/views/flowable/form/archiveForm.vue Прегледај датотеку

571
             })
571
             })
572
           } else {
572
           } else {
573
             this.form.archiveId = this.taskForm.formId;
573
             this.form.archiveId = this.taskForm.formId;
574
-            console.log(this.form);
575
             addArchive(this.form).then(response => {
574
             addArchive(this.form).then(response => {
576
               this.$modal.msgSuccess("新增成功");
575
               this.$modal.msgSuccess("新增成功");
577
               this.open = false;
576
               this.open = false;

+ 5
- 6
oa-ui/src/views/flowable/form/budget/addBudget.vue Прегледај датотеку

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-25 15:05:59
3
  * @Date: 2024-03-25 15:05:59
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-23 17:40:09
5
+ * @LastEditTime: 2024-06-11 18:20:03
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
193
                   <td>
193
                   <td>
194
                     <el-input v-model="car.days" placeholder="请输入天数" @change="calculateCarTotal(car)"></el-input>
194
                     <el-input v-model="car.days" placeholder="请输入天数" @change="calculateCarTotal(car)"></el-input>
195
                   </td>
195
                   </td>
196
-                  <td class="carCost">{{ (car.expense).toFixed(2) }}</td>
196
+                  <td class="carCost">{{ car.expense }}</td>
197
                 </tr>
197
                 </tr>
198
                 <tr>
198
                 <tr>
199
                   <td colspan="5">合计</td>
199
                   <td colspan="5">合计</td>
232
                     <el-input v-model="device.days" placeholder="请输入天数"
232
                     <el-input v-model="device.days" placeholder="请输入天数"
233
                       @change="calculateDeviceTotal(device)"></el-input>
233
                       @change="calculateDeviceTotal(device)"></el-input>
234
                   </td>
234
                   </td>
235
-                  <td class="deviceCost">{{ (device.depreciation).toFixed(2) }}</td>
235
+                  <td class="deviceCost">{{ device.depreciation }}</td>
236
                 </tr>
236
                 </tr>
237
                 <tr>
237
                 <tr>
238
                   <td colspan="5">合计</td>
238
                   <td colspan="5">合计</td>
556
     getProjectContract() {
556
     getProjectContract() {
557
       listProjectContract({ projectId: this.taskForm.formId }).then(res => {
557
       listProjectContract({ projectId: this.taskForm.formId }).then(res => {
558
         if (res.rows) {
558
         if (res.rows) {
559
-          console.log(res.rows);
560
           if(res.rows.length == 1){
559
           if(res.rows.length == 1){
561
             getContract(res.rows[0].contractId).then(result=>{
560
             getContract(res.rows[0].contractId).then(result=>{
562
               if (result.data) {
561
               if (result.data) {
646
       let total1 = Number(car.mileage) * Number(car.distance);
645
       let total1 = Number(car.mileage) * Number(car.distance);
647
       let total2 = Number(car.dayCost) * Number(car.days);
646
       let total2 = Number(car.dayCost) * Number(car.days);
648
       let sum = (total1 + total2).toFixed(2);
647
       let sum = (total1 + total2).toFixed(2);
649
-      this.$set(car, "depreciation", total2);
648
+      this.$set(car, "depreciation", total2.toFixed(2));
650
       this.$set(car, "expense", sum);
649
       this.$set(car, "expense", sum);
651
       this.getCost("expense", "carCost", this.chooseCar);
650
       this.getCost("expense", "carCost", this.chooseCar);
652
       this.getFixCost();
651
       this.getFixCost();
653
     },
652
     },
654
     calculateDeviceTotal(device) {
653
     calculateDeviceTotal(device) {
655
       let total = Number(device.dayCost) * Number(device.days);
654
       let total = Number(device.dayCost) * Number(device.days);
656
-      this.$set(device, "depreciation", total);
655
+      this.$set(device, "depreciation", total.toFixed(2));
657
       this.getCost("depreciation", "deviceCost", this.chooseDevice);
656
       this.getCost("depreciation", "deviceCost", this.chooseDevice);
658
       this.getFixCost();
657
       this.getFixCost();
659
     },
658
     },

+ 0
- 1
oa-ui/src/views/flowable/form/budget/components/budgetTable.vue Прегледај датотеку

170
     }
170
     }
171
   },
171
   },
172
   created() {
172
   created() {
173
-    console.log(this.budgetForm);
174
     this.userLen = this.budgetForm.chooseUser.length + 1;
173
     this.userLen = this.budgetForm.chooseUser.length + 1;
175
     this.carLen = this.budgetForm.chooseCar.length + 1;
174
     this.carLen = this.budgetForm.chooseCar.length + 1;
176
     this.deviceLen = this.budgetForm.chooseDevice.length + 1;
175
     this.deviceLen = this.budgetForm.chooseDevice.length + 1;

+ 55
- 3
oa-ui/src/views/flowable/form/budget/components/chooseDevice.vue Прегледај датотеку

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-27 11:10:26
3
  * @Date: 2024-03-27 11:10:26
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-10 14:20:42
5
+ * @LastEditTime: 2024-06-11 10:54:16
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
9
     <el-form :inline="true">
9
     <el-form :inline="true">
10
+      <el-form-item label="设备状态:">
11
+        <el-select v-model="queryParams.status" filterable clearable @change="getList">
12
+          <el-option :value="'0'" label="被领用"></el-option>
13
+          <el-option :value="'1'" label="可领用"></el-option>
14
+          <el-option :value="'2'" label="维修中"></el-option>
15
+          <el-option :value="'3'" label="已停用"></el-option>
16
+          <el-option :value="'4'" label="已报废"></el-option>
17
+        </el-select>
18
+      </el-form-item>
10
       <el-form-item label="设备名称:">
19
       <el-form-item label="设备名称:">
11
         <el-select v-model="queryParams.name" filterable @change="getList" clearable>
20
         <el-select v-model="queryParams.name" filterable @change="getList" clearable>
12
           <el-option v-for="item in nameList" :key="item.name" :label="item.name" :value="item.name">
21
           <el-option v-for="item in nameList" :key="item.name" :label="item.name" :value="item.name">
23
     </el-form>
32
     </el-form>
24
     <el-table ref="chooseCar" :data="list" @selection-change="handleSelectionChange" :row-key="getRowKeys">
33
     <el-table ref="chooseCar" :data="list" @selection-change="handleSelectionChange" :row-key="getRowKeys">
25
       <el-table-column type="selection" width="50" align="center" :reserve-selection="true" />
34
       <el-table-column type="selection" width="50" align="center" :reserve-selection="true" />
35
+      <el-table-column label="设备状态" align="center" prop="status">
36
+        <template slot-scope="scope">
37
+          <el-tag :type="statusType(scope.row.status)">
38
+            {{ statusTypeText(scope.row.status) }}
39
+          </el-tag>
40
+        </template>
41
+      </el-table-column>
26
       <el-table-column label="出厂编号" align="center" prop="code" />
42
       <el-table-column label="出厂编号" align="center" prop="code" />
43
+      <el-table-column label="设备品牌" align="center" prop="brand" />
27
       <el-table-column label="设备名称" align="center" prop="name" />
44
       <el-table-column label="设备名称" align="center" prop="name" />
28
       <el-table-column label="规格型号" align="center" prop="series" />
45
       <el-table-column label="规格型号" align="center" prop="series" />
29
-      <el-table-column label="设备品牌" align="center" prop="brand" />
46
+      <el-table-column label="存放地址" align="center" prop="place" />
30
       <el-table-column label="单日成本" align="center" prop="dayCost" />
47
       <el-table-column label="单日成本" align="center" prop="dayCost" />
31
     </el-table>
48
     </el-table>
32
     <div style="text-align: right;">
49
     <div style="text-align: right;">
54
     return {
71
     return {
55
       queryParams: {
72
       queryParams: {
56
         pageNum: 1,
73
         pageNum: 1,
57
-        pageSize: 10
74
+        pageSize: 10,
75
+        type: '仪器设备'
58
       },
76
       },
59
       list: [],
77
       list: [],
60
       form: {},
78
       form: {},
93
     },
111
     },
94
     clearChoose() {
112
     clearChoose() {
95
       this.$refs.chooseCar.clearSelection();
113
       this.$refs.chooseCar.clearSelection();
114
+    },
115
+    statusTypeText(row) {
116
+      if (row == '0') {
117
+        return '被领用'
118
+      }
119
+      if (row == '1') {
120
+        return '可领用'
121
+      }
122
+      if (row == '2') {
123
+        return '维修中'
124
+      }
125
+      if (row == '3') {
126
+        return '已停用'
127
+      }
128
+      if (row == '4') {
129
+        return '已报废'
130
+      }
131
+    },
132
+    statusType(row){
133
+      if (row == '0') {
134
+        return 'warning'
135
+      }
136
+      if (row == '1') {
137
+        return 'success'
138
+      }
139
+      if (row == '2') {
140
+        return 'info'
141
+      }
142
+      if (row == '3') {
143
+        return 'danger'
144
+      }
145
+      if (row == '4') {
146
+        return 'info'
147
+      }
96
     }
148
     }
97
   }
149
   }
98
 }
150
 }

+ 40
- 22
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-06-07 10:43:03
5
+ * @LastEditTime: 2024-06-11 17:11:58
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
9
     <el-row :gutter="20">
9
     <el-row :gutter="20">
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"><b>承接合同评审表</b></h2>
12
         <el-divider></el-divider>
12
         <el-divider></el-divider>
13
         <el-form ref="form" :model="form" :rules="rules" label-width="130px" :disabled="formDisabled">
13
         <el-form ref="form" :model="form" :rules="rules" label-width="130px" :disabled="formDisabled">
14
           <el-row :gutter="20">
14
           <el-row :gutter="20">
85
             <table border="1">
85
             <table border="1">
86
               <tr>
86
               <tr>
87
                 <td style="width: 50px;">序号</td>
87
                 <td style="width: 50px;">序号</td>
88
-                <td>工作内容</td>
88
+                <td style="width:180px">工作内容</td>
89
                 <td>等级或比例尺</td>
89
                 <td>等级或比例尺</td>
90
                 <td>单位</td>
90
                 <td>单位</td>
91
                 <td>工作量</td>
91
                 <td>工作量</td>
97
                   {{ index + 1 }}
97
                   {{ index + 1 }}
98
                 </td>
98
                 </td>
99
                 <td>
99
                 <td>
100
-                  <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
100
+                  <el-input v-model="work.content" type="textarea" clearable :autosize="{ minRows: 4 }"
101
                     :disabled="taskName != '合同拟稿'"></el-input>
101
                     :disabled="taskName != '合同拟稿'"></el-input>
102
                 </td>
102
                 </td>
103
                 <td>
103
                 <td>
113
                   </el-select>
113
                   </el-select>
114
                 </td>
114
                 </td>
115
                 <td>
115
                 <td>
116
-                  <el-input v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input>
116
+                  <el-input-number :controls="false" style="width: 60px" v-model="work.workload" clearable :disabled="taskName != '合同拟稿'"></el-input-number>
117
                 </td>
117
                 </td>
118
                 <td>
118
                 <td>
119
                   <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
119
                   <el-date-picker style="width: 140px" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
121
                   </el-date-picker>
121
                   </el-date-picker>
122
                 </td>
122
                 </td>
123
                 <td>
123
                 <td>
124
-                  <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
124
+                  <el-input v-model="work.remark" type="textarea" clearable :autosize="{ minRows: 4 }"
125
                     :disabled="taskName != '合同拟稿'"></el-input>
125
                     :disabled="taskName != '合同拟稿'"></el-input>
126
                 </td>
126
                 </td>
127
                 <td>
127
                 <td>
137
             <table border="1">
137
             <table border="1">
138
               <tr>
138
               <tr>
139
                 <td style="width: 50px;">序号</td>
139
                 <td style="width: 50px;">序号</td>
140
-                <td>回款条件</td>
140
+                <td style="width: 250px;">回款条件</td>
141
                 <td>回款比例(%)</td>
141
                 <td>回款比例(%)</td>
142
                 <td>回款金额(元)</td>
142
                 <td>回款金额(元)</td>
143
                 <td>预计时间</td>
143
                 <td>预计时间</td>
149
                 </td>
149
                 </td>
150
                 <td>
150
                 <td>
151
                   <el-input v-model="payment.paymentCondition" type="textarea" clearable
151
                   <el-input v-model="payment.paymentCondition" type="textarea" clearable
152
-                    :autosize="{ minRows: 4, maxRows: 10 }" :disabled="taskName != '合同拟稿'"></el-input>
152
+                    :autosize="{ minRows: 4 }" :disabled="taskName != '合同拟稿'"></el-input>
153
                 </td>
153
                 </td>
154
                 <td>
154
                 <td>
155
-                  <el-input-number :controls="false" v-model="payment.paymentPercentage" clearable
155
+                  <el-input-number style="width:100px" :controls="false" v-model="payment.paymentPercentage" clearable
156
                     :disabled="taskName != '合同拟稿'" @change="calculatePaymentAmount(payment)"></el-input-number>
156
                     :disabled="taskName != '合同拟稿'" @change="calculatePaymentAmount(payment)"></el-input-number>
157
                 </td>
157
                 </td>
158
                 <td>
158
                 <td>
159
-                  <el-input-number :controls="false" :precision="2" v-model="payment.paymentAmount" clearable
159
+                  <el-input-number style="width:150px" :controls="false" :precision="2" v-model="payment.paymentAmount" clearable
160
                     :disabled="taskName != '合同拟稿'"></el-input-number>
160
                     :disabled="taskName != '合同拟稿'"></el-input-number>
161
                 </td>
161
                 </td>
162
                 <td>
162
                 <td>
165
                   </el-date-picker>
165
                   </el-date-picker>
166
                 </td>
166
                 </td>
167
                 <td>
167
                 <td>
168
-                  <el-input v-model="payment.remark" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
168
+                  <el-input v-model="payment.remark" type="textarea" clearable :autosize="{ minRows: 4 }"
169
                     :disabled="taskName != '合同拟稿'"></el-input>
169
                     :disabled="taskName != '合同拟稿'"></el-input>
170
                 </td>
170
                 </td>
171
                 <td>
171
                 <td>
178
               :disabled="taskName != '合同拟稿'"></el-button>
178
               :disabled="taskName != '合同拟稿'"></el-button>
179
           </el-form-item>
179
           </el-form-item>
180
           <el-form-item label="合同备注" prop="remark">
180
           <el-form-item label="合同备注" prop="remark">
181
-            <el-input v-model="form.remark" type="textarea" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
181
+            <el-input v-model="form.remark" :autosize="{ minRows: 4 }" type="textarea" placeholder="请输入合同备注" :disabled="taskName != '合同拟稿'" />
182
           </el-form-item>
182
           </el-form-item>
183
           <el-row>
183
           <el-row>
184
             <el-col :span="6" :xs="24" :offset="12">
184
             <el-col :span="6" :xs="24" :offset="12">
229
                   </el-select>
229
                   </el-select>
230
                 </td>
230
                 </td>
231
                 <td>
231
                 <td>
232
-                  <el-input v-model="comment.comment" type="textarea" clearable :autosize="{ minRows: 4, maxRows: 10 }"
232
+                  <el-input v-model="comment.comment" type="textarea" clearable :autosize="{ minRows: 4 }"
233
                     :disabled="taskName != '线上会审' || (taskName == '线上会审' && comment.userId != userId)"></el-input>
233
                     :disabled="taskName != '线上会审' || (taskName == '线上会审' && comment.userId != userId)"></el-input>
234
                 </td>
234
                 </td>
235
                 <td style="text-align:left;" @click="clickFile(comment)">
235
                 <td style="text-align:left;" @click="clickFile(comment)">
303
               <tr>
303
               <tr>
304
                 <td>参与评审人员</td>
304
                 <td>参与评审人员</td>
305
                 <td colspan="5">
305
                 <td colspan="5">
306
-                  <el-select v-model="meetingForm.users" multiple clearable style="width:600px"
306
+                  <el-select v-model="meetingForm.users" multiple filterable clearable style="width:600px"
307
                     :disabled="taskName != '合同拟稿'">
307
                     :disabled="taskName != '合同拟稿'">
308
                     <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
308
                     <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId">
309
                     </el-option>
309
                     </el-option>
345
           </el-form-item>
345
           </el-form-item>
346
           <el-divider></el-divider>
346
           <el-divider></el-divider>
347
           <el-form-item label="分管审批意见" prop="remark">
347
           <el-form-item label="分管审批意见" prop="remark">
348
-            <el-input v-model="form.managerComment" type="textarea" placeholder="请输入审批意见"
348
+            <el-input v-model="form.managerComment" type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入审批意见"
349
               :disabled="taskName != '分管审核'" />
349
               :disabled="taskName != '分管审核'" />
350
           </el-form-item>
350
           </el-form-item>
351
           <el-row>
351
           <el-row>
367
             </el-date-picker>
367
             </el-date-picker>
368
           </el-form-item>
368
           </el-form-item>
369
           <el-form-item label="签订备注" prop="signRemark">
369
           <el-form-item label="签订备注" prop="signRemark">
370
-            <el-input v-model="form.signRemark" type="textarea" placeholder="请输入签订备注" :disabled="taskName != '合同签订'" />
370
+            <el-input v-model="form.signRemark" type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入签订备注" :disabled="taskName != '合同签订'" />
371
           </el-form-item>
371
           </el-form-item>
372
           <el-form-item label="签订扫描件" prop="signScan">
372
           <el-form-item label="签订扫描件" prop="signScan">
373
             <!-- <el-input v-model="form.signScan" placeholder="请输入签订扫描件" :disabled="taskName != '合同签订'" /> -->
373
             <!-- <el-input v-model="form.signScan" placeholder="请输入签订扫描件" :disabled="taskName != '合同签订'" /> -->
401
             </div>
401
             </div>
402
           </el-form-item>
402
           </el-form-item>
403
         </el-form>
403
         </el-form>
404
-        <div style="text-align: center;">
404
+        <div style="text-align: center;" v-if="taskName">
405
           <el-button type="primary" @click="submitForm" :disabled="formDisabled">提 交</el-button>
405
           <el-button type="primary" @click="submitForm" :disabled="formDisabled">提 交</el-button>
406
         </div>
406
         </div>
407
       </el-col>` `
407
       </el-col>` `
408
-      <el-col :span="6" :xs="24">
408
+      <el-col :span="6" :xs="24" v-if="flowDisabled">
409
         <el-card>
409
         <el-card>
410
           <h2 style="text-align: center;">流程进度</h2>
410
           <h2 style="text-align: center;">流程进度</h2>
411
           <div>
411
           <div>
464
     formDisabled: {
464
     formDisabled: {
465
       type: Boolean,
465
       type: Boolean,
466
       default: false
466
       default: false
467
+    },
468
+    flowDisabled:{
469
+      type: Boolean,
470
+      default: true
467
     }
471
     }
468
   },
472
   },
469
   computed: {
473
   computed: {
470
     ...mapGetters(["userId"]),
474
     ...mapGetters(["userId"]),
471
   },
475
   },
476
+  watch: {
477
+    'taskForm.formId'(newval) {
478
+      this.projectloading = true
479
+      this.getProjectList();
480
+      this.getDeptList();
481
+      this.getTenderList();
482
+      this.getUserList();
483
+      this.initForm();
484
+    }
485
+  },
472
   name: "Contract",
486
   name: "Contract",
473
   data() {
487
   data() {
474
     return {
488
     return {
580
     this.getDeptList();
594
     this.getDeptList();
581
     this.getTenderList();
595
     this.getTenderList();
582
     this.getUserList();
596
     this.getUserList();
583
-    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
584
-      this.flowData = res.data;
585
-    })
597
+    if(this.flowDisabled){
598
+      flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
599
+        this.flowData = res.data;
600
+      })
601
+    }
586
   },
602
   },
587
   mounted() {
603
   mounted() {
588
     this.initRules();
604
     this.initRules();
676
           });
692
           });
677
           listProjectContract({ contractId: this.taskForm.formId }).then(res => {
693
           listProjectContract({ contractId: this.taskForm.formId }).then(res => {
678
             if (res.rows) {
694
             if (res.rows) {
695
+              let list = []
679
               for (let row of res.rows) {
696
               for (let row of res.rows) {
680
                 this.projectContractForm.projectIds.push(row.projectId);
697
                 this.projectContractForm.projectIds.push(row.projectId);
681
                 getProject(row.projectId).then(response => {
698
                 getProject(row.projectId).then(response => {
682
-                  this.chooseProjectList.push(response.data)
699
+                  list.push(response.data)
683
                 })
700
                 })
684
               }
701
               }
702
+              this.chooseProjectList = list;
685
               this.projectloading = false;
703
               this.projectloading = false;
686
             }
704
             }
687
           })
705
           })

+ 0
- 2
oa-ui/src/views/flowable/form/components/chooseContract.vue Прегледај датотеку

68
   methods: {
68
   methods: {
69
     getList() {
69
     getList() {
70
       listContract(this.queryParams).then(response => {
70
       listContract(this.queryParams).then(response => {
71
-        console.log(response);
72
         this.contractList = response.rows;
71
         this.contractList = response.rows;
73
         this.total = response.total;
72
         this.total = response.total;
74
         this.loading = false;
73
         this.loading = false;
85
       return row.contractId;
84
       return row.contractId;
86
     },
85
     },
87
     confirmChoose() {
86
     confirmChoose() {
88
-      console.log(this.choosePContract);
89
       this.$emit('choose', this.choosePContract)
87
       this.$emit('choose', this.choosePContract)
90
     },
88
     },
91
   },
89
   },

+ 0
- 1
oa-ui/src/views/flowable/form/finance/borrowForm.vue Прегледај датотеку

628
             const params = { taskId: this.taskForm.taskId };
628
             const params = { taskId: this.taskForm.taskId };
629
             getNextFlowNode(params).then(res => {
629
             getNextFlowNode(params).then(res => {
630
               let userId;
630
               let userId;
631
-              console.log(this.deptId);
632
               if (this.deptId == 0) {
631
               if (this.deptId == 0) {
633
                 if (this.form.borrowUsage == 2 || this.form.borrowUsage == 3) {
632
                 if (this.form.borrowUsage == 2 || this.form.borrowUsage == 3) {
634
                   userId = this.publicData.partySecretary
633
                   userId = this.publicData.partySecretary

+ 0
- 1
oa-ui/src/views/flowable/form/inProgress/achiData.vue Прегледај датотеку

149
       });
149
       });
150
     },
150
     },
151
     handleLook(row) {
151
     handleLook(row) {
152
-      console.log(row);
153
       this.form= row
152
       this.form= row
154
       this.openObj.formId = row.archiveId
153
       this.openObj.formId = row.archiveId
155
       getProject(row.projectId).then(res=>{
154
       getProject(row.projectId).then(res=>{

+ 54
- 30
oa-ui/src/views/flowable/form/oa/deviceForm.vue Прегледај датотеку

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-07 13:44:39
3
  * @Date: 2024-03-07 13:44:39
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-07 14:14:52
5
+ * @LastEditTime: 2024-06-11 14:15:49
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
12
         <el-card>
12
         <el-card>
13
           <h2 style="text-align: center;">设备申请表</h2>
13
           <h2 style="text-align: center;">设备申请表</h2>
14
           <div>
14
           <div>
15
-            <el-form ref="deviceForm" :model="form" label-width="100px" :rules="rules">
15
+            <el-form ref="deviceForm" :model="form" label-width="120px" :rules="rules">
16
               <!-- 申请人填写 -->
16
               <!-- 申请人填写 -->
17
               <el-divider></el-divider>
17
               <el-divider></el-divider>
18
               <el-row :gutter="20">
18
               <el-row :gutter="20">
47
                 </el-select> -->
47
                 </el-select> -->
48
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
48
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
49
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
49
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
50
-                  }}</el-descriptions-item>
50
+                    }}</el-descriptions-item>
51
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
51
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
52
-                  }}</el-descriptions-item>
52
+                    }}</el-descriptions-item>
53
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
53
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
54
-                    chooseProject.projectLeaderUser.nickName : ''
55
-                  }}</el-descriptions-item>
54
+      chooseProject.projectLeaderUser.nickName : ''
55
+                    }}</el-descriptions-item>
56
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
56
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
57
                     <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
57
                     <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
58
                   </el-descriptions-item>
58
                   </el-descriptions-item>
59
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
59
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
60
-                  }}</el-descriptions-item>
60
+                    }}</el-descriptions-item>
61
                 </el-descriptions>
61
                 </el-descriptions>
62
               </el-form-item>
62
               </el-form-item>
63
               <el-form-item label="设备选择:">
63
               <el-form-item label="设备选择:">
64
-                <el-select style="width: 100%;" v-model="form.devices" filterable multiple placeholder="请选择" clearable
65
-                  :disabled="taskName != '设备申请'">
64
+                <el-select style="width: 90%;" v-model="form.devices" filterable multiple placeholder="请选择" clearable
65
+                  disabled>
66
                   <el-option v-for="item in deviceList" :key="item.deviceId" :disabled="item.status != 1" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
66
                   <el-option v-for="item in deviceList" :key="item.deviceId" :disabled="item.status != 1" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
67
-                    + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place"
68
-                    :value="item.deviceId">
67
+      + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
69
                   </el-option>
68
                   </el-option>
70
                 </el-select>
69
                 </el-select>
70
+                <el-button type="primary" icon="el-icon-plus" size="mini" @click="openDevice = true"
71
+                  :disabled="taskName != '设备申请'">选择设备</el-button>
71
               </el-form-item>
72
               </el-form-item>
72
               <el-form-item label="申领事由:" prop="applyReason">
73
               <el-form-item label="申领事由:" prop="applyReason">
73
-                <el-input type="textarea" :rows="2" placeholder="请输入申领事由" v-model="form.applyReason"
74
+                <el-input type="textarea" :rows="3" placeholder="请输入申领事由" v-model="form.applyReason"
74
                   :disabled="taskName != '设备申请'">
75
                   :disabled="taskName != '设备申请'">
75
                 </el-input>
76
                 </el-input>
76
               </el-form-item>
77
               </el-form-item>
98
               <!-- 安排设备意见 -->
99
               <!-- 安排设备意见 -->
99
               <el-divider></el-divider>
100
               <el-divider></el-divider>
100
               <el-form-item label-width="120px" label="拟发放设备:">
101
               <el-form-item label-width="120px" label="拟发放设备:">
101
-                <el-select style="width: 100%;" v-model="form.modifyDevices" filterable multiple placeholder="请选择"
102
-                  clearable :disabled="taskName != '安排设备'">
102
+                <el-select style="width: 90%;" v-model="form.modifyDevices" filterable multiple placeholder="请选择"
103
+                  clearable disabled>
103
                   <el-option v-for="item in deviceList" :key="item.deviceId" :disabled="item.status != 1" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
104
                   <el-option v-for="item in deviceList" :key="item.deviceId" :disabled="item.status != 1" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
104
-                    + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place"
105
-                    :value="item.deviceId">
105
+      + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
106
                   </el-option>
106
                   </el-option>
107
                 </el-select>
107
                 </el-select>
108
+                <el-button type="primary" icon="el-icon-plus" size="mini" @click="openDevice = true"
109
+                  :disabled="taskName != '安排设备'">选择设备</el-button>
108
               </el-form-item>
110
               </el-form-item>
109
-              <el-form-item label="安排设备意见:" prop="dispatchComment" label-width="120px">
110
-                <el-input type="textarea" :rows="2" placeholder="请输入安排设备意见" v-model="form.dispatchComment"
111
+              <el-form-item label="安排设备意见:" prop="dispatchComment" label-width="125px">
112
+                <el-input type="textarea" :rows="3" placeholder="请输入安排设备意见" v-model="form.dispatchComment"
111
                   :disabled="taskName != '安排设备'">
113
                   :disabled="taskName != '安排设备'">
112
                 </el-input>
114
                 </el-input>
113
               </el-form-item>
115
               </el-form-item>
114
               <el-row>
116
               <el-row>
115
                 <el-col :span="6" :xs="24" :offset="12">
117
                 <el-col :span="6" :xs="24" :offset="12">
116
                   <el-form-item label="签名:" label-width="120px"
118
                   <el-form-item label="签名:" label-width="120px"
117
-                    v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
119
+                    v-if="taskName != '设备申请'">
118
                     <span class="auditor"> {{ form.dispatchUser ? form.dispatchUser.nickName : dispatchUser }} </span>
120
                     <span class="auditor"> {{ form.dispatchUser ? form.dispatchUser.nickName : dispatchUser }} </span>
119
                   </el-form-item>
121
                   </el-form-item>
120
                 </el-col>
122
                 </el-col>
121
                 <el-col :span="6">
123
                 <el-col :span="6">
122
                   <el-form-item label="日期:" label-width="120px"
124
                   <el-form-item label="日期:" label-width="120px"
123
-                    v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
125
+                    v-if="taskName != '设备申请'">
124
                     <span> {{ form.dispatchTime ? form.dispatchTime : dispatchTime }} </span>
126
                     <span> {{ form.dispatchTime ? form.dispatchTime : dispatchTime }} </span>
125
                   </el-form-item>
127
                   </el-form-item>
126
                 </el-col>
128
                 </el-col>
127
               </el-row>
129
               </el-row>
128
               <!-- 分管审核意见 -->
130
               <!-- 分管审核意见 -->
129
               <el-divider></el-divider>
131
               <el-divider></el-divider>
130
-              <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px" v-if="showFormItem('分管审核')">
131
-                <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment"
132
+              <el-form-item label="分管审核意见:" prop="managerComment" label-width="125px">
133
+                <el-input type="textarea" :rows="3" placeholder="请输入分管审核意见" v-model="form.managerComment"
132
                   :disabled="taskName != '分管审核'">
134
                   :disabled="taskName != '分管审核'">
133
                 </el-input>
135
                 </el-input>
134
               </el-form-item>
136
               </el-form-item>
135
               <el-row>
137
               <el-row>
136
                 <el-col :span="6" :xs="24" :offset="12">
138
                 <el-col :span="6" :xs="24" :offset="12">
137
-                  <el-form-item label="签名:" label-width="120px" v-if="showFormItem('分管审核签名')">
139
+                  <el-form-item label="签名:" label-width="120px">
138
                     <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : managerUser }} </span>
140
                     <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : managerUser }} </span>
139
                   </el-form-item>
141
                   </el-form-item>
140
                 </el-col>
142
                 </el-col>
141
                 <el-col :span="6">
143
                 <el-col :span="6">
142
-                  <el-form-item label="日期:" label-width="120px" v-if="showFormItem('分管审核签名')">
144
+                  <el-form-item label="日期:" label-width="120px">
143
                     <span> {{ form.managerTime ? form.managerTime : managerTime }} </span>
145
                     <span> {{ form.managerTime ? form.managerTime : managerTime }} </span>
144
                   </el-form-item>
146
                   </el-form-item>
145
                 </el-col>
147
                 </el-col>
150
                 <el-select style="width: 100%;" v-model="form.repairDevices" filterable multiple placeholder="请选择"
152
                 <el-select style="width: 100%;" v-model="form.repairDevices" filterable multiple placeholder="请选择"
151
                   clearable :disabled="taskName != '归还确认'">
153
                   clearable :disabled="taskName != '归还确认'">
152
                   <el-option v-for="item in modifyDeviceList" :key="item.deviceId" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
154
                   <el-option v-for="item in modifyDeviceList" :key="item.deviceId" :label="item.name + '【' + (item.brand != null ? item.brand : '') + (item.series != null ? '-' + item.series + '】' : '')
153
-                    + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place"
154
-                    :value="item.deviceId">
155
+      + (item.code != null ? '(设备编号:' + item.code + ')' : '') + '📍' + item.place" :value="item.deviceId">
155
                   </el-option>
156
                   </el-option>
156
                 </el-select>
157
                 </el-select>
157
               </el-form-item>
158
               </el-form-item>
158
               <el-form-item label="备注:" prop="remark" label-width="120px">
159
               <el-form-item label="备注:" prop="remark" label-width="120px">
159
-                <el-input type="textarea" :rows="2" placeholder="请输入备注" v-model="form.remark"
160
+                <el-input type="textarea" :rows="3" placeholder="请输入备注" v-model="form.remark"
160
                   :disabled="taskName != '归还确认'">
161
                   :disabled="taskName != '归还确认'">
161
                 </el-input>
162
                 </el-input>
162
               </el-form-item>
163
               </el-form-item>
170
               <el-button type="primary" @click="submit">提交申请</el-button>
171
               <el-button type="primary" @click="submit">提交申请</el-button>
171
             </el-row>
172
             </el-row>
172
             <el-row style="text-align: center;" v-else>
173
             <el-row style="text-align: center;" v-else>
173
-              <el-button type="primary" @click="completeApply">{{ taskName == '申请确认' ? "确认" : "完成审批" }}</el-button>
174
+              <el-button type="primary" @click="completeApply" v-if="taskName">{{ taskName == '申请确认' ? "确认" : "完成审批"
175
+                }}</el-button>
174
             </el-row>
176
             </el-row>
175
           </div>
177
           </div>
176
         </el-card>
178
         </el-card>
189
     <el-dialog title="选择项目" :visible.sync="openProject" width="70%" append-to-body>
191
     <el-dialog title="选择项目" :visible.sync="openProject" width="70%" append-to-body>
190
       <project-choose @chooseProject="confirmProject"></project-choose>
192
       <project-choose @chooseProject="confirmProject"></project-choose>
191
     </el-dialog>
193
     </el-dialog>
194
+    <el-dialog title="选择仪器" :visible.sync="openDevice" width="70%" append-to-body>
195
+      <choose-device @chooseList="confirmDevice"></choose-device>
196
+    </el-dialog>
192
   </div>
197
   </div>
193
 </template>
198
 </template>
194
 
199
 
205
 import { flowXmlAndNode } from "@/api/flowable/definition";
210
 import { flowXmlAndNode } from "@/api/flowable/definition";
206
 import { getUserByRole } from "@/api/system/role";
211
 import { getUserByRole } from "@/api/system/role";
207
 import projectChoose from '@/views/flowable/form/components/chooseProject.vue';
212
 import projectChoose from '@/views/flowable/form/components/chooseProject.vue';
213
+import ChooseDevice from '../budget/components/chooseDevice.vue';
208
 export default {
214
 export default {
209
   components: {
215
   components: {
210
     flow,
216
     flow,
211
-    projectChoose
217
+    projectChoose,
218
+    ChooseDevice
212
   },
219
   },
213
-  props: {
220
+  props:
221
+  {
214
     taskName: {
222
     taskName: {
215
       type: String,
223
       type: String,
216
       required: true
224
       required: true
260
       flowData: {},
268
       flowData: {},
261
       isSelect: false,
269
       isSelect: false,
262
       openProject: false,
270
       openProject: false,
271
+      openDevice: false,
263
       rules: {
272
       rules: {
264
       },
273
       },
265
       deviceList: [],
274
       deviceList: [],
512
       }
521
       }
513
       this.openProject = false
522
       this.openProject = false
514
     },
523
     },
524
+    confirmDevice(val) {
525
+      if (val) {
526
+        let list = []
527
+        for (let v of val) {
528
+          list.push(v.deviceId)
529
+        }
530
+
531
+        if (this.taskName == '设备申请') {
532
+          this.form.devices = list
533
+        } else if (this.taskName == '安排设备') {
534
+          this.form.modifyDevices = list
535
+        }
536
+      }
537
+      this.openDevice = false;
538
+    }
515
   },
539
   },
516
 }
540
 }
517
 </script>
541
 </script>

+ 0
- 1
oa-ui/src/views/flowable/form/projectProcess/safeTab.vue Прегледај датотеку

102
             this.$set(this.form, "projectName", this.projectName);
102
             this.$set(this.form, "projectName", this.projectName);
103
           } else {
103
           } else {
104
             getProject(this.taskForm.formId).then(res => {
104
             getProject(this.taskForm.formId).then(res => {
105
-              console.log(res);
106
               if (res.data) {
105
               if (res.data) {
107
                 this.$set(this.form, "projectNumber", res.data.projectNumber);
106
                 this.$set(this.form, "projectNumber", res.data.projectNumber);
108
                 this.$set(this.form, "projectName", res.data.projectName);
107
                 this.$set(this.form, "projectName", res.data.projectName);

+ 0
- 1
oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue Прегледај датотеку

177
             this.$set(this.form, "projectName", this.projectName);
177
             this.$set(this.form, "projectName", this.projectName);
178
           } else {
178
           } else {
179
             getProject(this.taskForm.formId).then(res => {
179
             getProject(this.taskForm.formId).then(res => {
180
-              console.log(res);
181
               if (res.data) {
180
               if (res.data) {
182
                 this.$set(this.form, "projectNumber", res.data.projectNumber);
181
                 this.$set(this.form, "projectNumber", res.data.projectNumber);
183
                 this.$set(this.form, "projectName", res.data.projectName);
182
                 this.$set(this.form, "projectName", res.data.projectName);

+ 0
- 1
oa-ui/src/views/flowable/form/settleForm.vue Прегледај датотеку

1069
       if (val.length == 1) {
1069
       if (val.length == 1) {
1070
         this.prOpen = false;
1070
         this.prOpen = false;
1071
         this.chooseProject = val[0];
1071
         this.chooseProject = val[0];
1072
-        console.log(val[0]);
1073
         let undertakingDeptName = []
1072
         let undertakingDeptName = []
1074
         if (val[0].undertakingDept) {
1073
         if (val[0].undertakingDept) {
1075
           let deptArr = val[0].undertakingDept.split(',');
1074
           let deptArr = val[0].undertakingDept.split(',');

+ 2
- 3
oa-ui/src/views/flowable/form/technicalForm.vue Прегледај датотеку

170
             </el-col>
170
             </el-col>
171
           </el-row>
171
           </el-row>
172
         </el-form>
172
         </el-form>
173
-        <div style="text-align: center;">
174
-          <el-button type="primary" @click="submitForm">确 定</el-button>
175
-          <el-button @click="cancel">取 消</el-button>
173
+        <div style="text-align: center;" v-if="taskName">
174
+          <el-button type="primary" @click="submitForm">提 交</el-button>
176
         </div>
175
         </div>
177
       </el-col>
176
       </el-col>
178
       <el-col :span="6" :xs="24">
177
       <el-col :span="6" :xs="24">

+ 48
- 15
oa-ui/src/views/flowable/task/finished/index.vue Прегледај датотеку

32
       <el-table-column label="任务节点" align="center" prop="taskName" />
32
       <el-table-column label="任务节点" align="center" prop="taskName" />
33
       <el-table-column label="流程发起人" align="center">
33
       <el-table-column label="流程发起人" align="center">
34
         <template slot-scope="scope">
34
         <template slot-scope="scope">
35
-          <label>{{ scope.row.startUserName }} <el-tag type="info" size="mini">{{ scope.row.startDeptName
36
-              }}</el-tag></label>
35
+          <label>{{ scope.row.startUserName }}
36
+            <el-tag type="info" size="mini">
37
+              {{ scope.row.startDeptName }}
38
+            </el-tag>
39
+          </label>
37
         </template>
40
         </template>
38
       </el-table-column>
41
       </el-table-column>
39
       <el-table-column label="接收时间" align="center" prop="createTime" width="180" />
42
       <el-table-column label="接收时间" align="center" prop="createTime" width="180" />
40
       <el-table-column label="审批时间" align="center" prop="finishTime" width="180" />
43
       <el-table-column label="审批时间" align="center" prop="finishTime" width="180" />
41
       <el-table-column label="耗时" align="center" prop="duration" width="180" />
44
       <el-table-column label="耗时" align="center" prop="duration" width="180" />
42
-      <el-table-column label="操作" width="150" fixed="right" class-name="small-padding fixed-width">
45
+      <el-table-column label="操作" align="center" width="220" fixed="right" class-name="small-padding fixed-width">
43
         <template slot-scope="scope">
46
         <template slot-scope="scope">
44
           <el-button size="mini" type="text" icon="el-icon-tickets"
47
           <el-button size="mini" type="text" icon="el-icon-tickets"
45
-            @click="handleFlowRecord(scope.row)">流转记录</el-button>
48
+            @click="handleFlowRecord(scope.row)">办理进度</el-button>
49
+          <el-button size="mini" type="text" icon="el-icon-tickets" @click="handleFlowNote(scope.row)">表单信息</el-button>
46
           <el-button size="mini" type="text" icon="el-icon-refresh-left" @click="handleRevoke(scope.row)">撤回
50
           <el-button size="mini" type="text" icon="el-icon-refresh-left" @click="handleRevoke(scope.row)">撤回
47
           </el-button>
51
           </el-button>
48
         </template>
52
         </template>
51
 
55
 
52
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
56
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
53
       @pagination="getList" />
57
       @pagination="getList" />
58
+    <el-dialog title="表单信息" :visible.sync="formOpen" append-to-body width="80%">
59
+      <condition-display :passingParam="passingParam"></condition-display>
60
+    </el-dialog>
61
+    <el-dialog title="流程进度" :visible.sync="detailsOpen" append-to-body width="600px">
62
+      <el-scrollbar style="height: 600px;">
63
+        <row-detail :rows="clickRow"></row-detail>
64
+      </el-scrollbar>
65
+    </el-dialog>
54
   </div>
66
   </div>
55
 </template>
67
 </template>
56
 
68
 
57
 <script>
69
 <script>
58
 import { finishedList, getDeployment, delDeployment, addDeployment, updateDeployment, exportDeployment, revokeProcess } from "@/api/flowable/finished";
70
 import { finishedList, getDeployment, delDeployment, addDeployment, updateDeployment, exportDeployment, revokeProcess } from "@/api/flowable/finished";
59
 import { getProcessVariables } from "@/api/flowable/definition";
71
 import { getProcessVariables } from "@/api/flowable/definition";
72
+import ConditionDisplay from '@/views/flowable/form/components/conditionDisplay.vue';
73
+import RowDetail from '../myProcess/send/rowDetail.vue';
60
 export default {
74
 export default {
61
   name: "Deploy",
75
   name: "Deploy",
62
   components: {
76
   components: {
77
+    ConditionDisplay,
78
+    RowDetail
63
   },
79
   },
64
   data() {
80
   data() {
65
     return {
81
     return {
100
       form: {},
116
       form: {},
101
       // 表单校验
117
       // 表单校验
102
       rules: {
118
       rules: {
103
-      }
119
+      },
120
+      passingParam: {},
121
+      formOpen: false,
122
+      // 当前点击的行数据
123
+      clickRow: {},
124
+      detailsOpen:false
104
     };
125
     };
105
   },
126
   },
106
   created() {
127
   created() {
177
     },
198
     },
178
     /** 流程流转记录 */
199
     /** 流程流转记录 */
179
     handleFlowRecord(row) {
200
     handleFlowRecord(row) {
201
+      // getProcessVariables(row.taskId).then(res => {
202
+      //   this.$router.push({
203
+      //     path: '/flowable/task/finished/detail/index',
204
+      //     query: {
205
+      //       procInsId: row.procInsId,
206
+      //       deployId: row.deployId,
207
+      //       taskId: row.taskId,
208
+      //       formId: res.data.formId,
209
+      //       procDefName: row.procDefName
210
+      //     }
211
+      //   })
212
+      // })
213
+      this.clickRow = row;
214
+      this.detailsOpen = true;
215
+    },
216
+    // 表单信息
217
+    handleFlowNote(row) {
180
       getProcessVariables(row.taskId).then(res => {
218
       getProcessVariables(row.taskId).then(res => {
181
-        this.$router.push({
182
-          path: '/flowable/task/finished/detail/index',
183
-          query: {
184
-            procInsId: row.procInsId,
185
-            deployId: row.deployId,
186
-            taskId: row.taskId,
187
-            formId: res.data.formId,
188
-            procDefName: row.procDefName
189
-          }
190
-        })
219
+        if (res.data) {
220
+          this.passingParam = row
221
+          this.passingParam.formId = res.data.formId
222
+          this.formOpen = true
223
+        }
191
       })
224
       })
192
     },
225
     },
193
     /** 撤回任务 */
226
     /** 撤回任务 */

+ 0
- 1
oa-ui/src/views/flowable/task/myProcess/index.vue Прегледај датотеку

451
     },
451
     },
452
     /** 删除按钮操作 */
452
     /** 删除按钮操作 */
453
     handleDelete(row) {
453
     handleDelete(row) {
454
-        console.log(row);
455
       const ids = row.procInsId || this.ids;// 暂不支持删除多个流程
454
       const ids = row.procInsId || this.ids;// 暂不支持删除多个流程
456
       this.$confirm('删除后,流程将会取消,是否确定删除?', "警告", {
455
       this.$confirm('删除后,流程将会取消,是否确定删除?', "警告", {
457
         confirmButtonText: "确定",
456
         confirmButtonText: "确定",

+ 0
- 1
oa-ui/src/views/flowable/task/todo/index.vue Прегледај датотеку

120
                  this.$set(item,'project',name)
120
                  this.$set(item,'project',name)
121
                 }
121
                 }
122
               })
122
               })
123
-              console.log(this.todoList);
124
             }
123
             }
125
           })
124
           })
126
         }
125
         }

+ 210
- 0
oa-ui/src/views/oa/contract/contractInfo.vue Прегледај датотеку

1
+<template>
2
+  <div>
3
+    <div class="box1">
4
+      <div class="title">合同信息
5
+        <div class="line"></div>
6
+      </div>
7
+      <div class="info">
8
+        <el-descriptions border style="margin-top: 10px;" :column="3">
9
+          <el-descriptions-item label="合同编码" label-class-name="my-label">
10
+            {{ form.contractCode }}
11
+          </el-descriptions-item>
12
+          <el-descriptions-item label="合同编号" label-class-name="my-label">
13
+            {{ form.contractNumber }}
14
+          </el-descriptions-item>
15
+          <el-descriptions-item label="合同金额" label-class-name="my-label">
16
+            {{ form.amount }}
17
+          </el-descriptions-item>
18
+          <el-descriptions-item label="履约保证金" label-class-name="my-label">
19
+            {{ form.deposit }}
20
+          </el-descriptions-item>
21
+          <el-descriptions-item label="拟稿人" label-class-name="my-label">
22
+            {{ getUserName(form.drafter) }}
23
+          </el-descriptions-item>
24
+          <el-descriptions-item label="拟稿日期" label-class-name="my-label">
25
+            {{ form.draftTime }}
26
+          </el-descriptions-item>
27
+          <el-descriptions-item label="合同文件" label-class-name="my-label" :span="3">
28
+            <div v-if="form.contractDocument">
29
+              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.contractDocument}`)">
30
+                {{ getFileName(form.contractDocument) }}
31
+              </el-link>
32
+              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.contractDocument}`"
33
+                :underline="false" target="_blank">
34
+                <span class="el-icon-download">下载文件</span>
35
+              </el-link>
36
+            </div>
37
+          </el-descriptions-item>
38
+          <el-descriptions-item label="合同备注" label-class-name="my-label">
39
+            {{ form.remark }}
40
+          </el-descriptions-item>
41
+          <el-descriptions-item label="签订日期" label-class-name="my-label">
42
+            {{ form.signDate }}
43
+          </el-descriptions-item>
44
+          <el-descriptions-item label="签订备注" label-class-name="my-label">
45
+            {{ form.signRemark }}
46
+          </el-descriptions-item>
47
+          <el-descriptions-item label="签订扫描件" label-class-name="my-label" :span="3">
48
+            <div v-if="form.signScan">
49
+              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.signScan}`)">
50
+                {{ getFileName(form.signScan) }}
51
+              </el-link>
52
+              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.signScan}`"
53
+                :underline="false" target="_blank">
54
+                <span class="el-icon-download">下载文件</span>
55
+              </el-link>
56
+            </div>
57
+          </el-descriptions-item>
58
+        </el-descriptions>
59
+      </div>
60
+    </div>
61
+    <div class="box1">
62
+      <div class="title">投标项目信息
63
+        <div class="line"></div>
64
+      </div>
65
+      <div class="info">
66
+        <el-descriptions border style="margin-top: 10px;" :column="3">
67
+          <el-descriptions-item label="投标项目名称" label-class-name="my-label" :span="3">
68
+            {{ tender.projectName }}
69
+          </el-descriptions-item>
70
+          <el-descriptions-item label="招标业主" label-class-name="my-label">
71
+            {{ tender.partyA }}</el-descriptions-item>
72
+          <el-descriptions-item label="代理联系人" label-class-name="my-label">
73
+            {{ tender.aPerson }}</el-descriptions-item>
74
+          <el-descriptions-item label="代理联系电话" label-class-name="my-label">
75
+            {{ tender.aPhone }}
76
+          </el-descriptions-item>
77
+          <el-descriptions-item label="投标委托人" label-class-name="my-label">
78
+            {{ getUserName(tender.trustee) }}
79
+          </el-descriptions-item>
80
+          <el-descriptions-item label="业主预算" label-class-name="my-label">
81
+            {{ tender.budget }}
82
+          </el-descriptions-item>
83
+          <el-descriptions-item label="拟报价金额" label-class-name="my-label">
84
+            {{ tender.quote }}
85
+          </el-descriptions-item>
86
+          <el-descriptions-item label="保证金" label-class-name="my-label">
87
+            {{ tender.deposit }}
88
+          </el-descriptions-item>
89
+          <el-descriptions-item label="招标文件" label-class-name="my-label" :span="2">
90
+            <div v-if="tender.bidDocument">
91
+              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + tender.bidDocument}`)">
92
+                {{ getFileName(tender.bidDocument) }}
93
+              </el-link>
94
+              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + tender.bidDocument}`"
95
+                :underline="false" target="_blank">
96
+                <span class="el-icon-download">下载文件</span>
97
+              </el-link>
98
+            </div>
99
+          </el-descriptions-item>
100
+          <el-descriptions-item label="项目内容简述" label-class-name="my-label" :span="3">
101
+            {{ tender.projectBriefly }}
102
+          </el-descriptions-item>
103
+          <el-descriptions-item label="标书文件" label-class-name="my-label" :span="3">
104
+            <div v-if="tender.tenderDocument">
105
+              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + tender.tenderDocument}`)">
106
+                {{ getFileName(tender.tenderDocument) }}
107
+              </el-link>
108
+              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + tender.tenderDocument}`"
109
+                :underline="false" target="_blank">
110
+                <span class="el-icon-download">下载文件</span>
111
+              </el-link>
112
+            </div>
113
+          </el-descriptions-item>
114
+        </el-descriptions>
115
+      </div>
116
+    </div>
117
+    <div class="box1">
118
+      <div class="title">关联项目
119
+        <div class="line"></div>
120
+      </div>
121
+      <div class="info">
122
+        
123
+      </div>
124
+    </div>
125
+  </div>
126
+</template>
127
+
128
+<script>
129
+import { listTender, getTender } from "@/api/oa/tender/tender";
130
+import { listContract, getContract } from "@/api/oa/contract/contract";
131
+import { getContractComment } from "@/api/oa/contract/contractComment";
132
+import { getContractMeeting } from "@/api/oa/contract/contractMeeting";
133
+import { getContractPayment } from "@/api/oa/contract/contractPayment";
134
+import { getContractWork } from "@/api/oa/contract/contractWork";
135
+export default {
136
+  props: {
137
+    form: {
138
+      type: Object,
139
+      require: true
140
+    }
141
+  },
142
+  watch: {
143
+    'form.contractId'() {
144
+      this.init()
145
+    }
146
+  },
147
+  mounted() {
148
+    this.init();
149
+  },
150
+  data() {
151
+    return {
152
+      baseUrl: process.env.VUE_APP_BASE_API,
153
+      tender: {}
154
+    }
155
+  },
156
+  methods: {
157
+    init() {
158
+      let contractId = this.form.contractId;
159
+      let tenderId = this.form.tenderId;
160
+      getTender(tenderId).then(response => {
161
+        this.tender = response.data;
162
+      })
163
+      getContractMeeting(contractId).then(res => {
164
+      })
165
+
166
+    },
167
+  }
168
+}
169
+</script>
170
+
171
+<style lang="scss" scoped>
172
+@import "@/assets/styles/element-reset.scss";
173
+
174
+.box1 {
175
+  width: 100%;
176
+  background-color: #ffffff;
177
+}
178
+
179
+.info {
180
+  padding: 20px;
181
+}
182
+
183
+.title {
184
+  font-size: 18px;
185
+  font-weight: bold;
186
+  padding: 20px 35px 0px;
187
+  position: relative;
188
+
189
+  .line {
190
+    position: absolute;
191
+    top: 22px;
192
+    left: 20px;
193
+    width: 4px;
194
+    height: 20px;
195
+    border-radius: 20px;
196
+    background-color: #409EFF;
197
+  }
198
+}
199
+
200
+::v-deep .el-descriptions-item__label.is-bordered-label {
201
+  color: #5a5757;
202
+  background: rgba($color: #a9adb3, $alpha: 0.1);
203
+  width: 150px;
204
+  min-width: 150px;
205
+}
206
+
207
+::v-deep .el-descriptions .is-bordered .el-descriptions-item__cell {
208
+  border: 1px solid #cdd0d3;
209
+}
210
+</style>

+ 17
- 13
oa-ui/src/views/oa/contract/index.vue Прегледај датотеку

1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-03-18 09:05:41
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-06-11 16:35:10
6
+-->
1
 <template>
7
 <template>
2
   <div class="app-container">
8
   <div class="app-container">
3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
9
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
47
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
53
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
48
     </el-row> -->
54
     </el-row> -->
49
 
55
 
50
-    <el-table v-loading="loading" :data="contractList" @selection-change="handleSelectionChange">
56
+    <el-table v-loading="loading" border :data="contractList" @selection-change="handleSelectionChange">
51
       <el-table-column type="selection" width="55" align="center" />
57
       <el-table-column type="selection" width="55" align="center" />
52
       <!-- <el-table-column label="合同id" align="center" prop="contractId" /> -->
58
       <!-- <el-table-column label="合同id" align="center" prop="contractId" /> -->
53
       <el-table-column label="合同编号" align="center" prop="contractNumber" />
59
       <el-table-column label="合同编号" align="center" prop="contractNumber" />
147
       </div>
153
       </div>
148
     </el-dialog>
154
     </el-dialog>
149
     <!-- 查看详情 -->
155
     <!-- 查看详情 -->
150
-    <el-dialog :title="title" :visible.sync="openInfo" width="600px" append-to-body>
151
-      <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
152
-        <li key="li01" class="el-upload-list__item ele-upload-list__item-content">
153
-          <el-link :href="`${baseUrl}${'/profile/upload' + form.contractDocument}`" :underline="false" target="_blank">
154
-            <span class="el-icon-document"> {{ getFileName(form.contractDocument) }} </span>
155
-          </el-link>
156
-        </li>
157
-      </transition-group>
158
-      <el-button class="ml20" type="primary" size="mini" plain
159
-        @click="reviewWord(`${baseUrl}${'/profile/upload' + form.contractDocument}`)">在线预览</el-button>
156
+    <el-dialog :title="title" :visible.sync="openInfo" width="80%" append-to-body>
157
+      <!-- <contract-info :form="form"></contract-info> -->
158
+      <contract-form :taskForm="taskForm" :taskName="''" :flowDisabled="false"></contract-form>
160
     </el-dialog>
159
     </el-dialog>
161
   </div>
160
   </div>
162
 </template>
161
 </template>
163
 
162
 
164
 <script>
163
 <script>
165
 import { listContract, getContract, delContract, addContract, updateContract } from "@/api/oa/contract/contract";
164
 import { listContract, getContract, delContract, addContract, updateContract } from "@/api/oa/contract/contract";
165
+import contractInfo from './contractInfo.vue';
166
+import ContractForm from '../../flowable/form/business/contractForm.vue';
166
 export default {
167
 export default {
168
+  components: { contractInfo, ContractForm },
167
   name: "Contract",
169
   name: "Contract",
168
   data() {
170
   data() {
169
     return {
171
     return {
207
       // 表单校验
209
       // 表单校验
208
       rules: {
210
       rules: {
209
       },
211
       },
210
-      project: {}
212
+      project: {},
213
+      taskForm:{}
211
     };
214
     };
212
   },
215
   },
213
   created() {
216
   created() {
282
     handleView(row) {
285
     handleView(row) {
283
       this.openInfo = true;
286
       this.openInfo = true;
284
       this.title = "合同详情";
287
       this.title = "合同详情";
285
-      this.form = row
288
+      this.form = row;
289
+      this.$set(this.taskForm,'formId',row.contractId)
286
     },
290
     },
287
     /** 修改按钮操作 */
291
     /** 修改按钮操作 */
288
     handleUpdate(row) {
292
     handleUpdate(row) {

+ 1
- 3
oa-ui/src/views/oa/project/index.vue Прегледај датотеку

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-27 14:49:15
3
  * @Date: 2024-02-27 14:49:15
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-04 15:49:07
5
+ * @LastEditTime: 2024-06-11 16:37:26
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="project-wrapper">
8
   <div class="project-wrapper">
311
               } else {
311
               } else {
312
                 this.$set(project, 'percentage', 0)
312
                 this.$set(project, 'percentage', 0)
313
               }
313
               }
314
-
315
-              console.log(this.projectList);
316
             }
314
             }
317
           })
315
           })
318
         }
316
         }

+ 12
- 6
oa-ui/src/views/oa/tender/index.vue Прегледај датотеку

204
           </el-descriptions-item>
204
           </el-descriptions-item>
205
           <el-descriptions-item>
205
           <el-descriptions-item>
206
             <template slot="label">
206
             <template slot="label">
207
-              拟报价金额
207
+              <span class="require_input">* </span>拟报价金额
208
             </template>
208
             </template>
209
             <el-form-item prop="quote">
209
             <el-form-item prop="quote">
210
               <el-input-number :controls="false" v-model="form.quote"></el-input-number><span> 元</span>
210
               <el-input-number :controls="false" v-model="form.quote"></el-input-number><span> 元</span>
212
           </el-descriptions-item>
212
           </el-descriptions-item>
213
           <el-descriptions-item>
213
           <el-descriptions-item>
214
             <template slot="label">
214
             <template slot="label">
215
-              保证金
215
+              <span class="require_input">* </span>保证金
216
             </template>
216
             </template>
217
             <el-form-item prop="deposit">
217
             <el-form-item prop="deposit">
218
               <el-input-number :controls="false" v-model="form.deposit"></el-input-number><span> 元</span>
218
               <el-input-number :controls="false" v-model="form.deposit"></el-input-number><span> 元</span>
286
               </el-select>
286
               </el-select>
287
             </el-form-item>
287
             </el-form-item>
288
           </el-descriptions-item>
288
           </el-descriptions-item>
289
-          <el-descriptions-item>
289
+          <el-descriptions-item :span="2">
290
             <template slot="label">
290
             <template slot="label">
291
               <span class="require_input">* </span>商务标书要求提交时间
291
               <span class="require_input">* </span>商务标书要求提交时间
292
             </template>
292
             </template>
307
               </el-select>
307
               </el-select>
308
             </el-form-item>
308
             </el-form-item>
309
           </el-descriptions-item>
309
           </el-descriptions-item>
310
-          <el-descriptions-item>
310
+          <el-descriptions-item :span="2">
311
             <template slot="label">
311
             <template slot="label">
312
               <span class="require_input">* </span>技术标书要求提交时间
312
               <span class="require_input">* </span>技术标书要求提交时间
313
             </template>
313
             </template>
350
               </el-select>
350
               </el-select>
351
             </el-form-item>
351
             </el-form-item>
352
           </el-descriptions-item>
352
           </el-descriptions-item>
353
-          <el-descriptions-item>
353
+          <el-descriptions-item :span="3">
354
             <template slot="label">
354
             <template slot="label">
355
               标书文件
355
               标书文件
356
             </template>
356
             </template>
463
           { required: true, message: '业主预算不能为空', trigger: 'blur' }
463
           { required: true, message: '业主预算不能为空', trigger: 'blur' }
464
         ],
464
         ],
465
         agent: [
465
         agent: [
466
-          { required: true, message: '招标代理不能忘为空', trigger: 'blur' }
466
+          { required: true, message: '招标代理不能为空', trigger: 'blur' }
467
+        ],
468
+        quote: [
469
+          { required: true, message: '拟保价金额不能为空', trigger: 'blur' }
470
+        ],
471
+        deposit: [
472
+          { required: true, message: '保证金不能为空', trigger: 'blur' }
467
         ],
473
         ],
468
         place: [
474
         place: [
469
           { required: true, message: '投标地点不能为空', trigger: 'blur' }
475
           { required: true, message: '投标地点不能为空', trigger: 'blur' }

Loading…
Откажи
Сачувај