5f967e5c by lttnew

证书

1 parent b7f2fdc4
......@@ -1272,3 +1272,17 @@ export function checkPersonByPersonId(perId) {
method: 'get'
})
}
export function checkCertCode(params) {
return request({
url: `/person/info/checkCertCode`,
method: 'get',
params: params
})
}
export function submitCert3(data) {
return request({
url: `/exam/payment/submitCerts/issueAndUpdateCerts`,
method: 'put',
data: data
})
}
......
......@@ -55,10 +55,17 @@ const request = function(req) {
// }
return new Promise((resolve, reject) => {
// 支持 @RequestBody 接口:传 data 则序列化为 JSON 放进请求体
let reqData = req.data
if (reqData !== undefined && reqData !== null) {
reqData = JSON.stringify(reqData)
} else {
reqData = req.params
}
uni.request({
url: config.baseUrl_api + req.url,
method: req.method,
data: req.params,
data: reqData,
header: getHeaders()
}).then(res => {
switch (res.statusCode) {
......
......@@ -7,8 +7,8 @@
// 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'
// const baseUrl_api = 'https://tk001.wxjylt.com/stage-api' //测试环境
const baseUrl_api = 'https://system.taekwondo.org.cn/stage-api' //会员生产
const baseUrl_api = 'https://tk001.wxjylt.com/stage-api' //测试环境
// const baseUrl_api = 'https://system.taekwondo.org.cn/stage-api' //会员生产
// const baseUrl_api = 'https://system.taekwondo.org.cn/stage-api'
export default {
baseUrl_api
......
......@@ -34,7 +34,8 @@
</view>
<!-- v-if="item.certStatus != '2'" -->
<view class="func">
<button @click="send(item)">更新证书</button>
<button @click="goDetail(item)">查看</button>
<button @click="handleSend(item)">下发并生成证书</button>
</view>
</view>
</view>
......@@ -43,6 +44,25 @@
<image mode="aspectFit" src="/static/nodata.png"></image>
<text>暂无数据</text>
</view> -->
<!-- 下发证书确认弹层 -->
<uni-popup ref="certPopup" type="center" :is-mask-click="false">
<view class="cert-dialog">
<view class="cert-dialog__head">
<uni-icons type="info-filled" size="24" color="#FAAD14" />
<view class="cert-dialog__title">提示</view>
</view>
<view class="cert-dialog__content">{{ popupContent }}</view>
<view class="cert-dialog__btns">
<view class="cert-dialog__btn cert-dialog__btn--cancel" @click="onPopupCancel">取消</view>
<view
v-if="showDownload" class="cert-dialog__btn cert-dialog__btn--download"
@click="onPopupDownload"
>下载名单</view>
<view class="cert-dialog__btn cert-dialog__btn--sure" @click="onPopupSure">确认下发</view>
</view>
</view>
</uni-popup>
</view>
</template>
......@@ -72,6 +92,12 @@
const deptType = ref('')
const userType = ref('')
const paging = ref(null)
// 下发证书确认弹层
const certPopup = ref(null)
const popupContent = ref('')
const showDownload = ref(false)
let popupSure = () => {}
let popupDownload = () => {}
onLoad((option) => {
queryParams.value.type = option.type
if (option.type == 2) {
......@@ -96,6 +122,20 @@
}
})
function handleSend(row) {
checkCert(row.payId, () => {
api.submitCert3([{
id: row.payId
}]).then(() => {
uni.showToast({
title: `下发成功`
})
getList()
})
}, () => {
return `确定下发 ${row.name} 的证书吗`
})
}
function init() {
deptType.value = app.globalData.deptType
userType.value = app.globalData.userType
......@@ -132,40 +172,86 @@
function checkCert(payIds, sureFunc, confirmFunc) {
return api.checkPersonByPayIds(payIds).then(res => {
if (res.data == 1) {
confirmFunc().then((kk)=>{
if(kk.confirm){
sureFunc()
}
// 照片齐全:弹自定义确认框,确认后执行下发
openCertPopup({
content: confirmFunc(),
showDownload: false,
sure: sureFunc
})
} else if (res.data == 2 || res.data == 3) {
uni.showModal({
title: '提示',
content:`存在学员没有照片,是否继续生成?`,
success: (rr) => {
if(rr.confirm){
sureFunc()
}
}
// 部分或全部学员没有照片:弹三按钮框,可下载名单
openCertPopup({
content: '存在学员没有照片,是否继续生成?',
showDownload: true,
sure: sureFunc,
download: () => downloadNoPhotoList(payIds)
})
}
})
}
function send(row) {
checkCert(row.payId, () => {
api.submitCert2([{
id: row.payId
}]).then(res => {
/** 打开自定义确认弹层 */
function openCertPopup(opt) {
popupContent.value = opt.content
showDownload.value = !!opt.showDownload
popupSure = opt.sure || (() => {})
popupDownload = opt.download || (() => {})
certPopup.value.open()
}
function onPopupCancel() {
certPopup.value.close()
}
function onPopupSure() {
certPopup.value.close()
popupSure()
}
function onPopupDownload() {
popupDownload()
}
/** 下载没有照片的学员名单(Excel) */
function downloadNoPhotoList(payIds) {
uni.showLoading({
title: '下载中'
})
uni.downloadFile({
url: config.baseUrl_api + '/person/info/checkPersonByPayIdsAndExport/' + payIds,
header: {
'Authorization': uni.getStorageSync('token')
},
success: function(res) {
uni.hideLoading()
uni.showLoading({
title: '正在打开'
})
uni.openDocument({
filePath: res.tempFilePath,
fileType: 'xlsx',
showMenu: true,
success: function() {
uni.hideLoading()
},
fail: function() {
uni.hideLoading()
uni.showToast({
title: `下发成功`
title: '打开失败',
icon: 'none',
duration: 2000
})
getList()
}
})
},()=>{
return uni.showModal({
title: '提示',
content:`确定下发 ${row.name} 的证书吗`
},
fail: function() {
uni.hideLoading()
uni.showToast({
title: '下载失败',
icon: 'none',
duration: 2000
})
}
})
}
</script>
......@@ -180,4 +266,74 @@
width: 80%;
word-break: break-all;
}
/* 下发证书确认弹层 */
.cert-dialog {
width: 560rpx;
background: #fff;
border-radius: 24rpx;
padding: 40rpx 32rpx 28rpx;
display: flex;
flex-direction: column;
align-items: center;
&__head {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16rpx;
}
&__title {
font-size: 32rpx;
font-weight: 600;
color: #303133;
margin-left: 10rpx;
}
&__content {
font-size: 28rpx;
color: #606266;
line-height: 1.6;
text-align: center;
margin-bottom: 36rpx;
}
&__btns {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}
&__btn {
flex: 1;
margin: 0 8rpx;
height: 76rpx;
line-height: 76rpx;
text-align: center;
font-size: 28rpx;
border-radius: 38rpx;
&--cancel {
background: #f4f4f5;
color: #909399;
}
&--download {
background: #fff;
color: #13B5B1;
border: 1rpx solid #13B5B1;
}
&--sure {
background: #AD181F;
color: #fff;
}
&:active {
opacity: 0.85;
}
}
}
</style>
\ No newline at end of file
......
......@@ -29,9 +29,9 @@
</view>
</view>
<!-- v-if="item.isCert != '2'" -->
<view class="func">
<!-- <view class="func">
<button @click="send(item)">更新证书</button>
</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!