00b0ce95 by 张猛

证书发布

1 parent 9b888601
......@@ -965,6 +965,14 @@ export function submitCert2(data) {
})
}
export function issueAndUpdateCerts(data) {
return request({
url: `/exam/payment/submitCerts/issueAndUpdateCerts`,
method: 'put',
params: data
})
}
export function getCertsLList(query) {
return request({
url: '/exam/payment/certsList',
......@@ -1962,7 +1970,7 @@ export function GroupGetLogs(id) {
// 新个人会员审批
export function auditList(params) {
export function memBerAuditList(params) {
return request({
url: '/person/paymentRangeNew/list',
method: 'get',
......
......@@ -6,7 +6,7 @@
<view class="appList">
<view v-show="statistical.totalCost>0" class="vipData">
<view>费用合计:
<text>¥{{ statistical.totalCost.toFixed(2) }}</text>
<text>¥{{ statistical.totalCost?.toFixed(2) }}</text>
</view>
</view>
......@@ -37,7 +37,7 @@
</view>
<view>
费用合计
<view> {{ (item.allPrice * 1).toFixed(2) }}</view>
<view> {{ (item.allPrice * 1)?.toFixed(2) }}</view>
</view>
<view>
政策优惠
......
<template>
<view>
<!-- 级位证书发布 -->
<z-paging ref="paging" v-model="infoList" @query="getQuery" emptyViewImg="/static/nodata.png">
<z-paging ref="paging" v-model="infoList" emptyViewImg="/static/nodata.png" @query="getQuery">
<view class="appList">
<view class="appItem" v-for="(item,index) in infoList" :key="index">
<view v-for="(item,index) in infoList" :key="index" class="appItem">
<view class="status" @click="goDetail(item)">
<text :class="{
'text-warning-bg':item.certStatus=='0',
'text-primary-bg':item.certStatus=='1',
'text-success-bg':item.certStatus=='2'
}">{{ item.certStatusStr }}</text>
}">
{{ item.certStatusStr }}
</text>
</view>
<view class="date">
<uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons>
{{item.submitTimeStr}} 提交
<uni-icons color="#AD181F" size="16" type="calendar-filled"></uni-icons>
{{ item.submitTimeStr }} 提交
</view>
<view v-if="item.payCode" class="text-primary" @click="goDetail(item)">{{ item.payCode }}</view>
<view class="name mt10 w100" @click="goDetail(item)">
<text class="dot"></text>
{{ item.name }}
</view>
<view class="text-primary" v-if="item.payCode" @click="goDetail(item)">{{item.payCode}}</view>
<view class="name mt10 w100" @click="goDetail(item)"><text class="dot"></text>{{item.name}}</view>
<view class="flexbox" @click="goDetail(item)">
<view>
申请单位
<view>{{item.memberName||'--'}}</view>
<view>{{ item.memberName || '--' }}</view>
</view>
<view>
已发/待发
<view>{{item.hasCerts}}/<text class="text-primary">{{item.noCerts}}</text></view>
<view>{{ item.hasCerts }}/
<text class="text-primary">{{ item.noCerts }}</text>
</view>
</view>
</view>
<view class="pp esp" v-if="item.certTimeStr">证书发送时间:{{item.certTimeStr}}</view>
<view v-if="item.certTimeStr" class="pp esp">证书发送时间:{{ item.certTimeStr }}</view>
<!-- v-if="item.certStatus != '2'" -->
<view class="func">
......@@ -48,32 +54,34 @@
</template>
<script setup>
import * as api from '@/common/api.js'
import config from '@/config.js'
import _ from 'underscore'
import {
import * as api from '@/common/api.js'
import config from '@/config.js'
import _ from 'underscore'
import {
onMounted,
ref
} from 'vue'
import {
} from 'vue'
import {
onLoad,
onShow
} from '@dcloudio/uni-app'
const app = getApp();
const queryParams = ref({
} from '@dcloudio/uni-app'
import {issueAndUpdateCerts} from "@/common/api.js";
const app = getApp();
const queryParams = ref({
pageNum: 1,
pageSize: 10,
status: '0',
// certFlag: '0',
type: '1'
})
const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
const current = ref()
const infoList = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
const paging = ref(null)
onLoad((option) => {
})
const statusArr = ['审批中', '审批通过', '审批拒绝', '审批撤回']
const current = ref()
const infoList = ref([])
const total = ref(0)
const deptType = ref('')
const userType = ref('')
const paging = ref(null)
onLoad((option) => {
queryParams.value.type = option.type
if (option.type == 2) {
uni.setNavigationBarTitle({
......@@ -85,8 +93,8 @@
title: '越段考试详情'
})
}
})
onShow(() => {
})
onShow(() => {
if (app.globalData.isLogin) {
init()
} else {
......@@ -95,24 +103,24 @@
init()
};
}
})
})
function init() {
function init() {
deptType.value = app.globalData.deptType
userType.value = app.globalData.userType
getList()
}
}
function getQuery(pageNum, pageSize) {
queryParams.value.pageNum = pageNum,
function getQuery(pageNum, pageSize) {
queryParams.value.pageNum = pageNum
queryParams.value.pageSize = pageSize
api.getCertsLList(queryParams.value).then(res => {
paging.value.complete(res.rows);
total.value = res.total
})
}
}
function getList() {
function getList() {
uni.showLoading({
title: '加载中'
})
......@@ -120,65 +128,59 @@
infoList.value = res.rows
uni.hideLoading()
})
}
}
function goDetail(item) {
function goDetail(item) {
// const form = encodeURIComponent(JSON.stringify(item))
let path = `/level/ztx/examList?type=${queryParams.value.type}&payId=${item.payId}`
uni.navigateTo({
url: path
});
}
}
function checkCert(payIds, sureFunc, confirmFunc) {
return api.checkPersonByPayIds(payIds).then(res => {
async function send(row) {
const res = await api.checkPersonByPayIds(row.payId)
if (res.data == 1) {
confirmFunc().then((kk)=>{
if(kk.confirm){
sureFunc()
}
})
} else if (res.data == 2 || res.data == 3) {
uni.showModal({
title: '提示',
content:`存在学员没有照片,是否继续生成?`,
success: (rr) => {
if(rr.confirm){
sureFunc()
content: `确定下发 ${row.name} 的证书吗`,
success: (res) => {
if (res.confirm) {
handelUpdate(row.payId)
}
}
})
}
if (res.data == 2 || res.data == 3) {
uni.showModal({
title: '提示',
content: `存在学员没有照片,是否继续生成?`,
success: (res) => {
if (res.confirm) {
handelUpdate(row.payId)
}
}
})
}
function send(row) {
checkCert(row.payId, () => {
api.submitCert2([{
id: row.payId
}]).then(res => {
uni.showToast({
title: `下发成功`
})
async function handelUpdate(payId) {
await api.issueAndUpdateCerts([{id: payId}])
getList()
})
},()=>{
return uni.showModal({
title: '提示',
content:`确定下发 ${row.name} 的证书吗`
})
})
uni.showToast({title: `下发成功`})
}
}
</script>
<style scoped lang="scss">
.mt0 {
<style lang="scss" scoped>
.mt0 {
margin-top: 0 !important;
}
}
.appList .appItem .name {
.appList .appItem .name {
width: 80%;
word-break: break-all;
}
}
</style>
......
......@@ -138,7 +138,7 @@ async function getList() {
if (deptType.value == 2 || deptType.value == 3) {
queryParams.value.mergeFlag = 0
}
const res = await api.auditList(queryParams.value)
const res = await api.memBerAuditList(queryParams.value)
list.value = res.rows
total.value = res.total
statistical.value = {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!