no message
Showing
13 changed files
with
498 additions
and
37 deletions
| ... | @@ -522,6 +522,13 @@ function certStudentList(query) { | ... | @@ -522,6 +522,13 @@ function certStudentList(query) { |
| 522 | params: query | 522 | params: query |
| 523 | }) | 523 | }) |
| 524 | } | 524 | } |
| 525 | function paymentList(query) { | ||
| 526 | return request({ | ||
| 527 | url: '/exam/payment/list', | ||
| 528 | method: 'get', | ||
| 529 | params: query | ||
| 530 | }) | ||
| 531 | } | ||
| 525 | 532 | ||
| 526 | 533 | ||
| 527 | export { | 534 | export { |
| ... | @@ -571,5 +578,5 @@ export { | ... | @@ -571,5 +578,5 @@ export { |
| 571 | delPayment,editYear,addPersonPaymentGroup, | 578 | delPayment,editYear,addPersonPaymentGroup, |
| 572 | commitRenew,getVerityMergeList,doMergeFlows,getMergePaymentInfo, | 579 | commitRenew,getVerityMergeList,doMergeFlows,getMergePaymentInfo, |
| 573 | submitCert,getCertsLList,getExamListByPayId, | 580 | submitCert,getCertsLList,getExamListByPayId, |
| 574 | certStudentList | 581 | certStudentList,paymentList |
| 575 | } | 582 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -344,7 +344,9 @@ color: #7D8592;} | ... | @@ -344,7 +344,9 @@ color: #7D8592;} |
| 344 | display: block; | 344 | display: block; |
| 345 | font-size: 14px; | 345 | font-size: 14px; |
| 346 | } | 346 | } |
| 347 | .bgbg{padding:0 0 60rpx;color: #fff;background: #C40F18;position: relative;} | 347 | .bgbg{padding:0 0 60rpx;color: #fff;background:url('/static/top_bg.png') #C40F18 no-repeat top; |
| 348 | background-size: cover; | ||
| 349 | position: relative;} | ||
| 348 | .girdBox{display: flex;flex-wrap: wrap;padding: 0 0 40rpx; | 350 | .girdBox{display: flex;flex-wrap: wrap;padding: 0 0 40rpx; |
| 349 | background: #FFFFFF;position: relative;top: -30rpx; | 351 | background: #FFFFFF;position: relative;top: -30rpx; |
| 350 | border-radius: 20rpx 20rpx 0rpx 0rpx; | 352 | border-radius: 20rpx 20rpx 0rpx 0rpx; | ... | ... |
| ... | @@ -433,6 +433,33 @@ | ... | @@ -433,6 +433,33 @@ |
| 433 | } | 433 | } |
| 434 | 434 | ||
| 435 | } | 435 | } |
| 436 | ,{ | ||
| 437 | "path" : "pages/level/payment", | ||
| 438 | "style" : | ||
| 439 | { | ||
| 440 | "navigationBarTitleText": "级位考试缴费单", | ||
| 441 | "enablePullDownRefresh": false | ||
| 442 | } | ||
| 443 | |||
| 444 | } | ||
| 445 | ,{ | ||
| 446 | "path" : "pages/exam/payment", | ||
| 447 | "style" : | ||
| 448 | { | ||
| 449 | "navigationBarTitleText": "考试缴费单", | ||
| 450 | "enablePullDownRefresh": false | ||
| 451 | } | ||
| 452 | |||
| 453 | } | ||
| 454 | ,{ | ||
| 455 | "path" : "pages/exam/paymentDetail", | ||
| 456 | "style" : | ||
| 457 | { | ||
| 458 | "navigationBarTitleText": "缴费单详情", | ||
| 459 | "enablePullDownRefresh": false | ||
| 460 | } | ||
| 461 | |||
| 462 | } | ||
| 436 | ], | 463 | ], |
| 437 | "globalStyle": { | 464 | "globalStyle": { |
| 438 | "navigationStyle": "custom", | 465 | "navigationStyle": "custom", | ... | ... |
pages/exam/payment.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <!-- 级/段/越段考试缴费单 --> | ||
| 4 | <view class="appList"> | ||
| 5 | <view class="vipData" v-show="totalCost>0"> | ||
| 6 | <view>费用合计:<text>{{ totalCost.toFixed(2) }}元</text></view> | ||
| 7 | </view> | ||
| 8 | <view class="appItem" v-for="item in list"> | ||
| 9 | <view class="status" @click="goDetail(item)"> | ||
| 10 | <text v-if="item.verityStatus==0" class="text-primary">审核中</text> | ||
| 11 | <text v-if="item.verityStatus==1" class="text-success"> 审核通过</text> | ||
| 12 | <text v-if="item.verityStatus==2" class="text-danger"> 审核拒绝</text> | ||
| 13 | <text v-if="item.verityStatus==3" class="text-warning">已退回</text> | ||
| 14 | </view> | ||
| 15 | <view class="date" @click="goDetail(item)" v-if="item.payTime"> | ||
| 16 | <uni-icons type="calendar" size="16" color="#7D8592"></uni-icons> | ||
| 17 | <text>{{item.payTime}} 缴费</text> | ||
| 18 | </view> | ||
| 19 | |||
| 20 | <view class="name" @click="goDetail(item)">{{item.name}}</view> | ||
| 21 | <view v-if="deptType==1" class="date"> | ||
| 22 | <text>{{item.payNoticeSendTime}} 下发</text> | ||
| 23 | </view> | ||
| 24 | <view class="flexbox" @click="goDetail(item)"> | ||
| 25 | <view> | ||
| 26 | 缴费状态 | ||
| 27 | <view> | ||
| 28 | <text :class="{ | ||
| 29 | 'text-success':item.payStatusStr=='已上传凭证', | ||
| 30 | 'text-danger':item.payStatusStr=='未上传凭证', | ||
| 31 | 'text-warning':item.payStatusStr=='已结算' | ||
| 32 | }">{{item.payStatusStr}}</text> | ||
| 33 | </view> | ||
| 34 | </view> | ||
| 35 | <view> | ||
| 36 | 人数合计 | ||
| 37 | <view>{{item.totalNum}}</view> | ||
| 38 | </view> | ||
| 39 | <view> | ||
| 40 | 费用合计 | ||
| 41 | <view>¥{{item.totalAmount}}</view> | ||
| 42 | </view> | ||
| 43 | </view> | ||
| 44 | <view class="func"> | ||
| 45 | <button v-if="item.payStatus!='3'&&item.verityStatus!='2'&&item.verityStatus!='3'" | ||
| 46 | @click="handleUpdate(item)">上传凭证</button> | ||
| 47 | </view> | ||
| 48 | </view> | ||
| 49 | </view> | ||
| 50 | <view class="nodata" v-if="list.length==0"> | ||
| 51 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 52 | <text>暂无数据</text> | ||
| 53 | </view> | ||
| 54 | |||
| 55 | <!-- 上传凭证 --> | ||
| 56 | <uni-popup ref="UpPop" type="bottom" background-color="#fff" animation> | ||
| 57 | <view class="popBody"> | ||
| 58 | <uni-forms v-model="form"> | ||
| 59 | <uni-forms-item label="缴费日期" required> | ||
| 60 | <uni-datetime-picker v-model="form.payTime"></uni-datetime-picker> | ||
| 61 | </uni-forms-item> | ||
| 62 | <uni-forms-item label="缴费凭证" required> | ||
| 63 | |||
| 64 | <uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip" | ||
| 65 | @select="selectFile" @progress="fileProgress" | ||
| 66 | @delete="delSupplementFile(index)"></uni-file-picker> | ||
| 67 | </uni-forms-item> | ||
| 68 | <uni-forms-item label="备注"> | ||
| 69 | <uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput> | ||
| 70 | </uni-forms-item> | ||
| 71 | </uni-forms> | ||
| 72 | |||
| 73 | <button class="btn-red" @click="uploadSure">确定</button> | ||
| 74 | </view> | ||
| 75 | </uni-popup> | ||
| 76 | </view> | ||
| 77 | </template> | ||
| 78 | |||
| 79 | <script setup> | ||
| 80 | import * as api from '@/common/api.js' | ||
| 81 | import config from '@/config.js' | ||
| 82 | import _ from 'lodash' | ||
| 83 | import { | ||
| 84 | onMounted, | ||
| 85 | ref | ||
| 86 | } from 'vue' | ||
| 87 | import { | ||
| 88 | onLoad | ||
| 89 | } from '@dcloudio/uni-app' | ||
| 90 | const app = getApp(); | ||
| 91 | const list = ref([]) | ||
| 92 | const queryParams = ref({ | ||
| 93 | type: '1' | ||
| 94 | }) | ||
| 95 | const totalCost = ref(0) | ||
| 96 | const deptType = ref('') | ||
| 97 | const UpPop = ref(null) | ||
| 98 | const form = ref({ | ||
| 99 | docId: '', | ||
| 100 | payTime: '', | ||
| 101 | url: '', | ||
| 102 | remark: '' | ||
| 103 | }) | ||
| 104 | onLoad((option) => { | ||
| 105 | queryParams.value.type = option.type | ||
| 106 | |||
| 107 | if (app.globalData.isLogin) { | ||
| 108 | init() | ||
| 109 | } else { | ||
| 110 | |||
| 111 | app.firstLoadCallback = () => { | ||
| 112 | init() | ||
| 113 | }; | ||
| 114 | } | ||
| 115 | }) | ||
| 116 | |||
| 117 | function init() { | ||
| 118 | deptType.value = app.globalData.deptType | ||
| 119 | getList() | ||
| 120 | } | ||
| 121 | |||
| 122 | function getList() { | ||
| 123 | uni.showLoading({ | ||
| 124 | title: '加载中' | ||
| 125 | }) | ||
| 126 | totalCost.value = 0 | ||
| 127 | api.paymentList(queryParams.value).then(res => { | ||
| 128 | list.value = res.rows | ||
| 129 | uni.hideLoading() | ||
| 130 | _.each(list.value, (info) => { | ||
| 131 | totalCost.value += (info.totalAmount * 1) | ||
| 132 | }) | ||
| 133 | }) | ||
| 134 | } | ||
| 135 | |||
| 136 | function handleUpdate(item) { | ||
| 137 | form.value.docId = item.docId | ||
| 138 | if (item.payEvidence) { | ||
| 139 | form.value.url = item.payEvidence | ||
| 140 | } | ||
| 141 | UpPop.value.open() | ||
| 142 | } | ||
| 143 | let selectFileValue = {} | ||
| 144 | |||
| 145 | function selectFile(e) { | ||
| 146 | let file = e.tempFiles[0] | ||
| 147 | api.uploadFile(e).then(data => { | ||
| 148 | selectFileValue = { | ||
| 149 | url: data.msg, | ||
| 150 | name: file.name, | ||
| 151 | extname: file.extname | ||
| 152 | } | ||
| 153 | |||
| 154 | form.value.url = JSON.stringify([selectFileValue]) | ||
| 155 | }); | ||
| 156 | } | ||
| 157 | |||
| 158 | function fileProgress(e) { | ||
| 159 | console.log('progress:' + e) | ||
| 160 | } | ||
| 161 | |||
| 162 | function delSupplementFile(index) { | ||
| 163 | selectFileValue = {} | ||
| 164 | } | ||
| 165 | |||
| 166 | function uploadSure() { | ||
| 167 | console.log(form.value) | ||
| 168 | if (!form.value.payTime) { | ||
| 169 | uni.showToast({ | ||
| 170 | icon: `none`, | ||
| 171 | title: '请选择缴费时间' | ||
| 172 | }) | ||
| 173 | return | ||
| 174 | } | ||
| 175 | if (!form.value.url) { | ||
| 176 | uni.showToast({ | ||
| 177 | icon: `none`, | ||
| 178 | title: '请上传缴费凭证' | ||
| 179 | }) | ||
| 180 | return | ||
| 181 | } | ||
| 182 | api.groupCommitPaymentVoucher(form.value).then(res => { | ||
| 183 | UpPop.value.close() | ||
| 184 | form.value = {} | ||
| 185 | uni.showToast({ | ||
| 186 | icon: 'none', | ||
| 187 | title: '操作成功' | ||
| 188 | }) | ||
| 189 | getList() | ||
| 190 | }) | ||
| 191 | } | ||
| 192 | |||
| 193 | function goDetail(item) { | ||
| 194 | //详情 | ||
| 195 | console.log(item.docId) | ||
| 196 | let path = `/pages/group/feeBillDetail?docId=${item.docId}` | ||
| 197 | uni.navigateTo({ | ||
| 198 | url: path | ||
| 199 | }); | ||
| 200 | } | ||
| 201 | </script> | ||
| 202 | |||
| 203 | <style scoped lang="scss"> | ||
| 204 | .popBody { | ||
| 205 | font-size: 28rpx; | ||
| 206 | line-height: 1.5; | ||
| 207 | overflow: auto; | ||
| 208 | padding: 30rpx; | ||
| 209 | |||
| 210 | .btn-red { | ||
| 211 | margin: 50rpx 0 30rpx; | ||
| 212 | } | ||
| 213 | } | ||
| 214 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
pages/exam/paymentDetail.vue
0 → 100644
| ... | @@ -11,14 +11,24 @@ | ... | @@ -11,14 +11,24 @@ |
| 11 | <view class="flexbox"> | 11 | <view class="flexbox"> |
| 12 | <!-- userType 1:中跆协 2:省 3:市区 4:道馆--> | 12 | <!-- userType 1:中跆协 2:省 3:市区 4:道馆--> |
| 13 | <!-- 4 --> | 13 | <!-- 4 --> |
| 14 | <view v-if="userType=='4'" @click="goAddVip">添加会员</view> | 14 | <view v-if="userType=='4'" @click="goAddVip"> |
| 15 | <view v-if="userType=='4'" @click="goPath('/pages/personalVip/payment')">会员缴费</view> | 15 | <image src="@/static/btn01.png"/> |
| 16 | <view v-if="userType=='2'" @click="goPath('/pages/personalVip/feeBill')">会员缴费单</view> | 16 | 添加会员</view> |
| 17 | <view v-if="userType=='4'" @click="goPath('/pages/personalVip/payment')"> | ||
| 18 | <image src="@/static/btn02.png"/> | ||
| 19 | 会员缴费</view> | ||
| 17 | <!-- 3 2 1--> | 20 | <!-- 3 2 1--> |
| 18 | <view v-if="userType!='4'" @click="goPath('/pages/personalVip/audit')">缴费审核</view> | 21 | <view v-if="userType!='4'" @click="goPath('/pages/personalVip/audit')"> |
| 22 | <image src="@/static/btn03.png"/> | ||
| 23 | 缴费审核</view> | ||
| 19 | 24 | ||
| 20 | <!-- 都有 --> | 25 | <!-- 都有 --> |
| 21 | <view @click="goPath('/pages/personalVip/list')">会员查询</view> | 26 | <view @click="goPath('/pages/personalVip/list')"> |
| 27 | <image src="@/static/btn04.png"/> | ||
| 28 | 会员查询</view> | ||
| 29 | <view v-if="userType!='4'" @click="goPath('/pages/group/list')"> | ||
| 30 | <image src="@/static/btn05.png"/>团体会员 | ||
| 31 | </view> | ||
| 22 | </view> | 32 | </view> |
| 23 | 33 | ||
| 24 | </view> | 34 | </view> |
| ... | @@ -27,10 +37,9 @@ | ... | @@ -27,10 +37,9 @@ |
| 27 | <image /> | 37 | <image /> |
| 28 | 会员调动 | 38 | 会员调动 |
| 29 | </view> | 39 | </view> |
| 30 | <view v-if="userType!='4'" @click="goPath('/pages/group/list')"> | 40 | <view v-if="userType=='2'" @click="goPath('/pages/personalVip/feeBill')"> |
| 31 | <image />团体会员查询 | 41 | <image />会员缴费单</view> |
| 32 | </view> | 42 | |
| 33 | <!--市区 省 中跆协 --> | ||
| 34 | <view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')"> | 43 | <view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')"> |
| 35 | <image />团体会员审核 | 44 | <image />团体会员审核 |
| 36 | </view> | 45 | </view> |
| ... | @@ -52,6 +61,18 @@ | ... | @@ -52,6 +61,18 @@ |
| 52 | <image />段位考试申请 | 61 | <image />段位考试申请 |
| 53 | </view> | 62 | </view> |
| 54 | 63 | ||
| 64 | <view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=1')"> | ||
| 65 | <image />级位考试缴费单 | ||
| 66 | </view> | ||
| 67 | |||
| 68 | <view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=2')"> | ||
| 69 | <image />段位考试缴费单 | ||
| 70 | </view> | ||
| 71 | |||
| 72 | <view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=3')"> | ||
| 73 | <image />越段考试缴费单 | ||
| 74 | </view> | ||
| 75 | |||
| 55 | 76 | ||
| 56 | </view> | 77 | </view> |
| 57 | <view v-if="userType=='1'" class="girdBox"> | 78 | <view v-if="userType=='1'" class="girdBox"> |
| ... | @@ -232,7 +253,7 @@ | ... | @@ -232,7 +253,7 @@ |
| 232 | break | 253 | break |
| 233 | case 30005: | 254 | case 30005: |
| 234 | d.name = '你有一条团体会员认证等待审批,点击去处理!' | 255 | d.name = '你有一条团体会员认证等待审批,点击去处理!' |
| 235 | d.path = '/pages/group/authentication' | 256 | d.path = '/pages/group/pay' |
| 236 | break | 257 | break |
| 237 | case 30006: | 258 | case 30006: |
| 238 | d.name = '你有一条段位成绩等待审批,点击去处理!' | 259 | d.name = '你有一条段位成绩等待审批,点击去处理!' |
| ... | @@ -240,11 +261,11 @@ | ... | @@ -240,11 +261,11 @@ |
| 240 | break | 261 | break |
| 241 | case 40001: | 262 | case 40001: |
| 242 | d.name = '你有一条级位申请待提交,点击去处理!' | 263 | d.name = '你有一条级位申请待提交,点击去处理!' |
| 243 | d.path = `/pages/level/apply/modify?id=${d.eventId}` | 264 | d.path = `/pages/level/apply?id=${d.eventId}` |
| 244 | break | 265 | break |
| 245 | case 40002: | 266 | case 40002: |
| 246 | d.name = '你有一条段位申请待提交,点击去处理!' | 267 | d.name = '你有一条段位申请待提交,点击去处理!' |
| 247 | d.path = `/pages/rank/apply/modify?id=${d.eventId}` | 268 | d.path = `/pages/rank/apply?id=${d.eventId}` |
| 248 | break | 269 | break |
| 249 | case 40003: | 270 | case 40003: |
| 250 | d.name = '你有一条成绩维护的数据待提交,点击去处理!' | 271 | d.name = '你有一条成绩维护的数据待提交,点击去处理!' |
| ... | @@ -307,7 +328,8 @@ | ... | @@ -307,7 +328,8 @@ |
| 307 | 328 | ||
| 308 | .flexbox { | 329 | .flexbox { |
| 309 | display: flex; | 330 | display: flex; |
| 310 | justify-content: space-around; | 331 | justify-content: space-around;text-align: center; |
| 332 | image{width: 90rpx;height: 90rpx;display: block;margin: auto;} | ||
| 311 | } | 333 | } |
| 312 | 334 | ||
| 313 | .image { | 335 | .image { | ... | ... |
pages/level/payment.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <!--级位考试缴费单 查看+上传凭证 --> | ||
| 4 | <view class="appList"> | ||
| 5 | <view class="appItem" v-for="item in list"> | ||
| 6 | <view class="status" @click="goDetail(item)"> | ||
| 7 | <text v-if="item.record.auditStatus==0" class="text-primary">审核中</text> | ||
| 8 | <text v-if="item.record.auditStatus==1" class="text-success"> 审核通过</text> | ||
| 9 | <text v-if="item.record.auditStatus==2" class="text-danger"> 审核拒绝</text> | ||
| 10 | <text v-if="item.record.auditStatus==3" class="text-warning">已退回</text> | ||
| 11 | </view> | ||
| 12 | <view class="date" @click="goDetail(item)"> | ||
| 13 | <uni-icons type="calendar" size="16" color="#7D8592"></uni-icons> | ||
| 14 | <text v-if="item.payTime">{{item.payTime}} 缴费</text> | ||
| 15 | <text v-else>{{item.payNoticeSendTime}} 下发</text> | ||
| 16 | </view> | ||
| 17 | <view class="name" @click="goDetail(item)">{{item.finalDocName}}</view> | ||
| 18 | <view class="flexbox" @click="goDetail(item)"> | ||
| 19 | <view> | ||
| 20 | 人数合计 | ||
| 21 | <view>{{item.personCount}}</view> | ||
| 22 | </view> | ||
| 23 | <view> | ||
| 24 | 年限合计 | ||
| 25 | <view>{{item.yearCount}}</view> | ||
| 26 | </view> | ||
| 27 | <view> | ||
| 28 | 费用合计 | ||
| 29 | <view>¥{{item.allPrice}}</view> | ||
| 30 | </view> | ||
| 31 | </view> | ||
| 32 | <view class="func"> | ||
| 33 | <button | ||
| 34 | v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3" | ||
| 35 | @click="handleUpdate(item)">上传凭证</button> | ||
| 36 | </view> | ||
| 37 | </view> | ||
| 38 | </view> | ||
| 39 | <view class="nodata" v-if="list.length==0"> | ||
| 40 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 41 | <text>暂无数据</text> | ||
| 42 | </view> | ||
| 43 | |||
| 44 | <!-- 上传凭证 --> | ||
| 45 | <uni-popup ref="UpPop" type="bottom" background-color="#fff" animation> | ||
| 46 | <view class="popBody"> | ||
| 47 | <uni-forms v-model="form"> | ||
| 48 | <uni-forms-item label="缴费日期" required> | ||
| 49 | <uni-datetime-picker v-model="form.payTime"></uni-datetime-picker> | ||
| 50 | </uni-forms-item> | ||
| 51 | <uni-forms-item label="缴费凭证" required> | ||
| 52 | |||
| 53 | <uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip" | ||
| 54 | @select="selectFile" | ||
| 55 | @progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker> | ||
| 56 | </uni-forms-item> | ||
| 57 | <uni-forms-item label="备注"> | ||
| 58 | <uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput> | ||
| 59 | </uni-forms-item> | ||
| 60 | </uni-forms> | ||
| 61 | |||
| 62 | <button class="btn-red" @click="uploadSure">确定</button> | ||
| 63 | </view> | ||
| 64 | </uni-popup> | ||
| 65 | </view> | ||
| 66 | </template> | ||
| 67 | |||
| 68 | <script setup> | ||
| 69 | import * as api from '@/common/api.js' | ||
| 70 | import config from '@/config.js' | ||
| 71 | import { | ||
| 72 | onMounted, | ||
| 73 | ref | ||
| 74 | } from 'vue' | ||
| 75 | import { | ||
| 76 | onLoad | ||
| 77 | } from '@dcloudio/uni-app' | ||
| 78 | const app = getApp(); | ||
| 79 | const list = ref([]) | ||
| 80 | const deptType = ref('') | ||
| 81 | const UpPop = ref(null) | ||
| 82 | const form = ref({ | ||
| 83 | docId:'', | ||
| 84 | payTime:'', | ||
| 85 | url:'', | ||
| 86 | remark:'' | ||
| 87 | }) | ||
| 88 | onLoad(() => { | ||
| 89 | if (app.globalData.isLogin) { | ||
| 90 | init() | ||
| 91 | } else { | ||
| 92 | |||
| 93 | app.firstLoadCallback = () => { | ||
| 94 | init() | ||
| 95 | }; | ||
| 96 | } | ||
| 97 | }) | ||
| 98 | |||
| 99 | function init() { | ||
| 100 | deptType.value = app.globalData.deptType | ||
| 101 | getList() | ||
| 102 | } | ||
| 103 | |||
| 104 | function getList() { | ||
| 105 | api.getFeeBillList().then(res => { | ||
| 106 | list.value = res.rows | ||
| 107 | }) | ||
| 108 | } | ||
| 109 | |||
| 110 | function handleUpdate(item) { | ||
| 111 | form.value.docId = item.docId | ||
| 112 | UpPop.value.open() | ||
| 113 | } | ||
| 114 | let selectFileValue = {} | ||
| 115 | function selectFile(e) { | ||
| 116 | let file = e.tempFiles[0] | ||
| 117 | api.uploadFile(e).then(data => { | ||
| 118 | selectFileValue = { | ||
| 119 | url: data.msg, | ||
| 120 | name: file.name, | ||
| 121 | extname: file.extname | ||
| 122 | } | ||
| 123 | |||
| 124 | form.value.url=JSON.stringify([selectFileValue]) | ||
| 125 | }); | ||
| 126 | } | ||
| 127 | function fileProgress(e) { | ||
| 128 | console.log('progress:'+ e) | ||
| 129 | } | ||
| 130 | function delSupplementFile(index) { | ||
| 131 | selectFileValue = {} | ||
| 132 | } | ||
| 133 | function uploadSure(){ | ||
| 134 | console.log(form.value) | ||
| 135 | api.commitPaymentVoucher(form.value).then(res=>{ | ||
| 136 | UpPop.value.close() | ||
| 137 | form.value = {} | ||
| 138 | uni.showToast({ | ||
| 139 | icon:'none', | ||
| 140 | title:'操作成功' | ||
| 141 | }) | ||
| 142 | getList() | ||
| 143 | }) | ||
| 144 | } | ||
| 145 | function goDetail(item) { | ||
| 146 | //详情 | ||
| 147 | console.log(item.docId) | ||
| 148 | let path = `/pages/personalVip/feeBillDetail?docId=${item.docId}` | ||
| 149 | uni.navigateTo({ | ||
| 150 | url: path | ||
| 151 | }); | ||
| 152 | } | ||
| 153 | </script> | ||
| 154 | |||
| 155 | <style scoped lang="scss"> | ||
| 156 | .popBody { | ||
| 157 | font-size: 28rpx; | ||
| 158 | line-height: 1.5; | ||
| 159 | overflow: auto; | ||
| 160 | padding: 30rpx; | ||
| 161 | |||
| 162 | .btn-red { | ||
| 163 | margin: 50rpx 0 30rpx; | ||
| 164 | } | ||
| 165 | } | ||
| 166 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -6,7 +6,8 @@ | ... | @@ -6,7 +6,8 @@ |
| 6 | <view class="status" @click="goDetail(item)"> | 6 | <view class="status" @click="goDetail(item)"> |
| 7 | <text :class="{ | 7 | <text :class="{ |
| 8 | 'text-warning':item.certStatus=='0', | 8 | 'text-warning':item.certStatus=='0', |
| 9 | 'text-success':item.certStatus=='1' | 9 | 'text-primary':item.certStatus=='1', |
| 10 | 'text-success':item.certStatus=='2' | ||
| 10 | }">{{ item.certStatusStr }}</text> | 11 | }">{{ item.certStatusStr }}</text> |
| 11 | </view> | 12 | </view> |
| 12 | 13 | ||
| ... | @@ -16,7 +17,7 @@ | ... | @@ -16,7 +17,7 @@ |
| 16 | <view class="flexbox" @click="goDetail(item)"> | 17 | <view class="flexbox" @click="goDetail(item)"> |
| 17 | <view> | 18 | <view> |
| 18 | 申请单位 | 19 | 申请单位 |
| 19 | <view>{{item.memberName}}</view> | 20 | <view>{{item.memberName||'--'}}</view> |
| 20 | </view> | 21 | </view> |
| 21 | <view> | 22 | <view> |
| 22 | 已发证书 | 23 | 已发证书 | ... | ... |
| ... | @@ -14,18 +14,18 @@ | ... | @@ -14,18 +14,18 @@ |
| 14 | <text class="text-warning" v-else>未发送</text> | 14 | <text class="text-warning" v-else>未发送</text> |
| 15 | </view> | 15 | </view> |
| 16 | <view class="name">{{n.realName}}</view> | 16 | <view class="name">{{n.realName}}</view> |
| 17 | 17 | <view class="date"> | |
| 18 | 所属团体: {{n.memName}} | ||
| 19 | </view> | ||
| 18 | 20 | ||
| 19 | <view class="flexbox mtb30"> | 21 | <view class="flexbox mtb30"> |
| 20 | <view>所属团体 | 22 | <view> |
| 21 | <text>{{n.memName}}</text> | 23 | 会员有效期 |
| 22 | </view> | ||
| 23 | <view>会员有效期 | ||
| 24 | <text>{{n.vaildityDate?.slice(0,10)}}</text> | 24 | <text>{{n.vaildityDate?.slice(0,10)}}</text> |
| 25 | </view> | 25 | </view> |
| 26 | <view>级位 | 26 | <view class="w50">{{queryParams.type=='1'?'级位':'段位'}} |
| 27 | <text> | 27 | <text> |
| 28 | {{ szToHz(n.levelNew) }}级 | 28 | {{ szToHz(n.levelNew) }}{{ queryParams.type=='1'?'级':'段/品' }} |
| 29 | </text> | 29 | </text> |
| 30 | </view> | 30 | </view> |
| 31 | </view> | 31 | </view> |
| ... | @@ -71,6 +71,9 @@ | ... | @@ -71,6 +71,9 @@ |
| 71 | uni.showLoading({ | 71 | uni.showLoading({ |
| 72 | title: '加载中' | 72 | title: '加载中' |
| 73 | }) | 73 | }) |
| 74 | if(queryParams.value.name==''){ | ||
| 75 | delete queryParams.value.name | ||
| 76 | } | ||
| 74 | api.certStudentList(queryParams.value).then(res => { | 77 | api.certStudentList(queryParams.value).then(res => { |
| 75 | list.value = res.rows | 78 | list.value = res.rows |
| 76 | uni.hideLoading() | 79 | uni.hideLoading() | ... | ... |
| ... | @@ -18,19 +18,16 @@ | ... | @@ -18,19 +18,16 @@ |
| 18 | 18 | ||
| 19 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> | 19 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> |
| 20 | <view class="name mt0" >{{item.name}}</view> | 20 | <view class="name mt0" >{{item.name}}</view> |
| 21 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 21 | <view class="pp esp">申请单位:{{item.memberName}}</view> |
| 22 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | ||
| 22 | <view class="flexbox" > | 23 | <view class="flexbox" > |
| 23 | <view> | 24 | <view> |
| 24 | 申请日期 | 25 | 申请日期 |
| 25 | <view>{{item.applyTime.substring(0, 10)}}</view> | 26 | <view>{{item.applyTime.substring(0, 10)}}</view> |
| 26 | </view> | 27 | </view> |
| 27 | <view> | 28 | <view class="w50"> |
| 28 | 申请单位 | 29 | 考段考生数 |
| 29 | <view>{{item.memberName}}</view> | 30 | <view>{{item.totalNum||'--'}}</view> |
| 30 | </view> | ||
| 31 | <view> | ||
| 32 | 通过人数 | ||
| 33 | <view>{{item.pass}}</view> | ||
| 34 | </view> | 31 | </view> |
| 35 | </view> | 32 | </view> |
| 36 | </view> | 33 | </view> | ... | ... |
| ... | @@ -18,19 +18,19 @@ | ... | @@ -18,19 +18,19 @@ |
| 18 | 18 | ||
| 19 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> | 19 | <view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view> |
| 20 | <view class="name mt0" >{{item.name}}</view> | 20 | <view class="name mt0" >{{item.name}}</view> |
| 21 | <view class="pp esp">考级日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> | 21 | <view class="pp esp">考段日期:{{item.startTime.substring(0,16)}} 至 {{item.endTime.substring(0,16)}}</view> |
| 22 | <view class="flexbox" > | 22 | <view class="flexbox" > |
| 23 | <view> | 23 | <view> |
| 24 | 申请日期 | 24 | 申请日期 |
| 25 | <view>{{item.applyTime.substring(0, 10)}}</view> | 25 | <view>{{item.applyTime.substring(0, 10)}}</view> |
| 26 | </view> | 26 | </view> |
| 27 | <view> | 27 | <view> |
| 28 | 申请单位 | 28 | 考段考生数 |
| 29 | <view>{{item.memberName}}</view> | 29 | <view>{{item.totalNum}}</view> |
| 30 | </view> | 30 | </view> |
| 31 | <view> | 31 | <view> |
| 32 | 通过人数 | 32 | 总金额 |
| 33 | <view>{{item.pass}}</view> | 33 | <view>¥{{(item.totalAmount*1).toFixed(2)}}</view> |
| 34 | </view> | 34 | </view> |
| 35 | </view> | 35 | </view> |
| 36 | </view> | 36 | </view> | ... | ... |
-
Please register or sign in to post a comment