1d933336 by 杨炀

no message

1 parent 51c28ec6
......@@ -220,7 +220,14 @@ export function addPersonToMyDept(data) {
params: data
})
}
// 提交人工审核
export function addPersonCommit(data) {
return request({
url: `/system/input/commit?fileUrl=${data.fileUrl}`,
method: 'post',
params: data
})
}
// 图片上传
export function uploadImg(e) {
const tempFilePaths = e.tempFilePaths;
......@@ -1248,4 +1255,4 @@ export function checkPersonByPersonId(perId) {
url: `/exam/person/checkPersonByPersonId/${perId}`,
method: 'get'
})
}
\ No newline at end of file
}
......
......@@ -4,7 +4,7 @@
// staging 会员系统
// const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/";
const baseUrl_api = "http://36.153.235.222:7899/stage-api";
const baseUrl_api = "https://ztx.itechtop.cn:8443/stage-api";
// const baseUrl_api = 'http://192.168.1.132:8787'
// const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api'
......
<template>
<view>
<!-- 会员缴费单 -->
<view class="appList">
<view class="vipData" v-show="totalCost>0">
<view>费用合计:<text>{{ totalCost.toFixed(2) }}</text></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.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>
<text v-if="item.record.auditStatus==3" class="text-warning">审核撤回</text>
</view>
<view class="date" @click="goDetail(item)" v-if="item.payTime">
<uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons>
......@@ -44,8 +44,18 @@
</view>
</view>
<view class="func">
<button v-if="deptType == 1" :disabled="!(item.payEvidence?.[0]?.url)"
@click="downloadOrder(item)">
下载凭证
</button>
<button v-if="(deptType == 2 || deptType == 3)&&item.settleFlag != 1"
:disabled="!(item.payEvidence?.[0]?.url)"
@click="downloadOrder(item)">
下载凭证
</button>
<button
v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3"
v-if="(deptType == 2 || deptType == 3)&&item.settleFlag == 1"
:disabled="!item.record?.auditStatus||item.record?.auditStatus == 2||item.record?.auditStatus == 3"
@click="handleUpdate(item)">上传凭证</button>
</view>
</view>
......@@ -124,28 +134,28 @@ function getList() {
}
totalCost.value = 0
api.getGroupFeeBill().then(res => {
list.value = res.rows
list.value.forEach(item => {
item.payEvidence = JSON.parse(item.payEvidence)
item.record.content = JSON.parse(item.record.content)
totalCost.value = totalCost.value + (item.allPrice * 1)
list.value = res.rows
list.value.forEach(item => {
item.payEvidence = JSON.parse(item.payEvidence)
item.record.content = JSON.parse(item.record.content)
totalCost.value = totalCost.value + (item.allPrice * 1)
})
})
}
function handleUpdate(item) {
form.value.docId = item.docId
if (item.payEvidence) {
form.value.url = item.payEvidence
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]
if(!file){
return
let file = e.tempFiles[0]
if(!file){
return
}
api.uploadFile(e).then(data => {
selectFileValue = {
......@@ -166,21 +176,21 @@ function delSupplementFile(index) {
selectFileValue = {}
}
function uploadSure() {
console.log(form.value)
if(!form.value.payTime){
uni.showToast({
icon:`none`,
title:'请选择缴费时间'
})
return
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
if(!form.value.url){
uni.showToast({
icon:`none`,
title:'请上传缴费凭证'
})
return
}
api.groupCommitPaymentVoucher(form.value).then(res => {
UpPop.value.close()
......@@ -201,9 +211,77 @@ function goDetail(item) {
url: path
});
}
function downloadOrder(item) {
//下载凭证
showImg(item.payEvidence[0]?.url)
}
function showImg(url) {
var str = config.baseUrl_api + url
if (url.indexOf('png') > -1 || url.indexOf('jpg') > -1 || url.indexOf('jpeg') > -1) {
uni.previewImage({
urls: [str],
success: function(res) {
console.log('success', res)
},
fail: function(res) {
console.log('fail', res)
},
complete: function(res) {
console.log('complete', res)
}
})
} else {
goWebView(str)
}
}
function goWebView(url) {
url = url.replace("http://", "https://")
uni.showLoading({
title: '下载中'
});
uni.downloadFile({
url: url,
success: function(res) {
uni.hideLoading();
var filePath = res.tempFilePath;
uni.showLoading({
title: '正在打开'
});
uni.openDocument({
filePath: filePath,
showMenu: true,
success: function(res) {
uni.hideLoading();
},
fail: function(err) {
uni.hideLoading();
uni.showToast({
title: err,
icon: 'none',
duration: 2000
});
}
});
},
fail: function(error) {
uni.hideLoading();
uni.showToast({
title: `下载失败`,
icon: 'none',
duration: 2000
});
}
});
}
</script>
<style scoped lang="scss">
.appList .appItem .func button[disabled]{
opacity: 0.3;
}
.popBody {
font-size: 28rpx;
line-height: 1.5;
......@@ -214,4 +292,4 @@ function goDetail(item) {
margin: 50rpx 0 30rpx;
}
}
</style>
\ No newline at end of file
</style>
......
......@@ -57,7 +57,7 @@
<view class="w100">
<view class="del" @click="handleDelete(n)">删除</view>
<view style="display: flex;">
<!--
<!--
<view class="photobox">
<image class="photo" v-if="n.photo" :src="n.photo" mode='aspectFill'></image>
<view class="colorful" v-else>{{n.realName?.slice(0,1)}}</view>
......@@ -76,7 +76,6 @@
考试级别
<!-- <text style="padding: 15rpx 0;">{{ szToHz(n.levelNew) }}</text> -->
<view @click="changeLevelfather(n)">
<uni-data-select v-model="n.levelNew" :localdata="levelArr"
@change="changeLevel"></uni-data-select>
</view>
......@@ -278,7 +277,6 @@
})
function updateData(e) {
// console.log(e)
examinerArr.push(e.obj)
form.value[`examiner_${e.ec}`] = e.obj.name
}
......@@ -534,19 +532,24 @@
api.jiDropDownBox({
perId: row.perId
}).then(res => {
console.log(res.data)
for (var l of res.data) {
levelArr.value = res.data
for (var l of levelArr.value) {
l.text = l.name
l.disabled = l.status
l.disabled = !(l.status)
}
levelArr.value = res.data
})
}
function changeLevel(e) {
console.log(e)
if (e == nowRow.levelOld) {
uni.showToast({
title: `考试级别重复,请重新选择!`,
icon: 'none'
})
nowRow.levelNew = nowRow.levelRecommend
return
}
if (e !== nowRow.levelRecommend) {
uni.showModal({
title: '提示',
......@@ -554,8 +557,8 @@
success: function(res) {
if (res.confirm) {
getTablePersonInfo()
}else{
nowRow.levelNew = nowRow.levelRecommend
}else{
nowRow.levelNew = nowRow.levelRecommend
}
},
fail: function(res) {
......@@ -566,6 +569,23 @@
}
function submitForm2(flag) {
//循环infoList.value 如果item.levelNew == item.levelOld 提示错误
for (var item of infoList.value) {
if (item.levelNew == item.levelOld) {
uni.showToast({
title: `${item.realName}考试级别重复,请重新选择!`,
icon: 'none'
})
return
}
if (!item.levelNew) {
uni.showToast({
title: `${item.realName}请选择考试级别!`,
icon: 'none'
})
return
}
}
if (flag === 1) {
if (infoList.value.length == 0) {
uni.showToast({
......@@ -574,6 +594,7 @@
})
return
}
// if (!form.value.transcript) {
// uni.showToast({
// title: '请上传成绩单',
......@@ -638,7 +659,6 @@
}
for (const n in e.tempFiles) {
api.uploadFileList(e.tempFilePaths[n]).then(data => {
console.log(data)
selectFileValue = {
url: data,
name: e.tempFiles[n].name,
......@@ -659,11 +679,9 @@
transcript.value = _.remove(transcript.value, function(n) {
return n.name != e.tempFile.name;
});
console.log(transcript.value)
}
function uploadSure() {
console.log(transcript.value)
// 上传确定
if (transcript.value.length == 0) {
uni.showToast({
......@@ -747,4 +765,4 @@
:deep(.file-picker__progress) {
opacity: 0;
}
</style>
\ No newline at end of file
</style>
......
......@@ -29,7 +29,7 @@
考官
<view>{{item.examinerNames}}</view>
</view>
<view>
通过人数
<view>{{item.pass}}</view>
......@@ -38,7 +38,7 @@
<view class="func" v-if="item.status=='0'||item.status=='3'||item.status=='4'">
<button @click="handleDelete(item)">删除</button>
<button @click="editThis(item)">编辑</button>
<button @click="handleSubmit(item)">提交审核</button>
<button :disabled="!(item.totalNum?item.totalNum:(item.pass+item.noPass))" @click="handleSubmit(item)">提交审核</button>
</view>
</view>
</view>
......@@ -218,4 +218,4 @@
width: 80%;
word-break: break-all;
}
</style>
\ No newline at end of file
</style>
......
<template>
<view>
<view class="searchbar">
<uni-easyinput placeholderStyle="font-size:30rpx" :input-border="false" prefixIcon="search"
v-model="query.idcCode" placeholder="证件号码" @blur="getList">
</uni-easyinput>
</view>
<view class="nolineform">
<uni-form @submit="getList">
<uni-forms-item label="考官姓名">
<uni-easyinput :placeholderStyle="placeholderStyle"
:input-border="false"
v-model="query.name" placeholder="考官姓名">
</uni-easyinput>
</uni-forms-item>
<uni-forms-item label="考官编号">
<uni-easyinput :placeholderStyle="placeholderStyle"
:input-border="false"
v-model="query.certCode" placeholder="考官编号">
</uni-easyinput>
</uni-forms-item>
</uni-form>
<view class="button-group">
<button size="mini" @click="resetQuery">重置</button>
<button type="primary" size="mini" @click="getList">查询</button>
</view>
</view>
<view class="indexboxre">
<view class="userlist">
<view class="item" v-for="(n,index) in list" :key="index">
......@@ -15,9 +30,11 @@
<view>
<view class="name">{{n.name}}</view>
<view class="date">会员号:{{n.perCode||'-'}}</view>
<view class="date">证件号码:{{n.idcCode||'-'}}</view>
<view class="date">注册地:{{n.memName||'-'}}</view>
</view>
<view class="status">
<text v-if="n.disabled">选择</text>
<text v-if="n.disabled">已选</text>
<text v-else class="text-primary" @click="handleChoose(n)">选择</text>
</view>
......@@ -25,7 +42,7 @@
</view>
<view class="nodata" v-if="list.length==0">
<image mode="aspectFit" src="/static/nodata.png"></image>
<text>请输入证件号查找</text>
<text>请输入考官姓名和编号精确查找</text>
</view>
</view>
......@@ -49,7 +66,8 @@
const query = ref({
})
const list = ref([])
const placeholderStyle = ref('text-align: right;font-size:30rpx')
const list = ref([])
const total = ref(0)
const userType = ref('')
let chosen = []
......@@ -60,16 +78,22 @@
ec = option.ec
console.log(chosen)
})
function resetQuery() {
query.value = {}
list.value = []
}
function getList() {
if (!query.value.idcCode) {
if (!query.value.name) {
return
}
if (!query.value.certCode) {
return
}
uni.showLoading({
title: `查找中`
})
api.getCoachList(query.value).then(res => {
if (res.data.length == 0) {
if (res.rows.length == 0) {
uni.showToast({
title: '未查询到考官信息',
icon: "error"
......@@ -77,11 +101,11 @@
list.value = []
return
}
list.value = res.data
list.value = res.rows
for(var l of list.value){
if(l.photo&&l.photo.indexOf('http')==-1){
l.photo = config.baseUrl_api + l.photo
}
// if(l.photo&&l.photo.indexOf('http')==-1){
// l.photo = config.baseUrl_api + l.photo
// }
for(var t of chosen){
if(t.perId == l.perId){
l.disabled = true
......@@ -99,13 +123,21 @@
}
function handleChoose(row) {
if (row.canChoose != 1){
uni.showToast({
title: '该考官资质已过期!',
icon: "error"
})
return
}
var pages = getCurrentPages()
var prevPage = pages[pages.length - 2]
var obj = {
perId: row.perId,
name: row.name,
}
// prevPage.onShow(obj)
uni.$emit('chosen',{
obj:obj,
......@@ -151,4 +183,11 @@
font-size: 26rpx;
}
}
</style>
\ No newline at end of file
.button-group {
text-align: right;
button {
margin-left: 30rpx;
}
}
</style>
......
<template>
<view class="hasfixedbottom">
<view class="nolineform">
<uni-forms :border="true" :modelValue="baseFormData" label-width="120">
<uni-forms :border="true" :modelValue="baseFormData" label-width="90">
<!-- <uni-forms-item label="姓名" required name="name">
<uni-easyinput :styles="inputstyle" :clearable='false' :placeholderStyle="placeholderStyle"
v-model="baseFormData.name" placeholder="请输入姓名" />
......@@ -34,7 +34,7 @@
<view>
{{n.perName}}
<view class="date">
{{idcTypeList[n.perIdcType].text}}: {{n.perIdcCode}}
{{getIdcType(n.perIdcType)}}: {{n.perIdcCode}}
</view>
</view>
</view>
......@@ -79,15 +79,15 @@
},
{
value: '1',
text: "港澳台通信身份证"
text: "来往大陆(内地)通行证 "
},
{
value: '3',
text: "外国护照"
text: "护照"
},
{
value: '4',
text: "其他"
value: '5',
text: "香港身份证"
}
])
const baseFormData = ref({
......@@ -106,6 +106,14 @@
getList()
}
})
function getIdcType(type) {
for (var item of idcTypeList.value){
if (item.value == type) {
return item.text
}
}
}
// 查询会员
function selectMember() {
// if (!baseFormData.value.name) {
......@@ -156,18 +164,18 @@
api.addTransferToRange({
rangeId: baseFormData.value.rangeId || -1,
personIdArray: baseFormData.value.personIdArray
}).then(res => {
if(res.data.result == 0){
uni.showModal({
content: res.data?.list?.[0]?.msg,
success: function(res) {
}
})
} else {
uni.showToast({
title:'新增成功'
})
}).then(res => {
if(res.data.result == 0){
uni.showModal({
content: res.data?.list?.[0]?.msg,
success: function(res) {
}
})
} else {
uni.showToast({
title:'新增成功'
})
}
baseFormData.value.rangeId = res.data.rangeId
queryParams.value.rangeId = res.data.rangeId
......@@ -179,13 +187,13 @@
})
}
function getList() {
uni.showLoading({
title:'加载中'
function getList() {
uni.showLoading({
title:'加载中'
})
api.getTransferList(queryParams.value).then(res => {
list.value = res.rows
total.value = res.total
total.value = res.total
uni.hideLoading()
})
}
......@@ -198,27 +206,27 @@
})
uni.navigateBack()
})
}
function handleDelete(row){
uni.showModal({
title: '提示',
content: `确定删除吗`,
success: function(res) {
if (res.confirm) {
api.deltransferRange([row.id]).then(Response=>{
uni.showToast({
icon:"none",
title:'删除成功!'
})
if (total.value == 1) {
baseFormData.value.rangeId = '-1'
queryParams.value.rangeId = '-1'
}
getList()
})
}
}
})
}
function handleDelete(row){
uni.showModal({
title: '提示',
content: `确定删除吗`,
success: function(res) {
if (res.confirm) {
api.deltransferRange([row.id]).then(Response=>{
uni.showToast({
icon:"none",
title:'删除成功!'
})
if (total.value == 1) {
baseFormData.value.rangeId = '-1'
queryParams.value.rangeId = '-1'
}
getList()
})
}
}
})
}
</script>
......@@ -255,4 +263,4 @@
margin-right: 20rpx;
}
}
</style>
\ No newline at end of file
</style>
......
......@@ -145,7 +145,7 @@
idcType: '0',
perType: '1', // (1:个人会员;2:教练;3:考官;4:裁判;5:临时会员;)
})
const items = ref(['手动录入', '自动录入'])
const items = ref(['身份证添加', '证件照录入'])
const idcTypeList = ref([{
value: '0',
text: "身份证"
......@@ -502,9 +502,9 @@
delete baseFormData.value.card
const time = new Date().valueOf() + ''
baseFormData.t = time + Math.floor(Math.random() * 10)
baseFormData.signT = aes2.AESEncrypt(baseFormData.idcType + time)
baseFormData.value.t = time + Math.floor(Math.random() * 10)
baseFormData.value.signT = aes2.AESEncrypt(baseFormData.value.idcType + time)
console.log(baseFormData.value)
api.addPersonToMyDept(baseFormData.value).then(Response => {
if (Response.data == 0) {
let msg = '该成员,实名认证未通过,注册失败!'
......
......@@ -21,9 +21,10 @@
<view>
缴费状态
<view>
<text v-if="item.settleFlag == 0" class="text-warning">已结算</text>
<text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text>
<text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text>
<text v-if="item.settleFlag == 0" class="text-success">已结算</text>
<text v-if="item.settleFlag == 1" class="text-danger">未结算</text>
<!-- <text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text>-->
<!-- <text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text>-->
</view>
</view>
<view>
......@@ -38,11 +39,14 @@
费用合计
<view>¥{{item.allPrice}}</view>
</view>
</view>
<view class="func">
<button v-if="item.settleFlag == 0" :disabled="!(item.payFlag == 0)"
@click="downloadOrder(item)">下载凭证</button>
<button
v-if="(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3"
v-if="(deptType == 2 || deptType == 3) && item.settleFlag != 0"
:disabled="item?.record?.auditStatus == 2 || item?.record?.auditStatus == 3||item.yjFlag==1"
@click="handleUpdate(item)">上传凭证</button>
</view>
</view>
......@@ -60,7 +64,7 @@
<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>
......@@ -69,7 +73,7 @@
<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>
......@@ -121,6 +125,71 @@ function handleUpdate(item) {
form.value.docId = item.docId
UpPop.value.open()
}
function downloadOrder(item) {
//下载凭证
var arr = JSON.parse(item.payEvidence) || []
showImg(arr[0]?.url)
}
function showImg(url) {
var str = config.baseUrl_api + url
if (url.indexOf('png') > -1 || url.indexOf('jpg') > -1 || url.indexOf('jpeg') > -1) {
uni.previewImage({
urls: [str],
success: function(res) {
console.log('success', res)
},
fail: function(res) {
console.log('fail', res)
},
complete: function(res) {
console.log('complete', res)
}
})
} else {
goWebView(str)
}
}
function goWebView(url) {
url = url.replace("http://", "https://")
uni.showLoading({
title: '下载中'
});
uni.downloadFile({
url: url,
success: function(res) {
uni.hideLoading();
var filePath = res.tempFilePath;
uni.showLoading({
title: '正在打开'
});
uni.openDocument({
filePath: filePath,
showMenu: true,
success: function(res) {
uni.hideLoading();
},
fail: function(err) {
uni.hideLoading();
uni.showToast({
title: err,
icon: 'none',
duration: 2000
});
}
});
},
fail: function(error) {
uni.hideLoading();
uni.showToast({
title: `下载失败`,
icon: 'none',
duration: 2000
});
}
});
}
let selectFileValue = {}
function selectFile(e) {
let file = e.tempFiles[0]
......@@ -133,7 +202,7 @@ function selectFile(e) {
name: file.name,
extname: file.extname
}
form.value.url=JSON.stringify([selectFileValue])
});
}
......@@ -166,6 +235,9 @@ function goDetail(item) {
</script>
<style scoped lang="scss">
.appList .appItem .func button[disabled]{
opacity: 0.3;
}
.popBody {
font-size: 28rpx;
line-height: 1.5;
......@@ -176,4 +248,4 @@ function goDetail(item) {
margin: 50rpx 0 30rpx;
}
}
</style>
\ No newline at end of file
</style>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!