Переглянути джерело

修改网页端预算提交错误的问题;

新增合同打印页面
余思翰 1 тиждень тому
джерело
коміт
cb2d69e644

+ 1
- 11
oa-ui/src/utils/deleteResource.js Переглянути файл

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-13 17:07:59
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-21 14:46:33
5
+ * @LastEditTime: 2025-05-29 14:29:39
6 6
  */
7 7
 import request from '@/utils/request'
8 8
 
@@ -120,16 +120,6 @@ const apiEndpoints = [
120 120
       '/oa/wage/batch/:id'
121 121
     ]
122 122
   },
123
-  {
124
-    procDefName: '项目预算',
125
-    apiUrl: [
126
-      '/oa/budget/:id',
127
-      '/oa/budgetSettle/:id',
128
-      '/oa/budgetCar/:id',
129
-      '/oa/budgetDevice/:id',
130
-      '/oa/budgetStaff/:id',
131
-    ]
132
-  },
133 123
   {
134 124
     procDefName: '技术方案',
135 125
     apiUrl: [

+ 4
- 5
oa-ui/src/views/flowable/form/budget/addBudget.vue Переглянути файл

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-06-21 18:51:51
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-16 09:43:29
5
+ * @LastEditTime: 2025-05-29 13:55:21
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -132,10 +132,10 @@
132 132
       <el-button type="warning" @click="preserve()">保存</el-button>
133 133
       <el-button type="danger" @click="returnOpen = true" v-if="taskName != '预算编制'">退 回</el-button>
134 134
       <el-button type="success" @click="viewForm()">预览表单</el-button>
135
-      <el-button type="primary" @click="submitNextFlow" v-if="taskName == '预算编制'">提交下一个流程</el-button>
135
+      <el-button type="primary" @click="submitNextFlow"
136
+        v-if="taskName == '预算编制' || taskName == '部门审核'">提交下一个流程</el-button>
136 137
     </div>
137 138
     <el-dialog title="表单预览" :visible.sync="viewOpen" width="75%" append-to-body>
138
-      <!-- <budget-info :taskName="taskName" :taskForm="taskForm" @goBack="$emit('goBack')"></budget-info> -->
139 139
       <new-budget-info :taskName="taskName" :taskForm="taskForm"></new-budget-info>
140 140
     </el-dialog>
141 141
     <el-dialog title="退回" :visible.sync="returnOpen" width="40%" append-to-body>
@@ -265,8 +265,7 @@ export default {
265 265
       this.$modal.confirm('是否提交到下一个流程?').then(async () => {
266 266
         if (this.taskName == "预算编制") {
267 267
           this.preserve();
268
-          let curUser = this.$store.getters.name;
269
-          let deptLeaderRes = await getUsersDeptLeader(curUser);
268
+          let deptLeaderRes = await getUsersDeptLeaderByDept({ deptId: this.$store.getters.deptId });
270 269
           let deptLeader = deptLeaderRes.data.userId;
271 270
           this.$set(this.taskForm.variables, 'approval', deptLeader)
272 271
         } else if (this.taskName == '部门审核') {

+ 7
- 1
oa-ui/src/views/flowable/form/budget/adjust/newBudgetInfo.vue Переглянути файл

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2025-05-07 11:01:39
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-27 16:27:15
5
+ * @LastEditTime: 2025-05-29 14:36:02
6 6
 -->
7 7
 <template>
8 8
   <div class="main" v-loading="loading">
@@ -651,6 +651,12 @@ export default {
651 651
           // 获取现场开支
652 652
           let siteRes = await listSite({ pageSize: 100, budgetId });
653 653
           this.siteList = siteRes.rows;
654
+          this.siteList = this.siteList.map(site => {
655
+            return {
656
+              ...site,
657
+              amount: Number(site.amount).toFixed(2),
658
+            };
659
+          });
654 660
           this.budgetForm.siteSum = this.siteList.reduce((sum, site) => sum + (Number(site.amount) || 0), 0);
655 661
 
656 662
           // 检查内业人员绩效总额是否超过内业绩效总额

+ 6
- 0
oa-ui/src/views/flowable/form/business/components/paymentTable.vue Переглянути файл

@@ -96,6 +96,12 @@ export default {
96 96
       this.paymentList.forEach(payment => {
97 97
         this.calculatePaymentAmount(payment)
98 98
       })
99
+    },
100
+    paymentList: {
101
+      handler(newVal) {
102
+        this.$emit('update:paymentList', newVal)
103
+      },
104
+      deep: true
99 105
     }
100 106
   },
101 107
   created() {

+ 7
- 1
oa-ui/src/views/flowable/form/business/components/workTable.vue Переглянути файл

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-08-29 15:21:42
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-09-25 17:08:46
5
+ * @LastEditTime: 2025-05-28 15:15:13
6 6
 -->
7 7
 <template>
8 8
   <div style="width:100%">
@@ -93,6 +93,12 @@ export default {
93 93
   watch: {
94 94
     contractId() {
95 95
       this.initTable()
96
+    },
97
+    workList: {
98
+      handler(newVal) {
99
+        this.$emit('update:workList', newVal)
100
+      },
101
+      deep: true
96 102
     }
97 103
   },
98 104
   created() {

+ 24
- 8
oa-ui/src/views/flowable/form/business/contractForm.vue Переглянути файл

@@ -2,10 +2,17 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-01-23 15:46:04
5
+ * @LastEditTime: 2025-05-28 14:47:35
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
9
+    <!-- 承接合同打印 -->
10
+    <el-button type="primary" @click="printOpen = true">打印</el-button>
11
+    <el-dialog :title="title" :visible.sync="printOpen" width="60%" append-to-body>
12
+      <contract-print :form="form" :chooseProjectList="chooseProjectList" :commentList="commentList"
13
+        :partyAList="partyAList" :workList="workList" :paymentList="paymentList"
14
+        @cancel="printOpen = false"></contract-print>
15
+    </el-dialog>
9 16
     <el-row :gutter="20">
10 17
       <el-col :span="flowDisabled ? 18 : 24" :xs="24">
11 18
         <h2 class="text-center"><b>承接合同评审表</b></h2>
@@ -23,13 +30,13 @@
23 30
             <el-button type="primary" size="mini" @click="tbOpen = true" v-if="taskName == '合同拟稿'">选择投标项目</el-button>
24 31
             <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="3" direction="vertical">
25 32
               <el-descriptions-item label="投标项目名称" label-class-name="my-label" :span="3">{{ chooseTender.projectName
26
-                }}</el-descriptions-item>
33
+              }}</el-descriptions-item>
27 34
               <el-descriptions-item label="项目来源" label-class-name="my-label">{{ getProjectSource(chooseTender)
28
-                }}</el-descriptions-item>
35
+              }}</el-descriptions-item>
29 36
               <el-descriptions-item label="联系人" label-class-name="my-label">{{ chooseTender.aPerson
30
-                }}</el-descriptions-item>
37
+              }}</el-descriptions-item>
31 38
               <el-descriptions-item label="联系电话" label-class-name="my-label">{{ chooseTender.aPhone
32
-                }}</el-descriptions-item>
39
+              }}</el-descriptions-item>
33 40
             </el-descriptions>
34 41
           </el-form-item>
35 42
           <el-form-item label="合同名称" prop="contractName">
@@ -114,13 +121,14 @@
114 121
             </el-table>
115 122
           </el-form-item>
116 123
           <!-- 表1:合同计划工作量 -->
117
-          <work-table ref="workTableRef" :contractId="taskForm.formId" :taskName="taskName"></work-table>
124
+          <work-table ref="workTableRef" :contractId="taskForm.formId" :taskName="taskName"
125
+            @update:workList="updateWorkList"></work-table>
118 126
 
119 127
           <p class="mb20 mt20"></p>
120 128
 
121 129
           <!-- 表2:合同回款计划  -->
122 130
           <payment-table ref="paymentRef" :contractId="taskForm.formId" :amount="form.amount"
123
-            :taskName="taskName"></payment-table>
131
+            :taskName="taskName" @update:paymentList="updatePaymentList"></payment-table>
124 132
 
125 133
           <el-form-item label="合同备注" prop="remark">
126 134
             <el-input v-model="form.remark" :autosize="{ minRows: 4 }" type="textarea" placeholder="请输入合同备注"
@@ -432,12 +440,13 @@ import ChoosePartyA from '@/views/flowable/form/components/choosePartyA.vue';
432 440
 import ChooseSubcontract from '@/views/flowable/form/components/chooseSubcontract.vue';
433 441
 import ReturnComment from '@/views/flowable/form/components/flowBtn/returnComment.vue';
434 442
 import ReturnBtn from '@/views/flowable/form/components/flowBtn/returnBtn.vue';
443
+import ContractPrint from '@/views/flowable/form/components/print/contractPrint.vue';
435 444
 
436 445
 export default {
437 446
   dicts: ['cmc_scale_grade', 'cmc_unit'],
438 447
   components: {
439 448
     flow, ChooseProject, ChooseTender, FileItem, ChoosePartyA, workTable, paymentTable,
440
-    projectInfo, ChooseSubcontract, subContract, ReturnComment, ReturnBtn
449
+    projectInfo, ChooseSubcontract, subContract, ReturnComment, ReturnBtn, ContractPrint
441 450
   },
442 451
   props: {
443 452
     taskName: {
@@ -563,6 +572,7 @@ export default {
563 572
       },
564 573
       showAlter: true,
565 574
       returnOpen: false,
575
+      printOpen: false,
566 576
     };
567 577
   },
568 578
   created() {
@@ -1292,6 +1302,12 @@ export default {
1292 1302
     },
1293 1303
     isReturn(val) {
1294 1304
       this.showAlter = val
1305
+    },
1306
+    updateWorkList(newWorkList) {
1307
+      this.workList = newWorkList;
1308
+    },
1309
+    updatePaymentList(newPaymentList) {
1310
+      this.paymentList = newPaymentList;
1295 1311
     }
1296 1312
   }
1297 1313
 }

+ 291
- 0
oa-ui/src/views/flowable/form/components/print/contractPrint.vue Переглянути файл

@@ -0,0 +1,291 @@
1
+<template>
2
+  <div>
3
+    <div id="printContract">
4
+      <h2 class="text-center title">承接合同评审表</h2>
5
+      <table border="1">
6
+        <tr>
7
+          <td :colspan="1" class="fontbold">合同名称</td>
8
+          <td :colspan="8">{{ form.contractName }}</td>
9
+        </tr>
10
+        <tr>
11
+          <td :colspan="1" class="fontbold">甲方单位</td>
12
+          <td :colspan="8">{{ getPartyAName(form.partyAId) }}</td>
13
+        </tr>
14
+        <tr>
15
+          <td :colspan="1" class="fontbold">合同编码</td>
16
+          <td :colspan="4">{{ form.contractCode }}</td>
17
+          <td :colspan="1" class="fontbold">合同编号</td>
18
+          <td :colspan="3">{{ form.contractNumber }}</td>
19
+        </tr>
20
+        <tr>
21
+          <td :colspan="1" class="fontbold">合同金额</td>
22
+          <td :colspan="4">{{ form.amount }}元</td>
23
+          <td :colspan="1" class="fontbold">履约保证金</td>
24
+          <td :colspan="3">{{ form.deposit }}元</td>
25
+        </tr>
26
+        <tr>
27
+          <td :colspan="1" class="fontbold">合同文件</td>
28
+          <td :colspan="8">{{ getFileName(form.contractDocument) }}</td>
29
+        </tr>
30
+        <tr>
31
+          <td :colspan="1" class="fontbold">关联项目</td>
32
+          <td :colspan="8">
33
+            <div v-for="(project, index) in chooseProjectList" :key="index">
34
+              {{ index + 1 }}. {{ project.projectName }} ({{ project.projectNumber }})
35
+            </div>
36
+          </td>
37
+        </tr>
38
+        <tr>
39
+          <td :colspan="1" class="fontbold">合同计划工作量</td>
40
+          <td :colspan="8">
41
+            <table border="1" style="width:100%;">
42
+              <tr>
43
+                <td style="width:50px;">序号</td>
44
+                <td style="min-width:100px;">工作内容</td>
45
+                <td style="min-width:120px;">等级或比例尺</td>
46
+                <td style="min-width:80px;">单位</td>
47
+                <td style="min-width:80px;">工作量</td>
48
+                <td style="min-width:120px;">要求完成时间</td>
49
+                <td style="min-width:150px;">备注</td>
50
+              </tr>
51
+              <tr v-for="(work, idx) in workList" :key="idx">
52
+                <td>{{ idx + 1 }}</td>
53
+                <td>{{ work.content }}</td>
54
+                <td>{{ work.scale }}</td>
55
+                <td>{{ work.unit }}</td>
56
+                <td>{{ work.workload }}</td>
57
+                <td>{{ work.deadline }}</td>
58
+                <td>{{ work.remark }}</td>
59
+              </tr>
60
+              <tr v-if="!workList || workList.length === 0">
61
+                <td colspan="7">无</td>
62
+              </tr>
63
+            </table>
64
+          </td>
65
+        </tr>
66
+        <tr>
67
+          <td :colspan="1" class="fontbold">合同回款计划</td>
68
+          <td :colspan="8">
69
+            <table border="1" style="width:100%;">
70
+              <tr>
71
+                <td style="width:50px;">序号</td>
72
+                <td style="min-width:100px;">回款条件</td>
73
+                <td style="min-width:100px;">回款比例(%)</td>
74
+                <td style="min-width:100px;">回款金额(元)</td>
75
+                <td style="min-width:100px;">预计时间</td>
76
+                <td style="min-width:100px;">备注</td>
77
+              </tr>
78
+              <tr v-for="(payment, idx) in paymentList" :key="idx">
79
+                <td>{{ idx + 1 }}</td>
80
+                <td>{{ payment.paymentCondition }}</td>
81
+                <td>{{ payment.paymentPercentage }}</td>
82
+                <td>{{ payment.paymentAmount }}</td>
83
+                <td>{{ payment.paymentTime }}</td>
84
+                <td>{{ payment.remark }}</td>
85
+              </tr>
86
+              <tr v-if="!paymentList || paymentList.length === 0">
87
+                <td colspan="6">无</td>
88
+              </tr>
89
+            </table>
90
+          </td>
91
+        </tr>
92
+        <tr>
93
+          <td :colspan="1" class="fontbold">合同备注</td>
94
+          <td :colspan="8" style="white-space: pre-wrap;">{{ form.remark }}</td>
95
+        </tr>
96
+        <tr>
97
+          <td :colspan="1" class="fontbold">拟稿人</td>
98
+          <td :colspan="4">{{ form.draftUser ? form.draftUser.nickName : '' }}</td>
99
+          <td :colspan="1" class="fontbold">日期</td>
100
+          <td :colspan="3">{{ form.draftTime }}</td>
101
+        </tr>
102
+        <tr v-if="form.commentType === '1'">
103
+          <td :colspan="1" class="fontbold">会议评审</td>
104
+          <td :colspan="8">
105
+            <div>评审时间:{{ meetingForm.meetingTime }}</div>
106
+            <div>评审地点:{{ getPlaceName(meetingForm.place) }}</div>
107
+            <div>评审主持人:{{ meetingForm.hostUser ? meetingForm.hostUser.nickName : '' }}</div>
108
+            <div>评审结论:{{ meetingForm.conclusion }}</div>
109
+            <div>主持人签名:{{ meetingForm.hostUser ? meetingForm.hostUser.nickName : '' }}</div>
110
+            <div>日期:{{ meetingForm.commentTime }}</div>
111
+          </td>
112
+        </tr>
113
+        <tr v-if="form.commentType === '2'">
114
+          <td :colspan="1" class="fontbold">线上会审</td>
115
+          <td :colspan="8">
116
+            <table border="1" style="width:100%;margin:0;">
117
+              <tr>
118
+                <td style="width:50px;">序号</td>
119
+                <td>会审部门</td>
120
+                <td>会审人</td>
121
+                <td>会审意见</td>
122
+                <td style="min-width:50px;">签名</td>
123
+                <td style="min-width:90px;">日期</td>
124
+              </tr>
125
+              <tr v-for="(comment, index) in commentList" :key="index">
126
+                <td>{{ index + 1 }}</td>
127
+                <td>{{ getDeptName(comment.deptId) }}</td>
128
+                <td>{{ comment.commentUser ? comment.commentUser.nickName : '' }}</td>
129
+                <td style="white-space: pre-wrap;">{{ comment.comment }}</td>
130
+                <td><span class="auditor">{{ comment.commentUser ? comment.commentUser.nickName : '' }}</span></td>
131
+                <td>{{ comment.commentTime }}</td>
132
+              </tr>
133
+            </table>
134
+          </td>
135
+        </tr>
136
+        <tr>
137
+          <td :colspan="1" class="fontbold">分管审批意见</td>
138
+          <td :colspan="4">{{ form.managerComment }}</td>
139
+          <td :colspan="1" class="fontbold">签名</td>
140
+          <td :colspan="2"><span class="auditor">{{ form.managerUser ? form.managerUser.nickName : '' }}</span></td>
141
+          <td :colspan="1" style="min-width:90px;">{{ form.managerTime }}</td>
142
+        </tr>
143
+        <tr>
144
+          <td :colspan="1" class="fontbold">总经理审批意见</td>
145
+          <td :colspan="4">{{ form.gmComment }}</td>
146
+          <td :colspan="1" class="fontbold">签名</td>
147
+          <td :colspan="2"><span class="auditor">{{ form.gmUser ? form.gmUser.nickName : '' }}</span></td>
148
+          <td :colspan="1" style="min-width:90px;">{{ form.gmTime }}</td>
149
+        </tr>
150
+        <tr>
151
+          <td :colspan="1" class="fontbold">签订备注</td>
152
+          <td :colspan="4">{{ form.signRemark }}</td>
153
+          <td :colspan="1" class="fontbold">签订日期</td>
154
+          <td :colspan="3" style="min-width:90px;">{{ form.signDate }}</td>
155
+        </tr>
156
+      </table>
157
+    </div>
158
+    <div class="text-center mt20">
159
+      <el-button type="primary" v-print="print">确认打印</el-button>
160
+      <el-button @click="$emit('cancel')">取消</el-button>
161
+    </div>
162
+  </div>
163
+</template>
164
+
165
+<script>
166
+export default {
167
+  name: 'ContractPrint',
168
+  props: {
169
+    form: {
170
+      type: Object,
171
+      required: true
172
+    },
173
+    chooseTender: {
174
+      type: Object,
175
+      default: () => ({})
176
+    },
177
+    chooseProjectList: {
178
+      type: Array,
179
+      default: () => []
180
+    },
181
+    connectSubContractList: {
182
+      type: Array,
183
+      default: () => []
184
+    },
185
+    meetingForm: {
186
+      type: Object,
187
+      default: () => ({})
188
+    },
189
+    commentList: {
190
+      type: Array,
191
+      default: () => []
192
+    },
193
+    partyAList: {
194
+      type: Array,
195
+      default: () => []
196
+    },
197
+    deptList: {
198
+      type: Array,
199
+      default: () => []
200
+    },
201
+    placeList: {
202
+      type: Array,
203
+      default: () => []
204
+    },
205
+    workList: {
206
+      type: Array,
207
+      default: () => []
208
+    },
209
+    paymentList: {
210
+      type: Array,
211
+      default: () => []
212
+    }
213
+  },
214
+  data() {
215
+    return {
216
+      print: {
217
+        id: 'printContract',
218
+        popTitle: '承接合同打印', // 打印配置页上方标题
219
+        extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
220
+        preview: false, // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
221
+        previewTitle: '', // 打印预览的标题(开启预览模式后出现),
222
+        previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
223
+        zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
224
+        previewBeforeOpenCallback() { }, //预览窗口打开之前的callback(开启预览模式调用)
225
+        previewOpenCallback() { }, // 预览窗口打开之后的callback(开启预览模式调用)
226
+        beforeOpenCallback() { }, // 开启打印前的回调事件
227
+        openCallback() { }, // 调用打印之后的回调事件
228
+        closeCallback() { }, //关闭打印的回调事件(无法确定点击的是确认还是取消)
229
+        url: '',
230
+        standard: '',
231
+        extraCss: ''
232
+      }
233
+    }
234
+  },
235
+  methods: {
236
+    getPartyAName(partyAId) {
237
+      const partyA = this.partyAList.find(item => item.partyAId === partyAId)
238
+      return partyA ? partyA.partyAName : ''
239
+    },
240
+    getPlaceName(placeId) {
241
+      const place = this.placeList.find(item => item.id === placeId)
242
+      return place ? place.name : ''
243
+    },
244
+    getFileName(name) {
245
+      if (name) {
246
+        let arr = name.split('/')
247
+        return arr[arr.length - 1]
248
+      }
249
+      return ''
250
+    }
251
+  }
252
+}
253
+</script>
254
+
255
+<style lang="scss" scoped>
256
+table {
257
+  width: 90%;
258
+  text-align: left;
259
+  border-collapse: collapse;
260
+  margin: 0 auto;
261
+  border: 1px solid #a5abb0;
262
+
263
+  td {
264
+    padding: 15px;
265
+  }
266
+}
267
+
268
+.title {
269
+  font-family: '黑体';
270
+  font-size: 20px;
271
+  font-weight: bold;
272
+  line-height: 30px;
273
+}
274
+
275
+.fontbold {
276
+  font-weight: bold;
277
+  min-width: 100px;
278
+  text-align: center;
279
+}
280
+
281
+@page {
282
+  size: auto;
283
+  margin-bottom: 0;
284
+}
285
+
286
+@media print {
287
+  #printContract table {
288
+    width: 100%;
289
+  }
290
+}
291
+</style>

+ 3
- 3
oa-ui/src/views/flowable/task/myProcess/index.vue Переглянути файл

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-01-03 09:23:11
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2025-05-21 14:27:45
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2025-05-29 14:27:58
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -471,7 +471,7 @@ export default {
471 471
     },
472 472
     // 子流程不可以删除
473 473
     beDeleted(row) {
474
-      if (row.procDefName == '项目预算' || row.procDefName == '技术方案' || row.procDefName == '安全交底' || row.procDefName == '技术交底' || row.finishTime != null) {
474
+      if (row.procDefName == '技术方案' || row.procDefName == '安全交底' || row.procDefName == '技术交底' || row.finishTime != null) {
475 475
         return true
476 476
       } else if (row.procDefName == '项目流转' && row.taskName != '项目登记') {
477 477
         return true

+ 9
- 3
oa-ui/src/views/flowable/task/myProcess/progressTree.vue Переглянути файл

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-18 15:14:45
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2025-05-14 15:40:11
5
+ * @LastEditTime: 2025-05-29 15:09:06
6 6
 -->
7 7
 <template>
8 8
   <div>
@@ -50,7 +50,7 @@
50 50
 </template>
51 51
 
52 52
 <script>
53
-import { listProject } from '@/api/oa/project/project';
53
+import { listProject,getProject } from '@/api/oa/project/project';
54 54
 export default {
55 55
   props: {
56 56
     definitionList: {
@@ -163,7 +163,7 @@ export default {
163 163
         this.projectList = res.rows;
164 164
       })
165 165
     },
166
-    handleProjectConfirm() {
166
+    async handleProjectConfirm() {
167 167
       if (!this.projectId) {
168 168
         this.$message.warning('请选择项目');
169 169
         return;
@@ -172,6 +172,12 @@ export default {
172 172
         ...this.clickNode,
173 173
         projectId: this.projectId,
174 174
       };
175
+      let res = await getProject(this.projectId);
176
+      let prijectLeader = res.data.projectLeader;
177
+      if (prijectLeader != this.$store.getters.userId) {
178
+        this.$message.warning('抱歉,您不是该项目的项目负责人,无法发起该预算');
179
+        return;
180
+      }
175 181
       this.$emit('confirm', selectedData);
176 182
       this.projectDialogVisible = false;
177 183
     }

Завантаження…
Відмінити
Зберегти