e0673ad0 by 杨炀

no message

1 parent bca6acdc
......@@ -522,6 +522,13 @@ function certStudentList(query) {
params: query
})
}
function paymentList(query) {
return request({
url: '/exam/payment/list',
method: 'get',
params: query
})
}
export {
......@@ -571,5 +578,5 @@ export {
delPayment,editYear,addPersonPaymentGroup,
commitRenew,getVerityMergeList,doMergeFlows,getMergePaymentInfo,
submitCert,getCertsLList,getExamListByPayId,
certStudentList
certStudentList,paymentList
}
\ No newline at end of file
......
......@@ -344,7 +344,9 @@ color: #7D8592;}
display: block;
font-size: 14px;
}
.bgbg{padding:0 0 60rpx;color: #fff;background: #C40F18;position: relative;}
.bgbg{padding:0 0 60rpx;color: #fff;background:url('/static/top_bg.png') #C40F18 no-repeat top;
background-size: cover;
position: relative;}
.girdBox{display: flex;flex-wrap: wrap;padding: 0 0 40rpx;
background: #FFFFFF;position: relative;top: -30rpx;
border-radius: 20rpx 20rpx 0rpx 0rpx;
......
......@@ -433,6 +433,33 @@
}
}
,{
"path" : "pages/level/payment",
"style" :
{
"navigationBarTitleText": "级位考试缴费单",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/exam/payment",
"style" :
{
"navigationBarTitleText": "考试缴费单",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/exam/paymentDetail",
"style" :
{
"navigationBarTitleText": "缴费单详情",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {
"navigationStyle": "custom",
......
<template>
<view>
<!-- 级/段/越段考试缴费单 -->
<view class="appList">
<view class="vipData" v-show="totalCost>0">
<view>费用合计:<text>{{ totalCost.toFixed(2) }}</text></view>
</view>
<view class="appItem" v-for="item in list">
<view class="status" @click="goDetail(item)">
<text v-if="item.verityStatus==0" class="text-primary">审核中</text>
<text v-if="item.verityStatus==1" class="text-success"> 审核通过</text>
<text v-if="item.verityStatus==2" class="text-danger"> 审核拒绝</text>
<text v-if="item.verityStatus==3" class="text-warning">已退回</text>
</view>
<view class="date" @click="goDetail(item)" v-if="item.payTime">
<uni-icons type="calendar" size="16" color="#7D8592"></uni-icons>
<text>{{item.payTime}} 缴费</text>
</view>
<view class="name" @click="goDetail(item)">{{item.name}}</view>
<view v-if="deptType==1" class="date">
<text>{{item.payNoticeSendTime}} 下发</text>
</view>
<view class="flexbox" @click="goDetail(item)">
<view>
缴费状态
<view>
<text :class="{
'text-success':item.payStatusStr=='已上传凭证',
'text-danger':item.payStatusStr=='未上传凭证',
'text-warning':item.payStatusStr=='已结算'
}">{{item.payStatusStr}}</text>
</view>
</view>
<view>
人数合计
<view>{{item.totalNum}}</view>
</view>
<view>
费用合计
<view>¥{{item.totalAmount}}</view>
</view>
</view>
<view class="func">
<button v-if="item.payStatus!='3'&&item.verityStatus!='2'&&item.verityStatus!='3'"
@click="handleUpdate(item)">上传凭证</button>
</view>
</view>
</view>
<view class="nodata" v-if="list.length==0">
<image mode="aspectFit" src="/static/nodata.png"></image>
<text>暂无数据</text>
</view>
<!-- 上传凭证 -->
<uni-popup ref="UpPop" type="bottom" background-color="#fff" animation>
<view class="popBody">
<uni-forms v-model="form">
<uni-forms-item label="缴费日期" required>
<uni-datetime-picker v-model="form.payTime"></uni-datetime-picker>
</uni-forms-item>
<uni-forms-item label="缴费凭证" required>
<uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip"
@select="selectFile" @progress="fileProgress"
@delete="delSupplementFile(index)"></uni-file-picker>
</uni-forms-item>
<uni-forms-item label="备注">
<uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput>
</uni-forms-item>
</uni-forms>
<button class="btn-red" @click="uploadSure">确定</button>
</view>
</uni-popup>
</view>
</template>
<script setup>
import * as api from '@/common/api.js'
import config from '@/config.js'
import _ from 'lodash'
import {
onMounted,
ref
} from 'vue'
import {
onLoad
} from '@dcloudio/uni-app'
const app = getApp();
const list = ref([])
const queryParams = ref({
type: '1'
})
const totalCost = ref(0)
const deptType = ref('')
const UpPop = ref(null)
const form = ref({
docId: '',
payTime: '',
url: '',
remark: ''
})
onLoad((option) => {
queryParams.value.type = option.type
if (app.globalData.isLogin) {
init()
} else {
app.firstLoadCallback = () => {
init()
};
}
})
function init() {
deptType.value = app.globalData.deptType
getList()
}
function getList() {
uni.showLoading({
title: '加载中'
})
totalCost.value = 0
api.paymentList(queryParams.value).then(res => {
list.value = res.rows
uni.hideLoading()
_.each(list.value, (info) => {
totalCost.value += (info.totalAmount * 1)
})
})
}
function handleUpdate(item) {
form.value.docId = item.docId
if (item.payEvidence) {
form.value.url = item.payEvidence
}
UpPop.value.open()
}
let selectFileValue = {}
function selectFile(e) {
let file = e.tempFiles[0]
api.uploadFile(e).then(data => {
selectFileValue = {
url: data.msg,
name: file.name,
extname: file.extname
}
form.value.url = JSON.stringify([selectFileValue])
});
}
function fileProgress(e) {
console.log('progress:' + e)
}
function delSupplementFile(index) {
selectFileValue = {}
}
function uploadSure() {
console.log(form.value)
if (!form.value.payTime) {
uni.showToast({
icon: `none`,
title: '请选择缴费时间'
})
return
}
if (!form.value.url) {
uni.showToast({
icon: `none`,
title: '请上传缴费凭证'
})
return
}
api.groupCommitPaymentVoucher(form.value).then(res => {
UpPop.value.close()
form.value = {}
uni.showToast({
icon: 'none',
title: '操作成功'
})
getList()
})
}
function goDetail(item) {
//详情
console.log(item.docId)
let path = `/pages/group/feeBillDetail?docId=${item.docId}`
uni.navigateTo({
url: path
});
}
</script>
<style scoped lang="scss">
.popBody {
font-size: 28rpx;
line-height: 1.5;
overflow: auto;
padding: 30rpx;
.btn-red {
margin: 50rpx 0 30rpx;
}
}
</style>
\ No newline at end of file
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
......@@ -11,14 +11,24 @@
<view class="flexbox">
<!-- userType 1:中跆协 2:省 3:市区 4:道馆-->
<!-- 4 -->
<view v-if="userType=='4'" @click="goAddVip">添加会员</view>
<view v-if="userType=='4'" @click="goPath('/pages/personalVip/payment')">会员缴费</view>
<view v-if="userType=='2'" @click="goPath('/pages/personalVip/feeBill')">会员缴费单</view>
<view v-if="userType=='4'" @click="goAddVip">
<image src="@/static/btn01.png"/>
添加会员</view>
<view v-if="userType=='4'" @click="goPath('/pages/personalVip/payment')">
<image src="@/static/btn02.png"/>
会员缴费</view>
<!-- 3 2 1-->
<view v-if="userType!='4'" @click="goPath('/pages/personalVip/audit')">缴费审核</view>
<view v-if="userType!='4'" @click="goPath('/pages/personalVip/audit')">
<image src="@/static/btn03.png"/>
缴费审核</view>
<!-- 都有 -->
<view @click="goPath('/pages/personalVip/list')">会员查询</view>
<view @click="goPath('/pages/personalVip/list')">
<image src="@/static/btn04.png"/>
会员查询</view>
<view v-if="userType!='4'" @click="goPath('/pages/group/list')">
<image src="@/static/btn05.png"/>团体会员
</view>
</view>
</view>
......@@ -27,10 +37,9 @@
<image />
会员调动
</view>
<view v-if="userType!='4'" @click="goPath('/pages/group/list')">
<image />团体会员查询
</view>
<!--市区 省 中跆协 -->
<view v-if="userType=='2'" @click="goPath('/pages/personalVip/feeBill')">
<image />会员缴费单</view>
<view v-if="userType!='4'" @click="goPath('/pages/group/apply/applyList')">
<image />团体会员审核
</view>
......@@ -51,6 +60,18 @@
<view v-if="userType=='2'" @click="goPath('/pages/level/apply')">
<image />段位考试申请
</view>
<view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=1')">
<image />级位考试缴费单
</view>
<view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=2')">
<image />段位考试缴费单
</view>
<view v-if="userType=='2'" @click="goPath('/pages/exam/payment?type=3')">
<image />越段考试缴费单
</view>
</view>
......@@ -232,7 +253,7 @@
break
case 30005:
d.name = '你有一条团体会员认证等待审批,点击去处理!'
d.path = '/pages/group/authentication'
d.path = '/pages/group/pay'
break
case 30006:
d.name = '你有一条段位成绩等待审批,点击去处理!'
......@@ -240,11 +261,11 @@
break
case 40001:
d.name = '你有一条级位申请待提交,点击去处理!'
d.path = `/pages/level/apply/modify?id=${d.eventId}`
d.path = `/pages/level/apply?id=${d.eventId}`
break
case 40002:
d.name = '你有一条段位申请待提交,点击去处理!'
d.path = `/pages/rank/apply/modify?id=${d.eventId}`
d.path = `/pages/rank/apply?id=${d.eventId}`
break
case 40003:
d.name = '你有一条成绩维护的数据待提交,点击去处理!'
......@@ -307,7 +328,8 @@
.flexbox {
display: flex;
justify-content: space-around;
justify-content: space-around;text-align: center;
image{width: 90rpx;height: 90rpx;display: block;margin: auto;}
}
.image {
......
<template>
<view>
<!--级位考试缴费单 查看+上传凭证 -->
<view class="appList">
<view class="appItem" v-for="item in list">
<view class="status" @click="goDetail(item)">
<text v-if="item.record.auditStatus==0" class="text-primary">审核中</text>
<text v-if="item.record.auditStatus==1" class="text-success"> 审核通过</text>
<text v-if="item.record.auditStatus==2" class="text-danger"> 审核拒绝</text>
<text v-if="item.record.auditStatus==3" class="text-warning">已退回</text>
</view>
<view class="date" @click="goDetail(item)">
<uni-icons type="calendar" size="16" color="#7D8592"></uni-icons>
<text v-if="item.payTime">{{item.payTime}} 缴费</text>
<text v-else>{{item.payNoticeSendTime}} 下发</text>
</view>
<view class="name" @click="goDetail(item)">{{item.finalDocName}}</view>
<view class="flexbox" @click="goDetail(item)">
<view>
人数合计
<view>{{item.personCount}}</view>
</view>
<view>
年限合计
<view>{{item.yearCount}}</view>
</view>
<view>
费用合计
<view>¥{{item.allPrice}}</view>
</view>
</view>
<view class="func">
<button
v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3"
@click="handleUpdate(item)">上传凭证</button>
</view>
</view>
</view>
<view class="nodata" v-if="list.length==0">
<image mode="aspectFit" src="/static/nodata.png"></image>
<text>暂无数据</text>
</view>
<!-- 上传凭证 -->
<uni-popup ref="UpPop" type="bottom" background-color="#fff" animation>
<view class="popBody">
<uni-forms v-model="form">
<uni-forms-item label="缴费日期" required>
<uni-datetime-picker v-model="form.payTime"></uni-datetime-picker>
</uni-forms-item>
<uni-forms-item label="缴费凭证" required>
<uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip"
@select="selectFile"
@progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker>
</uni-forms-item>
<uni-forms-item label="备注">
<uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput>
</uni-forms-item>
</uni-forms>
<button class="btn-red" @click="uploadSure">确定</button>
</view>
</uni-popup>
</view>
</template>
<script setup>
import * as api from '@/common/api.js'
import config from '@/config.js'
import {
onMounted,
ref
} from 'vue'
import {
onLoad
} from '@dcloudio/uni-app'
const app = getApp();
const list = ref([])
const deptType = ref('')
const UpPop = ref(null)
const form = ref({
docId:'',
payTime:'',
url:'',
remark:''
})
onLoad(() => {
if (app.globalData.isLogin) {
init()
} else {
app.firstLoadCallback = () => {
init()
};
}
})
function init() {
deptType.value = app.globalData.deptType
getList()
}
function getList() {
api.getFeeBillList().then(res => {
list.value = res.rows
})
}
function handleUpdate(item) {
form.value.docId = item.docId
UpPop.value.open()
}
let selectFileValue = {}
function selectFile(e) {
let file = e.tempFiles[0]
api.uploadFile(e).then(data => {
selectFileValue = {
url: data.msg,
name: file.name,
extname: file.extname
}
form.value.url=JSON.stringify([selectFileValue])
});
}
function fileProgress(e) {
console.log('progress:'+ e)
}
function delSupplementFile(index) {
selectFileValue = {}
}
function uploadSure(){
console.log(form.value)
api.commitPaymentVoucher(form.value).then(res=>{
UpPop.value.close()
form.value = {}
uni.showToast({
icon:'none',
title:'操作成功'
})
getList()
})
}
function goDetail(item) {
//详情
console.log(item.docId)
let path = `/pages/personalVip/feeBillDetail?docId=${item.docId}`
uni.navigateTo({
url: path
});
}
</script>
<style scoped lang="scss">
.popBody {
font-size: 28rpx;
line-height: 1.5;
overflow: auto;
padding: 30rpx;
.btn-red {
margin: 50rpx 0 30rpx;
}
}
</style>
\ No newline at end of file
......@@ -6,7 +6,8 @@
<view class="status" @click="goDetail(item)">
<text :class="{
'text-warning':item.certStatus=='0',
'text-success':item.certStatus=='1'
'text-primary':item.certStatus=='1',
'text-success':item.certStatus=='2'
}">{{ item.certStatusStr }}</text>
</view>
......@@ -16,7 +17,7 @@
<view class="flexbox" @click="goDetail(item)">
<view>
申请单位
<view>{{item.memberName}}</view>
<view>{{item.memberName||'--'}}</view>
</view>
<view>
已发证书
......
......@@ -14,18 +14,18 @@
<text class="text-warning" v-else>未发送</text>
</view>
<view class="name">{{n.realName}}</view>
<view class="date">
所属团体: {{n.memName}}
</view>
<view class="flexbox mtb30">
<view>所属团体
<text>{{n.memName}}</text>
</view>
<view>会员有效期
<view>
会员有效期
<text>{{n.vaildityDate?.slice(0,10)}}</text>
</view>
<view>级位
<view class="w50">{{queryParams.type=='1'?'级位':'段位'}}
<text>
{{ szToHz(n.levelNew) }}
{{ szToHz(n.levelNew) }}{{ queryParams.type=='1'?'级':'段/品' }}
</text>
</view>
</view>
......@@ -70,7 +70,10 @@
function getList() {
uni.showLoading({
title: '加载中'
})
})
if(queryParams.value.name==''){
delete queryParams.value.name
}
api.certStudentList(queryParams.value).then(res => {
list.value = res.rows
uni.hideLoading()
......
......@@ -18,19 +18,16 @@
<view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
<view class="name mt0" >{{item.name}}</view>
<view class="pp esp">考级日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
<view class="pp esp">申请单位:{{item.memberName}}</view>
<view class="pp esp">考段日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
<view class="flexbox" >
<view>
申请日期
<view>{{item.applyTime.substring(0, 10)}}</view>
</view>
<view>
申请单位
<view>{{item.memberName}}</view>
</view>
<view>
通过人数
<view>{{item.pass}}</view>
<view class="w50">
考段考生数
<view>{{item.totalNum||'--'}}</view>
</view>
</view>
</view>
......
......@@ -18,19 +18,19 @@
<view class="date" v-if="item.status!='0'&&item.submitTime">提交时间:{{item.submitTime}}</view>
<view class="name mt0" >{{item.name}}</view>
<view class="pp esp">日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
<view class="pp esp">日期:{{item.startTime.substring(0,16)}}{{item.endTime.substring(0,16)}}</view>
<view class="flexbox" >
<view>
申请日期
<view>{{item.applyTime.substring(0, 10)}}</view>
</view>
<view>
申请单位
<view>{{item.memberName}}</view>
考段考生数
<view>{{item.totalNum}}</view>
</view>
<view>
通过人数
<view>{{item.pass}}</view>
总金额
<view>¥{{(item.totalAmount*1).toFixed(2)}}</view>
</view>
</view>
</view>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!