Browse Source

新增借款打印;

修改打印组件的位置等。
余思翰 10 months ago
parent
commit
07c16e517b

+ 1
- 14
oa-ui/src/views/flowable/form/business/subContract.vue View File

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-05 16:50:36
5
+ * @LastEditTime: 2024-08-07 09:41:32
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -13,19 +13,6 @@
13 13
           <el-divider></el-divider>
14 14
           <el-form-item label="项目编号:" prop="projectId">
15 15
             <el-button type="primary" size="mini" @click="open = true" v-if="taskName == '合同拟稿'">选择项目</el-button>
16
-            <!-- <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
17
-              <el-descriptions-item label="项目编号" label-class-name="my-label">
18
-                {{ chooseProject.projectNumber }}</el-descriptions-item>
19
-              <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
20
-                }}</el-descriptions-item>
21
-              <el-descriptions-item label="甲方单位" label-class-name="my-label">{{ chooseProject.partyA.partyAName
22
-                }}</el-descriptions-item>
23
-              <el-descriptions-item label="承担部门" label-class-name="my-label">
24
-                <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
25
-              </el-descriptions-item>
26
-              <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
27
-                }}</el-descriptions-item>
28
-            </el-descriptions> -->
29 16
             <el-table :data="chooseProjectList" border v-if="isSelect">
30 17
               <el-table-column type="index" width="50" label="序号" />
31 18
               <el-table-column label="项目编号" align="center" key="projectNumber" prop="projectNumber" />

+ 296
- 0
oa-ui/src/views/flowable/form/components/print/borrowPrint.vue View File

@@ -0,0 +1,296 @@
1
+<template>
2
+  <div>
3
+    <div id="printBorrow">
4
+      <h2 class="text-center title">借款申请表</h2>
5
+      <table border="1">
6
+        <tr>
7
+          <td :colspan="2" class="fontbold" style="min-width:130px;">申请人</td>
8
+          <td :colspan="1"><span class="auditor">{{ getUserName(form.applier) }}</span></td>
9
+          <td :colspan="2" class="fontbold">申请部门</td>
10
+          <td :colspan="2">{{ getDeptName(form.applyDept) }}</td>
11
+          <td :colspan="2" class="fontbold">申请日期</td>
12
+          <td :colspan="2">{{ form.applyDate }}</td>
13
+        </tr>
14
+        <tr>
15
+          <td :colspan="2" class="fontbold">费用类型</td>
16
+          <td :colspan="8">
17
+            {{ formartUsage(form.borrowUsage) }}
18
+          </td>
19
+        </tr>
20
+        <tr v-if="form.borrowUsage == '0'">
21
+          <td :colspan="2" class="fontbold">项目名称</td>
22
+          <td :colspan="4">{{ chooseProject.projectName }}</td>
23
+          <td :colspan="2" class="fontbold">项目编号</td>
24
+          <td :colspan="2">{{ chooseProject.projectNumber }}</td>
25
+        </tr>
26
+        <tr v-if="form.borrowUsage == '0'">
27
+          <td :colspan="2" class="fontbold">承担部门</td>
28
+          <td :colspan="4">{{ chooseProject.undertakingDeptName }}</td>
29
+          <td :colspan="2" class="fontbold">项目负责人</td>
30
+          <td :colspan="2">{{ chooseProject.projectLeaderUser ? chooseProject.projectLeaderUser.nickName : "" }}</td>
31
+        </tr>
32
+        <tr>
33
+          <td :colspan="2" class="fontbold">借款明细</td>
34
+          <td :colspan="8">
35
+            <table border="1" class="text-center">
36
+              <tr>
37
+                <td style="width:50px;">序号</td>
38
+                <td style="width:200px">开支项目</td>
39
+                <td>单位</td>
40
+                <td>单价</td>
41
+                <td>数量</td>
42
+                <td>申请金额</td>
43
+                <td v-if="form.borrowUsage == 0 || form.borrowUsage == 1">分管领导审核金额</td>
44
+              </tr>
45
+              <tr v-for="(detail, index) in detailList" :key="index">
46
+                <td>
47
+                  {{ index + 1 }}
48
+                </td>
49
+                <td>
50
+                  {{ detail.borrowItem }}
51
+                </td>
52
+                <td>
53
+                  {{ detail.unit }}
54
+                </td>
55
+                <td>
56
+                  {{ detail.price }}
57
+                </td>
58
+                <td>
59
+                  {{ detail.quantity }}
60
+                </td>
61
+                <td>
62
+                  {{ detail.applyAmount }}
63
+                </td>
64
+                <td>
65
+                  {{ detail.managerAmount }}
66
+                </td>
67
+              </tr>
68
+            </table>
69
+            <el-row class="mt10 text-center">
70
+              <el-col :span="6">申请金额:{{ form.applyAmount }}(元)</el-col>
71
+              <el-col :span="6">校准金额:{{ form.managerAmount }}(元)</el-col>
72
+            </el-row>
73
+          </td>
74
+        </tr>
75
+        <tr>
76
+          <td :colspan="2" class="fontbold">申请人说明</td>
77
+          <td :colspan="8">
78
+            <div class="minHeight">{{ form.remark }}</div>
79
+          </td>
80
+        </tr>
81
+        <tr>
82
+          <td :colspan="2" class="fontbold">部门负责人意见</td>
83
+          <td :colspan="8">
84
+            <div class="minHeight">{{ form.deptComment }}</div>
85
+            <el-row>
86
+              <el-col :span="6" :offset="11">
87
+                签名:<span class="auditor">{{ getUserName(form.deptUserId) }}</span>
88
+              </el-col>
89
+              <el-col :span="6">
90
+                审批日期:<span>{{ form.deptTime }}</span>
91
+              </el-col>
92
+            </el-row>
93
+          </td>
94
+        </tr>
95
+        <tr>
96
+          <td :colspan="2" class="fontbold">分管领导审核</td>
97
+          <td :colspan="8">
98
+            <div class="minHeight">{{ form.managerComment }}</div>
99
+            <el-row>
100
+              <el-col :span="6" :offset="11">
101
+                签名:<span class="auditor">{{ getUserName(form.managerUserId) }}</span>
102
+              </el-col>
103
+              <el-col :span="6">
104
+                审批日期:<span>{{ form.managerTime }}</span>
105
+              </el-col>
106
+            </el-row>
107
+          </td>
108
+        </tr>
109
+        <tr v-if="form.borrowUsage != '0' && form.borrowUsage != '1'">
110
+          <td :colspan="2" class="fontbold">党工团审核</td>
111
+          <td :colspan="8">
112
+            <div class="minHeight">{{ form.unionComment }}</div>
113
+            <el-row>
114
+              <el-col :span="6" :offset="11">
115
+                签名:<span class="auditor">{{ getUserName(form.unionUserId) }}</span>
116
+              </el-col>
117
+              <el-col :span="6">
118
+                审批日期:<span>{{ form.unionTime }}</span>
119
+              </el-col>
120
+            </el-row>
121
+          </td>
122
+        </tr>
123
+        <tr>
124
+          <td :colspan="2" class="fontbold">总经理审批</td>
125
+          <td :colspan="8">
126
+            <div class="minHeight">{{ form.zjlComment }}</div>
127
+            <el-row>
128
+              <el-col :span="6" :offset="11">
129
+                签名:<span class="auditor">{{ getUserName(form.zjlUserId) }}</span>
130
+              </el-col>
131
+              <el-col :span="6">
132
+                审批日期:<span>{{ form.zjlTime }}</span>
133
+              </el-col>
134
+            </el-row>
135
+          </td>
136
+        </tr>
137
+        <tr v-if="form.borrowUsage == '0' && exceed">
138
+          <td :colspan="2" class="fontbold">董事长批准</td>
139
+          <td :colspan="8">
140
+            <div class="minHeight">{{ form.dszComment }}</div>
141
+            <el-row>
142
+              <el-col :span="6" :offset="11">
143
+                签名:<span class="auditor">{{ getUserName(form.dszUserId) }}</span>
144
+              </el-col>
145
+              <el-col :span="6">
146
+                审批日期:<span>{{ form.dszTime }}</span>
147
+              </el-col>
148
+            </el-row>
149
+          </td>
150
+        </tr>
151
+        <tr>
152
+          <td :colspan="2" class="fontbold">财务部处理</td>
153
+          <td :colspan="8">
154
+            <div class="minHeight">{{ form.cwComment }}</div>
155
+            <el-row>
156
+              <el-col :span="6" :offset="11">
157
+                签名:<span class="auditor">{{ getUserName(form.cwUserId) }}</span>
158
+              </el-col>
159
+              <el-col :span="6">
160
+                支付日期:<span>{{ form.cwTime }}</span>
161
+              </el-col>
162
+            </el-row>
163
+          </td>
164
+        </tr>
165
+      </table>
166
+    </div>
167
+    <div class="text-center mt20">
168
+      <el-button type="primary" v-print="print">确认打印</el-button>
169
+      <el-button @click="$emit('cancel')">取消</el-button>
170
+    </div>
171
+  </div>
172
+</template>
173
+
174
+<script>
175
+export default {
176
+  props: {
177
+    form: {
178
+      type: Object
179
+    },
180
+    chooseProject: {
181
+      type: Object
182
+    },
183
+    detailList: {
184
+      type: Array
185
+    },
186
+    exceed: {
187
+      type: Boolean,
188
+      default: false
189
+    }
190
+  },
191
+  data() {
192
+    return {
193
+      print: {
194
+        id: 'printBorrow',
195
+        popTitle: '借款申请表', // 打印配置页上方标题
196
+        extraHead: '', //最上方的头部文字,附加在head标签上的额外标签,使用逗号分隔
197
+        preview: false, // 是否启动预览模式,默认是false(开启预览模式,可以先预览后打印)
198
+        previewTitle: '', // 打印预览的标题(开启预览模式后出现),
199
+        previewPrintBtnLabel: '', // 打印预览的标题的下方按钮文本,点击可进入打印(开启预览模式后出现)
200
+        zIndex: '', // 预览的窗口的z-index,默认是 20002(此值要高一些,这涉及到预览模式是否显示在最上面)
201
+        previewBeforeOpenCallback() { }, //预览窗口打开之前的callback(开启预览模式调用)
202
+        previewOpenCallback() { }, // 预览窗口打开之后的callback(开启预览模式调用)
203
+        beforeOpenCallback() { }, // 开启打印前的回调事件
204
+        openCallback() { }, // 调用打印之后的回调事件
205
+        closeCallback() { }, //关闭打印的回调事件(无法确定点击的是确认还是取消)
206
+        url: '',
207
+        standard: '',
208
+        extraCss: ''
209
+      }
210
+    }
211
+  },
212
+  mounted() {
213
+
214
+  },
215
+  methods: {
216
+    formartUsage(val) {
217
+      if (val == '0') {
218
+        return '项目借款'
219
+      } else if (val == '1') {
220
+        return '非项目借款'
221
+      } else if (val == '2') {
222
+        return '工会借款'
223
+      } else if (val == '3') {
224
+        return '党委借款'
225
+      } else {
226
+        return '团委借款'
227
+      }
228
+    }
229
+  }
230
+}
231
+</script>
232
+
233
+<style lang="scss" scoped>
234
+table {
235
+  /*边框*/
236
+  /* border: 1px solid black; */
237
+  width: 90%;
238
+  // text-align: center;
239
+  border-collapse: collapse;
240
+  margin: 0 auto;
241
+
242
+  /*设置背景颜色*/
243
+  /* background-color: #bfa; */
244
+  td {
245
+    padding: 10px;
246
+    // line-height: 30px;
247
+  }
248
+}
249
+
250
+.header {
251
+  font-family: '黑体';
252
+  font-size: 16px;
253
+  font-weight: bold;
254
+  line-height: 30px;
255
+}
256
+
257
+.bg {
258
+  background-color: #eee;
259
+  -webkit-print-color-adjust: exact;
260
+}
261
+
262
+.title {
263
+  font-family: '黑体';
264
+  font-size: 20px;
265
+  font-weight: bold;
266
+  line-height: 30px;
267
+}
268
+
269
+.fontbold {
270
+  font-weight: bold;
271
+  text-align: center;
272
+}
273
+
274
+.conment-width {
275
+  // max-width: 200px;
276
+}
277
+
278
+
279
+@page {
280
+  size: auto;
281
+  /* 去除页脚 */
282
+  margin-bottom: 0;
283
+  // 横向A4
284
+  // size:A4 landscape;
285
+}
286
+
287
+@media print {
288
+  #print table {
289
+    width: 100%;
290
+  }
291
+}
292
+
293
+.minHeight {
294
+  min-height: 80px;
295
+}
296
+</style>

oa-ui/src/views/flowable/form/components/planPrint.vue → oa-ui/src/views/flowable/form/components/print/planPrint.vue View File


oa-ui/src/views/flowable/form/components/safePrint.vue → oa-ui/src/views/flowable/form/components/print/safePrint.vue View File


oa-ui/src/views/flowable/form/components/settlePrint.vue → oa-ui/src/views/flowable/form/components/print/settlePrint.vue View File


oa-ui/src/views/flowable/form/components/technicalPrint.vue → oa-ui/src/views/flowable/form/components/print/technicalPrint.vue View File


+ 10
- 7
oa-ui/src/views/flowable/form/finance/borrowForm.vue View File

@@ -1,5 +1,6 @@
1 1
 <template>
2 2
   <div class="app-container" v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
3
+    <el-button type="success" @click="printOpen = true">打印</el-button>
3 4
     <el-row :gutter="20">
4 5
       <el-col :span="flowDisabled ? 18 : 24" :xs="24">
5 6
         <h2 class="text-center">借款申请</h2>
@@ -38,12 +39,6 @@
38 39
           </el-form-item>
39 40
           <el-form-item label="项目编号" prop="projectId" v-if="taskForm.procDefName == '借款审批' && isProject">
40 41
             <el-button type="primary" size="mini" @click="openProject = true" v-if="taskName == '借款申请'">选择项目</el-button>
41
-            <!-- <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
42
-              :disabled="taskName != '借款申请'" clearable>
43
-              <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
44
-                :value="item.projectId">
45
-              </el-option>
46
-            </el-select> -->
47 42
             <el-descriptions border v-if="isSelect" style="margin-top: .125rem;" :column="1">
48 43
               <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
49 44
                 }}</el-descriptions-item>
@@ -295,6 +290,11 @@
295 290
     <el-dialog title="选择项目" :visible.sync="openProject" width="70%" append-to-body>
296 291
       <project-choose @chooseProject="confirmProject"></project-choose>
297 292
     </el-dialog>
293
+    <el-dialog title="打印预览" :visible.sync="printOpen" width="70%" append-to-body>
294
+      <borrow-print :form="form" :exceed="exceed" :chooseProject="chooseProject" :detailList="detailList"
295
+        @cancel="printOpen = false"></borrow-print>
296
+    </el-dialog>
297
+    <el-button type="success" @click="printOpen = true">打印</el-button>
298 298
   </div>
299 299
 </template>
300 300
 
@@ -312,12 +312,14 @@ import projectChoose from '@/views/flowable/form/components/chooseProject.vue';
312 312
 import { listBudget } from "@/api/oa/budget/budget";
313 313
 import { listBudgetSettle } from "@/api/oa/budget/budgetSettle";
314 314
 import FileItem from '../business/fileItem.vue';
315
+import BorrowPrint from '../components/print/borrowPrint.vue';
315 316
 
316 317
 export default {
317 318
   components: {
318 319
     flow,
319 320
     projectChoose,
320
-    FileItem
321
+    FileItem,
322
+    BorrowPrint
321 323
   },
322 324
   name: "Borrow",
323 325
   props: {
@@ -395,6 +397,7 @@ export default {
395 397
       dgtLabel: '工会审核意见',
396 398
       totalBudget: 0,
397 399
       hasBorrow: 0,
400
+      printOpen: false,
398 401
     };
399 402
   },
400 403
   created() {

+ 1
- 1
oa-ui/src/views/flowable/form/inProgress/settleData.vue View File

@@ -54,7 +54,7 @@ import { MessageBox } from 'element-ui'
54 54
 import { listUser, getUser } from "@/api/system/user";
55 55
 import { Snowflake } from '@/utils/snowFlake.js'
56 56
 import SettleForm from '../settleForm.vue';
57
-import SettlePrint from '../components/settlePrint.vue';
57
+import SettlePrint from '../components/print/settlePrint.vue';
58 58
 export default {
59 59
   components: {
60 60
     SettleForm,

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/planTab.vue View File

@@ -150,7 +150,7 @@ import {
150 150
   addTechnicalPlan,
151 151
   updateTechnicalPlan,
152 152
 } from "@/api/oa/technical/technicalPlan";
153
-import PlanPrint from '../components/planPrint.vue';
153
+import PlanPrint from '../components/print/planPrint.vue';
154 154
 export default {
155 155
   components: { technicalPlan, PlanPrint },
156 156
   props: {

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/safeTab.vue View File

@@ -72,7 +72,7 @@
72 72
 import { listSafe, getSafe, delSafe, addSafe, updateSafe } from "@/api/oa/safe/safe";
73 73
 import { listUser } from '@/api/system/user';
74 74
 import { getProject } from "@/api/oa/project/project";
75
-import safePrint from '../components/safePrint.vue';
75
+import safePrint from '../components/print/safePrint.vue';
76 76
 export default {
77 77
   components: { safePrint },
78 78
   props: {

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue View File

@@ -81,7 +81,7 @@
81 81
 import { listTechnical, getTechnical, delTechnical, addTechnical, updateTechnical } from "@/api/oa/technical/technical";
82 82
 import { listUser } from '@/api/system/user';
83 83
 import { getProject } from "@/api/oa/project/project";
84
-import technicalPrint from '../components/technicalPrint.vue';
84
+import technicalPrint from '../components/print/technicalPrint.vue';
85 85
 export default {
86 86
   components: { technicalPrint },
87 87
   props: {

+ 1
- 1
oa-ui/src/views/flowable/form/settleForm.vue View File

@@ -500,7 +500,7 @@ import { complete, getNextFlowNode } from "@/api/flowable/todo";
500 500
 import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept, } from "@/api/system/post.js";
501 501
 import { listBudget } from "@/api/oa/budget/budget";
502 502
 import { listBudgetSettle } from "@/api/oa/budget/budgetSettle";
503
-import SettlePrint from "./components/settlePrint.vue";
503
+import SettlePrint from "./components/print/settlePrint.vue";
504 504
 import { getDept } from "@/api/system/dept";
505 505
 import { getContract } from "@/api/oa/contract/contract";
506 506
 import ChooseProject from "./components/chooseProject.vue";

+ 5
- 5
oa-ui/src/views/flowable/form/settleOther.vue View File

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-30 09:03:14
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-08-07 13:30:38
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-08-07 14:15:44
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container" v-loading="loading">
@@ -37,7 +37,7 @@
37 37
             </el-col>
38 38
           </el-row>
39 39
           <el-form-item label="原始上报数据" prop="">
40
-            <FileUpload v-if="taskName == '结算发起'" :limit="1" :filePathName="'项目结算/原始数据'"
40
+            <FileUpload v-if="taskName == '结算发起'" :limit="1" :filePathName="'其他结算/原始数据'"
41 41
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setSettleDocument">
42 42
             </FileUpload>
43 43
             <div v-if="form.settleDocument" class="upload-list">
@@ -51,7 +51,7 @@
51 51
             </div>
52 52
           </el-form-item>
53 53
           <el-form-item label="分管领导审核结算单" prop="">
54
-            <FileUpload v-if="taskName == '分管审核'" :limit="1" :filePathName="'项目结算/分管领导审核结算单'"
54
+            <FileUpload v-if="taskName == '分管审核'" :limit="1" :filePathName="'其他结算/分管领导审核结算单'"
55 55
               :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf', 'rar', 'zip']" @input="setFinalDocument">
56 56
             </FileUpload>
57 57
             <div v-if="form.finalDocument" class="upload-list">
@@ -332,7 +332,7 @@ import { getUserByRole } from "@/api/system/role";
332 332
 import { getUserByPost } from "@/api/system/post";
333 333
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
334 334
 import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept, } from "@/api/system/post.js";
335
-import SettlePrint from "./components/settlePrint.vue";
335
+import SettlePrint from "./components/print/settlePrint.vue";
336 336
 import { getDept } from "@/api/system/dept";
337 337
 export default {
338 338
   components: {

+ 2
- 2
oa-ui/src/views/flowable/task/todo/detail/index.vue View File

@@ -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-08-02 16:18:05
5
+ * @LastEditTime: 2024-08-07 14:12:06
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -481,7 +481,7 @@ export default {
481 481
         || (this.taskForm.procDefName == '项目预算' && this.taskName != '预算审核') || this.taskForm.procDefName == '借款审批' || this.taskForm.procDefName == '安全交底' ||
482 482
         this.taskForm.procDefName == '技术交底' || this.taskForm.procDefName == '技术方案' || this.taskForm.procDefName == '承接合同评审' || this.taskForm.procDefName == '分包合同评审'
483 483
         || this.taskForm.procDefName == '品牌项目支付' || this.taskForm.procDefName == '保证金审批' || this.taskForm.procDefName == '成果归档' || this.taskForm.procDefName == '项目结算'
484
-        || this.taskForm.procDefName == '项目变更') {
484
+        || this.taskForm.procDefName == '项目变更' || this.taskForm.procDefName == '其他结算') {
485 485
         return false
486 486
       } else {
487 487
         return true

+ 82
- 30
oa-ui/src/views/oa/contract/subContract.vue View File

@@ -40,7 +40,7 @@
40 40
 
41 41
     <el-table v-loading="loading" border :data="subContractList" @selection-change="handleSelectionChange">
42 42
       <el-table-column type="index" label="序号" width="55" align="center" />
43
-      <el-table-column label="合同名称" align="center" prop="subContractName" width="200px" />
43
+      <el-table-column label="合同名称" align="center" prop="subContractName" width="300px" />
44 44
       <el-table-column label="分包合同金额" align="center" prop="subAmount" />
45 45
       <el-table-column label="承接单位" align="center" prop="partner.partnerName" />
46 46
       <!-- <el-table-column label="承接单位联系人" align="center" prop="contactPerson" /> -->
@@ -51,13 +51,13 @@
51 51
           </el-link>
52 52
         </template>
53 53
       </el-table-column>
54
-      <el-table-column label="拟稿日期" align="center" prop="draftTime" width="180">
54
+      <el-table-column label="拟稿日期" align="center" prop="draftTime">
55 55
         <template slot-scope="scope">
56 56
           <span>{{ parseTime(scope.row.draftTime, '{y}-{m}-{d}') }}</span>
57 57
         </template>
58 58
       </el-table-column>
59 59
       <!-- <el-table-column label="合同备注" align="center" prop="remark" /> -->
60
-      <el-table-column label="签订日期" align="center" prop="signDate" width="180">
60
+      <el-table-column label="签订日期" align="center" prop="signDate">
61 61
         <template slot-scope="scope">
62 62
           <span>{{ parseTime(scope.row.signDate, '{y}-{m}-{d}') }}</span>
63 63
         </template>
@@ -87,6 +87,8 @@
87 87
         <template slot-scope="scope">
88 88
           <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
89 89
             v-hasPermi="['oa:subContract:query']">查看</el-button>
90
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
91
+            v-hasPermi="['oa:subContract:edit']">修改</el-button>
90 92
         </template>
91 93
       </el-table-column>
92 94
     </el-table>
@@ -95,43 +97,68 @@
95 97
       @pagination="getList" />
96 98
 
97 99
     <!-- 添加或修改cmc分包合同评审对话框 -->
98
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
99
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
100
-        <el-form-item label="主合同id" prop="contractId">
101
-          <el-input v-model="form.contractId" placeholder="请输入主合同id" />
102
-        </el-form-item>
100
+    <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
101
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
103 102
         <el-form-item label="合同名称" prop="subContractName">
104
-          <el-input v-model="form.subContractName" placeholder="请输入合同名称" />
105
-        </el-form-item>
106
-        <el-form-item label="分包合同金额" prop="subAmount">
107
-          <el-input v-model="form.subAmount" placeholder="请输入分包合同金额" />
108
-        </el-form-item>
109
-        <el-form-item label="承接单位id" prop="partnerId">
110
-          <el-input v-model="form.partnerId" placeholder="请输入承接单位id" />
111
-        </el-form-item>
112
-        <el-form-item label="承接单位联系人" prop="contactPerson">
113
-          <el-input v-model="form.contactPerson" placeholder="请输入承接单位联系人" />
114
-        </el-form-item>
115
-        <el-form-item label="拟稿人" prop="drafter">
116
-          <el-input v-model="form.drafter" placeholder="请输入拟稿人" />
103
+          {{ form.subContractName }}
117 104
         </el-form-item>
118 105
         <el-form-item label="拟稿日期" prop="draftTime">
119 106
           <el-date-picker clearable v-model="form.draftTime" type="date" value-format="yyyy-MM-dd"
120 107
             placeholder="请选择拟稿日期">
121 108
           </el-date-picker>
122 109
         </el-form-item>
123
-        <el-form-item label="合同备注" prop="remark">
124
-          <el-input v-model="form.remark" placeholder="请输入合同备注" />
110
+        <el-form-item label="分管审批日期" prop="managerTime">
111
+          <el-date-picker clearable v-model="form.managerTime" type="date" value-format="yyyy-MM-dd"
112
+            placeholder="请选择分管审批日期">
113
+          </el-date-picker>
114
+        </el-form-item>
115
+        <el-form-item label="总经理审批日期" prop="gmTime">
116
+          <el-date-picker clearable v-model="form.gmTime" type="date" value-format="yyyy-MM-dd"
117
+            placeholder="请选择总经理审批日期">
118
+          </el-date-picker>
125 119
         </el-form-item>
126 120
         <el-form-item label="签订日期" prop="signDate">
127 121
           <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期">
128 122
           </el-date-picker>
129 123
         </el-form-item>
130
-        <el-form-item label="签订备注" prop="signRemark">
131
-          <el-input v-model="form.signRemark" placeholder="请输入签订备注" />
124
+        <el-form-item label="评审方式">
125
+          <el-tag :type="form.commentType == '2' ? 'success' : 'warning'">
126
+            {{ setCommentType(form.commentType) }}</el-tag>
132 127
         </el-form-item>
133
-        <el-form-item label="签订扫描件" prop="signScan">
134
-          <el-input v-model="form.signScan" placeholder="请输入签订扫描件" />
128
+        <el-form-item label="" label-width="0" v-if="form.commentType == '2'">
129
+          <table border="1" style="width:100%;">
130
+            <tr>
131
+              <td style="width: 50px;">序号</td>
132
+              <td>会审部门</td>
133
+              <td>会审人</td>
134
+              <td>会审意见</td>
135
+              <td style="width: 200px;">会审附件</td>
136
+              <td style="width: 100px;">日期</td>
137
+            </tr>
138
+            <tr v-for="(comment, index) in commentList" :key="index">
139
+              <td>
140
+                {{ index + 1 }}
141
+              </td>
142
+              <td>
143
+                {{ getDeptName(comment.deptId) }}
144
+              </td>
145
+              <td>
146
+                {{ getUserName(comment.userId) }}
147
+              </td>
148
+              <td>
149
+                {{ comment.comment }}
150
+              </td>
151
+              <td>
152
+                <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + comment.document}`)">
153
+                  {{ getFileName(comment.document) }}
154
+                </el-link>
155
+              </td>
156
+              <td>
157
+                <el-date-picker v-model="comment.commentTime" type="date" value-format="yyyy-MM-dd" style="width:140px;"
158
+                  placeholder="选择日期"></el-date-picker>
159
+              </td>
160
+            </tr>
161
+          </table>
135 162
         </el-form-item>
136 163
       </el-form>
137 164
       <div slot="footer" class="dialog-footer">
@@ -154,6 +181,7 @@ import { listDefinition } from "@/api/flowable/definition";
154 181
 import { definitionStart, flowXmlAndNode } from "@/api/flowable/definition";
155 182
 import { todoList, getNextFlowNodeByStart } from "@/api/flowable/todo";
156 183
 import { Snowflake } from '@/utils/snowFlake.js'
184
+import { listContractComment, addContractComment, updateContractComment, delContractComment } from "@/api/oa/contract/contractComment";
157 185
 
158 186
 export default {
159 187
   components: { subContract },
@@ -204,7 +232,9 @@ export default {
204 232
       },
205 233
       taskForm: {
206 234
         formId: ''
207
-      }
235
+      },
236
+      commentList: [],
237
+      commentOpen: false,
208 238
     };
209 239
   },
210 240
   created() {
@@ -279,7 +309,7 @@ export default {
279 309
     handleAdd() {
280 310
       this.reset();
281 311
       this.open = true;
282
-      this.title = "添加cmc分包合同评审";
312
+      this.title = "新增分包合同评审_日期";
283 313
     },
284 314
     /** 修改按钮操作 */
285 315
     handleUpdate(row) {
@@ -288,7 +318,12 @@ export default {
288 318
       getSubContract(subContractId).then(response => {
289 319
         this.form = response.data;
290 320
         this.open = true;
291
-        this.title = "修改cmc分包合同评审";
321
+        this.title = "修改分包合同评审_日期";
322
+        listContractComment({ pageNum: 1, pageSize: 100, contractId: subContractId }).then(res => {
323
+          if (res.rows && res.rows.length != 0) {
324
+            this.commentList = res.rows;
325
+          }
326
+        })
292 327
       });
293 328
     },
294 329
     async handleRegister() {
@@ -355,6 +390,9 @@ export default {
355 390
       this.$refs["form"].validate(valid => {
356 391
         if (valid) {
357 392
           if (this.form.subContractId != null) {
393
+            for (let comment of this.commentList) {
394
+              updateContractComment(comment);
395
+            }
358 396
             updateSubContract(this.form).then(response => {
359 397
               this.$modal.msgSuccess("修改成功");
360 398
               this.open = false;
@@ -410,3 +448,17 @@ export default {
410 448
   }
411 449
 };
412 450
 </script>
451
+<style lang="scss" scoped>
452
+table {
453
+  /*边框*/
454
+  /* border: 1px solid black; */
455
+  text-align: center;
456
+  border-collapse: collapse;
457
+
458
+  /*设置背景颜色*/
459
+  /* background-color: #bfa; */
460
+  td {
461
+    padding: 5px;
462
+  }
463
+}
464
+</style>

+ 48
- 22
oa-ui/src/views/oa/staff/index.vue View File

@@ -108,7 +108,7 @@
108 108
           <el-table-column label="职务" align="center" key="postName" prop="postName" v-if="columns[17].visible"
109 109
             :show-overflow-tooltip="true"></el-table-column>
110 110
           <el-table-column label="职称" align="center" key="titles" prop="titles" v-if="columns[6].visible"
111
-            :show-overflow-tooltip="true">
111
+            :show-overflow-tooltip="true" sortable :sort-method="sortTitles">
112 112
             <template slot-scope="scope">
113 113
               {{ selectDictLabel(dict.type.sys_user_titles, scope.row.titles) }}
114 114
             </template>
@@ -122,7 +122,7 @@
122 122
           <el-table-column label="政治面貌" align="center" key="politicalAffiliation"
123 123
             :formatter="formatterPoliticalAffiliation" prop="politicalAffiliation" v-if="columns[14].visible" />
124 124
           <el-table-column label="民族" align="center" key="ethnic" prop="ethnic" v-if="columns[15].visible" />
125
-          <el-table-column label="入职时间" align="center" key="entryDate" prop="entryDate" v-if="columns[16].visible"
125
+          <el-table-column label="入职时间" sortable align="center" key="entryDate" prop="entryDate" v-if="columns[16].visible"
126 126
             :show-overflow-tooltip="true">
127 127
             <template slot-scope="scope">
128 128
               <span>{{ parseTime(scope.row.entryDate, '{y}-{m}-{d}') }}</span>
@@ -233,8 +233,8 @@
233 233
               <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
234 234
             </el-form-item>
235 235
             <el-form-item label="入职年月" prop="entryDate">
236
-              <el-date-picker v-model="form.entryDate" type="month" placeholder="请输入入职年月" style="width:100%;"
237
-                format="yyyy-MM" />
236
+              <el-date-picker v-model="form.entryDate" type="date" placeholder="请输入入职年月" style="width:100%;"
237
+                format="yyyy-MM-dd" />
238 238
             </el-form-item>
239 239
             <el-form-item label="合同签订" prop="contractSign">
240 240
               <el-date-picker v-model="form.contractSign" type="date" placeholder="请输入合同签订" style="width:100%;"
@@ -351,6 +351,7 @@ import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUs
351 351
 import { getToken } from "@/utils/auth";
352 352
 import Treeselect from "@riophae/vue-treeselect";
353 353
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
354
+import { number } from 'echarts';
354 355
 
355 356
 export default {
356 357
   name: "Staff",
@@ -475,7 +476,7 @@ export default {
475 476
       },
476 477
       certificates: '',
477 478
       postSalary: '',
478
-      postData:''
479
+      postData: ''
479 480
     };
480 481
   },
481 482
   watch: {
@@ -497,9 +498,9 @@ export default {
497 498
       this.loading = true;
498 499
       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
499 500
         this.userList = response.rows;
500
-        this.userList.forEach(user => {
501
-          this.getPostByUser(user)
502
-        })
501
+        // this.userList.forEach(user => {
502
+        //   this.getPostByUser(user)
503
+        // })
503 504
         this.total = response.total;
504 505
         this.loading = false;
505 506
       }
@@ -546,15 +547,34 @@ export default {
546 547
         nickName: undefined,
547 548
         password: undefined,
548 549
         phonenumber: undefined,
549
-        email: undefined,
550 550
         sex: undefined,
551 551
         titles: undefined,
552 552
         status: "0",
553 553
         remark: undefined,
554
+        roleIds: [],
555
+        idCard: undefined,
556
+        nativePlace: undefined,
557
+        ethnic: undefined,
558
+        graduateSchool: undefined,
559
+        major: undefined,
560
+        degree: undefined,
561
+        homePlace: undefined,
562
+        entryDate: undefined,
563
+        contractSign: undefined,
564
+        contractExpire: undefined,
565
+        birthday: undefined,
566
+        politicalAffiliation: [],
567
+        titles: undefined,
568
+        certificates: [],
569
+        pmLevel: undefined,
570
+        engineerLevel: undefined,
571
+        operatorLevel: undefined,
554 572
         postIds: [],
555
-        roleIds: []
573
+        postLevel: undefined,
574
+        salaryLevel: undefined,
575
+        salaryLevel: undefined,
556 576
       };
557
-      this.resetForm("form");
577
+      // this.resetForm("form");
558 578
     },
559 579
     /** 搜索按钮操作 */
560 580
     handleQuery() {
@@ -591,13 +611,15 @@ export default {
591 611
     /** 新增按钮操作 */
592 612
     handleAdd() {
593 613
       this.reset();
594
-      getUser().then(response => {
595
-        this.postOptions = response.posts;
596
-        this.roleOptions = response.roles;
597
-        this.open = true;
598
-        this.title = "添加用户";
599
-        this.form.password = this.initPassword;
600
-      });
614
+      this.open = true;
615
+      this.title = "添加用户";
616
+      // getUser().then(response => {
617
+      //   this.postOptions = response.posts;
618
+      //   this.roleOptions = response.roles;
619
+      //   this.open = true;
620
+      //   this.title = "添加用户";
621
+      //   this.form.password = this.initPassword;
622
+      // });
601 623
     },
602 624
     // 查看人员详情按钮
603 625
     handleView(row) {
@@ -748,7 +770,7 @@ export default {
748 770
         const date = new Date(birthday);
749 771
         const formattedDate = this.parseTime(date, '{y}-{m}-{d}')
750 772
         return formattedDate;
751
-      }else{
773
+      } else {
752 774
         return null
753 775
       }
754 776
     },
@@ -807,6 +829,10 @@ export default {
807 829
       // 返回salaryLevel的差值  
808 830
       return aSalaryLevel - bSalaryLevel;
809 831
     },
832
+    sortTitles(a, b) {
833
+      let res = Number(b.titles) - Number(a.titles)
834
+      return res
835
+    },
810 836
     formatterDegree(row) {
811 837
       let v = this.selectDictLabel(this.dict.type.sys_user_degree, row.degree)
812 838
       return v
@@ -815,7 +841,7 @@ export default {
815 841
       let v = this.selectDictLabels(this.dict.type.sys_user_political, row.politicalAffiliation, ',')
816 842
       return v
817 843
     },
818
-    async getPostByUser(row){
844
+    async getPostByUser(row) {
819 845
       const userId = row.userId || this.ids;
820 846
       let resData = await getUser(userId);
821 847
       let postArr = [];
@@ -827,8 +853,8 @@ export default {
827 853
         }
828 854
       }
829 855
       let postStr = postArr.join('/');
830
-      this.$set(row,'postName',postStr)
831
-      
856
+      this.$set(row, 'postName', postStr)
857
+
832 858
     }
833 859
   }
834 860
 };

Loading…
Cancel
Save