db787da3 by 杨炀

no message

1 parent 5e2c88c5
...@@ -476,7 +476,24 @@ function getVerityMergeList(params) { ...@@ -476,7 +476,24 @@ function getVerityMergeList(params) {
476 method: 'get', 476 method: 'get',
477 params: params 477 params: params
478 }) 478 })
479 } 479 }
480 function doMergeFlows(params) {
481 return request({
482 url: `/exam/info/submit/mergeFlows`,
483 method: 'post',
484 params: params
485 })
486 }
487 function getMergePaymentInfo(mergeId) {
488 return request({
489 url: '/exam/info/mergeDetail/list',
490 method: 'get',
491 params: {
492 mergeId: mergeId
493 }
494 })
495 }
496
480 export { 497 export {
481 getMessage, 498 getMessage,
482 reader, 499 reader,
...@@ -522,5 +539,5 @@ export { ...@@ -522,5 +539,5 @@ export {
522 groupCommitPaymentVoucher,getFeeBillById, 539 groupCommitPaymentVoucher,getFeeBillById,
523 personalCommit, 540 personalCommit,
524 delPayment,editYear,addPersonPaymentGroup, 541 delPayment,editYear,addPersonPaymentGroup,
525 commitRenew,getVerityMergeList 542 commitRenew,getVerityMergeList,doMergeFlows,getMergePaymentInfo
526 } 543 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -408,6 +408,15 @@ ...@@ -408,6 +408,15 @@
408 408
409 } 409 }
410 ,{ 410 ,{
411 "path" : "pages/level/mergeUpDetail",
412 "style" :
413 {
414 "navigationBarTitleText": "考试详情",
415 "enablePullDownRefresh": false
416 }
417
418 }
419 ,{
411 "path" : "pages/group/apply/mergeUpDetail", 420 "path" : "pages/group/apply/mergeUpDetail",
412 "style" : 421 "style" :
413 { 422 {
......
...@@ -139,18 +139,18 @@ ...@@ -139,18 +139,18 @@
139 function handleAudit(item) { 139 function handleAudit(item) {
140 uni.showModal({ 140 uni.showModal({
141 title: '提示', 141 title: '提示',
142 content: `确定提交${item.content.certName}`, 142 content: `确定提交${item.mergeName}`,
143 success: function(res) { 143 success: function(res) {
144 if (res.confirm) { 144 if (res.confirm) {
145 api.groupAudit({ 145 api.doMergeFlows({
146 flag: '1', 146 id: item.recordId,
147 recordIds: [item.recordId], 147 flag: '1',
148 reason: null 148 type: queryParams.value.type
149 }).then(res => { 149 }).then(res => {
150 getList()
151 uni.showToast({ 150 uni.showToast({
152 title: `操作成功!` 151 title: `操作成功!`
153 }) 152 })
153 getList()
154 }) 154 })
155 } 155 }
156 } 156 }
...@@ -160,7 +160,7 @@ ...@@ -160,7 +160,7 @@
160 function goDetail(item) { 160 function goDetail(item) {
161 const form = encodeURIComponent(JSON.stringify(item)) 161 const form = encodeURIComponent(JSON.stringify(item))
162 // 查看 162 // 查看
163 let path = `/pages/level/mergeUpDetail?&form=${form}` 163 let path = `/pages/level/mergeUpDetail?form=${form}&type=1`
164 uni.navigateTo({ 164 uni.navigateTo({
165 url: path 165 url: path
166 }); 166 });
......
1 <template> 1 <template>
2 <view class="hasfixedbottom"> 2 <view>
3 <view class="wBox"> 3 <view class="wBox">
4 <view class="tt">{{form.content.certName}}</view> 4 <view class="tt">基本信息</view>
5 <view> 5 <view class="ddd">
6 <view class="date" v-if="form.content.commitTime">提交日期:<text>{{ form.content.commitTime }}</text> 6 <text class="lab">结算编号:</text>{{ form.flowCode }}
7 </view> 7 </view>
8 <view class="date">提交单位:<text>{{ form.content.memberName }}</text> </view> 8 <view class="ddd">
9 </view> 9 <text class="lab">{{ type=='1'?'考级名称':'考段名称' }}</text>{{form.mergeName}}
10 <view class="vipData mt30" style="flex-wrap: wrap;"> 10 </view>
11 <view class="w50"> 11 <view class="ddd">
12 团队会员合计: 12 <text class="lab">申请单位:</text>{{ form.memName }}
13 <text>{{ form.content.allCount }}</text> 13 </view>
14 </view> 14 <view class="ddd" v-if="form.mergeTime">
15 <view class="w50"> 15 <text class="lab">申请日期:</text>{{form.mergeTime?.slice(0,10)}}
16 新会员合计: 16 </view>
17 <text>{{ form.content.newCount }}</text> 17 <view class="ddd">
18 </view> 18 <text class="lab">{{ type=='1'?'考级人数':'考段人数' }}</text>{{form.totalNum}}
19 <view class="w50"> 19 </view>
20 年限合计: 20 <view class="ddd">
21 <text>{{ form.content.renewYear }}</text> 21 <text class="lab">总金额:</text>{{ (form.totalAmount*1).toFixed(2) }}
22 </view> 22 </view>
23 <view class="w50"> 23 </view>
24 费用合计: 24 <view class="wBox">
25 <text>{{ (form.content.allFee*1).toFixed(2) }}</text> 25 <view class="tt">
26 </view> 26 考试信息
27 </view> 27 </view>
28 28 <view class="userlist">
29 <!-- 成员 --> 29 <view class="item" v-for="n in infoList" @click="goDetail(n)" style="background-color: #fffafa;">
30 <view class="userlist"> 30 <view class="w100">
31 <view class="item" v-for="n in list"> 31 <view class="name">{{n.name}}</view>
32 <view style="width: 100%"> 32 <!-- <view class="date">{{n.idcTypeStr}}{{n.idcCode}}</view> -->
33 <view class="name">{{n.memberName}}</view> 33 <view class="flexbox">
34 <view class="date">单位类型: 34 <view>
35 <text v-if="n.deptType==2">一级协会</text> 35 上报单位
36 <text v-if="n.deptType==3">直属协会</text> 36 <text>{{n.memberName}}</text>
37 <text v-if="n.deptType==4">二级协会</text> 37 </view>
38 <text v-if="n.deptType==5">三级协会</text> 38 <view>
39 <text v-if="n.deptType==6">职业性团体会员</text> 39 {{type=='1'?'考级考生数':'考段考生数'}}
40 </view> 40 <text>
41 <view class="flexbox"> 41 {{n.totalNum}}
42 <view> 42 </text>
43 单价 43 </view>
44 <text>¥{{n.unitPrice}}</text> 44 <view v-if="app.globalData.showPrice">
45 </view> 45 金额
46 <view> 46 <text>
47 年限 47 {{ (n.examFee * 1).toFixed(2) }}
48 <text>{{n.renewYear}}</text> 48 </text>
49 </view> 49 </view>
50 <view> 50 <view>
51 总价 51 金额
52 <text>¥{{n.allFee}}</text> 52 <text class="text-danger">¥{{ (n.totalAmount*1).toFixed(2) }}</text>
53 </view> 53 </view>
54 </view> 54 </view>
55 </view> 55 </view>
56 </view> 56
57 </view> 57 </view>
58 58 </view>
59 </view> 59
60
61 <view class="h3-padding">审核记录</view>
62 <view class="wBox">
63 <view class="stepItem" v-for="(n,index) in auditList">
64 <view class="time">{{n.handleDate||'待审批'}}</view>
65 <view class="content">
66 <view class="status">
67 <text v-if="n.auditStatus==1" class="text-success">审核通过</text>
68 <text v-if="n.auditStatus==2" class="text-danger"> 审核拒绝</text>
69 <text v-if="n.auditStatus==0" class="text-primary"> 审核中</text>
70 <text v-if="n.auditStatus==3" class="text-warning">已撤回</text>
71 <text v-if="n.auditStatus==100" class="text-primary">审核中</text>
72
73 </view>
74 <!-- <view class="name">{{index+1}}</view> -->
75 <view class="deptName">{{n.handlerDeptName}}</view>
76 <view v-if="n.reason">
77 备注:{{n.reason||'/' }}
78 </view>
79 </view>
80 </view>
81 </view> 60 </view>
82
83 <view class="fixedBottom" v-if="(deptType == 1)&&form.ztxRes == 0">
84 <button class="btn-red-kx" @click="audit(form.id,'2')">拒绝</button>
85 <button class="btn-red" @click="audit(form.id,'1')">同意</button>
86 </view>
87
88 <view class="fixedBottom" v-if="(deptType == 2 || deptType == 3)&&form.shenRes == 0">
89 <button class="btn-red-kx" @click="audit(form.id,'2')">拒绝</button>
90 <button class="btn-red" @click="audit(form.id,'1')">同意</button>
91 </view>
92
93 </view> 61 </view>
94 </template> 62 </template>
95 63
96 <script setup> 64 <script setup>
97 import * as api from '@/common/api.js' 65 import * as api from '@/common/api.js'
98 import config from '@/config.js' 66 import config from '@/config.js'
67 import _ from 'lodash'
99 import { 68 import {
100 onMounted, 69 onMounted,
101 ref 70 ref
...@@ -110,22 +79,15 @@ ...@@ -110,22 +79,15 @@
110 79
111 const form = ref({}) 80 const form = ref({})
112 const list = ref([]) 81 const list = ref([])
113 const listArr = ref([]) 82 const infoList = ref([])
114 const id = ref() 83 const deptType = ref()
115 const auditList = ref([]) 84 const type = ref(null)
116
117 const feelList = ref([])
118 const total = ref(0)
119 const totalYear = ref(0)
120 const deptType = ref()
121 let rangeId = '' 85 let rangeId = ''
122 onLoad((option) => { 86 onLoad((option) => {
123 if ('form' in option) { 87 if ('form' in option) {
124 form.value = JSON.parse(decodeURIComponent(option.form)) 88 form.value = JSON.parse(decodeURIComponent(option.form))
125 } 89 }
126 list.value = form.content?.certifiedSimpleList || [] 90 type.value = option.type
127 listArr.value = form.content?.certifiedSimpleList || []
128 queryParams.value.recordId = form.value.recordId
129 console.log(form.value) 91 console.log(form.value)
130 if (app.globalData.isLogin) { 92 if (app.globalData.isLogin) {
131 init() 93 init()
...@@ -147,141 +109,48 @@ ...@@ -147,141 +109,48 @@
147 uni.showLoading({ 109 uni.showLoading({
148 title: '加载中' 110 title: '加载中'
149 }) 111 })
150 api.getDetailList(queryParams.value).then(res => { 112 api.getMergePaymentInfo(form.value.recordId).then(res => {
151 uni.hideLoading() 113 _.each(res.data, (r) => {
152 list.value = res.rows 114 const item = JSON.parse(r.content)
153 list.value[0].rangeId == 0 ? id.value = list.value[0].certId : id.value = list.value[0].rangeId 115 item.recordId = r.recordId
154 if (id.value) { 116 infoList.value.push(item)
155 auditFN() 117 })
156 } 118 form.value.totalNum = Math.floor(_.sumBy(infoList.value, (o) => parseFloat(o.totalNum || 0)))
157 }) 119 form.value.totalAmount = Math.floor(_.sumBy(infoList.value, (o) => parseFloat(o.totalAmount || 0)))
158 }
159 120
160 function auditFN() { 121 uni.hideLoading()
161 api.getGroupHistoryByRelateId(id.value).then(res => { 122
162 auditList.value = res.data
163 })
164 }
165
166 function audit(rangeId, flag) {
167 if (flag == '2') {
168 // 拒绝
169 // 弹出框填写理由
170 uni.showModal({
171 title: '请输入拒绝理由',
172 editable: true,
173 success: function(res) {
174 if (res.confirm) {
175 if (!res.content) {
176 uni.showToast({
177 title: '请输入拒绝理由',
178 icon: 'none'
179 })
180 } else {
181 doApproval(rangeId, flag, res.content)
182 }
183 }
184 }
185 })
186 } else if (flag == '1') {
187 // 二次确认
188 uni.showModal({
189 title: '提示',
190 content: `确定审批通过吗`,
191 success: function(res) {
192 if (res.confirm) {
193 doApproval(rangeId, flag)
194 }
195 }
196 })
197 }
198 }
199
200 function doApproval(rangeId, flag, reason) {
201 var obj = {
202 flag: flag,
203 reason: reason || '',
204 rangeIds: rangeIds
205 }
206 console.log(obj)
207 api.mobilizeAudit(obj).then((res) => {
208 uni.showToast({
209 title: '操作成功',
210 icon: 'none'
211 })
212 uni.navigateBack()
213 }) 123 })
214 } 124 }
125
126 function goDetail(item){
127 // examId
128 let path = `/pages/level/applyDetail?examId=${item.examId}`
129 uni.navigateTo({
130 url: path
131 });
132 }
215 </script> 133 </script>
216 134
217 <style scoped lang="scss"> 135 <style scoped lang="scss">
218 .date { 136 .wBox {
219 margin-top: 10rpx; 137 width: 700rpx;
220 font-size: 26rpx; 138 padding: 30rpx;
221 color: #999; 139 margin: 20rpx auto;
222 } 140 background: #FFFFFF;
223 141 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1);
224 .wBox { 142 border-radius: 15rpx;
225 width: 700rpx; 143
226 padding: 30rpx; 144 .tt {
227 margin: 20rpx auto 0; 145 color: #0A1629;margin: 0 0 30rpx;
228 background: #FFFFFF; 146 font-size: 30rpx;
229 box-shadow: 0rpx 12rpx 116rpx 0rpx rgba(196, 203, 214, 0.1); 147 }
230 border-radius: 15rpx; 148
231 149 .ddd{font-size: 28rpx;color: #333;
232 .tt { 150 .lab{color: #999;display: inline-block;text-align: justify;
233 color: #0A1629; 151 text{word-break: break-all;}
234 font-size: 30rpx; 152 }
235 } 153 }
236 } 154 }
237 155
238 .userlist {
239 .item {
240 border-bottom: 1px dashed #e5e5e5;
241 position: relative;
242
243 .date {
244 margin-top: 10rpx;
245 }
246
247 .name {
248 text {
249 margin-left: 1em;
250 color: #4C5359;
251 font-size: 26rpx;
252 }
253 }
254
255 .nian {
256 position: absolute;
257 right: 0;
258 font-size: 30rpx;
259 color: #AD181F;
260 }
261 }
262 }
263
264 .info {
265 display: flex;
266 margin: 30rpx 0 20rpx;
267 font-size: 28rpx;
268
269 view {
270 color: #7D8592;
271 margin-right: 20rpx;
272 }
273 }
274
275 .fixedBottom {
276 justify-content: center;
277
278 button {
279 margin: 0 20rpx;
280 width: 286rpx;
281 }
282
283 .btn-red {
284 width: 286rpx;
285 }
286 }
287 </style> 156 </style>
...\ No newline at end of file ...\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!