bonus-Certificate-app/pages/verification/exitVerification/index.vue

318 lines
9.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<page-meta :page-font-size="fontValue+'px'" :root-font-size="fontValue+'px'"></page-meta>
<view class="certificate-list">
<Navbar title="出入境校验" :showRightText="false" :isBack="true"/>
<view style="width: 94%;height: 80rpx;margin: 10rpx auto;">
<u-search shape="square" placeholder="搜索" v-model="keyword" :showAction="true" actionText="搜索" :animation="false" @custom="searchList"></u-search>
</view>
<view style="width:92%;height: 80rpx;display: flex;align-items: center;">
<view @click="checkedAll" class="button-view" style="background: #00337A;margin-right: 10px;">全选</view>
<view @click="handleSelfSave" class="button-view" style="background: #3989FF;margin-right: 10px;">下发证件真伪核验任务</view>
</view>
<scroll-view style="width: 100%;height: 82vh;" @scrolltolower="onScrollTolower" scroll-y="true">
<view class="info-item" v-for="(item, index) in infoList" :key="index">
<view style="width: 100%;height: 100%;padding-top: 10rpx;font-size: 24rpx;">
<view class="label-box">
<view style="width: 10%;" @click="checkSelect(item)">
<u-checkbox-group v-model="item.checked">
<u-checkbox :customStyle="{margin: '0rpx 10rpx'}" :label="''" :name="item.certificateNo"></u-checkbox>
</u-checkbox-group>
</view>
<view class="label-view" style="width: 90%;">
<view class="label">任务编号</view>
<view class="text">{{item.taskNo}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">姓名</view>
<view class="text">{{item.name}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">身份证号</view>
<view class="text">{{item.idNumber}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">出生日期</view>
<view class="text">{{item.birthday}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">出生地点</view>
<view class="text">{{item.birthAddr}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">证件类型</view>
<view class="text">{{item.certificateTypeName}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">证件编号</view>
<view class="text">{{item.certificateNo}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">签发地</view>
<view class="text">{{item.issueAddr}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">签发日期</view>
<view class="text">{{item.issueDay}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">有效期至</view>
<view class="text">{{item.issueLifespan}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">是否电子标签</view>
<view class="text">{{item.isEleName}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">设备编号</view>
<view class="text">{{item.deviceNo}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">槽位编号</view>
<view class="text">{{item.soltNo}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">验证码</view>
<view class="text">{{item.verificationCode}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">截止时间</view>
<view class="text">{{item.processDate}}</view>
</view>
</view>
<view class="label-box" @click="checkSelect(item)">
<view class="label-view" style="width: 50%;">
<view class="label">创建时间</view>
<view class="text">{{item.createTime}}</view>
</view>
<view class="label-view" style="width: 50%;">
<view class="label">处理结果</view>
<view class="text">{{item.processStateName}}</view>
</view>
</view>
</view>
</view>
<view style="margin: 20px 0" v-if="infoList.length > 0">
<u-loadmore :status="status" nomoreText="没有更多数据了" />
</view>
<view v-else class="flex justify-center align-center" style="height: 50vh">
<u-empty icon="../../static/images/not_order.png" text="暂无数据" textColor="#000" />
</view>
</scroll-view>
</view>
</template>
<script>
import { certificateSaveListApi,addCertificateSaveApi } from '@/api/certificateReturnManage/index.js';
export default {
data() {
return {
fontValue:uni.getStorageSync('fontSize') || 8,
keyword:"",
pageNum: 1,
pageSize: 10,
total: 0,
infoList: [],
status: 'loadmore',
isCheckAll:false,
chosenList:[]
}
},
onLoad() {
},
onShow(){
this.getList()
},
methods: {
//搜索
searchList(value){
this.pageNum=1
this.infoList=[]
this.getList()
},
// 翻页
onScrollTolower(){
console.log(this.infoList.length)
if(this.total>this.infoList.length){
this.pageNum++
this.getList()
}
},
//获取列表
async getList() {
console.log('获取列表')
const params = {
pageNum: this.pageNum,
pageSize: this.pageSize,
keyword: this.keyword
}
try {
const res = await certificateSaveListApi(params)
console.log('?? ~ getList ~ res:', res)
this.total = res.total;
res.rows.forEach(item=>{
item.checked=[];
})
if(this.pageNum==1){
this.infoList = res.rows
}else{
this.infoList.push(...res.rows)
}
this.status = this.total == this.infoList.length ? 'nomore' : 'loadmore'
} catch (error) {
console.log(error)
}
},
// 单选
checkSelect(chosen){
this.infoList.forEach(item=>{
if(item.certificateNo==chosen.certificateNo){
if(item.checked.length==0){
item.checked=[item.certificateNo]
}else{
item.checked=[]
}
}
})
},
// 全选
checkedAll(){
this.isCheckAll=!this.isCheckAll
if(this.isCheckAll){
this.infoList.forEach(item=>{
item.checked=[item.certificateNo]
})
}else{
this.infoList.forEach(item=>{
item.checked=[]
})
}
},
/** 自主存证 */
handleSelfSave(){
this.chosenList=[]
this.infoList.forEach(item=>{
if(item.checked.length>0){
this.chosenList.push(item.certificateNo)
}
})
console.log(this.chosenList)
if(this.chosenList.length>0){
uni.showModal({
title: `确认自主存证?`,
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.batchSelfSave();
}
}
});
}else{
uni.$u.toast(`未勾选任务!`)
}
},
async batchSelfSave() {
console.log(this.chosenList)
const params = {"certificateNos":this.chosenList,"type":"1"}
try {
const res = await addCertificateSaveApi(params)
this.getList()
console.log('?? ~ getList ~ res:', res)
} catch (error) {
console.log(error)
}
},
/** 管理员存证 */
handleAdminBack(){
this.chosenList=[]
this.infoList.forEach(item=>{
if(item.checked.length>0){
this.chosenList.push(item.certificateNo)
}
})
console.log(this.chosenList)
if(this.chosenList.length>0){
uni.showModal({
title: `确认管理员存证?`,
cancelText: '取消',
confirmText: '确定',
success: res => {
if (res.confirm) {
this.batchAdminSave();
}
}
});
}else{
uni.$u.toast(`未勾选任务!`)
}
},
async batchAdminSave() {
console.log(this.chosenList)
const params = {"certificateNos":this.chosenList,"type":"2"}
try {
const res = await addCertificateSaveApi(params)
this.getList()
console.log('?? ~ getList ~ res:', res)
} catch (error) {
console.log(error)
}
},
}
}
</script>
<style lang="scss" scoped>
.certificate-list {
height: 100vh;
background-color: #f8f8f8;
padding: 30rpx;
}
.info-item{
width: 100%;
height: auto;
display: flex;
align-items: center;
margin: 10rpx auto;
border-bottom: 1px solid #ccc;
}
.label-box{
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2px;
}
.label-view{
width: 100%;
display: flex;
align-items: center;
}
.label{
font-weight: 600;
}
.text{
}
.button-view{
width:20%;height:50rpx;line-height: 50rpx;text-align: center;
color: #FFF;border-radius: 10rpx;font-size: 22rpx;
}
</style>