Kaynağa Gözat

修改引用结构,修改结算

余思翰 1 yıl önce
ebeveyn
işleme
57a44b9327
47 değiştirilmiş dosya ile 5447 ekleme ve 5283 silme
  1. 7
    0
      oa-ui/src/assets/datas/publicData.js
  2. 2
    2
      oa-ui/src/router/index.js
  3. 0
    0
      oa-ui/src/views/flowable/form/access/cwForm.vue
  4. 806
    806
      oa-ui/src/views/flowable/form/access/cwTable.vue
  5. 0
    0
      oa-ui/src/views/flowable/form/access/jsForm.vue
  6. 0
    0
      oa-ui/src/views/flowable/form/access/jsTable.vue
  7. 0
    0
      oa-ui/src/views/flowable/form/access/jyForm.vue
  8. 0
    0
      oa-ui/src/views/flowable/form/access/jyTable.vue
  9. 0
    0
      oa-ui/src/views/flowable/form/access/scForm.vue
  10. 0
    0
      oa-ui/src/views/flowable/form/access/scTable.vue
  11. 0
    0
      oa-ui/src/views/flowable/form/access/xmForm.vue
  12. 0
    0
      oa-ui/src/views/flowable/form/access/xmTable.vue
  13. 0
    0
      oa-ui/src/views/flowable/form/access/zhForm.vue
  14. 0
    0
      oa-ui/src/views/flowable/form/access/zhTable.vue
  15. 3
    3
      oa-ui/src/views/flowable/form/budget/addBudget.vue
  16. 2
    2
      oa-ui/src/views/flowable/form/budget/budget.vue
  17. 0
    0
      oa-ui/src/views/flowable/form/budget/budgetDetails.vue
  18. 168
    168
      oa-ui/src/views/flowable/form/budget/components/budgetForm.vue
  19. 0
    0
      oa-ui/src/views/flowable/form/budget/components/budgetTable.vue
  20. 0
    0
      oa-ui/src/views/flowable/form/budget/components/chooseCar.vue
  21. 0
    0
      oa-ui/src/views/flowable/form/budget/components/chooseDevice.vue
  22. 0
    0
      oa-ui/src/views/flowable/form/budget/components/chooseMoney.vue
  23. 0
    0
      oa-ui/src/views/flowable/form/budget/components/choosePeople.vue
  24. 407
    407
      oa-ui/src/views/flowable/form/budget/index.vue
  25. 425
    425
      oa-ui/src/views/flowable/form/business/brandForm.vue
  26. 955
    955
      oa-ui/src/views/flowable/form/business/contractForm.vue
  27. 973
    973
      oa-ui/src/views/flowable/form/business/subContract.vue
  28. 12
    9
      oa-ui/src/views/flowable/form/components/conditionDisplay.vue
  29. 106
    0
      oa-ui/src/views/flowable/form/components/detailDisplay.vue
  30. 169
    149
      oa-ui/src/views/flowable/form/components/settlePrint.vue
  31. 650
    650
      oa-ui/src/views/flowable/form/finance/borrowForm.vue
  32. 547
    547
      oa-ui/src/views/flowable/form/finance/depositForm.vue
  33. 0
    0
      oa-ui/src/views/flowable/form/inProgress/borrowData.vue
  34. 147
    0
      oa-ui/src/views/flowable/form/inProgress/settleData.vue
  35. 0
    0
      oa-ui/src/views/flowable/form/oa/carForm.vue
  36. 0
    0
      oa-ui/src/views/flowable/form/oa/deviceForm.vue
  37. 3
    3
      oa-ui/src/views/flowable/form/projectProcess/inProgress.vue
  38. 0
    69
      oa-ui/src/views/flowable/form/settle/settleData.vue
  39. 36
    8
      oa-ui/src/views/flowable/form/settleForm.vue
  40. 7
    7
      oa-ui/src/views/flowable/task/finished/detail/index.vue
  41. 1
    1
      oa-ui/src/views/flowable/task/form/index.vue
  42. 3
    3
      oa-ui/src/views/flowable/task/myProcess/index.vue
  43. 7
    7
      oa-ui/src/views/flowable/task/myProcess/send/index.vue
  44. 2
    2
      oa-ui/src/views/flowable/task/todo/applyForm/borrowIndex.vue
  45. 1
    1
      oa-ui/src/views/flowable/task/todo/applyForm/carIndex.vue
  46. 2
    3
      oa-ui/src/views/flowable/task/todo/applyForm/deviceIndex.vue
  47. 6
    83
      oa-ui/src/views/flowable/task/todo/detail/index.vue

+ 7
- 0
oa-ui/src/assets/datas/publicData.js Dosyayı Görüntüle

@@ -1,6 +1,13 @@
1
+/*
2
+ * @Author: ysh
3
+ * @Date: 2024-04-24 15:07:42
4
+ * @LastEditors: 
5
+ * @LastEditTime: 2024-05-10 13:40:14
6
+ */
1 7
 const publicData = {
2 8
   partySecretary: 4, //党委书记
3 9
   leagueSecretary: 142, //团委书记
10
+  gm: 7, //总经理
4 11
   chairman: 2,//董事长
5 12
   pathRoute: [
6 13
     {

+ 2
- 2
oa-ui/src/router/index.js Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-30 09:53:32
5
+ * @LastEditTime: 2024-05-10 16:24:43
6 6
  */
7 7
 /*
8 8
  * @Author: ysh
@@ -227,7 +227,7 @@ export const constantRoutes = [
227 227
     children: [
228 228
       {
229 229
         path: '',
230
-        component: () => import('@/views/oa/budget/addBudget'),
230
+        component: () => import('@/views/flowable/form/budget/addBudget.vue'),
231 231
         name: 'addBudget',
232 232
         meta: { title: '新增预算', icon: '' }
233 233
 

oa-ui/src/views/flowable/form/cwForm.vue → oa-ui/src/views/flowable/form/access/cwForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/access/cwTable.vue
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


oa-ui/src/views/flowable/form/jsForm.vue → oa-ui/src/views/flowable/form/access/jsForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/jsTable.vue → oa-ui/src/views/flowable/form/access/jsTable.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/jyForm.vue → oa-ui/src/views/flowable/form/access/jyForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/jyTable.vue → oa-ui/src/views/flowable/form/access/jyTable.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/scForm.vue → oa-ui/src/views/flowable/form/access/scForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/scTable.vue → oa-ui/src/views/flowable/form/access/scTable.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/xmForm.vue → oa-ui/src/views/flowable/form/access/xmForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/xmTable.vue → oa-ui/src/views/flowable/form/access/xmTable.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/zhForm.vue → oa-ui/src/views/flowable/form/access/zhForm.vue Dosyayı Görüntüle


oa-ui/src/views/flowable/form/zhTable.vue → oa-ui/src/views/flowable/form/access/zhTable.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/addBudget.vue → oa-ui/src/views/flowable/form/budget/addBudget.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-25 15:05:59
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-29 14:11:34
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-10 14:07:41
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -55,7 +55,7 @@
55 55
                   <td style="width: 100px">单位</td>
56 56
                   <td style="width: 100px">工作量</td>
57 57
                   <td style="width: 100px">要求完成时间</td>
58
-                  <td style="width: 100px">备注</td>
58
+                  <td style="width: 200px">备注</td>
59 59
                 </tr>
60 60
                 <tr v-for="(work, index) in workList" :key="index">
61 61
                   <td>

+ 2
- 2
oa-ui/src/views/flowable/form/budget/budget.vue Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-08 16:08:33
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-08 16:35:39
5
+ * @LastEditTime: 2024-05-10 16:16:04
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -12,7 +12,7 @@
12 12
 </template>
13 13
 
14 14
 <script>
15
-import AddBudget from '@/views/oa/budget/addBudget.vue';
15
+import AddBudget from '@/views/flowable/form/budget/addBudget.vue';
16 16
 import BudgetInfo from './budgetInfo.vue';
17 17
 export default {
18 18
   props: {

oa-ui/src/views/oa/budget/budgetDetails.vue → oa-ui/src/views/flowable/form/budget/budgetDetails.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/components/budgetForm.vue → oa-ui/src/views/flowable/form/budget/components/budgetForm.vue Dosyayı Görüntüle

@@ -1,168 +1,168 @@
1
-<!--
2
- * @Author: ysh
3
- * @Date: 2024-04-03 16:28:09
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-29 14:34:29
6
--->
7
-<template>
8
-  <div>
9
-    <h2 style="text-align: center">项目直接生产成本预算表</h2>
10
-    <table border="1" class="table">
11
-      <tr>
12
-        <td class="head">项目名称</td>
13
-        <td colspan="3">{{ projectForm.projectName }}</td>
14
-        <td class="head">项目编号</td>
15
-        <td colspan="2">{{ projectForm.projectNumber }}</td>
16
-      </tr>
17
-      <tr>
18
-        <td :rowspan="userLen" class="head">人员</td>
19
-        <td class="head">姓名</td>
20
-        <td class="head">岗位工资</td>
21
-        <td class="head">人员成本(天)</td>
22
-        <td class="head">进出场单价</td>
23
-        <td class="head">预算天数</td>
24
-        <td class="head">金额</td>
25
-      </tr>
26
-      <tr v-for="user in chooseUser" :key="'user' + user.userId">
27
-        <td>{{ user.nickName }}</td>
28
-        <td>{{ user.salary.salary }}</td>
29
-        <td>{{ parseFloat(user.salary.salary / 31).toFixed(2) }}</td>
30
-        <td>{{ user.inOutPrice }}</td>
31
-        <td>{{ user.days }}</td>
32
-        <td>{{ user.staffCost }}</td>
33
-      </tr>
34
-      <tr>
35
-        <td :rowspan="carLen" class="head">车辆</td>
36
-        <td class="head">车牌号</td>
37
-        <td class="head">油耗</td>
38
-        <td class="head">总里程</td>
39
-        <td class="head">折旧成天(天)</td>
40
-        <td class="head">预算天数</td>
41
-        <td class="head">金额</td>
42
-      </tr>
43
-      <tr v-for="car in chooseCar" :key="'car' + car.carId">
44
-        <td>{{ car.licensePlate }}</td>
45
-        <td>{{ car.mileage }}</td>
46
-        <td>{{ car.distance }}</td>
47
-        <td>{{ car.dayCost }}</td>
48
-        <td>{{ car.days }}</td>
49
-        <td>{{ car.expense }}</td>
50
-      </tr>
51
-      <tr>
52
-        <td :rowspan="deviceLen" class="head">设备</td>
53
-        <td class="head">设备名称</td>
54
-        <td class="head">规格型号</td>
55
-        <td class="head">品牌</td>
56
-        <td class="head">折旧成本(天)</td>
57
-        <td class="head">预算天数</td>
58
-        <td class="head">金额</td>
59
-      </tr>
60
-      <tr v-for="device in chooseDevice" :key="'device' + device.deviceId">
61
-        <td>{{ device.name }}</td>
62
-        <td>{{ device.series }}</td>
63
-        <td>{{ device.brand }}</td>
64
-        <td>{{ device.dayCost }}</td>
65
-        <td>{{ device.days }}</td>
66
-        <td>{{ device.depreciation }}</td>
67
-      </tr>
68
-      <tr>
69
-        <td colspan="6" class="head">固定成本小计</td>
70
-        <td>{{ budgetForm.fixCost }}</td>
71
-      </tr>
72
-      <tr>
73
-        <td :rowspan="workLen" class="head">预计结算金额</td>
74
-        <td class="head">工作内容</td>
75
-        <td class="head">比例尺</td>
76
-        <td class="head">总工作量</td>
77
-        <td class="head">单价</td>
78
-        <td class="head">系数</td>
79
-        <td class="head">金额</td>
80
-      </tr>
81
-      <tr v-for="(work, index) in workList" :key="'work' + index">
82
-        <td>{{ work.content }}</td>
83
-        <td>{{ work.scale }}</td>
84
-        <td>{{ work.workload }}</td>
85
-        <td>{{ work.price }}</td>
86
-        <td>{{ work.coefficient }}</td>
87
-        <td>{{ work.settle }}</td>
88
-      </tr>
89
-      <tr>
90
-        <td colspan="5" class="head">外协费用</td>
91
-        <td>{{ budgetForm.outExpense }}</td>
92
-      </tr>
93
-      <tr>
94
-        <td colspan="5" class="head">商务费用</td>
95
-        <td>{{ budgetForm.businessExpense }}</td>
96
-      </tr>
97
-      <tr>
98
-        <td colspan="5" class="head">车船租赁</td>
99
-        <td>{{ budgetForm.rentExpense }}</td>
100
-      </tr>
101
-      <tr>
102
-        <td colspan="5" class="head">其他费用</td>
103
-        <td>{{ budgetForm.otherExpense }}</td>
104
-      </tr>
105
-      <tr>
106
-        <td colspan="6" class="head">直接成本小计</td>
107
-        <td>{{ budgetForm.directExpense }}</td>
108
-      </tr>
109
-      <tr>
110
-        <td colspan="6" class="head">总成本=(固定成本+直接成本)*120%</td>
111
-        <td>{{ budgetForm.totalBudget }}</td>
112
-      </tr>
113
-      <!-- <tr>
114
-        <td class="head">编制人</td>
115
-        <td colspan="2">{{  }}</td>
116
-        <td class="head">审核人</td>
117
-        <td colspan="3"></td>
118
-      </tr> -->
119
-    </table>
120
-  </div>
121
-</template>
122
-
123
-<script>
124
-import { listBudget } from "@/api/oa/budget/budget";
125
-import { listBudgetCar } from "@/api/oa/budget/budgetCar";
126
-import { listBudgetDevice } from "@/api/oa/budget/budgetDevice";
127
-import { listBudgetSettle } from "@/api/oa/budget/budgetSettle";
128
-import { listBudgetStaff } from "@/api/oa/budget/budgetStaff";
129
-export default {
130
-  data() {
131
-    return {
132
-      projectId: "103",
133
-      budgetForm: {},
134
-      projectForm: {},
135
-      userLen: 1,
136
-      carLen: 1,
137
-      deviceLen: 1,
138
-      workLen: 1,
139
-      totalBudget: 0,
140
-      chooseCar: [],
141
-      chooseDevice: [],
142
-      chooseUser: [],
143
-      workList:[]
144
-    };
145
-  },
146
-  created() {
147
-    this.initBudgetForm();
148
-    this.userLen = this.chooseUser.length + 1;
149
-    this.carLen = this.chooseCar.length + 1;
150
-    this.deviceLen = this.chooseDevice.length + 1;
151
-    this.workLen = this.workList.length + 5;
152
-    this.totalBudget = (
153
-      (Number(this.budgetForm.directExpense) + Number(this.budgetForm.fixCost)) *
154
-      1.2
155
-    ).toFixed(2);
156
-  },
157
-  methods: {
158
-    initBudgetForm() {
159
-      listBudget({ pageNum: 1, pageSize: 20, projectId: this.projectId }).then(res => {
160
-        this.budgetForm = res.rows[0];
161
-      });
162
-    },
163
-  
164
-  },
165
-};
166
-</script>
167
-
168
-<style lang="scss" scoped></style>
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-04-03 16:28:09
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-04-29 14:34:29
6
+-->
7
+<template>
8
+  <div>
9
+    <h2 style="text-align: center">项目直接生产成本预算表</h2>
10
+    <table border="1" class="table">
11
+      <tr>
12
+        <td class="head">项目名称</td>
13
+        <td colspan="3">{{ projectForm.projectName }}</td>
14
+        <td class="head">项目编号</td>
15
+        <td colspan="2">{{ projectForm.projectNumber }}</td>
16
+      </tr>
17
+      <tr>
18
+        <td :rowspan="userLen" class="head">人员</td>
19
+        <td class="head">姓名</td>
20
+        <td class="head">岗位工资</td>
21
+        <td class="head">人员成本(天)</td>
22
+        <td class="head">进出场单价</td>
23
+        <td class="head">预算天数</td>
24
+        <td class="head">金额</td>
25
+      </tr>
26
+      <tr v-for="user in chooseUser" :key="'user' + user.userId">
27
+        <td>{{ user.nickName }}</td>
28
+        <td>{{ user.salary.salary }}</td>
29
+        <td>{{ parseFloat(user.salary.salary / 31).toFixed(2) }}</td>
30
+        <td>{{ user.inOutPrice }}</td>
31
+        <td>{{ user.days }}</td>
32
+        <td>{{ user.staffCost }}</td>
33
+      </tr>
34
+      <tr>
35
+        <td :rowspan="carLen" class="head">车辆</td>
36
+        <td class="head">车牌号</td>
37
+        <td class="head">油耗</td>
38
+        <td class="head">总里程</td>
39
+        <td class="head">折旧成天(天)</td>
40
+        <td class="head">预算天数</td>
41
+        <td class="head">金额</td>
42
+      </tr>
43
+      <tr v-for="car in chooseCar" :key="'car' + car.carId">
44
+        <td>{{ car.licensePlate }}</td>
45
+        <td>{{ car.mileage }}</td>
46
+        <td>{{ car.distance }}</td>
47
+        <td>{{ car.dayCost }}</td>
48
+        <td>{{ car.days }}</td>
49
+        <td>{{ car.expense }}</td>
50
+      </tr>
51
+      <tr>
52
+        <td :rowspan="deviceLen" class="head">设备</td>
53
+        <td class="head">设备名称</td>
54
+        <td class="head">规格型号</td>
55
+        <td class="head">品牌</td>
56
+        <td class="head">折旧成本(天)</td>
57
+        <td class="head">预算天数</td>
58
+        <td class="head">金额</td>
59
+      </tr>
60
+      <tr v-for="device in chooseDevice" :key="'device' + device.deviceId">
61
+        <td>{{ device.name }}</td>
62
+        <td>{{ device.series }}</td>
63
+        <td>{{ device.brand }}</td>
64
+        <td>{{ device.dayCost }}</td>
65
+        <td>{{ device.days }}</td>
66
+        <td>{{ device.depreciation }}</td>
67
+      </tr>
68
+      <tr>
69
+        <td colspan="6" class="head">固定成本小计</td>
70
+        <td>{{ budgetForm.fixCost }}</td>
71
+      </tr>
72
+      <tr>
73
+        <td :rowspan="workLen" class="head">预计结算金额</td>
74
+        <td class="head">工作内容</td>
75
+        <td class="head">比例尺</td>
76
+        <td class="head">总工作量</td>
77
+        <td class="head">单价</td>
78
+        <td class="head">系数</td>
79
+        <td class="head">金额</td>
80
+      </tr>
81
+      <tr v-for="(work, index) in workList" :key="'work' + index">
82
+        <td>{{ work.content }}</td>
83
+        <td>{{ work.scale }}</td>
84
+        <td>{{ work.workload }}</td>
85
+        <td>{{ work.price }}</td>
86
+        <td>{{ work.coefficient }}</td>
87
+        <td>{{ work.settle }}</td>
88
+      </tr>
89
+      <tr>
90
+        <td colspan="5" class="head">外协费用</td>
91
+        <td>{{ budgetForm.outExpense }}</td>
92
+      </tr>
93
+      <tr>
94
+        <td colspan="5" class="head">商务费用</td>
95
+        <td>{{ budgetForm.businessExpense }}</td>
96
+      </tr>
97
+      <tr>
98
+        <td colspan="5" class="head">车船租赁</td>
99
+        <td>{{ budgetForm.rentExpense }}</td>
100
+      </tr>
101
+      <tr>
102
+        <td colspan="5" class="head">其他费用</td>
103
+        <td>{{ budgetForm.otherExpense }}</td>
104
+      </tr>
105
+      <tr>
106
+        <td colspan="6" class="head">直接成本小计</td>
107
+        <td>{{ budgetForm.directExpense }}</td>
108
+      </tr>
109
+      <tr>
110
+        <td colspan="6" class="head">总成本=(固定成本+直接成本)*120%</td>
111
+        <td>{{ budgetForm.totalBudget }}</td>
112
+      </tr>
113
+      <!-- <tr>
114
+        <td class="head">编制人</td>
115
+        <td colspan="2">{{  }}</td>
116
+        <td class="head">审核人</td>
117
+        <td colspan="3"></td>
118
+      </tr> -->
119
+    </table>
120
+  </div>
121
+</template>
122
+
123
+<script>
124
+import { listBudget } from "@/api/oa/budget/budget";
125
+import { listBudgetCar } from "@/api/oa/budget/budgetCar";
126
+import { listBudgetDevice } from "@/api/oa/budget/budgetDevice";
127
+import { listBudgetSettle } from "@/api/oa/budget/budgetSettle";
128
+import { listBudgetStaff } from "@/api/oa/budget/budgetStaff";
129
+export default {
130
+  data() {
131
+    return {
132
+      projectId: "103",
133
+      budgetForm: {},
134
+      projectForm: {},
135
+      userLen: 1,
136
+      carLen: 1,
137
+      deviceLen: 1,
138
+      workLen: 1,
139
+      totalBudget: 0,
140
+      chooseCar: [],
141
+      chooseDevice: [],
142
+      chooseUser: [],
143
+      workList:[]
144
+    };
145
+  },
146
+  created() {
147
+    this.initBudgetForm();
148
+    this.userLen = this.chooseUser.length + 1;
149
+    this.carLen = this.chooseCar.length + 1;
150
+    this.deviceLen = this.chooseDevice.length + 1;
151
+    this.workLen = this.workList.length + 5;
152
+    this.totalBudget = (
153
+      (Number(this.budgetForm.directExpense) + Number(this.budgetForm.fixCost)) *
154
+      1.2
155
+    ).toFixed(2);
156
+  },
157
+  methods: {
158
+    initBudgetForm() {
159
+      listBudget({ pageNum: 1, pageSize: 20, projectId: this.projectId }).then(res => {
160
+        this.budgetForm = res.rows[0];
161
+      });
162
+    },
163
+  
164
+  },
165
+};
166
+</script>
167
+
168
+<style lang="scss" scoped></style>

oa-ui/src/views/oa/budget/components/budgetTable.vue → oa-ui/src/views/flowable/form/budget/components/budgetTable.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/components/chooseCar.vue → oa-ui/src/views/flowable/form/budget/components/chooseCar.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/components/chooseDevice.vue → oa-ui/src/views/flowable/form/budget/components/chooseDevice.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/components/chooseMoney.vue → oa-ui/src/views/flowable/form/budget/components/chooseMoney.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/components/choosePeople.vue → oa-ui/src/views/flowable/form/budget/components/choosePeople.vue Dosyayı Görüntüle


oa-ui/src/views/oa/budget/index.vue → oa-ui/src/views/flowable/form/budget/index.vue Dosyayı Görüntüle

@@ -1,407 +1,407 @@
1
-<!--
2
- * @Author: ysh
3
- * @Date: 2024-03-21 17:49:15
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-07 09:34:27
6
--->
7
-<template>
8
-  <div class="app-container">
9
-    <el-form
10
-      :model="queryParams"
11
-      ref="queryForm"
12
-      size="small"
13
-      :inline="true"
14
-      v-show="showSearch"
15
-      label-width="68px"
16
-    >
17
-      <el-form-item label="项目编号" prop="projectId">
18
-        <el-select
19
-          v-model="queryParams.projectId"
20
-          filterable
21
-          placeholder="请选择"
22
-          clearable
23
-        >
24
-          <el-option
25
-            v-for="item in projectList"
26
-            :key="item.projectId"
27
-            :label="item.projectNumber"
28
-            :value="item.projectId"
29
-          >
30
-          </el-option>
31
-        </el-select>
32
-      </el-form-item>
33
-      <el-form-item>
34
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
35
-          >搜索</el-button
36
-        >
37
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
38
-      </el-form-item>
39
-    </el-form>
40
-
41
-    <el-row :gutter="10" class="mb8">
42
-      <el-col :span="1.5">
43
-        <el-button
44
-          type="primary"
45
-          plain
46
-          icon="el-icon-plus"
47
-          size="mini"
48
-          @click="handleAdd"
49
-          v-hasPermi="['oa:budget:add']"
50
-          >新增</el-button
51
-        >
52
-      </el-col>
53
-      <el-col :span="1.5">
54
-        <el-button
55
-          type="success"
56
-          plain
57
-          icon="el-icon-edit"
58
-          size="mini"
59
-          :disabled="single"
60
-          @click="handleUpdate"
61
-          v-hasPermi="['oa:budget:edit']"
62
-          >修改</el-button
63
-        >
64
-      </el-col>
65
-      <el-col :span="1.5">
66
-        <el-button
67
-          type="danger"
68
-          plain
69
-          icon="el-icon-delete"
70
-          size="mini"
71
-          :disabled="multiple"
72
-          @click="handleDelete"
73
-          v-hasPermi="['oa:budget:remove']"
74
-          >删除</el-button
75
-        >
76
-      </el-col>
77
-      <el-col :span="1.5">
78
-        <el-button
79
-          type="warning"
80
-          plain
81
-          icon="el-icon-download"
82
-          size="mini"
83
-          @click="handleExport"
84
-          v-hasPermi="['oa:budget:export']"
85
-          >导出</el-button
86
-        >
87
-      </el-col>
88
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
89
-    </el-row>
90
-
91
-    <el-table
92
-      v-loading="loading"
93
-      :data="budgetList"
94
-      @selection-change="handleSelectionChange"
95
-    >
96
-      <el-table-column type="selection" width="55" align="center" />
97
-      <!-- <el-table-column label="预算id" align="center" prop="budgetId" /> -->
98
-      <el-table-column label="项目编号" align="center" prop="project.projectNumber" />
99
-      <el-table-column
100
-        label="项目名称"
101
-        align="center"
102
-        prop="project.projectName"
103
-        width="200px"
104
-      />
105
-      <el-table-column label="人员成本" align="center" prop="staffCost" />
106
-      <el-table-column label="车辆成本" align="center" prop="carCost" />
107
-      <el-table-column label="设备成本" align="center" prop="deviceCost" />
108
-      <el-table-column label="固定成本" align="center" prop="fixCost" />
109
-      <el-table-column label="预结算额" align="center" prop="settleExpense" />
110
-      <el-table-column label="外协费用" align="center" prop="outExpense" />
111
-      <el-table-column label="商务费用" align="center" prop="businessExpense" />
112
-      <el-table-column label="车船租赁" align="center" prop="rentExpense" />
113
-      <el-table-column label="其他费用" align="center" prop="otherExpense" />
114
-      <el-table-column label="直接成本" align="center" prop="directExpense" />
115
-      <el-table-column label="预算总额" align="center" prop="totalBudget" />
116
-      <el-table-column label="编制人" align="center" prop="compilerUser.nickName" />
117
-      <el-table-column label="审核人" align="center" prop="auditorUser.nickName" />
118
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
119
-        <template slot-scope="scope">
120
-          <!-- <el-button
121
-            size="mini"
122
-            type="text"
123
-            icon="el-icon-edit"
124
-            @click="handleUpdate(scope.row)"
125
-            v-hasPermi="['oa:budget:edit']"
126
-            >修改</el-button
127
-          > -->
128
-          <el-button
129
-            size="mini"
130
-            type="text"
131
-            icon="el-icon-view"
132
-            @click="handleDetails(scope.row)"
133
-            >详情</el-button
134
-          >
135
-          <!-- <el-button
136
-            size="mini"
137
-            type="text"
138
-            icon="el-icon-delete"
139
-            @click="handleDelete(scope.row)"
140
-            v-hasPermi="['oa:budget:remove']"
141
-            >删除</el-button
142
-          > -->
143
-        </template>
144
-      </el-table-column>
145
-    </el-table>
146
-
147
-    <pagination
148
-      v-show="total > 0"
149
-      :total="total"
150
-      :page.sync="queryParams.pageNum"
151
-      :limit.sync="queryParams.pageSize"
152
-      @pagination="getList"
153
-    />
154
-
155
-    <!-- 添加或修改cmc预算管理对话框 -->
156
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
157
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
158
-        <el-form-item label="项目id" prop="projectId">
159
-          <el-input v-model="form.projectId" placeholder="请输入项目id" />
160
-        </el-form-item>
161
-        <el-form-item label="人员成本" prop="staffCost">
162
-          <el-input v-model="form.staffCost" placeholder="请输入人员成本" />
163
-        </el-form-item>
164
-        <el-form-item label="车辆成本" prop="carCost">
165
-          <el-input v-model="form.carCost" placeholder="请输入车辆成本" />
166
-        </el-form-item>
167
-        <el-form-item label="设备成本" prop="deviceCost">
168
-          <el-input v-model="form.deviceCost" placeholder="请输入设备成本" />
169
-        </el-form-item>
170
-        <el-form-item label="固定成本" prop="fixCost">
171
-          <el-input v-model="form.fixCost" placeholder="请输入固定成本" />
172
-        </el-form-item>
173
-        <el-form-item label="预结算额" prop="settleExpense">
174
-          <el-input v-model="form.settleExpense" placeholder="请输入预结算额" />
175
-        </el-form-item>
176
-        <el-form-item label="外协费用" prop="outExpense">
177
-          <el-input v-model="form.outExpense" placeholder="请输入外协费用" />
178
-        </el-form-item>
179
-        <el-form-item label="商务费用" prop="businessExpense">
180
-          <el-input v-model="form.businessExpense" placeholder="请输入商务费用" />
181
-        </el-form-item>
182
-        <el-form-item label="车船租赁" prop="rentExpense">
183
-          <el-input v-model="form.rentExpense" placeholder="请输入车船租赁" />
184
-        </el-form-item>
185
-        <el-form-item label="其他费用" prop="otherExpense">
186
-          <el-input v-model="form.otherExpense" placeholder="请输入其他费用" />
187
-        </el-form-item>
188
-        <el-form-item label="直接成本" prop="directExpense">
189
-          <el-input v-model="form.directExpense" placeholder="请输入直接成本" />
190
-        </el-form-item>
191
-        <el-form-item label="预算总额" prop="totalBudget">
192
-          <el-input v-model="form.totalBudget" placeholder="请输入预算总额" />
193
-        </el-form-item>
194
-        <el-form-item label="编制人" prop="compiler">
195
-          <el-input v-model="form.compiler" placeholder="请输入编制人" />
196
-        </el-form-item>
197
-        <el-form-item label="审核人" prop="auditor">
198
-          <el-input v-model="form.auditor" placeholder="请输入审核人" />
199
-        </el-form-item>
200
-      </el-form>
201
-      <div slot="footer" class="dialog-footer">
202
-        <el-button type="primary" @click="submitForm">确 定</el-button>
203
-        <el-button @click="cancel">取 消</el-button>
204
-      </div>
205
-    </el-dialog>
206
-    <!-- 预算详情 -->
207
-    <el-dialog :title="title" :visible.sync="detailsOpen" width="1000px" append-to-body>
208
-      
209
-    </el-dialog>
210
-  </div>
211
-</template>
212
-
213
-<script>
214
-import {
215
-  listBudget,
216
-  getBudget,
217
-  delBudget,
218
-  addBudget,
219
-  submitBudget,
220
-  updateBudget,
221
-} from "@/api/oa/budget/budget";
222
-import { listProject } from "@/api/oa/project/project";
223
-import budgetTable from './components/budgetTable.vue';
224
-export default {
225
-  name: "Budget",
226
-  components:{ budgetTable }, 
227
-  data() {
228
-    return {
229
-      // 遮罩层
230
-      loading: true,
231
-      // 选中数组
232
-      ids: [],
233
-      // 非单个禁用
234
-      single: true,
235
-      // 非多个禁用
236
-      multiple: true,
237
-      // 显示搜索条件
238
-      showSearch: true,
239
-      // 总条数
240
-      total: 0,
241
-      // cmc预算管理表格数据
242
-      budgetList: [],
243
-      // 弹出层标题
244
-      title: "",
245
-      // 是否显示弹出层
246
-      open: false,
247
-      // 查询参数
248
-      queryParams: {
249
-        pageNum: 1,
250
-        pageSize: 10,
251
-        projectId: null,
252
-        staffCost: null,
253
-        carCost: null,
254
-        deviceCost: null,
255
-        fixCost: null,
256
-        settleExpense: null,
257
-        outExpense: null,
258
-        businessExpense: null,
259
-        rentExpense: null,
260
-        otherExpense: null,
261
-        directExpense: null,
262
-        totalBudget: null,
263
-        compiler: null,
264
-        auditor: null,
265
-      },
266
-      // 表单参数
267
-      form: {},
268
-      // 表单校验
269
-      rules: {},
270
-      projectList: [],
271
-      detailsOpen: false,
272
-    };
273
-  },
274
-  created() {
275
-    this.getList();
276
-    this.getProjectList();
277
-  },
278
-  methods: {
279
-    /** 查询cmc预算管理列表 */
280
-    getList() {
281
-      this.loading = true;
282
-      listBudget(this.queryParams).then(response => {
283
-        this.budgetList = response.rows;
284
-        this.total = response.total;
285
-        this.loading = false;
286
-      });
287
-    },
288
-    getProjectList() {
289
-      listProject({
290
-        pageNum: 1,
291
-        pageSize: 99999999,
292
-      }).then(response => {
293
-        this.projectList = response.rows;
294
-      });
295
-    },
296
-    // 取消按钮
297
-    cancel() {
298
-      this.open = false;
299
-      this.reset();
300
-    },
301
-    // 表单重置
302
-    reset() {
303
-      this.form = {
304
-        budgetId: null,
305
-        projectId: null,
306
-        staffCost: null,
307
-        carCost: null,
308
-        deviceCost: null,
309
-        fixCost: null,
310
-        settleExpense: null,
311
-        outExpense: null,
312
-        businessExpense: null,
313
-        rentExpense: null,
314
-        otherExpense: null,
315
-        directExpense: null,
316
-        totalBudget: null,
317
-        compiler: null,
318
-        auditor: null,
319
-        createTime: null,
320
-      };
321
-      this.resetForm("form");
322
-    },
323
-    /** 搜索按钮操作 */
324
-    handleQuery() {
325
-      this.queryParams.pageNum = 1;
326
-      this.getList();
327
-    },
328
-    /** 重置按钮操作 */
329
-    resetQuery() {
330
-      this.resetForm("queryForm");
331
-      this.handleQuery();
332
-    },
333
-    // 多选框选中数据
334
-    handleSelectionChange(selection) {
335
-      this.ids = selection.map(item => item.budgetId);
336
-      this.single = selection.length !== 1;
337
-      this.multiple = !selection.length;
338
-    },
339
-    /** 新增按钮操作 */
340
-    handleAdd() {
341
-      // this.reset();
342
-      // this.open = true;
343
-      // this.title = "添加cmc预算管理";
344
-      this.$router.push({ path: "/budget/add" });
345
-    },
346
-    /** 修改按钮操作 */
347
-    handleUpdate(row) {
348
-      this.reset();
349
-      const budgetId = row.budgetId || this.ids;
350
-      getBudget(budgetId).then(response => {
351
-        this.form = response.data;
352
-        this.open = true;
353
-        this.title = "修改cmc预算管理";
354
-      });
355
-    },
356
-    // 详情按钮
357
-    handleDetails(row) {
358
-      this.detailsOpen = true;
359
-      this.title = row.project.projectNumber + "预算详情";
360
-    },
361
-    /** 提交按钮 */
362
-    submitForm() {
363
-      this.$refs["form"].validate(valid => {
364
-        if (valid) {
365
-          if (this.form.budgetId != null) {
366
-            updateBudget(this.form).then(response => {
367
-              this.$modal.msgSuccess("修改成功");
368
-              this.open = false;
369
-              this.getList();
370
-            });
371
-          } else {
372
-            addBudget(this.form).then(response => {
373
-              this.$modal.msgSuccess("新增成功");
374
-              this.open = false;
375
-              this.getList();
376
-            });
377
-          }
378
-        }
379
-      });
380
-    },
381
-    /** 删除按钮操作 */
382
-    handleDelete(row) {
383
-      const budgetIds = row.budgetId || this.ids;
384
-      this.$modal
385
-        .confirm('是否确认删除cmc预算管理编号为"' + budgetIds + '"的数据项?')
386
-        .then(function () {
387
-          return delBudget(budgetIds);
388
-        })
389
-        .then(() => {
390
-          this.getList();
391
-          this.$modal.msgSuccess("删除成功");
392
-        })
393
-        .catch(() => {});
394
-    },
395
-    /** 导出按钮操作 */
396
-    handleExport() {
397
-      this.download(
398
-        "oa/budget/export",
399
-        {
400
-          ...this.queryParams,
401
-        },
402
-        `budget_${new Date().getTime()}.xlsx`
403
-      );
404
-    },
405
-  },
406
-};
407
-</script>
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-03-21 17:49:15
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-04-07 09:34:27
6
+-->
7
+<template>
8
+  <div class="app-container">
9
+    <el-form
10
+      :model="queryParams"
11
+      ref="queryForm"
12
+      size="small"
13
+      :inline="true"
14
+      v-show="showSearch"
15
+      label-width="68px"
16
+    >
17
+      <el-form-item label="项目编号" prop="projectId">
18
+        <el-select
19
+          v-model="queryParams.projectId"
20
+          filterable
21
+          placeholder="请选择"
22
+          clearable
23
+        >
24
+          <el-option
25
+            v-for="item in projectList"
26
+            :key="item.projectId"
27
+            :label="item.projectNumber"
28
+            :value="item.projectId"
29
+          >
30
+          </el-option>
31
+        </el-select>
32
+      </el-form-item>
33
+      <el-form-item>
34
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
35
+          >搜索</el-button
36
+        >
37
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
38
+      </el-form-item>
39
+    </el-form>
40
+
41
+    <el-row :gutter="10" class="mb8">
42
+      <el-col :span="1.5">
43
+        <el-button
44
+          type="primary"
45
+          plain
46
+          icon="el-icon-plus"
47
+          size="mini"
48
+          @click="handleAdd"
49
+          v-hasPermi="['oa:budget:add']"
50
+          >新增</el-button
51
+        >
52
+      </el-col>
53
+      <el-col :span="1.5">
54
+        <el-button
55
+          type="success"
56
+          plain
57
+          icon="el-icon-edit"
58
+          size="mini"
59
+          :disabled="single"
60
+          @click="handleUpdate"
61
+          v-hasPermi="['oa:budget:edit']"
62
+          >修改</el-button
63
+        >
64
+      </el-col>
65
+      <el-col :span="1.5">
66
+        <el-button
67
+          type="danger"
68
+          plain
69
+          icon="el-icon-delete"
70
+          size="mini"
71
+          :disabled="multiple"
72
+          @click="handleDelete"
73
+          v-hasPermi="['oa:budget:remove']"
74
+          >删除</el-button
75
+        >
76
+      </el-col>
77
+      <el-col :span="1.5">
78
+        <el-button
79
+          type="warning"
80
+          plain
81
+          icon="el-icon-download"
82
+          size="mini"
83
+          @click="handleExport"
84
+          v-hasPermi="['oa:budget:export']"
85
+          >导出</el-button
86
+        >
87
+      </el-col>
88
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
89
+    </el-row>
90
+
91
+    <el-table
92
+      v-loading="loading"
93
+      :data="budgetList"
94
+      @selection-change="handleSelectionChange"
95
+    >
96
+      <el-table-column type="selection" width="55" align="center" />
97
+      <!-- <el-table-column label="预算id" align="center" prop="budgetId" /> -->
98
+      <el-table-column label="项目编号" align="center" prop="project.projectNumber" />
99
+      <el-table-column
100
+        label="项目名称"
101
+        align="center"
102
+        prop="project.projectName"
103
+        width="200px"
104
+      />
105
+      <el-table-column label="人员成本" align="center" prop="staffCost" />
106
+      <el-table-column label="车辆成本" align="center" prop="carCost" />
107
+      <el-table-column label="设备成本" align="center" prop="deviceCost" />
108
+      <el-table-column label="固定成本" align="center" prop="fixCost" />
109
+      <el-table-column label="预结算额" align="center" prop="settleExpense" />
110
+      <el-table-column label="外协费用" align="center" prop="outExpense" />
111
+      <el-table-column label="商务费用" align="center" prop="businessExpense" />
112
+      <el-table-column label="车船租赁" align="center" prop="rentExpense" />
113
+      <el-table-column label="其他费用" align="center" prop="otherExpense" />
114
+      <el-table-column label="直接成本" align="center" prop="directExpense" />
115
+      <el-table-column label="预算总额" align="center" prop="totalBudget" />
116
+      <el-table-column label="编制人" align="center" prop="compilerUser.nickName" />
117
+      <el-table-column label="审核人" align="center" prop="auditorUser.nickName" />
118
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
119
+        <template slot-scope="scope">
120
+          <!-- <el-button
121
+            size="mini"
122
+            type="text"
123
+            icon="el-icon-edit"
124
+            @click="handleUpdate(scope.row)"
125
+            v-hasPermi="['oa:budget:edit']"
126
+            >修改</el-button
127
+          > -->
128
+          <el-button
129
+            size="mini"
130
+            type="text"
131
+            icon="el-icon-view"
132
+            @click="handleDetails(scope.row)"
133
+            >详情</el-button
134
+          >
135
+          <!-- <el-button
136
+            size="mini"
137
+            type="text"
138
+            icon="el-icon-delete"
139
+            @click="handleDelete(scope.row)"
140
+            v-hasPermi="['oa:budget:remove']"
141
+            >删除</el-button
142
+          > -->
143
+        </template>
144
+      </el-table-column>
145
+    </el-table>
146
+
147
+    <pagination
148
+      v-show="total > 0"
149
+      :total="total"
150
+      :page.sync="queryParams.pageNum"
151
+      :limit.sync="queryParams.pageSize"
152
+      @pagination="getList"
153
+    />
154
+
155
+    <!-- 添加或修改cmc预算管理对话框 -->
156
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
157
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
158
+        <el-form-item label="项目id" prop="projectId">
159
+          <el-input v-model="form.projectId" placeholder="请输入项目id" />
160
+        </el-form-item>
161
+        <el-form-item label="人员成本" prop="staffCost">
162
+          <el-input v-model="form.staffCost" placeholder="请输入人员成本" />
163
+        </el-form-item>
164
+        <el-form-item label="车辆成本" prop="carCost">
165
+          <el-input v-model="form.carCost" placeholder="请输入车辆成本" />
166
+        </el-form-item>
167
+        <el-form-item label="设备成本" prop="deviceCost">
168
+          <el-input v-model="form.deviceCost" placeholder="请输入设备成本" />
169
+        </el-form-item>
170
+        <el-form-item label="固定成本" prop="fixCost">
171
+          <el-input v-model="form.fixCost" placeholder="请输入固定成本" />
172
+        </el-form-item>
173
+        <el-form-item label="预结算额" prop="settleExpense">
174
+          <el-input v-model="form.settleExpense" placeholder="请输入预结算额" />
175
+        </el-form-item>
176
+        <el-form-item label="外协费用" prop="outExpense">
177
+          <el-input v-model="form.outExpense" placeholder="请输入外协费用" />
178
+        </el-form-item>
179
+        <el-form-item label="商务费用" prop="businessExpense">
180
+          <el-input v-model="form.businessExpense" placeholder="请输入商务费用" />
181
+        </el-form-item>
182
+        <el-form-item label="车船租赁" prop="rentExpense">
183
+          <el-input v-model="form.rentExpense" placeholder="请输入车船租赁" />
184
+        </el-form-item>
185
+        <el-form-item label="其他费用" prop="otherExpense">
186
+          <el-input v-model="form.otherExpense" placeholder="请输入其他费用" />
187
+        </el-form-item>
188
+        <el-form-item label="直接成本" prop="directExpense">
189
+          <el-input v-model="form.directExpense" placeholder="请输入直接成本" />
190
+        </el-form-item>
191
+        <el-form-item label="预算总额" prop="totalBudget">
192
+          <el-input v-model="form.totalBudget" placeholder="请输入预算总额" />
193
+        </el-form-item>
194
+        <el-form-item label="编制人" prop="compiler">
195
+          <el-input v-model="form.compiler" placeholder="请输入编制人" />
196
+        </el-form-item>
197
+        <el-form-item label="审核人" prop="auditor">
198
+          <el-input v-model="form.auditor" placeholder="请输入审核人" />
199
+        </el-form-item>
200
+      </el-form>
201
+      <div slot="footer" class="dialog-footer">
202
+        <el-button type="primary" @click="submitForm">确 定</el-button>
203
+        <el-button @click="cancel">取 消</el-button>
204
+      </div>
205
+    </el-dialog>
206
+    <!-- 预算详情 -->
207
+    <el-dialog :title="title" :visible.sync="detailsOpen" width="1000px" append-to-body>
208
+      
209
+    </el-dialog>
210
+  </div>
211
+</template>
212
+
213
+<script>
214
+import {
215
+  listBudget,
216
+  getBudget,
217
+  delBudget,
218
+  addBudget,
219
+  submitBudget,
220
+  updateBudget,
221
+} from "@/api/oa/budget/budget";
222
+import { listProject } from "@/api/oa/project/project";
223
+import budgetTable from './components/budgetTable.vue';
224
+export default {
225
+  name: "Budget",
226
+  components:{ budgetTable }, 
227
+  data() {
228
+    return {
229
+      // 遮罩层
230
+      loading: true,
231
+      // 选中数组
232
+      ids: [],
233
+      // 非单个禁用
234
+      single: true,
235
+      // 非多个禁用
236
+      multiple: true,
237
+      // 显示搜索条件
238
+      showSearch: true,
239
+      // 总条数
240
+      total: 0,
241
+      // cmc预算管理表格数据
242
+      budgetList: [],
243
+      // 弹出层标题
244
+      title: "",
245
+      // 是否显示弹出层
246
+      open: false,
247
+      // 查询参数
248
+      queryParams: {
249
+        pageNum: 1,
250
+        pageSize: 10,
251
+        projectId: null,
252
+        staffCost: null,
253
+        carCost: null,
254
+        deviceCost: null,
255
+        fixCost: null,
256
+        settleExpense: null,
257
+        outExpense: null,
258
+        businessExpense: null,
259
+        rentExpense: null,
260
+        otherExpense: null,
261
+        directExpense: null,
262
+        totalBudget: null,
263
+        compiler: null,
264
+        auditor: null,
265
+      },
266
+      // 表单参数
267
+      form: {},
268
+      // 表单校验
269
+      rules: {},
270
+      projectList: [],
271
+      detailsOpen: false,
272
+    };
273
+  },
274
+  created() {
275
+    this.getList();
276
+    this.getProjectList();
277
+  },
278
+  methods: {
279
+    /** 查询cmc预算管理列表 */
280
+    getList() {
281
+      this.loading = true;
282
+      listBudget(this.queryParams).then(response => {
283
+        this.budgetList = response.rows;
284
+        this.total = response.total;
285
+        this.loading = false;
286
+      });
287
+    },
288
+    getProjectList() {
289
+      listProject({
290
+        pageNum: 1,
291
+        pageSize: 99999999,
292
+      }).then(response => {
293
+        this.projectList = response.rows;
294
+      });
295
+    },
296
+    // 取消按钮
297
+    cancel() {
298
+      this.open = false;
299
+      this.reset();
300
+    },
301
+    // 表单重置
302
+    reset() {
303
+      this.form = {
304
+        budgetId: null,
305
+        projectId: null,
306
+        staffCost: null,
307
+        carCost: null,
308
+        deviceCost: null,
309
+        fixCost: null,
310
+        settleExpense: null,
311
+        outExpense: null,
312
+        businessExpense: null,
313
+        rentExpense: null,
314
+        otherExpense: null,
315
+        directExpense: null,
316
+        totalBudget: null,
317
+        compiler: null,
318
+        auditor: null,
319
+        createTime: null,
320
+      };
321
+      this.resetForm("form");
322
+    },
323
+    /** 搜索按钮操作 */
324
+    handleQuery() {
325
+      this.queryParams.pageNum = 1;
326
+      this.getList();
327
+    },
328
+    /** 重置按钮操作 */
329
+    resetQuery() {
330
+      this.resetForm("queryForm");
331
+      this.handleQuery();
332
+    },
333
+    // 多选框选中数据
334
+    handleSelectionChange(selection) {
335
+      this.ids = selection.map(item => item.budgetId);
336
+      this.single = selection.length !== 1;
337
+      this.multiple = !selection.length;
338
+    },
339
+    /** 新增按钮操作 */
340
+    handleAdd() {
341
+      // this.reset();
342
+      // this.open = true;
343
+      // this.title = "添加cmc预算管理";
344
+      this.$router.push({ path: "/budget/add" });
345
+    },
346
+    /** 修改按钮操作 */
347
+    handleUpdate(row) {
348
+      this.reset();
349
+      const budgetId = row.budgetId || this.ids;
350
+      getBudget(budgetId).then(response => {
351
+        this.form = response.data;
352
+        this.open = true;
353
+        this.title = "修改cmc预算管理";
354
+      });
355
+    },
356
+    // 详情按钮
357
+    handleDetails(row) {
358
+      this.detailsOpen = true;
359
+      this.title = row.project.projectNumber + "预算详情";
360
+    },
361
+    /** 提交按钮 */
362
+    submitForm() {
363
+      this.$refs["form"].validate(valid => {
364
+        if (valid) {
365
+          if (this.form.budgetId != null) {
366
+            updateBudget(this.form).then(response => {
367
+              this.$modal.msgSuccess("修改成功");
368
+              this.open = false;
369
+              this.getList();
370
+            });
371
+          } else {
372
+            addBudget(this.form).then(response => {
373
+              this.$modal.msgSuccess("新增成功");
374
+              this.open = false;
375
+              this.getList();
376
+            });
377
+          }
378
+        }
379
+      });
380
+    },
381
+    /** 删除按钮操作 */
382
+    handleDelete(row) {
383
+      const budgetIds = row.budgetId || this.ids;
384
+      this.$modal
385
+        .confirm('是否确认删除cmc预算管理编号为"' + budgetIds + '"的数据项?')
386
+        .then(function () {
387
+          return delBudget(budgetIds);
388
+        })
389
+        .then(() => {
390
+          this.getList();
391
+          this.$modal.msgSuccess("删除成功");
392
+        })
393
+        .catch(() => {});
394
+    },
395
+    /** 导出按钮操作 */
396
+    handleExport() {
397
+      this.download(
398
+        "oa/budget/export",
399
+        {
400
+          ...this.queryParams,
401
+        },
402
+        `budget_${new Date().getTime()}.xlsx`
403
+      );
404
+    },
405
+  },
406
+};
407
+</script>

oa-ui/src/views/flowable/form/brandForm.vue → oa-ui/src/views/flowable/form/business/brandForm.vue Dosyayı Görüntüle

@@ -1,426 +1,426 @@
1
-<template>
2
-  <div class="app-container">
3
-    <el-row :gutter="20">
4
-      <el-col :span="18" :xs="24">
5
-        <h2 class="text-center">品牌项目支付审批表</h2>
6
-        <el-divider></el-divider>
7
-        <el-form ref="form" :model="form" :rules="rules" label-width="120px">
8
-          <el-form-item label="品牌项目id" prop="projectId">
9
-            <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
10
-              :disabled="taskName != '支付申请'" clearable>
11
-              <el-option v-for="item in projectList" :key="item.value" :label="item.projectName" :value="item.projectId">
12
-              </el-option>
13
-            </el-select>
14
-            <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
15
-              <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
16
-              }}</el-descriptions-item>
17
-              <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
18
-              }}</el-descriptions-item>
19
-              <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
20
-                chooseProject.projectLeaderUser.nickName : ''
21
-              }}</el-descriptions-item>
22
-            </el-descriptions>
23
-          </el-form-item>
24
-          <el-form-item label="申请支付说明" prop="applyReason">
25
-            <el-input v-model="form.applyReason" placeholder="请输入申请支付说明" :disabled="taskName != '支付申请'" />
26
-          </el-form-item>
27
-          <el-form-item label="审核文件" prop="approvalDocument">
28
-            <el-input v-model="form.approvalDocument" placeholder="请输入审核文件" :disabled="taskName != '支付申请'" />
29
-          </el-form-item>
30
-          <el-row>
31
-            <el-col :span="6" :xs="24" :offset="12">
32
-              <el-form-item label="签名:" label-width="120px">
33
-                <span class="auditor"> {{ form.applierUser ? form.applierUser.nickName : applierUser }} </span>
34
-              </el-form-item>
35
-            </el-col>
36
-            <el-col :span="6">
37
-              <el-form-item label="日期:" label-width="120px">
38
-                <span> {{ form.applyTime ? form.applyTime : applyTime }} </span>
39
-              </el-form-item>
40
-            </el-col>
41
-          </el-row>
42
-          <el-divider></el-divider>
43
-          <el-form-item label="财务反馈:">
44
-            <table border="1">
45
-              <tr>
46
-                <td>序号</td>
47
-                <td>到账情况</td>
48
-                <td>到账时间</td>
49
-              </tr>
50
-              <tr v-for="(payment, index) in paymentList" :key="index">
51
-                <td>
52
-                  {{ index + 1 }}
53
-                </td>
54
-                <td>
55
-                  <el-input v-model="payment.cwComment" placeholder="请输入到账情况" :disabled="taskName != '财务反馈'" />
56
-                </td>
57
-                <td>
58
-                  <el-date-picker clearable v-model="payment.paymentTime" type="date" value-format="yyyy-MM-dd"
59
-                    placeholder="请选择到账时间" :disabled="taskName != '财务反馈'">
60
-                  </el-date-picker>
61
-                </td>
62
-                <td>
63
-                  <el-button type="danger" icon="el-icon-minus" size="mini" circle @click="deletPaymentItem(index)"
64
-                    :disabled="taskName != '财务反馈'"></el-button>
65
-                </td>
66
-              </tr>
67
-            </table>
68
-            <el-button icon="el-icon-plus" size="mini" @click="addPaymentList()" type="primary" plain
69
-              :disabled="taskName != '财务反馈'"></el-button>
70
-            <el-row>
71
-              <el-col :span="6" :xs="24" :offset="12">
72
-                <el-form-item label="签名:" label-width="120px" v-if="taskName == '财务反馈'">
73
-                  <span class="auditor"> {{ form.cwUser ? form.cwUser.nickName : cwUser }} </span>
74
-                </el-form-item>
75
-              </el-col>
76
-              <el-col :span="6">
77
-                <el-form-item label="日期:" label-width="120px" v-if="taskName == '财务反馈'">
78
-                  <span> {{ form.cwTime ? form.cwTime : cwTime }} </span>
79
-                </el-form-item>
80
-              </el-col>
81
-            </el-row>
82
-          </el-form-item>
83
-        </el-form>
84
-        <div style="text-align: center;">
85
-          <el-button type="primary" @click="submitForm" v-if="taskName == '支付申请'">确 定</el-button>
86
-          <el-button @click="cancel" v-if="taskName == '支付申请'">取 消</el-button>
87
-          <el-button @click="preserve()" type="warning" v-if="taskName == '财务反馈'">保 存</el-button>
88
-          <el-button @click="submitForm" type="danger" v-if="taskName == '财务反馈'">保存并结束</el-button>
89
-        </div>
90
-      </el-col>
91
-      <el-col :span="6" :xs="24">
92
-        <el-card>
93
-          <h2 style="text-align: center;">流程进度</h2>
94
-          <div>
95
-            <flow :flowData="flowData" />
96
-          </div>
97
-        </el-card>
98
-      </el-col>
99
-    </el-row>
100
-  </div>
101
-</template>
102
-
103
-<script>
104
-import { parseTime } from "@/utils/ruoyi";
105
-import { getUsersDeptLeaderByDept, getUsersViceDeptLeaderByDept } from '@/api/system/post.js'
106
-import { listBrandProject, getBrandProject } from "@/api/oa/brand/brandProject";
107
-import { listBrandPayment, addBrandPayment, delBrandPayment } from "@/api/oa/brand/brandPayment";
108
-import { listBrand, getBrand, delBrand, addBrand, updateBrand } from "@/api/oa/brand/brand";
109
-import { complete, getNextFlowNode } from "@/api/flowable/todo";
110
-import flow from '@/views/flowable/task/todo/detail/flow'
111
-import { flowXmlAndNode } from "@/api/flowable/definition";
112
-
113
-export default {
114
-  components: {
115
-    flow
116
-  },
117
-  props: {
118
-    taskName: {
119
-      type: String,
120
-      required: true
121
-    },
122
-    taskForm: {
123
-      type: Object,
124
-      required: true
125
-    }
126
-  },
127
-  name: "Brand",
128
-  data() {
129
-    return {
130
-      applierUser: '',
131
-      applyTime: undefined,
132
-      cwUser: '',
133
-      cwTime: undefined,
134
-      // 遮罩层
135
-      loading: true,
136
-      // 选中数组
137
-      ids: [],
138
-      // 非单个禁用
139
-      single: true,
140
-      // 非多个禁用
141
-      multiple: true,
142
-      // 显示搜索条件
143
-      showSearch: true,
144
-      // 总条数
145
-      total: 0,
146
-      // cmc品牌项目支付审批表格数据
147
-      brandList: [],
148
-      // 弹出层标题
149
-      title: "",
150
-      // 是否显示弹出层
151
-      open: false,
152
-      // 查询参数
153
-      queryParams: {
154
-        pageNum: 1,
155
-        pageSize: 10,
156
-        projectId: null,
157
-        applyReason: null,
158
-        approvalDocument: null,
159
-        applier: null,
160
-        applyTime: null,
161
-        cwTime: null,
162
-        cwUserId: null
163
-      },
164
-      // 表单参数
165
-      form: {},
166
-      paymentList: [
167
-        {
168
-          cwComment: '',
169
-          paymentTime: undefined
170
-        }
171
-      ],
172
-      // 表单校验
173
-      rules: {
174
-      },
175
-      chooseProject: {},
176
-      isSelect: false,
177
-      formTotal: 0,
178
-      flowData: {},
179
-      projectList: [],
180
-    };
181
-  },
182
-  mounted() {
183
-    this.initForm();
184
-  },
185
-  created() {
186
-    if (this.taskName == '支付申请') {
187
-      this.applierUser = this.$store.getters.name;
188
-      this.applyTime = parseTime(new Date(), '{y}-{m}-{d}')
189
-    }
190
-    if (this.taskName == '财务反馈') {
191
-      this.cwUser = this.$store.getters.name;
192
-      this.cwTime = parseTime(new Date(), '{y}-{m}-{d}')
193
-    }
194
-    this.getProjectList();
195
-    this.getList();
196
-    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
197
-      this.flowData = res.data;
198
-    })
199
-  },
200
-  methods: {
201
-    // 初始化表单
202
-    initForm() {
203
-      getBrand(this.taskForm.formId).then(res => {
204
-        if (this.isEmptyObject(res.data)) {
205
-          this.formTotal = 0;
206
-          this.form.applier = this.$store.getters.userId;
207
-          this.form.applyTime = parseTime(new Date(), '{y}-{m}-{d}')
208
-        }
209
-        else {
210
-          this.formTotal = 1;
211
-          this.form = res.data;
212
-          listBrandPayment({ brandId: this.taskForm.formId }).then(res => {
213
-            this.oldPaymentList = res.rows;
214
-            if (res.rows.length > 0)
215
-              this.paymentList = res.rows;
216
-          });
217
-          if (res.data.projectId) {
218
-            getBrandProject(res.data.projectId).then(response => {
219
-              this.chooseProject = response.data;
220
-              this.isSelect = true
221
-            })
222
-          }
223
-          this.loading = false
224
-        }
225
-      })
226
-    },
227
-    /** 查询cmc品牌项目支付审批列表 */
228
-    getList() {
229
-      this.loading = true;
230
-      listBrand(this.queryParams).then(response => {
231
-        this.brandList = response.rows;
232
-        this.total = response.total;
233
-        this.loading = false;
234
-      });
235
-    },
236
-    // 取消按钮
237
-    cancel() {
238
-      this.open = false;
239
-      this.reset();
240
-    },
241
-    // 查询项目列表
242
-    getProjectList() {
243
-      this.loading = true
244
-      listBrandProject({
245
-        pageNum: 1,
246
-        pageSize: 99999999
247
-      }).then(response => {
248
-        this.projectList = response.rows;
249
-      })
250
-    },
251
-    // 选择项目
252
-    handleSelectProject(val) {
253
-      if (val != "" && val != undefined && val != null) {
254
-        getBrandProject(val).then(res => {
255
-          this.chooseProject = res.data;
256
-          this.isSelect = true;
257
-        })
258
-      } else {
259
-        this.isSelect = false
260
-      }
261
-    },
262
-    isEmptyObject(obj) {
263
-      for (var key in obj) {
264
-        if (obj.hasOwnProperty(key)) {
265
-          return false;
266
-        }
267
-      }
268
-      return true;
269
-    },
270
-    addPaymentList() {
271
-      this.paymentList.push({
272
-        paymentCondition: "",
273
-        paymentPercentage: "",
274
-        paymentAmount: "",
275
-        paymentTime: undefined,
276
-        remark: "",
277
-      });
278
-    },
279
-    deletPaymentItem(index) {
280
-      let arr = this.paymentList;
281
-      if (arr.length == 1) {
282
-        return;
283
-      }
284
-      if (index >= 0 && index < arr.length) {
285
-        arr.splice(index, 1);
286
-      }
287
-    },
288
-    // 暂存数据
289
-    preserve() {
290
-      if (this.oldPaymentList.length != 0) {
291
-        delBrandPayment([this.taskForm.formId]).then(res => {
292
-          for (let payment of this.paymentList) {
293
-            payment.brandId = this.taskForm.formId;
294
-            addBrandPayment(payment);
295
-          }
296
-        });
297
-      } else {
298
-        for (let payment of this.paymentList) {
299
-          payment.brandId = this.taskForm.formId;
300
-          addBrandPayment(payment);
301
-        }
302
-      }
303
-      updateBrand(this.form).then(res => {
304
-        this.$message.success("保存成功");
305
-      });
306
-    },
307
-    // 表单重置
308
-    reset() {
309
-      this.form = {
310
-        brandId: null,
311
-        projectId: null,
312
-        applyReason: null,
313
-        approvalDocument: null,
314
-        applier: null,
315
-        applyTime: null,
316
-        cwTime: null,
317
-        cwUserId: null
318
-      };
319
-      this.resetForm("form");
320
-    },
321
-    /** 搜索按钮操作 */
322
-    handleQuery() {
323
-      this.queryParams.pageNum = 1;
324
-      this.getList();
325
-    },
326
-    /** 重置按钮操作 */
327
-    resetQuery() {
328
-      this.resetForm("queryForm");
329
-      this.handleQuery();
330
-    },
331
-    // 多选框选中数据
332
-    handleSelectionChange(selection) {
333
-      this.ids = selection.map(item => item.brandId)
334
-      this.single = selection.length !== 1
335
-      this.multiple = !selection.length
336
-    },
337
-    /** 新增按钮操作 */
338
-    handleAdd() {
339
-      this.reset();
340
-      this.open = true;
341
-      this.title = "添加cmc品牌项目支付审批";
342
-    },
343
-    /** 修改按钮操作 */
344
-    handleUpdate(row) {
345
-      this.reset();
346
-      const brandId = row.brandId || this.ids
347
-      getBrand(brandId).then(response => {
348
-        this.form = response.data;
349
-        this.open = true;
350
-        this.title = "修改cmc品牌项目支付审批";
351
-      });
352
-    },
353
-    /** 提交按钮 */
354
-    submitForm() {
355
-      this.$refs["form"].validate(valid => {
356
-        if (valid) {
357
-          if (this.formTotal != 0) {
358
-            updateBrand(this.form).then(response => {
359
-              this.$modal.msgSuccess("修改成功");
360
-              this.open = false;
361
-              this.getList();
362
-            });
363
-            const params = { taskId: this.taskForm.taskId };
364
-            getNextFlowNode(params).then(res => {
365
-              complete(this.taskForm).then(response => {
366
-                this.$modal.msgSuccess(response.msg);
367
-                this.$emit('goBack')
368
-              })
369
-            })
370
-          } else {
371
-            this.form.brandId = this.taskForm.formId;
372
-            addBrand(this.form).then(response => {
373
-              this.$modal.msgSuccess("新增成功");
374
-              this.open = false;
375
-              this.getList();
376
-            });
377
-            const params = { taskId: this.taskForm.taskId };
378
-            getNextFlowNode(params).then(res => {
379
-              let approvalList = [];
380
-              getUsersDeptLeaderByDept({ deptId: 106 }).then(res => {
381
-                approvalList.push(res.data.userId);
382
-                getUsersViceDeptLeaderByDept({ deptId: 106 }).then(res1 => {
383
-                  approvalList.push(res1.data.userId);
384
-                  this.$set(this.taskForm.variables, "approvalList", approvalList);
385
-                  complete(this.taskForm).then(response => {
386
-                    this.$modal.msgSuccess(response.msg);
387
-                    this.$emit('goBack')
388
-                  })
389
-                })
390
-              });
391
-            })
392
-          }
393
-        }
394
-      });
395
-    },
396
-    /** 删除按钮操作 */
397
-    handleDelete(row) {
398
-      const brandIds = row.brandId || this.ids;
399
-      this.$modal.confirm('是否确认删除cmc品牌项目支付审批编号为"' + brandIds + '"的数据项?').then(function () {
400
-        return delBrand(brandIds);
401
-      }).then(() => {
402
-        this.getList();
403
-        this.$modal.msgSuccess("删除成功");
404
-      }).catch(() => { });
405
-    },
406
-    /** 导出按钮操作 */
407
-    handleExport() {
408
-      this.download('oa/brand/export', {
409
-        ...this.queryParams
410
-      }, `brand_${new Date().getTime()}.xlsx`)
411
-    }
412
-  }
413
-};
414
-</script>
415
-<style lang="scss" scoped>
416
-table {
417
-  /*居中*/
418
-  margin: 0 auto;
419
-  /*边框*/
420
-  /* border: 1px solid black; */
421
-  text-align: center;
422
-  border-collapse: collapse;
423
-  /*设置背景颜色*/
424
-  /* background-color: #bfa; */
425
-}
1
+<template>
2
+  <div class="app-container">
3
+    <el-row :gutter="20">
4
+      <el-col :span="18" :xs="24">
5
+        <h2 class="text-center">品牌项目支付审批表</h2>
6
+        <el-divider></el-divider>
7
+        <el-form ref="form" :model="form" :rules="rules" label-width="120px">
8
+          <el-form-item label="品牌项目id" prop="projectId">
9
+            <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
10
+              :disabled="taskName != '支付申请'" clearable>
11
+              <el-option v-for="item in projectList" :key="item.value" :label="item.projectName" :value="item.projectId">
12
+              </el-option>
13
+            </el-select>
14
+            <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
15
+              <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
16
+              }}</el-descriptions-item>
17
+              <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
18
+              }}</el-descriptions-item>
19
+              <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
20
+                chooseProject.projectLeaderUser.nickName : ''
21
+              }}</el-descriptions-item>
22
+            </el-descriptions>
23
+          </el-form-item>
24
+          <el-form-item label="申请支付说明" prop="applyReason">
25
+            <el-input v-model="form.applyReason" placeholder="请输入申请支付说明" :disabled="taskName != '支付申请'" />
26
+          </el-form-item>
27
+          <el-form-item label="审核文件" prop="approvalDocument">
28
+            <el-input v-model="form.approvalDocument" placeholder="请输入审核文件" :disabled="taskName != '支付申请'" />
29
+          </el-form-item>
30
+          <el-row>
31
+            <el-col :span="6" :xs="24" :offset="12">
32
+              <el-form-item label="签名:" label-width="120px">
33
+                <span class="auditor"> {{ form.applierUser ? form.applierUser.nickName : applierUser }} </span>
34
+              </el-form-item>
35
+            </el-col>
36
+            <el-col :span="6">
37
+              <el-form-item label="日期:" label-width="120px">
38
+                <span> {{ form.applyTime ? form.applyTime : applyTime }} </span>
39
+              </el-form-item>
40
+            </el-col>
41
+          </el-row>
42
+          <el-divider></el-divider>
43
+          <el-form-item label="财务反馈:">
44
+            <table border="1">
45
+              <tr>
46
+                <td>序号</td>
47
+                <td>到账情况</td>
48
+                <td>到账时间</td>
49
+              </tr>
50
+              <tr v-for="(payment, index) in paymentList" :key="index">
51
+                <td>
52
+                  {{ index + 1 }}
53
+                </td>
54
+                <td>
55
+                  <el-input v-model="payment.cwComment" placeholder="请输入到账情况" :disabled="taskName != '财务反馈'" />
56
+                </td>
57
+                <td>
58
+                  <el-date-picker clearable v-model="payment.paymentTime" type="date" value-format="yyyy-MM-dd"
59
+                    placeholder="请选择到账时间" :disabled="taskName != '财务反馈'">
60
+                  </el-date-picker>
61
+                </td>
62
+                <td>
63
+                  <el-button type="danger" icon="el-icon-minus" size="mini" circle @click="deletPaymentItem(index)"
64
+                    :disabled="taskName != '财务反馈'"></el-button>
65
+                </td>
66
+              </tr>
67
+            </table>
68
+            <el-button icon="el-icon-plus" size="mini" @click="addPaymentList()" type="primary" plain
69
+              :disabled="taskName != '财务反馈'"></el-button>
70
+            <el-row>
71
+              <el-col :span="6" :xs="24" :offset="12">
72
+                <el-form-item label="签名:" label-width="120px" v-if="taskName == '财务反馈'">
73
+                  <span class="auditor"> {{ form.cwUser ? form.cwUser.nickName : cwUser }} </span>
74
+                </el-form-item>
75
+              </el-col>
76
+              <el-col :span="6">
77
+                <el-form-item label="日期:" label-width="120px" v-if="taskName == '财务反馈'">
78
+                  <span> {{ form.cwTime ? form.cwTime : cwTime }} </span>
79
+                </el-form-item>
80
+              </el-col>
81
+            </el-row>
82
+          </el-form-item>
83
+        </el-form>
84
+        <div style="text-align: center;">
85
+          <el-button type="primary" @click="submitForm" v-if="taskName == '支付申请'">确 定</el-button>
86
+          <el-button @click="cancel" v-if="taskName == '支付申请'">取 消</el-button>
87
+          <el-button @click="preserve()" type="warning" v-if="taskName == '财务反馈'">保 存</el-button>
88
+          <el-button @click="submitForm" type="danger" v-if="taskName == '财务反馈'">保存并结束</el-button>
89
+        </div>
90
+      </el-col>
91
+      <el-col :span="6" :xs="24">
92
+        <el-card>
93
+          <h2 style="text-align: center;">流程进度</h2>
94
+          <div>
95
+            <flow :flowData="flowData" />
96
+          </div>
97
+        </el-card>
98
+      </el-col>
99
+    </el-row>
100
+  </div>
101
+</template>
102
+
103
+<script>
104
+import { parseTime } from "@/utils/ruoyi";
105
+import { getUsersDeptLeaderByDept, getUsersViceDeptLeaderByDept } from '@/api/system/post.js'
106
+import { listBrandProject, getBrandProject } from "@/api/oa/brand/brandProject";
107
+import { listBrandPayment, addBrandPayment, delBrandPayment } from "@/api/oa/brand/brandPayment";
108
+import { listBrand, getBrand, delBrand, addBrand, updateBrand } from "@/api/oa/brand/brand";
109
+import { complete, getNextFlowNode } from "@/api/flowable/todo";
110
+import flow from '@/views/flowable/task/todo/detail/flow'
111
+import { flowXmlAndNode } from "@/api/flowable/definition";
112
+
113
+export default {
114
+  components: {
115
+    flow
116
+  },
117
+  props: {
118
+    taskName: {
119
+      type: String,
120
+      required: true
121
+    },
122
+    taskForm: {
123
+      type: Object,
124
+      required: true
125
+    }
126
+  },
127
+  name: "Brand",
128
+  data() {
129
+    return {
130
+      applierUser: '',
131
+      applyTime: undefined,
132
+      cwUser: '',
133
+      cwTime: undefined,
134
+      // 遮罩层
135
+      loading: true,
136
+      // 选中数组
137
+      ids: [],
138
+      // 非单个禁用
139
+      single: true,
140
+      // 非多个禁用
141
+      multiple: true,
142
+      // 显示搜索条件
143
+      showSearch: true,
144
+      // 总条数
145
+      total: 0,
146
+      // cmc品牌项目支付审批表格数据
147
+      brandList: [],
148
+      // 弹出层标题
149
+      title: "",
150
+      // 是否显示弹出层
151
+      open: false,
152
+      // 查询参数
153
+      queryParams: {
154
+        pageNum: 1,
155
+        pageSize: 10,
156
+        projectId: null,
157
+        applyReason: null,
158
+        approvalDocument: null,
159
+        applier: null,
160
+        applyTime: null,
161
+        cwTime: null,
162
+        cwUserId: null
163
+      },
164
+      // 表单参数
165
+      form: {},
166
+      paymentList: [
167
+        {
168
+          cwComment: '',
169
+          paymentTime: undefined
170
+        }
171
+      ],
172
+      // 表单校验
173
+      rules: {
174
+      },
175
+      chooseProject: {},
176
+      isSelect: false,
177
+      formTotal: 0,
178
+      flowData: {},
179
+      projectList: [],
180
+    };
181
+  },
182
+  mounted() {
183
+    this.initForm();
184
+  },
185
+  created() {
186
+    if (this.taskName == '支付申请') {
187
+      this.applierUser = this.$store.getters.name;
188
+      this.applyTime = parseTime(new Date(), '{y}-{m}-{d}')
189
+    }
190
+    if (this.taskName == '财务反馈') {
191
+      this.cwUser = this.$store.getters.name;
192
+      this.cwTime = parseTime(new Date(), '{y}-{m}-{d}')
193
+    }
194
+    this.getProjectList();
195
+    this.getList();
196
+    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
197
+      this.flowData = res.data;
198
+    })
199
+  },
200
+  methods: {
201
+    // 初始化表单
202
+    initForm() {
203
+      getBrand(this.taskForm.formId).then(res => {
204
+        if (this.isEmptyObject(res.data)) {
205
+          this.formTotal = 0;
206
+          this.form.applier = this.$store.getters.userId;
207
+          this.form.applyTime = parseTime(new Date(), '{y}-{m}-{d}')
208
+        }
209
+        else {
210
+          this.formTotal = 1;
211
+          this.form = res.data;
212
+          listBrandPayment({ brandId: this.taskForm.formId }).then(res => {
213
+            this.oldPaymentList = res.rows;
214
+            if (res.rows.length > 0)
215
+              this.paymentList = res.rows;
216
+          });
217
+          if (res.data.projectId) {
218
+            getBrandProject(res.data.projectId).then(response => {
219
+              this.chooseProject = response.data;
220
+              this.isSelect = true
221
+            })
222
+          }
223
+          this.loading = false
224
+        }
225
+      })
226
+    },
227
+    /** 查询cmc品牌项目支付审批列表 */
228
+    getList() {
229
+      this.loading = true;
230
+      listBrand(this.queryParams).then(response => {
231
+        this.brandList = response.rows;
232
+        this.total = response.total;
233
+        this.loading = false;
234
+      });
235
+    },
236
+    // 取消按钮
237
+    cancel() {
238
+      this.open = false;
239
+      this.reset();
240
+    },
241
+    // 查询项目列表
242
+    getProjectList() {
243
+      this.loading = true
244
+      listBrandProject({
245
+        pageNum: 1,
246
+        pageSize: 99999999
247
+      }).then(response => {
248
+        this.projectList = response.rows;
249
+      })
250
+    },
251
+    // 选择项目
252
+    handleSelectProject(val) {
253
+      if (val != "" && val != undefined && val != null) {
254
+        getBrandProject(val).then(res => {
255
+          this.chooseProject = res.data;
256
+          this.isSelect = true;
257
+        })
258
+      } else {
259
+        this.isSelect = false
260
+      }
261
+    },
262
+    isEmptyObject(obj) {
263
+      for (var key in obj) {
264
+        if (obj.hasOwnProperty(key)) {
265
+          return false;
266
+        }
267
+      }
268
+      return true;
269
+    },
270
+    addPaymentList() {
271
+      this.paymentList.push({
272
+        paymentCondition: "",
273
+        paymentPercentage: "",
274
+        paymentAmount: "",
275
+        paymentTime: undefined,
276
+        remark: "",
277
+      });
278
+    },
279
+    deletPaymentItem(index) {
280
+      let arr = this.paymentList;
281
+      if (arr.length == 1) {
282
+        return;
283
+      }
284
+      if (index >= 0 && index < arr.length) {
285
+        arr.splice(index, 1);
286
+      }
287
+    },
288
+    // 暂存数据
289
+    preserve() {
290
+      if (this.oldPaymentList.length != 0) {
291
+        delBrandPayment([this.taskForm.formId]).then(res => {
292
+          for (let payment of this.paymentList) {
293
+            payment.brandId = this.taskForm.formId;
294
+            addBrandPayment(payment);
295
+          }
296
+        });
297
+      } else {
298
+        for (let payment of this.paymentList) {
299
+          payment.brandId = this.taskForm.formId;
300
+          addBrandPayment(payment);
301
+        }
302
+      }
303
+      updateBrand(this.form).then(res => {
304
+        this.$message.success("保存成功");
305
+      });
306
+    },
307
+    // 表单重置
308
+    reset() {
309
+      this.form = {
310
+        brandId: null,
311
+        projectId: null,
312
+        applyReason: null,
313
+        approvalDocument: null,
314
+        applier: null,
315
+        applyTime: null,
316
+        cwTime: null,
317
+        cwUserId: null
318
+      };
319
+      this.resetForm("form");
320
+    },
321
+    /** 搜索按钮操作 */
322
+    handleQuery() {
323
+      this.queryParams.pageNum = 1;
324
+      this.getList();
325
+    },
326
+    /** 重置按钮操作 */
327
+    resetQuery() {
328
+      this.resetForm("queryForm");
329
+      this.handleQuery();
330
+    },
331
+    // 多选框选中数据
332
+    handleSelectionChange(selection) {
333
+      this.ids = selection.map(item => item.brandId)
334
+      this.single = selection.length !== 1
335
+      this.multiple = !selection.length
336
+    },
337
+    /** 新增按钮操作 */
338
+    handleAdd() {
339
+      this.reset();
340
+      this.open = true;
341
+      this.title = "添加cmc品牌项目支付审批";
342
+    },
343
+    /** 修改按钮操作 */
344
+    handleUpdate(row) {
345
+      this.reset();
346
+      const brandId = row.brandId || this.ids
347
+      getBrand(brandId).then(response => {
348
+        this.form = response.data;
349
+        this.open = true;
350
+        this.title = "修改cmc品牌项目支付审批";
351
+      });
352
+    },
353
+    /** 提交按钮 */
354
+    submitForm() {
355
+      this.$refs["form"].validate(valid => {
356
+        if (valid) {
357
+          if (this.formTotal != 0) {
358
+            updateBrand(this.form).then(response => {
359
+              this.$modal.msgSuccess("修改成功");
360
+              this.open = false;
361
+              this.getList();
362
+            });
363
+            const params = { taskId: this.taskForm.taskId };
364
+            getNextFlowNode(params).then(res => {
365
+              complete(this.taskForm).then(response => {
366
+                this.$modal.msgSuccess(response.msg);
367
+                this.$emit('goBack')
368
+              })
369
+            })
370
+          } else {
371
+            this.form.brandId = this.taskForm.formId;
372
+            addBrand(this.form).then(response => {
373
+              this.$modal.msgSuccess("新增成功");
374
+              this.open = false;
375
+              this.getList();
376
+            });
377
+            const params = { taskId: this.taskForm.taskId };
378
+            getNextFlowNode(params).then(res => {
379
+              let approvalList = [];
380
+              getUsersDeptLeaderByDept({ deptId: 106 }).then(res => {
381
+                approvalList.push(res.data.userId);
382
+                getUsersViceDeptLeaderByDept({ deptId: 106 }).then(res1 => {
383
+                  approvalList.push(res1.data.userId);
384
+                  this.$set(this.taskForm.variables, "approvalList", approvalList);
385
+                  complete(this.taskForm).then(response => {
386
+                    this.$modal.msgSuccess(response.msg);
387
+                    this.$emit('goBack')
388
+                  })
389
+                })
390
+              });
391
+            })
392
+          }
393
+        }
394
+      });
395
+    },
396
+    /** 删除按钮操作 */
397
+    handleDelete(row) {
398
+      const brandIds = row.brandId || this.ids;
399
+      this.$modal.confirm('是否确认删除cmc品牌项目支付审批编号为"' + brandIds + '"的数据项?').then(function () {
400
+        return delBrand(brandIds);
401
+      }).then(() => {
402
+        this.getList();
403
+        this.$modal.msgSuccess("删除成功");
404
+      }).catch(() => { });
405
+    },
406
+    /** 导出按钮操作 */
407
+    handleExport() {
408
+      this.download('oa/brand/export', {
409
+        ...this.queryParams
410
+      }, `brand_${new Date().getTime()}.xlsx`)
411
+    }
412
+  }
413
+};
414
+</script>
415
+<style lang="scss" scoped>
416
+table {
417
+  /*居中*/
418
+  margin: 0 auto;
419
+  /*边框*/
420
+  /* border: 1px solid black; */
421
+  text-align: center;
422
+  border-collapse: collapse;
423
+  /*设置背景颜色*/
424
+  /* background-color: #bfa; */
425
+}
426 426
 </style>

oa-ui/src/views/flowable/form/business/contractForm.vue
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


oa-ui/src/views/flowable/form/business/subContract.vue
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


oa-ui/src/views/flowable/form/conditionDisplay/index.vue → oa-ui/src/views/flowable/form/components/conditionDisplay.vue Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-23 17:08:16
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-07 16:08:23
5
+ * @LastEditTime: 2024-05-10 16:29:22
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -17,21 +17,23 @@
17 17
     <technical-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"></technical-form>
18 18
     <safe-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
19 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 21
   </div>
21 22
 </template>
22 23
 
23 24
 <script>
24
-import ScTable from "@/views/flowable/form/scTable.vue";
25
-import JyTable from "@/views/flowable/form/jyTable.vue";
26
-import ZhTable from "@/views/flowable/form/zhTable.vue";
27
-import JsTable from "@/views/flowable/form/jsTable.vue";
28
-import XmTable from "@/views/flowable/form/xmTable.vue";
29
-import CwTable from "@/views/flowable/form/cwTable.vue";
30
-import CarForm from '@/views/flowable/form/carForm.vue';
25
+import ScTable from "@/views/flowable/form/access/scTable.vue";
26
+import JyTable from "@/views/flowable/form/access/jyTable.vue";
27
+import ZhTable from "@/views/flowable/form/access/zhTable.vue";
28
+import JsTable from "@/views/flowable/form/access/jsTable.vue";
29
+import XmTable from "@/views/flowable/form/access/xmTable.vue";
30
+import CwTable from "@/views/flowable/form/access/cwTable.vue";
31
+import CarForm from '@/views/flowable/form/oa/carForm.vue';
31 32
 import projectProcess from '@/views/flowable/form/projectProcess/index'
32 33
 import TechnicalForm from '@/views/flowable/form/technicalForm.vue';
33 34
 import SafeForm from '@/views/flowable/form/safeForm.vue';
34 35
 import SettleForm from '@/views/flowable/form/settleForm.vue';
36
+import BudgetInfo from '../budget/budgetInfo.vue';
35 37
 export default {
36 38
   props: {
37 39
     passingParam: {
@@ -54,7 +56,8 @@ export default {
54 56
     projectProcess,
55 57
     TechnicalForm,
56 58
     SafeForm,
57
-    SettleForm
59
+    SettleForm,
60
+    BudgetInfo
58 61
   },
59 62
   data() {
60 63
     return {

+ 106
- 0
oa-ui/src/views/flowable/form/components/detailDisplay.vue Dosyayı Görüntüle

@@ -0,0 +1,106 @@
1
+<template>
2
+  <div>
3
+    <sc-table :taskForm="taskForm" :taskName="taskName" v-if="taskForm.procDefName == '生产部门考核'"
4
+      @goBack="goBack"></sc-table>
5
+    <jy-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '经营发展部考核'"
6
+      @goBack="goBack"></jy-table>
7
+    <js-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '技术质量部考核'"
8
+      @goBack="goBack"></js-table>
9
+    <xm-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '项目管理部考核'"
10
+      @goBack="goBack"></xm-table>
11
+    <cw-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '财务部考核'"
12
+      @goBack="goBack"></cw-table>
13
+    <zh-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '综合事务部考核'"
14
+      @goBack="goBack"></zh-table>
15
+    <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'"
16
+      @goBack="goBack"></car-form>
17
+    <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
18
+      @goBack="goBack"></device-form>
19
+    <project-process :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目流转'"
20
+      @goBack="goBack"></project-process>
21
+    <budget-index :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目预算'"
22
+      @goBack="goBack"></budget-index>
23
+    <borrow-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '借款审批'"
24
+      @goBack="goBack"></borrow-form>
25
+    <safe-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"
26
+      @goBack="goBack"></safe-form>
27
+    <technical-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"
28
+      @goBack="goBack"></technical-form>
29
+    <contract-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '承接合同评审'"
30
+      @goBack="goBack"></contract-form>
31
+    <sub-contract :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '分包合同评审'"
32
+      @goBack="goBack"></sub-contract>
33
+    <brand-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '品牌项目支付'"
34
+      @goBack="goBack"></brand-form>
35
+    <deposit-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '保证金审批'"
36
+      @goBack="goBack"></deposit-form>
37
+    <archive-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '成果归档'"
38
+      @goBack="goBack"></archive-form>
39
+    <settle-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目结算'"
40
+      @goBack="goBack"></settle-form>
41
+  </div>
42
+</template>
43
+
44
+<script>
45
+import ScTable from "@/views/flowable/form/access/scTable.vue";
46
+import JyTable from "@/views/flowable/form/access/jyTable.vue";
47
+import ZhTable from "@/views/flowable/form/access/zhTable.vue";
48
+import JsTable from "@/views/flowable/form/access/jsTable.vue";
49
+import XmTable from "@/views/flowable/form/access/xmTable.vue";
50
+import CwTable from "@/views/flowable/form/access/cwTable.vue";
51
+import carForm from "@/views/flowable/form/oa/carForm.vue";
52
+import deviceForm from "@/views/flowable/form/oa/deviceForm";
53
+import projectProcess from "@/views/flowable/form/projectProcess/index.vue"
54
+import AddBudget from '@/views/flowable/form/budget/addBudget.vue';
55
+import safeForm from '@/views/flowable/form/safeForm.vue';
56
+import technicalForm from '@/views/flowable/form/technicalForm.vue';
57
+import budgetIndex from '@/views/flowable/form/budget/budget.vue';
58
+import businessReview from '@/views/flowable/form/projectProcess/businessReview.vue';
59
+import contractForm from '@/views/flowable/form/business/contractForm.vue';
60
+import subContract from '@/views/flowable/form/business/subContract.vue';
61
+import brandForm from '@/views/flowable/form/business/brandForm.vue';
62
+import depositForm from '@/views/flowable/form/finance/depositForm.vue';
63
+import borrowForm from '@/views/flowable/form/finance/borrowForm.vue';
64
+import archiveForm from '@/views/flowable/form/archiveForm.vue';
65
+import settleForm from '@/views/flowable/form/settleForm.vue';
66
+export default {
67
+  components: {
68
+    ScTable,
69
+    ZhTable,
70
+    JsTable,
71
+    XmTable,
72
+    CwTable,
73
+    JyTable,
74
+    carForm,
75
+    deviceForm,
76
+    projectProcess,
77
+    AddBudget,
78
+    borrowForm,
79
+    safeForm,
80
+    technicalForm,
81
+    budgetIndex,
82
+    businessReview,
83
+    contractForm,
84
+    subContract,
85
+    brandForm,
86
+    depositForm,
87
+    archiveForm,
88
+    settleForm
89
+  },
90
+  props: {
91
+    taskForm: {
92
+      type: Object
93
+    },
94
+    taskName: {
95
+      type: String
96
+    }
97
+  },
98
+  methods:{
99
+    goBack(){
100
+      this.$emit('goBack')
101
+    }
102
+  }
103
+}
104
+</script>
105
+
106
+<style lang="scss" scoped></style>

+ 169
- 149
oa-ui/src/views/flowable/form/components/settlePrint.vue Dosyayı Görüntüle

@@ -1,144 +1,146 @@
1 1
 <template>
2 2
   <div>
3
-    <h2 class="text-center title">生产项目委托管理结算清单</h2>
4
-    <table border="1">
5
-      <tr>
6
-        <td :colspan="2" class="fontbold">项目名称</td>
7
-        <td :colspan="4">{{ chooseProject.projectName }}</td>
8
-        <td :colspan="2" class="fontbold">项目编号</td>
9
-        <td :colspan="2">{{ chooseProject.projectNumber }}</td>
10
-      </tr>
11
-      <tr>
12
-        <td :colspan="2" class="fontbold">承担部门</td>
13
-        <td :colspan="4">{{ undertakingDept.join(',') }}</td>
14
-        <td :colspan="2" class="fontbold">项目负责人</td>
15
-        <td :colspan="2">{{ chooseProject.projectLeaderName }}</td>
16
-      </tr>
17
-      <tr>
18
-        <td :colspan="10" class="header bg">测绘项目完成工作量及费用计算</td>
19
-      </tr>
20
-      <tr>
21
-        <td class="fontbold">序号</td>
22
-        <td class="fontbold">工作内容</td>
23
-        <td class="fontbold">比例尺或等级</td>
24
-        <td class="fontbold">单位</td>
25
-        <td class="fontbold">工作量</td>
26
-        <td class="fontbold">地类</td>
27
-        <td class="fontbold">单价(元)</td>
28
-        <td class="fontbold">系数</td>
29
-        <td class="fontbold">结算经费(元)</td>
30
-        <td class="fontbold">备注</td>
31
-      </tr>
32
-      <tr v-for="(work, index) in workList">
33
-        <td>{{ index + 1 }}</td>
34
-        <td>{{ work.content }}</td>
35
-        <td>{{ work.scale }}</td>
36
-        <td>{{ work.unit }}</td>
37
-        <td>{{ work.workload }}</td>
38
-        <td>{{ work.groundType == "0" ? "一般地类" : "复杂地类" }}</td>
39
-        <td>{{ work.price }}</td>
40
-        <td>{{ work.coefficient }}</td>
41
-        <td>{{ work.settle }}</td>
42
-        <td>{{ work.remark }}</td>
43
-      </tr>
44
-      <tr>
45
-        <td :colspan="4" class="header">结算费用合计</td>
46
-        <td :colspan="6">{{ settleSum.amount }}</td>
47
-      </tr>
48
-      <tr>
49
-        <td :colspan="10" class="header bg">扣除项小计</td>
50
-      </tr>
51
-      <tr>
52
-        <td class="fontbold">序号</td>
53
-        <td :colspan="3" class="fontbold">结算内容</td>
54
-        <td :colspan="3" class="fontbold">结算金额</td>
55
-        <td :colspan="3" class="fontbold">备注</td>
56
-      </tr>
57
-      <tr v-for="(ded, index) of deductionsList">
58
-        <td>{{ index + 1 }}</td>
59
-        <td :colspan="3">{{ ded.content }}</td>
60
-        <td :colspan="3">{{ ded.amount }}</td>
61
-        <td :colspan="3">{{ ded.remark }}</td>
62
-      </tr>
63
-      <tr>
64
-        <td :colspan="10" class="header bg">部门结算小计</td>
65
-      </tr>
66
-      <tr>
67
-        <td class="fontbold">序号</td>
68
-        <td :colspan="3" class="fontbold">部门名称</td>
69
-        <td :colspan="3" class="fontbold">结算金额</td>
70
-        <td :colspan="3" class="fontbold">备注</td>
71
-      </tr>
72
-      <tr v-for="(dept, index) of deptSettleList">
73
-        <td>{{ index + 1 }}</td>
74
-        <td :colspan="3">{{ dept.content }}</td>
75
-        <td :colspan="3">{{ dept.amount }}</td>
76
-        <td :colspan="3">{{ dept.remark }}</td>
77
-      </tr>
78
-      <tr>
79
-        <td :colspan="4" class="header">实际结算总金额</td>
80
-        <td :colspan="6">{{ actualSumSettle }}</td>
81
-      </tr>
82
-      <tr>
83
-        <td :colspan="4" class="header">结算说明</td>
84
-        <td :colspan="6">{{ form.settleComment }}</td>
85
-      </tr>
86
-      <tr>
87
-        <td :colspan="10" class="header bg">审核情况</td>
88
-      </tr>
89
-      <tr>
90
-        <td :colspan="2" class="fontbold">综合事务部(设备领用情况)</td>
91
-        <td :colspan="4" class="conment-width">{{ form.zhComment }}</td>
92
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.zhUserName }}</span></td>
93
-        <td :colspan="2" style="text-align:left;">日期:{{ form.zhTime }}</td>
94
-      </tr>
95
-      <tr>
96
-        <td :colspan="2" class="fontbold">技术质量部(质量及工作量)</td>
97
-        <td :colspan="4" class="conment-width">{{ form.jsComment }}</td>
98
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.jsUserName }}</span></td>
99
-        <td :colspan="2" style="text-align:left;">日期:{{ form.jsTime }}</td>
100
-      </tr>
101
-      <tr>
102
-        <td :colspan="2" class="fontbold">项目管理部(结算)</td>
103
-        <td :colspan="4" class="conment-width">{{ form.xmComment }}</td>
104
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.xmUserName }}</span></td>
105
-        <td :colspan="2" style="text-align:left;">日期:{{ form.xmTime }}</td>
106
-      </tr>
107
-      <tr>
108
-        <td :colspan="2" class="fontbold">项目承担部门(确认)</td>
109
-        <td :colspan="4" class="conment-width">{{ form.deptComment }}</td>
110
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.deptUserName }}</span></td>
111
-        <td :colspan="2" style="text-align:left;">日期:{{ form.deptTime }}</td>
112
-      </tr>
113
-      <tr>
114
-        <td :colspan="2" class="fontbold">经营发展部(校核)</td>
115
-        <td :colspan="4" class="conment-width">{{ form.jyComment }}</td>
116
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.jyUserName }}</span></td>
117
-        <td :colspan="2" style="text-align:left;">日期:{{ form.jyTime }}</td>
118
-      </tr>
119
-      <tr>
120
-        <td :colspan="2" class="fontbold">分管领导(审核)</td>
121
-        <td :colspan="4" class="conment-width">{{ form.managerComment }}</td>
122
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.managerUserName }}</span></td>
123
-        <td :colspan="2" style="text-align:left;">日期:{{ form.managerTime }}</td>
124
-      </tr>
125
-      <tr>
126
-        <td :colspan="2" class="fontbold">总经理(审批)</td>
127
-        <td :colspan="4" class="conment-width">{{ form.gmComment }}</td>
128
-        <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.gmUserName }}</span></td>
129
-        <td :colspan="2" style="text-align:left;">日期:{{ form.gmTime }}</td>
130
-      </tr>
131
-    </table>
3
+    <div id="printArea">
4
+      <h2 class="text-center title">生产项目委托管理结算清单</h2>
5
+      <table border="1">
6
+        <tr>
7
+          <td :colspan="2" class="fontbold">项目名称</td>
8
+          <td :colspan="4">{{ chooseProject.projectName }}</td>
9
+          <td :colspan="2" class="fontbold">项目编号</td>
10
+          <td :colspan="2">{{ chooseProject.projectNumber }}</td>
11
+        </tr>
12
+        <tr>
13
+          <td :colspan="2" class="fontbold">承担部门</td>
14
+          <!-- <td :colspan="4">{{ undertakingDept.join(',') }}</td> -->
15
+          <td :colspan="4">{{ chooseProject.undertakingDeptName }}</td>
16
+          <td :colspan="2" class="fontbold">项目负责人</td>
17
+          <td :colspan="2">{{ chooseProject.projectLeaderUser ? chooseProject.projectLeaderUser.nickName : "" }}</td>
18
+        </tr>
19
+        <tr>
20
+          <td :colspan="10" class="header bg">测绘项目完成工作量及费用计算</td>
21
+        </tr>
22
+        <tr>
23
+          <td class="fontbold">序号</td>
24
+          <td class="fontbold">工作内容</td>
25
+          <td class="fontbold">比例尺或等级</td>
26
+          <td class="fontbold">单位</td>
27
+          <td class="fontbold">工作量</td>
28
+          <td class="fontbold">地类</td>
29
+          <td class="fontbold">单价(元)</td>
30
+          <td class="fontbold">系数</td>
31
+          <td class="fontbold">结算经费(元)</td>
32
+          <td class="fontbold">备注</td>
33
+        </tr>
34
+        <tr v-for="(work, index) in workList">
35
+          <td>{{ index + 1 }}</td>
36
+          <td>{{ work.content }}</td>
37
+          <td>{{ work.scale }}</td>
38
+          <td>{{ work.unit }}</td>
39
+          <td>{{ work.workload }}</td>
40
+          <td>{{ work.groundType == "0" ? "一般地类" : "复杂地类" }}</td>
41
+          <td>{{ work.price }}</td>
42
+          <td>{{ work.coefficient }}</td>
43
+          <td>{{ work.settle }}</td>
44
+          <td>{{ work.remark }}</td>
45
+        </tr>
46
+        <tr>
47
+          <td :colspan="4" class="header">结算费用合计</td>
48
+          <td :colspan="6">{{ settleSum.amount }}</td>
49
+        </tr>
50
+        <tr>
51
+          <td :colspan="10" class="header bg">扣除项小计</td>
52
+        </tr>
53
+        <tr>
54
+          <td class="fontbold">序号</td>
55
+          <td :colspan="3" class="fontbold">结算内容</td>
56
+          <td :colspan="3" class="fontbold">结算金额</td>
57
+          <td :colspan="3" class="fontbold">备注</td>
58
+        </tr>
59
+        <tr v-for="(ded, index) of deductionsList">
60
+          <td>{{ index + 1 }}</td>
61
+          <td :colspan="3">{{ ded.content }}</td>
62
+          <td :colspan="3">{{ ded.amount }}</td>
63
+          <td :colspan="3">{{ ded.remark }}</td>
64
+        </tr>
65
+        <tr>
66
+          <td :colspan="10" class="header bg">部门结算小计</td>
67
+        </tr>
68
+        <tr>
69
+          <td class="fontbold">序号</td>
70
+          <td :colspan="3" class="fontbold">部门名称</td>
71
+          <td :colspan="3" class="fontbold">结算金额</td>
72
+          <td :colspan="3" class="fontbold">备注</td>
73
+        </tr>
74
+        <tr v-for="(dept, index) of deptSettleList">
75
+          <td>{{ index + 1 }}</td>
76
+          <td :colspan="3">{{ dept.content }}</td>
77
+          <td :colspan="3">{{ dept.amount }}</td>
78
+          <td :colspan="3">{{ dept.remark }}</td>
79
+        </tr>
80
+        <tr>
81
+          <td :colspan="4" class="header">实际结算总金额</td>
82
+          <td :colspan="6">{{ actualSumSettle }}</td>
83
+        </tr>
84
+        <!-- 分页就加入样式 style="page-break-after: always;" -->
85
+        <tr>
86
+          <td :colspan="4" class="header">结算说明</td>
87
+          <td :colspan="6">{{ form.settleComment }}</td>
88
+        </tr>
89
+        <tr>
90
+          <td :colspan="10" class="header bg">审核情况</td>
91
+        </tr>
92
+        <tr>
93
+          <td :colspan="2" class="fontbold">综合事务部(设备领用情况)</td>
94
+          <td :colspan="4" class="conment-width">{{ form.zhComment }}</td>
95
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.zhUserName }}</span></td>
96
+          <td :colspan="2" style="text-align:left;">日期:{{ form.zhTime }}</td>
97
+        </tr>
98
+        <tr>
99
+          <td :colspan="2" class="fontbold">技术质量部(质量及工作量)</td>
100
+          <td :colspan="4" class="conment-width">{{ form.jsComment }}</td>
101
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.jsUserName }}</span></td>
102
+          <td :colspan="2" style="text-align:left;">日期:{{ form.jsTime }}</td>
103
+        </tr>
104
+        <tr>
105
+          <td :colspan="2" class="fontbold">项目管理部(结算)</td>
106
+          <td :colspan="4" class="conment-width">{{ form.xmComment }}</td>
107
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.xmUserName }}</span></td>
108
+          <td :colspan="2" style="text-align:left;">日期:{{ form.xmTime }}</td>
109
+        </tr>
110
+        <tr>
111
+          <td :colspan="2" class="fontbold">项目承担部门(确认)</td>
112
+          <td :colspan="4" class="conment-width">{{ form.deptComment }}</td>
113
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.deptUserName }}</span></td>
114
+          <td :colspan="2" style="text-align:left;">日期:{{ form.deptTime }}</td>
115
+        </tr>
116
+        <tr>
117
+          <td :colspan="2" class="fontbold">经营发展部(校核)</td>
118
+          <td :colspan="4" class="conment-width">{{ form.jyComment }}</td>
119
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.jyUserName }}</span></td>
120
+          <td :colspan="2" style="text-align:left;">日期:{{ form.jyTime }}</td>
121
+        </tr>
122
+        <tr>
123
+          <td :colspan="2" class="fontbold">分管领导(审核)</td>
124
+          <td :colspan="4" class="conment-width">{{ form.managerComment }}</td>
125
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.managerUserName }}</span></td>
126
+          <td :colspan="2" style="text-align:left;">日期:{{ form.managerTime }}</td>
127
+        </tr>
128
+        <tr>
129
+          <td :colspan="2" class="fontbold">总经理(审批)</td>
130
+          <td :colspan="4" class="conment-width">{{ form.gmComment }}</td>
131
+          <td :colspan="2" style="text-align:left;">签名:<span class="auditor">{{ form.gmUserName }}</span></td>
132
+          <td :colspan="2" style="text-align:left;">日期:{{ form.gmTime }}</td>
133
+        </tr>
134
+      </table>
135
+    </div>
132 136
     <div class="text-center mt20">
133
-      <el-button type="primary">确认打印</el-button>
134
-      <el-button>取消</el-button>
137
+      <el-button type="primary" v-print="print">确认打印</el-button>
138
+      <el-button @click="$emit('cancel')">取消</el-button>
135 139
     </div>
136 140
   </div>
137 141
 </template>
138 142
 
139 143
 <script>
140
-import { getUser } from "@/api/system/user";
141
-import { getDept } from "@/api/system/dept"
142 144
 export default {
143 145
   props: {
144 146
     form: {
@@ -160,7 +162,24 @@ export default {
160 162
       deptSettleList: [],
161 163
       deductionsList: [],
162 164
       actualSumSettle: '',
163
-      undertakingDept: []
165
+      undertakingDept: [],
166
+      print: {
167
+        id: 'printArea',
168
+        popTitle: '结算表单', // 打印配置页上方标题
169
+        extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
170
+        preview: false, // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
171
+        previewTitle: '', // 打印预览的标题(开启预览模式后出现),
172
+        previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
173
+        zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
174
+        previewBeforeOpenCallback() { }, //预览窗口打开之前的callback(开启预览模式调用)
175
+        previewOpenCallback() { }, // 预览窗口打开之后的callback(开启预览模式调用)
176
+        beforeOpenCallback() { }, // 开启打印前的回调事件
177
+        openCallback() { }, // 调用打印之后的回调事件
178
+        closeCallback() { }, //关闭打印的回调事件(无法确定点击的是确认还是取消)
179
+        url: '',
180
+        standard: '',
181
+        extraCss: ''
182
+      }
164 183
     }
165 184
   },
166 185
   mounted() {
@@ -177,21 +196,7 @@ export default {
177 196
           this.settleSum = s
178 197
         }
179 198
       }
180
-      getUser(this.chooseProject.projectLeader).then(res => {
181
-        if (res.data) {
182
-          this.$set(this.chooseProject, 'projectLeaderName', res.data.nickName)
183
-        }
184
-      })
185
-      let deptArr = this.chooseProject.undertakingDept.split(',')
186
-      for (let dept of deptArr) {
187
-        getDept(dept).then(res => {
188
-          console.log(res);
189
-          if(res.data){
190
-            this.undertakingDept.push(res.data.deptName);
191
-          }
192
-        })
193
-      }
194
-
199
+      this.print.popTitle = this.chooseProject.projectName + '结算表单'
195 200
       this.calculateActualSumSettle()
196 201
     },
197 202
     calculateActualSumSettle() {
@@ -232,6 +237,7 @@ table {
232 237
 
233 238
 .bg {
234 239
   background-color: #eee;
240
+  -webkit-print-color-adjust: exact;
235 241
 }
236 242
 
237 243
 .title {
@@ -248,4 +254,18 @@ table {
248 254
 .conment-width {
249 255
   max-width: 200px;
250 256
 }
257
+
258
+
259
+@page {
260
+  size: auto;
261
+  /* 去除页脚 */ 
262
+  margin-bottom: 0; 
263
+  // 横向A4
264
+  // size:A4 landscape;
265
+}
266
+@media print {
267
+  #print table{
268
+    width: 100%;
269
+  }
270
+}
251 271
 </style>

oa-ui/src/views/flowable/form/finance/borrowForm.vue
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


oa-ui/src/views/flowable/form/finance/depositForm.vue
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


oa-ui/src/views/flowable/form/borrow/borrowData.vue → oa-ui/src/views/flowable/form/inProgress/borrowData.vue Dosyayı Görüntüle


+ 147
- 0
oa-ui/src/views/flowable/form/inProgress/settleData.vue Dosyayı Görüntüle

@@ -0,0 +1,147 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-05-10 14:45:03
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-10 17:45:25
6
+-->
7
+<template>
8
+  <div class="mt20">
9
+    <div class="nav-btn">
10
+      <div>
11
+        <el-button class="mb20" type="primary" plain size="mini" icon="el-icon-plus"
12
+          @click="addSettleFlow">结算申请</el-button>
13
+      </div>
14
+      <div>
15
+        <el-button icon="el-icon-refresh" circle size="mini" @click="getSettleData()"></el-button>
16
+      </div>
17
+    </div>
18
+
19
+    <el-table :data="dataList" style="width: 100%">
20
+      <el-table-column type="index" label="序号" width="50" />
21
+      <el-table-column label="上报人">
22
+        <template slot-scope="scope">
23
+          {{ getReporter(scope.row) }}
24
+        </template>
25
+      </el-table-column>
26
+      <el-table-column label="申请时间" prop="reportTime" />
27
+      <el-table-column label="综合事务部意见" prop="zhComment" />
28
+      <el-table-column label="技术质量部意见" prop="jsComment" />
29
+      <el-table-column label="项目管理部意见" prop="xmComment" />
30
+      <el-table-column label="承担部门意见" prop="deptComment" />
31
+      <el-table-column label="经营管理部意见" prop="jyComment" />
32
+      <el-table-column label="分管审核意见" prop="managerComment" />
33
+      <el-table-column label="总经理意见" prop="gmComment" />
34
+      <el-table-column label="操作" fixed="right" header-align="center">
35
+        <template slot-scope="scope">
36
+          <el-button icon="el-icon-view" type="text" size="mini" @click="handleLook(scope.row)">查看明细</el-button>
37
+        </template>
38
+      </el-table-column>
39
+    </el-table>
40
+  </div>
41
+</template>
42
+
43
+<script>
44
+import { listSettle, getSettle, delSettle, addSettle, updateSettle } from "@/api/oa/settle/settle";
45
+import { listDefinition } from "@/api/flowable/definition";
46
+import { getNextFlowNodeByStart } from "@/api/flowable/todo";
47
+import { definitionStart } from "@/api/flowable/definition";
48
+import { todoList } from "@/api/flowable/todo";
49
+import { MessageBox } from 'element-ui'
50
+import { getUser } from "@/api/system/user";
51
+import { Snowflake } from '@/utils/snowFlake.js'
52
+export default {
53
+  props: {
54
+    taskForm: {
55
+      type: Object,
56
+      required: true
57
+    }
58
+  },
59
+  data() {
60
+    return {
61
+      dataList: [],
62
+      definitionList: [], //流程列表
63
+    }
64
+  },
65
+  mounted() {
66
+    this.getSettleData();
67
+    this.listDefinition();
68
+  },
69
+  methods: {
70
+    getSettleData() {
71
+      listSettle({ projectId: this.taskForm.formId }).then(res => {
72
+        if (res.code == 200) {
73
+          this.dataList = res.rows
74
+        }
75
+      })
76
+    },
77
+    getReporter(row) {
78
+      getUser(row.reporter).then(res => {
79
+        return res.data.nickName
80
+      })
81
+    },
82
+    listDefinition() {
83
+      listDefinition({
84
+        pageNum: 1,
85
+        pageSize: 9999,
86
+        name: '项目结算'
87
+      }).then(response => {
88
+        this.definitionList = response.data.records;
89
+      });
90
+    },
91
+    handleLook(row){
92
+
93
+    },
94
+    addSettleFlow() {
95
+      let row = this.definitionList[0];
96
+      let formId = new Snowflake(1n, 1n, 0n).nextId().toString();
97
+      getNextFlowNodeByStart({ deploymentId: row.deploymentId, variables: { formId: formId } }).then(res => {
98
+        const variables = {};
99
+        const formData = {};
100
+        formData.formId = formId;
101
+        if (row.id) {
102
+          MessageBox.confirm('是否发起项目结算?', '系统提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' }).then(() => {
103
+            variables.variables = formData;
104
+            // 启动流程并将表单数据加入流程变量
105
+            definitionStart(row.id, JSON.stringify(variables)).then(res => {
106
+              this.$modal.msgSuccess(res.msg);
107
+              let procInstanceId = res.data;
108
+              todoList({
109
+                pageNum: 1,
110
+                pageSize: 99999999,
111
+                processInsId: procInstanceId
112
+              }).then(toDoRes => {
113
+                let records = toDoRes.data.records;
114
+                if (records.length == 1) {
115
+                  records = records[0]
116
+                }
117
+                this.$router.push({
118
+                  path: '/applyForm/settleApply',
119
+                  query: {
120
+                    procInsId: records.procInsId,
121
+                    executionId: records.executionId,
122
+                    deployId: records.deployId,
123
+                    taskId: records.taskId,
124
+                    taskName: records.taskName,
125
+                    startUser: records.startUserName + '--' + records.startDeptName,
126
+                    formId: formData.formId,
127
+                    procDefName: records.procDefName,
128
+                    projectId: this.taskForm.formId
129
+                  }
130
+                })
131
+              })
132
+            })
133
+          })
134
+        }
135
+      })
136
+    },
137
+
138
+  }
139
+}
140
+</script>
141
+
142
+<style lang="scss" scoped>
143
+.nav-btn {
144
+  display: flex;
145
+  justify-content: space-between;
146
+}
147
+</style>

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


oa-ui/src/views/flowable/form/deviceForm.vue → oa-ui/src/views/flowable/form/oa/deviceForm.vue Dosyayı Görüntüle


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

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-15 09:35:41
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-09 11:12:07
5
+ * @LastEditTime: 2024-05-10 14:45:57
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -137,8 +137,8 @@ import { listBudget } from "@/api/oa/budget/budget";
137 137
 import { getProject, updateProject } from "@/api/oa/project/project";
138 138
 import { getCar } from "@/api/oa/car/car";
139 139
 import { listUser } from '@/api/system/user';
140
-import borrowData from '../borrow/borrowData.vue';
141
-import SettleData from '../settle/settleData.vue';
140
+import borrowData from '../inProgress/borrowData.vue';
141
+import SettleData from '../inProgress/settleData.vue';
142 142
 export default {
143 143
   components: {
144 144
     borrowData,

+ 0
- 69
oa-ui/src/views/flowable/form/settle/settleData.vue Dosyayı Görüntüle

@@ -1,69 +0,0 @@
1
-<template>
2
-  <div class="mt20">
3
-    <div class="nav-btn">
4
-      <div>
5
-        <el-button class="mb20" type="primary" plain size="mini" icon="el-icon-plus"
6
-          @click="addSettleFlow">结算申请</el-button>
7
-      </div>
8
-      <div>
9
-        <el-button icon="el-icon-refresh" circle size="mini" @click="getSettleData()"></el-button>
10
-      </div>
11
-    </div>
12
-
13
-    <el-table :data="dataList" style="width: 100%">
14
-      <el-table-column type="index" label="序号" width="50" />
15
-      <el-table-column label="上报人">
16
-        <template slot-scope="scope">
17
-          {{ getReporter(scope.row) }}
18
-        </template>
19
-      </el-table-column>
20
-    </el-table>
21
-  </div>
22
-</template>
23
-
24
-<script>
25
-import { listSettle, getSettle, delSettle, addSettle, updateSettle } from "@/api/oa/settle/settle";
26
-import { getUser } from "@/api/system/user";
27
-export default {
28
-  props: {
29
-    taskForm: {
30
-      type: Object,
31
-      required: true
32
-    }
33
-  },
34
-  data() {
35
-    return {
36
-      dataList: []
37
-    }
38
-  },
39
-  mounted() {
40
-    this.getSettleData()
41
-  },
42
-  methods: {
43
-    getSettleData() {
44
-      listSettle({ projectId: this.taskForm.formId }).then(res => {
45
-        console.log(res);
46
-        if (res.code == 200) {
47
-          this.dataList = res.rows
48
-        }
49
-      })
50
-    },
51
-    addSettleFlow() {
52
-
53
-    },
54
-    getReporter(row){
55
-      getUser(row.reporter).then(res=>{
56
-        console.log(res);
57
-        return res.data.nickName
58
-      })
59
-    }
60
-  }
61
-}
62
-</script>
63
-
64
-<style lang="scss" scoped>
65
-.nav-btn {
66
-  display: flex;
67
-  justify-content: space-between;
68
-}
69
-</style>

+ 36
- 8
oa-ui/src/views/flowable/form/settleForm.vue Dosyayı Görüntüle

@@ -2,13 +2,14 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-30 09:03:14
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-10 11:05:25
5
+ * @LastEditTime: 2024-05-10 17:29:44
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container" v-loading="loading">
9 9
     <el-button type="warning" icon="el-icon-printer" @click="printOpen = true">打印</el-button>
10 10
     <el-dialog title="结算表格预览" :visible.sync="printOpen" width="65%" append-to-body>
11
-      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList" :settleList="oldSettleSumList"></settle-print>
11
+      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList"
12
+        :settleList="oldSettleSumList" @cancel="printOpen = false"></settle-print>
12 13
     </el-dialog>
13 14
     <el-row :gutter="20">
14 15
       <el-col :span="19" :xs="24">
@@ -54,13 +55,13 @@
54 55
                 {{ chooseProject.projectType }}
55 56
               </el-descriptions-item>
56 57
               <el-descriptions-item label="项目级别" label-class-name="my-label">
57
-                {{ chooseProject.projectLevel }}
58
+                {{ chooseProject.projectLevel == '0' ? ' 一般项目' : '重大项目' }}
58 59
               </el-descriptions-item>
59 60
               <el-descriptions-item label="承担部门" label-class-name="my-label">
60
-                {{ chooseProject.undertakingDept }}
61
+                {{ chooseProject.undertakingDeptName }}
61 62
               </el-descriptions-item>
62 63
               <el-descriptions-item label="项目登记人" label-class-name="my-label">
63
-                {{ chooseProject.projectRegistrant }}
64
+                {{ chooseProject.projectRegistrantName }}
64 65
               </el-descriptions-item>
65 66
             </el-descriptions>
66 67
           </el-form-item>
@@ -434,6 +435,7 @@ import { getUser } from "@/api/system/user";
434 435
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
435 436
 import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept } from '@/api/system/post.js'
436 437
 import SettlePrint from './components/settlePrint.vue';
438
+import { getDept } from "@/api/system/dept"
437 439
 export default {
438 440
   components: {
439 441
     flow,
@@ -520,8 +522,7 @@ export default {
520 522
     this.getProjectList(); //获取项目列表
521 523
     this.getContractDataList(); //获取合同编码和编号
522 524
     this.initForm();
523
-    if (this.$route.query.projectId) {
524
-    }
525
+
525 526
     flowXmlAndNode({
526 527
       procInsId: this.taskForm.procInsId,
527 528
       deployId: this.taskForm.deployId,
@@ -529,7 +530,18 @@ export default {
529 530
       this.flowData = res.data;
530 531
     });
531 532
   },
532
-  mounted() { },
533
+  mounted() {
534
+    if (this.$route.query.projectId) {
535
+      getProject(this.$route.query.projectId).then(res => {
536
+        if (res.data) {
537
+          this.$set(this.form, 'projectId', res.data.projectId)
538
+          this.handleSelectProject(res.data.projectId)
539
+        }
540
+      })
541
+    } else {
542
+      this.handleSelectProject(this.form.projectId)
543
+    }
544
+  },
533 545
   methods: {
534 546
     initForm() {
535 547
       listSettle({ settleId: this.taskForm.formId }).then(res => {
@@ -638,6 +650,7 @@ export default {
638 650
         this.$message.success('保存成功')
639 651
       } else {
640 652
         this.addSettleFn();
653
+        this.$message.success('保存成功')
641 654
       }
642 655
     },
643 656
     submitNextFlow() {
@@ -709,6 +722,21 @@ export default {
709 722
         getProject(val).then(res => {
710 723
           this.chooseProject = res.data;
711 724
           this.isSelect = true;
725
+          getUser(this.chooseProject.projectRegistrant).then(res => {
726
+            if (res.data) {
727
+              this.$set(this.chooseProject, 'projectRegistrantName', res.data.nickName)
728
+            }
729
+          })
730
+          let deptArr = this.chooseProject.undertakingDept.split(',')
731
+          let undertakingDept = []
732
+          for (let dept of deptArr) {
733
+            getDept(dept).then(res => {
734
+              if (res.data) {
735
+                undertakingDept.push(res.data.deptName);
736
+                this.$set(this.chooseProject, 'undertakingDeptName', undertakingDept.join(','))
737
+              }
738
+            })
739
+          }
712 740
         });
713 741
       } else {
714 742
         this.isSelect = false;

+ 7
- 7
oa-ui/src/views/flowable/task/finished/detail/index.vue Dosyayı Görüntüle

@@ -88,13 +88,13 @@ import { getProcessVariables, flowXmlAndNode } from "@/api/flowable/definition";
88 88
 import flow from '@/views/flowable/task/finished/detail/flow'
89 89
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
90 90
 import { getAssess, modifyAssess } from '@/api/oa/assess/assess'
91
-import ScTable from "@/views/flowable/form/scTable.vue";
92
-import JyTable from "@/views/flowable/form/jyTable.vue";
93
-import ZhTable from "@/views/flowable/form/zhTable.vue";
94
-import JsTable from "@/views/flowable/form/jsTable.vue";
95
-import XmTable from "@/views/flowable/form/xmTable.vue";
96
-import CwTable from "@/views/flowable/form/cwTable.vue";
97
-import CarForm from '@/views/flowable/form/carForm.vue';
91
+import ScTable from "@/views/flowable/form/access/scTable.vue";
92
+import JyTable from "@/views/flowable/form/access/jyTable.vue";
93
+import ZhTable from "@/views/flowable/form/access/zhTable.vue";
94
+import JsTable from "@/views/flowable/form/access/jsTable.vue";
95
+import XmTable from "@/views/flowable/form/access/xmTable.vue";
96
+import CwTable from "@/views/flowable/form/access/cwTable.vue";
97
+import CarForm from '@/views/flowable/form/oa/carForm.vue';
98 98
 import projectProcess from '@/views/flowable/form/projectProcess/index'
99 99
 import TechnicalForm from '../../../form/technicalForm.vue';
100 100
 import SafeForm from '../../../form/safeForm.vue';

+ 1
- 1
oa-ui/src/views/flowable/task/form/index.vue Dosyayı Görüntüle

@@ -138,7 +138,7 @@
138 138
 import { listForm, getForm, delForm, addForm, updateForm, exportForm } from "@/api/flowable/form";
139 139
 import Editor from '@/components/Editor';
140 140
 import Parser from '@/components/parser/Parser'
141
-import scform from '../../form/scForm.vue'
141
+import scform from '@/views/flowable/form/access/scForm.vue'
142 142
 export default {
143 143
   name: "Form",
144 144
   components: {

+ 3
- 3
oa-ui/src/views/flowable/task/myProcess/index.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-05-09 10:53:40
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-10 14:57:12
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -134,7 +134,7 @@ import { Snowflake } from '@/utils/snowFlake.js'
134 134
 import RowDetail from './send/rowDetail.vue'
135 135
 import ProgressTree from './progressTree.vue';
136 136
 import { getProcessVariables } from "@/api/flowable/definition";
137
-import conditionDisplay from '@/views/flowable/form/conditionDisplay/index'
137
+import conditionDisplay from '@/views/flowable/form/components/conditionDisplay.vue'
138 138
 export default {
139 139
   name: "Deploy",
140 140
   components: {

+ 7
- 7
oa-ui/src/views/flowable/task/myProcess/send/index.vue Dosyayı Görüntüle

@@ -58,13 +58,13 @@ import { flowFormData } from "@/api/flowable/process";
58 58
 import { getNextFlowNodeByStart } from "@/api/flowable/todo";
59 59
 import FlowUser from '@/components/flow/User'
60 60
 import FlowRole from '@/components/flow/Role'
61
-import ScForm from '../../../form/scForm.vue';
62
-import JyForm from '../../../form/jyForm.vue';
63
-import ZhForm from '../../../form/zhForm.vue';
64
-import JsForm from '../../../form/jsForm.vue';
65
-import XmForm from '../../../form/xmForm.vue';
66
-import CwForm from '../../../form/cwForm.vue';
67
-import ProjectProcess from '../../../form/projectProcess/index'
61
+import ScForm from '@/views/flowable/form/access/scForm.vue';
62
+import JyForm from '@/views/flowable/form/access/jyForm.vue';
63
+import ZhForm from '@/views/flowable/form/access/zhForm.vue';
64
+import JsForm from '@/views/flowable/form/access/jsForm.vue';
65
+import XmForm from '@/views/flowable/form/access/xmForm.vue';
66
+import CwForm from '@/views/flowable/form/access/cwForm.vue';
67
+import ProjectProcess from '@/views/flowable/form/projectProcess/index.vue'
68 68
 
69 69
 export default {
70 70
   name: "Record",

+ 2
- 2
oa-ui/src/views/flowable/task/todo/applyForm/borrowIndex.vue Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-26 17:01:15
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-28 14:30:48
5
+ * @LastEditTime: 2024-05-10 15:36:52
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -16,7 +16,7 @@
16 16
 import { flowRecord } from "@/api/flowable/finished";
17 17
 import { getProcessVariables, flowXmlAndNode, definitionStart } from "@/api/flowable/definition";
18 18
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
19
-import BorrowForm from '@/views/flowable/form/borrowForm.vue';
19
+import BorrowForm from '@/views/flowable/form/finance/borrowForm.vue';
20 20
 import navHeader from './components/navHeader.vue'
21 21
 export default {
22 22
   components: {

+ 1
- 1
oa-ui/src/views/flowable/task/todo/applyForm/carIndex.vue Dosyayı Görüntüle

@@ -17,7 +17,7 @@ import { flowRecord } from "@/api/flowable/finished";
17 17
 import { getProcessVariables, flowXmlAndNode, definitionStart } from "@/api/flowable/definition";
18 18
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
19 19
 import navHeader from './components/navHeader.vue'
20
-import CarForm from '@/views/flowable/form/carForm.vue';
20
+import CarForm from '@/views/flowable/form/oa/carForm.vue';
21 21
 export default {
22 22
   components: {
23 23
     navHeader,

+ 2
- 3
oa-ui/src/views/flowable/task/todo/applyForm/deviceIndex.vue Dosyayı Görüntüle

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-28 15:38:55
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-28 16:34:45
5
+ * @LastEditTime: 2024-05-10 17:05:41
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -17,7 +17,7 @@ import { flowRecord } from "@/api/flowable/finished";
17 17
 import { getProcessVariables, flowXmlAndNode, definitionStart, getFlowViewer } from "@/api/flowable/definition";
18 18
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm } from "@/api/flowable/todo";
19 19
 import navHeader from './components/navHeader.vue'
20
-import DeviceForm from '@/views/flowable/form/deviceForm.vue';
20
+import DeviceForm from '@/views/flowable/form/oa/deviceForm.vue';
21 21
 export default {
22 22
   components: {
23 23
     navHeader,
@@ -95,7 +95,6 @@ export default {
95 95
     },
96 96
     getFlowViewer(procInsId,executionId) {
97 97
       getFlowViewer(procInsId,executionId).then(res => {
98
-        console.log(res.data);
99 98
       })
100 99
     },
101 100
     goBack() {

+ 6
- 83
oa-ui/src/views/flowable/task/todo/detail/index.vue Dosyayı Görüntüle

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-29 15:58:04
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-05-10 15:14:21
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -16,44 +16,8 @@
16 16
       <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
17 17
         <!--表单信息-->
18 18
         <el-tab-pane label="表单信息" name="1">
19
-          <sc-table :taskForm="taskForm" :taskName="taskName" v-if="taskForm.procDefName == '生产部门考核'"
20
-            @goBack="goBack"></sc-table>
21
-          <jy-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '经营发展部考核'"
22
-            @goBack="goBack"></jy-table>
23
-          <js-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '技术质量部考核'"
24
-            @goBack="goBack"></js-table>
25
-          <xm-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '项目管理部考核'"
26
-            @goBack="goBack"></xm-table>
27
-          <cw-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '财务部考核'"
28
-            @goBack="goBack"></cw-table>
29
-          <zh-table :taskForm="taskForm" :taskName="taskName" v-else-if="taskForm.procDefName == '综合事务部考核'"
30
-            @goBack="goBack"></zh-table>
31
-          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'"
32
-            @goBack="goBack"></car-form>
33
-          <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
34
-            @goBack="goBack"></device-form>
35
-          <project-process :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目流转'"
36
-            @goBack="goBack"></project-process>
37
-          <budget-index :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目预算'"
38
-            @goBack="goBack"></budget-index>
39
-          <borrow-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '借款审批'"
40
-            @goBack="goBack"></borrow-form>
41
-          <safe-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"
42
-            @goBack="goBack"></safe-form>
43
-          <technical-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"
44
-            @goBack="goBack"></technical-form>
45
-          <contract-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '承接合同评审'"
46
-            @goBack="goBack"></contract-form>
47
-          <sub-contract :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '分包合同评审'"
48
-            @goBack="goBack"></sub-contract>
49
-          <brand-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '品牌项目支付'"
50
-            @goBack="goBack"></brand-form>
51
-          <deposit-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '保证金审批'"
52
-            @goBack="goBack"></deposit-form>
53
-          <archive-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '成果归档'"
54
-            @goBack="goBack"></archive-form>
55
-          <settle-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目结算'"
56
-            @goBack="goBack"></settle-form>
19
+          <!-- 待办表单显示 -->
20
+          <detail-display :taskForm="taskForm" :taskName="taskName" @goBack="goBack"></detail-display>
57 21
           <el-row type="flex" justify="center">
58 22
             <!-- <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
59 23
               @click="handleComplete">审批
@@ -191,28 +155,7 @@ import {
191 155
 } from "@/api/flowable/todo";
192 156
 import flow from '@/views/flowable/task/todo/detail/flow'
193 157
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
194
-import { listUser } from "@/api/system/user";
195
-import ScTable from "@/views/flowable/form/scTable.vue";
196
-import JyTable from "@/views/flowable/form/jyTable.vue";
197
-import ZhTable from "@/views/flowable/form/zhTable.vue";
198
-import JsTable from "@/views/flowable/form/jsTable.vue";
199
-import XmTable from "@/views/flowable/form/xmTable.vue";
200
-import CwTable from "@/views/flowable/form/cwTable.vue";
201
-import carForm from "@/views/flowable/form/carForm.vue";
202
-import deviceForm from "@/views/flowable/form/deviceForm";
203
-import projectProcess from "@/views/flowable/form/projectProcess/index.vue"
204
-import AddBudget from '@/views/oa/budget/addBudget.vue';
205
-import borrowForm from '@/views/flowable/form/borrowForm.vue';
206
-import safeForm from '@/views/flowable/form/safeForm.vue';
207
-import technicalForm from '@/views/flowable/form/technicalForm.vue';
208
-import budgetIndex from '@/views/flowable/form/budget/budget.vue';
209
-import businessReview from '@/views/flowable/form/projectProcess/businessReview.vue';
210
-import contractForm from '@/views/flowable/form/contractForm.vue';
211
-import subContract from '@/views/flowable/form/subContract.vue';
212
-import brandForm from '@/views/flowable/form/brandForm.vue';
213
-import depositForm from '@/views/flowable/form/depositForm.vue';
214
-import archiveForm from '@/views/flowable/form/archiveForm.vue';
215
-import settleForm from '@/views/flowable/form/settleForm.vue';
158
+import detailDisplay from "@/views/flowable/form/components/detailDisplay.vue";
216 159
 
217 160
 export default {
218 161
   name: "Record",
@@ -221,27 +164,7 @@ export default {
221 164
     flow,
222 165
     FlowUser,
223 166
     FlowRole,
224
-    ScTable,
225
-    ZhTable,
226
-    JsTable,
227
-    XmTable,
228
-    CwTable,
229
-    JyTable,
230
-    carForm,
231
-    deviceForm,
232
-    projectProcess,
233
-    AddBudget,
234
-    borrowForm,
235
-    safeForm,
236
-    technicalForm,
237
-    budgetIndex,
238
-    businessReview,
239
-    contractForm,
240
-    subContract,
241
-    brandForm,
242
-    depositForm,
243
-    archiveForm,
244
-    settleForm
167
+    detailDisplay
245 168
   },
246 169
   props: {},
247 170
   data() {

Loading…
İptal
Kaydet