瀏覽代碼

修改借款、预算、工作量填报

余思翰 9 月之前
父節點
當前提交
3b0ae9a71e

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

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-04-03 16:28:09
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-02 15:23:33
5
+ * @LastEditTime: 2024-08-21 15:49:18
6 6
 -->
7 7
 <template>
8 8
   <div class="main">
@@ -30,7 +30,7 @@
30 30
             <table border="1" style="width: 100%;">
31 31
               <tr style="background-color:#f8f8f9">
32 32
                 <td style="width: 250px">工作内容</td>
33
-                <td style="width: 100px">等级或比例尺</td>
33
+                <td style="width: 100px">比例尺/等级</td>
34 34
                 <td style="width: 100px">单位</td>
35 35
                 <td style="width: 100px">工作量</td>
36 36
                 <td style="width: 100px">要求完成时间</td>
@@ -64,6 +64,7 @@
64 64
             <tr style="background-color:#f8f8f9" v-if="workList.length != 0">
65 65
               <td>工作简述</td>
66 66
               <td>工作内容</td>
67
+              <td>比例尺/等级</td>
67 68
               <td>数量</td>
68 69
               <td>单价</td>
69 70
               <td>单位</td>
@@ -74,6 +75,9 @@
74 75
             <tr v-for="work in workList">
75 76
               <td>{{ work.content }}</td>
76 77
               <td>{{ work.cmcPrice ? work.cmcPrice.workItem : '' }}</td>
78
+              <td>
79
+                {{ work.scaleGrade  }}
80
+              </td>
77 81
               <td v-if="taskName == '分管审核' || taskName == '总经理审核'">
78 82
                 <el-input-number :controls="false" style="width:100px;" v-model="work.workload"
79 83
                   @change="computeWorkSettle(work)"></el-input-number>

+ 3
- 2
oa-ui/src/views/flowable/form/budget/components/chooseMoney.vue 查看文件

@@ -40,7 +40,7 @@
40 40
             <td>工作类别</td>
41 41
             <td>工作项目</td>
42 42
             <!-- <td>项目细项</td> -->
43
-            <td>比例尺</td>
43
+            <td>比例尺/等级</td>
44 44
             <td>地类类型</td>
45 45
             <td style="width:90px;">单价</td>
46 46
             <td>单位</td>
@@ -104,7 +104,8 @@
104 104
               <el-button type="text" @click="getCoefficientRemark(work.workType)">系数备注</el-button>
105 105
             </td>
106 106
             <td>
107
-              <el-input v-model="work.settle"></el-input>
107
+              <!-- <el-input v-model="work.settle"></el-input> -->
108
+              {{ work.settle }}
108 109
             </td>
109 110
             <td>
110 111
               <el-input type="textarea" v-model="work.remark"></el-input>

+ 1
- 1
oa-ui/src/views/flowable/form/finance/borrowForm.vue 查看文件

@@ -490,7 +490,7 @@ export default {
490 490
       }
491 491
     },
492 492
     initForm() {
493
-      listBorrowDetail({ borrowId: this.taskForm.formId }).then(res => {
493
+      listBorrowDetail({ pageSize:999, borrowId: this.taskForm.formId }).then(res => {
494 494
         if (res.rows.length != 0) {
495 495
           this.detailList = res.rows
496 496
         }

+ 50
- 47
oa-ui/src/views/flowable/form/work/declareForm.vue 查看文件

@@ -2,10 +2,10 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-08-16 09:16:36
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-08-19 11:05:07
5
+ * @LastEditTime: 2024-08-21 14:11:13
6 6
 -->
7 7
 <template>
8
-  <div class="app-container">
8
+  <div>
9 9
     <el-row :gutter="20">
10 10
       <el-col :span="isFlow ? 18 : 24" :xs="24">
11 11
         <h2 class="text-center">项目工作填报表</h2>
@@ -14,49 +14,28 @@
14 14
           <el-form-item label="项目名称:" prop="projectId">
15 15
             <el-button icon="el-icon-plus" type="primary" @click="prOpen = true" size="mini"
16 16
               v-if="taskName == '工作填报'">选择项目</el-button>
17
-            <el-descriptions border v-if="form.projectId" style="margin-top: 10px" :column="2">
18
-              <el-descriptions-item label="项目编号">
19
-                {{ chooseProject.projectNumber }}
20
-              </el-descriptions-item>
21
-              <el-descriptions-item label="项目名称">
22
-                {{ chooseProject.projectName }}
23
-              </el-descriptions-item>
24
-              <el-descriptions-item label="项目负责人">
25
-                {{ getUserName(chooseProject.projectLeader) }}
26
-              </el-descriptions-item>
27
-              <el-descriptions-item label="甲方单位">
28
-                {{ chooseProject.partyA ? chooseProject.partyA.partyAName : '' }}
29
-              </el-descriptions-item>
30
-              <el-descriptions-item label="联系人">
31
-                {{ chooseProject.contactPerson }}
32
-              </el-descriptions-item>
33
-              <el-descriptions-item label="联系电话">
34
-                {{ chooseProject.telephone }}
35
-              </el-descriptions-item>
36
-              <el-descriptions-item label="项目类型">
37
-                {{ chooseProject.projectType }}
38
-              </el-descriptions-item>
39
-              <el-descriptions-item label="项目级别">
40
-                {{ chooseProject.projectLevel == "0" ? " 一般项目" : "重大项目" }}
41
-              </el-descriptions-item>
42
-              <el-descriptions-item label="承担部门">
43
-                {{ chooseProject.undertakingDeptName }}
44
-              </el-descriptions-item>
45
-              <el-descriptions-item label="项目登记人">
46
-                {{ chooseProject.projectRegistrantUser ? chooseProject.projectRegistrantUser.nickName : "" }}
47
-              </el-descriptions-item>
48
-            </el-descriptions>
49 17
           </el-form-item>
18
+          <el-descriptions class="mb20" border v-if="form.projectId" style="margin-top: 10px" :column="1">
19
+            <el-descriptions-item label="项目编号">
20
+              {{ chooseProject.projectNumber }}
21
+            </el-descriptions-item>
22
+            <el-descriptions-item label="项目名称">
23
+              {{ chooseProject.projectName }}
24
+            </el-descriptions-item>
25
+            <el-descriptions-item label="项目负责人">
26
+              {{ getUserName(chooseProject.projectLeader) }}
27
+            </el-descriptions-item>
28
+          </el-descriptions>
50 29
           <el-form-item label="工作类别:" prop="workType">
51
-            <el-select v-model="form.workType" @change="getWorkItemList(form.workType)" :style="{ width: '100%' }"
30
+            <el-select v-model="form.workType" @change="getWorkTypeList(form.workType)" :style="{ width: '100%' }"
52 31
               :disabled="taskName != '工作填报'">
53
-              <el-option v-for="item in workTypeList" :key="item.value" :label="item.label" :value="item.value">
54
-              </el-option>
32
+              <el-option label="外业" value="外业"></el-option>
33
+              <el-option label="内业" value="内业"></el-option>
55 34
             </el-select>
56 35
           </el-form-item>
57 36
           <el-form-item label="工作细项:" prop="workItem">
58 37
             <el-select v-model="form.workItem" :style="{ width: '100%' }" :disabled="taskName != '工作填报'">
59
-              <el-option v-for="item in workItemList" :key="item.value" :label="item.label" :value="item.value">
38
+              <el-option v-for="item in workTypeList" :key="item.value" :label="item.label" :value="item.value">
60 39
               </el-option>
61 40
             </el-select>
62 41
           </el-form-item>
@@ -104,7 +83,7 @@
104 83
         </el-card>
105 84
       </el-col>
106 85
     </el-row>
107
-    <el-dialog title="选择项目" :visible.sync="prOpen" width="70%" append-to-body>
86
+    <el-dialog title="选择项目" :visible.sync="prOpen" :width="deviceWidth" append-to-body>
108 87
       <choose-project @chooseProject="confirmProject"></choose-project>
109 88
     </el-dialog>
110 89
   </div>
@@ -113,7 +92,7 @@
113 92
 <script>
114 93
 import flow from '@/views/flowable/task/todo/detail/flow';
115 94
 import { flowXmlAndNode } from "@/api/flowable/definition";
116
-import { getWorkTypeList, getWorkItemList } from '@/api/oa/price/price'
95
+import { listPrice, getWorkTypeList, getWorkItemList } from '@/api/oa/price/price'
117 96
 import { listDeclare, getDeclare, addDeclare, updateDeclare } from '@/api/oa/declare/declare';
118 97
 import { listProject, getProject } from "@/api/oa/project/project";
119 98
 import { mapState } from 'vuex';
@@ -150,10 +129,12 @@ export default {
150 129
     }
151 130
   },
152 131
   created() {
153
-    this.getWorkTypeList();
154 132
     this.initForm();
155 133
     if (this.device == 'mobile') {
156
-      this.isFlow = false
134
+      this.isFlow = false;
135
+      this.deviceWidth = '450px'
136
+    }else{
137
+      this.deviceWidth = '70%'
157 138
     }
158 139
     if (this.isFlow) {
159 140
       flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
@@ -163,6 +144,7 @@ export default {
163 144
   },
164 145
   data() {
165 146
     return {
147
+      deviceWidth: '400px',
166 148
       flowData: {},
167 149
       form: {
168 150
         workLoad: 1,
@@ -189,6 +171,7 @@ export default {
189 171
       chooseProject: {},
190 172
       workTypeList: [],
191 173
       workItemList: [],
174
+      projectList: [],
192 175
       hasForm: false,
193 176
       money: 0
194 177
     }
@@ -199,6 +182,9 @@ export default {
199 182
         this.$set(this.form, 'userId', this.$store.state.user.id)
200 183
         this.form.submitTime = parseTime(new Date(), "{y}-{m}-{d}")
201 184
       }
185
+      listProject({ pageSize: 20 }).then(res => {
186
+        this.projectList = res.rows
187
+      })
202 188
       getDeclare(this.taskForm.formId).then(res => {
203 189
         if (res.data) {
204 190
           this.form = res.data;
@@ -304,12 +290,20 @@ export default {
304 290
       this.$refs.form.validateField('projectId');
305 291
     },
306 292
     /* 获取工作类别 */
307
-    getWorkTypeList() {
308
-      getWorkTypeList().then(res => {
309
-        if (res) {
310
-          this.workTypeList = this.setArray(res);
293
+    getWorkTypeList(workType) {
294
+      listPrice({ workType: workType, pageNum: 1, pageSize: 9999 }).then(res => {
295
+        if (res.code == 200) {
296
+          let data = res.rows;
297
+          let list = [];
298
+          for (let d of data) {
299
+            list.push(d.workItem)
300
+          }
301
+          if (workType == '内业') {
302
+            list.push('其他')
303
+          }
304
+          this.workTypeList = this.setArray(list);
311 305
         }
312
-      });
306
+      })
313 307
     },
314 308
     /* 获取工作项目 */
315 309
     getWorkItemList(workType) {
@@ -336,6 +330,15 @@ export default {
336 330
         return [];
337 331
       }
338 332
     },
333
+    remoteMethod(val) {
334
+      listProject({
335
+        pageNum: 1,
336
+        pageSize: 20,
337
+        projectNumber: val
338
+      }).then(res => {
339
+        this.projectList = res.rows;
340
+      })
341
+    },
339 342
   },
340 343
 }
341 344
 </script>

+ 143
- 0
oa-ui/src/views/oa/borrow/borrowTable.vue 查看文件

@@ -0,0 +1,143 @@
1
+<template>
2
+  <div>
3
+    <el-table v-loading="loading" :data="borrowList">
4
+      <el-table-column label="序号" align="center" type="index" />
5
+      <el-table-column label="借款类型" align="center" prop="borrowUsage">
6
+        <template slot-scope="scope">
7
+          <el-tag :type="setTagType(scope.row.borrowUsage)">
8
+            {{ setBorrowUsage(scope.row.borrowUsage) }}
9
+          </el-tag>
10
+        </template>
11
+      </el-table-column>
12
+      <el-table-column label="借款事由" align="center" prop="applyReason" :formatter="setReasonByUsage" />
13
+      <el-table-column label="申请金额" align="center" prop="applyAmount" />
14
+      <el-table-column label="核准金额" align="center" prop="managerAmount" />
15
+      <el-table-column label="借款人" align="center" prop="applier">
16
+        <template slot-scope="scope">
17
+          {{ getUserName(scope.row.applier) }}
18
+        </template>
19
+      </el-table-column>
20
+      <el-table-column label="借款人说明" align="center" prop="remark" show-overflow-tooltip />
21
+      <el-table-column label="借款日期" align="center" prop="applyDate" width="180">
22
+        <template slot-scope="scope">
23
+          <span>{{ parseTime(scope.row.applyDate, '{y}-{m}-{d}') }}</span>
24
+        </template>
25
+      </el-table-column>
26
+      <el-table-column label="借款支付时间" align="center" prop="lendTime" width="180">
27
+        <template slot-scope="scope">
28
+          <span>{{ parseTime(scope.row.lendTime, '{y}-{m}-{d}') }}</span>
29
+        </template>
30
+      </el-table-column>
31
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
32
+        <template slot-scope="scope">
33
+          <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">查看</el-button>
34
+        </template>
35
+      </el-table-column>
36
+    </el-table>
37
+  </div>
38
+</template>
39
+
40
+<script>
41
+import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api/oa/borrow/borrow";
42
+import { listProject } from '@/api/oa/project/project';
43
+import BorrowForm from '../../flowable/form/finance/borrowForm.vue';
44
+import { mapGetters } from 'vuex'
45
+export default {
46
+  props: {
47
+    borrowUsage: {
48
+      type: String
49
+    },
50
+  },
51
+  computed: {
52
+    ...mapGetters(['roles', 'deptId']),
53
+  },
54
+  data() {
55
+    return {
56
+      borrowList: [],
57
+      queryParams: {
58
+        pageNum: 1,
59
+        pageSize: 10,
60
+        projectId: null,
61
+        borrowType: null,
62
+        applyReason: null,
63
+        applier: null,
64
+        applyDate: null,
65
+        applyAmount: null,
66
+        managerAmount: null,
67
+        deptComment: null,
68
+        deptUserId: null,
69
+        xmUserId: null,
70
+        xmComment: null,
71
+        managerComment: null,
72
+        managerUserId: null,
73
+        zjlUserId: null,
74
+        zjlComment: null,
75
+        cwUserId: null,
76
+        cwComment: null,
77
+        deptTime: null,
78
+        xmTime: null,
79
+        managerTime: null,
80
+        zjlTime: null,
81
+        lendTime: null,
82
+        applyDept: null
83
+      },
84
+    }
85
+  },
86
+  created() {
87
+    this.getList();
88
+  },
89
+  methods: {
90
+    getList() {
91
+      this.loading = true;
92
+      this.queryParams.borrowUsage = this.borrowUsage;
93
+      if (this.roles.some(element => element === "dept")) {
94
+        this.queryParams.applyDept = this.deptId;
95
+        // this.queryParams.undertakingDept = this.deptId;
96
+      }
97
+      listBorrow(this.queryParams).then(response => {
98
+        this.borrowList = response.rows;
99
+        this.total = response.total;
100
+        this.loading = false;
101
+      });
102
+    },
103
+    handleView(row) {
104
+      this.$emit('clickView', row)
105
+    },
106
+    setBorrowUsage(row) {
107
+      if (row == '0') {
108
+        return '项目借款'
109
+      } else if (row == '1') {
110
+        return '非项目借款'
111
+      } else if (row == '2') {
112
+        return '工会借款'
113
+      } else if (row == '3') {
114
+        return '党委借款'
115
+      } else if (row == '4') {
116
+        return '团委借款'
117
+      }
118
+    },
119
+    setTagType(row) {
120
+      if (row == '0') {
121
+        return 'success'
122
+      } else if (row == '1') {
123
+        return 'warning'
124
+      } else if (row == '2') {
125
+        return ''
126
+      } else if (row == '3') {
127
+        return ''
128
+      } else if (row == '14') {
129
+        return ''
130
+      }
131
+    },
132
+    setReasonByUsage(row) {
133
+      if (row.projectId) {
134
+        return row.project.projectNumber + '-' + row.project.projectName
135
+      } else {
136
+        return row.applyReason
137
+      }
138
+    },
139
+  },
140
+}
141
+</script>
142
+
143
+<style lang="scss" scoped></style>

+ 30
- 5
oa-ui/src/views/oa/borrow/index.vue 查看文件

@@ -1,3 +1,9 @@
1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-06-21 18:51:59
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-08-21 10:22:33
6
+-->
1 7
 <template>
2 8
   <div class="app-container">
3 9
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
@@ -38,7 +44,15 @@
38 44
     <el-row :gutter="10" class="mb8">
39 45
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
40 46
     </el-row>
41
-
47
+    <!-- <el-tabs v-model="activeName" type="card" @tab-click="handleClick" v-if="roles.some(element => element === 'dept')">
48
+      <el-tab-pane label="项目借款" name="0">
49
+        <borrow-table :borrowUsage="activeName" @clickView="handleView"></borrow-table>
50
+      </el-tab-pane>
51
+      <el-tab-pane label="非项目借款" name="1"></el-tab-pane>
52
+      <el-tab-pane label="工会借款" name="2"></el-tab-pane>
53
+      <el-tab-pane label="党委借款" name="3"></el-tab-pane>
54
+      <el-tab-pane label="团委借款" name="4"></el-tab-pane>
55
+    </el-tabs> -->
42 56
     <el-table v-loading="loading" :data="borrowList" @selection-change="handleSelectionChange">
43 57
       <el-table-column label="序号" align="center" type="index" />
44 58
       <el-table-column label="借款类型" align="center" prop="borrowUsage">
@@ -93,13 +107,15 @@ import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api
93 107
 import { listProject } from '@/api/oa/project/project';
94 108
 import BorrowForm from '../../flowable/form/finance/borrowForm.vue';
95 109
 import { mapGetters } from 'vuex'
110
+import BorrowTable from './borrowTable.vue';
96 111
 export default {
97 112
   name: "Borrow",
98 113
   components: {
99
-    BorrowForm
114
+    BorrowForm,
115
+    BorrowTable
100 116
   },
101 117
   computed: {
102
-    ...mapGetters(['roles','deptId']),
118
+    ...mapGetters(['roles', 'deptId']),
103 119
   },
104 120
   data() {
105 121
     return {
@@ -157,20 +173,26 @@ export default {
157 173
       taskForm: {
158 174
         formId: '',
159 175
         procDefName: '借款审批'
160
-      }
176
+      },
177
+      activeName: '0'
161 178
     };
162 179
   },
163 180
   created() {
181
+    this.queryParams.borrowUsage = '0'
164 182
     this.getList();
165 183
   },
166 184
   methods: {
167 185
     /** 查询cmc借款申请列表 */
168 186
     getList() {
169 187
       this.loading = true;
170
-      if(this.roles.some(element => element === "dept")){
188
+      if (this.roles.some(element => element === "dept")) {
171 189
         this.queryParams.applyDept = this.deptId;
172 190
         // this.queryParams.undertakingDept = this.deptId;
173 191
       }
192
+      if (this.roles.some(e => e === 'leader')) {
193
+        this.queryParams.applyDept = null;
194
+        this.queryParams.undertakingDept = null;
195
+      }
174 196
       listBorrow(this.queryParams).then(response => {
175 197
         this.borrowList = response.rows;
176 198
         this.total = response.total;
@@ -324,6 +346,9 @@ export default {
324 346
       } else {
325 347
         return row.applyReason
326 348
       }
349
+    },
350
+    handleClick() {
351
+
327 352
     }
328 353
   }
329 354
 };

Loading…
取消
儲存