问题修改

This commit is contained in:
zzyuan 2025-12-23 14:58:22 +08:00
parent c2502e5e68
commit 3a5ce3ed10
12 changed files with 160 additions and 72 deletions

View File

@ -100,3 +100,15 @@ export function certificateVerifyTaskDetailListApi(data) {
params:data
})
}
/**
* @data 获取出入境时间
*/
export function getExitEntryApi(data) {
return request({
url: '/certificate/certificate_manage/certificateInfo/getExitEntry ',
method: 'post',
data
})
}

View File

@ -32,11 +32,11 @@
</view>
<view class="apply-item" v-if="apply.applyType==2">
<view style="margin-bottom: 10px;">计划出国日期<span style="color: red;">*</span></view>
<view><uni-datetime-picker type="date" :clear-icon="false" format="YYYY-MM-DD" v-model="apply.exitTime"/></view>
<view><uni-datetime-picker type="date" v-model="apply.exitTime" :end="endDate" @change="handleStartDateChange" :clear-icon="false" format="YYYY-MM-DD" /></view>
</view>
<view class="apply-item" v-if="apply.applyType==2">
<view style="margin-bottom: 10px;">计划回国日期<span style="color: red;">*</span></view>
<view><uni-datetime-picker type="date" :clear-icon="false" format="YYYY-MM-DD" v-model="apply.entryTime"/></view>
<view><uni-datetime-picker type="date" v-model="apply.entryTime" :start="startDate" @change="handleEndDateChange":clear-icon="false" format="YYYY-MM-DD" /></view>
</view>
<view class="apply-item" v-if="apply.applyType==2">
<view style="margin-bottom: 10px;">允许他人代办<span style="color: red;">*</span> </view>
@ -133,6 +133,8 @@ export default {
remark:"",
certificateNos:[],
},
startDate: '', //
endDate: '', //
fileList: [],
deviceList: [],
}
@ -339,6 +341,7 @@ export default {
Object.assign(item, {
status: "success",
message: "",
name:'附件'+(i+1),
url: result.url,
})
);
@ -374,6 +377,15 @@ export default {
deletePic(event) {
this.fileList.splice(event.index, 1);
},
handleStartDateChange(value) {
this.startDate = value;
//
// this.updateEndDateRange();
},
handleEndDateChange(value) {
this.endDate = value;
//
},
}
}
</script>

View File

@ -173,9 +173,10 @@
<view style="width: 100%;background: #fff;padding: 20rpx;">
<view style="font-weight: 600;">流程</view>
<u-steps :current="checkProcess.length-1" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+'-'+item.processName">
<u-steps :current="currentIndex" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+' '+item.processName">
<view slot="desc">
<text v-if="item.checkState==0" style="color: #000;">未处理</text>
<text v-if="item.checkState==1" style="color: rgb(31, 114, 234);">同意</text>
<text v-if="item.checkState==2" style="color: rgb(230, 0, 68);">拒绝</text>
<text style="margin-left: 20rpx;font-size: 24rpx;">{{item.createTime}}</text>
@ -224,6 +225,7 @@ export default {
certificateNos:[],
},
checkProcess:[],
currentIndex:0,
showPic:false,
imagerUrl:"",
certificateList:[]
@ -244,7 +246,13 @@ export default {
const res = await checkProcessCertificateApplyApi(param);
console.log("getCheckProcess",res)
if(res.code==200){
this.checkProcess = res.data
this.checkProcess = res.data||[];
let index = res.data.findIndex(v=>v.checkState==0)
if(index==-1){
this.currentIndex = 3
}else{
this.currentIndex = index
}
}else{
this.checkProcess = []
}

View File

@ -9,7 +9,7 @@
<view class="apply-item" style="height: auto;">
<view style="margin-bottom: 10px;">证件编号<span style="color: red;">*</span> </view>
<view>
<zxz-uni-data-select v-model="apply.certificateNos" multiple="true" :localdata="certificateList"></zxz-uni-data-select>
<zxz-uni-data-select v-model="apply.certificateNos" :multiple="true" :localdata="certificateList"></zxz-uni-data-select>
<!-- <uni-data-select v-model="apply.certificateNos" multiple :localdata="certificateList"></uni-data-select> -->
</view>
</view>
@ -154,9 +154,8 @@ export default {
this.$set(this.apply,"isThrid",Number(this.apply.isThrid))
if(this.apply.fileUrl!=""){
let arr = this.apply.fileUrl.split(',')
let arr2 = this.apply.fileName.split(',')
arr.forEach((item,index)=>{
this.fileList.push({url:item,name:arr2[index]})
this.fileList.push({url:item,name:"附件"+(index+1)})
})
}
@ -352,6 +351,7 @@ export default {
Object.assign(item, {
status: "success",
message: "",
name:'图片'+(i+1),
url: result.url,
})
);

View File

@ -173,9 +173,10 @@
<view style="width: 100%;background: #fff;padding: 20rpx;">
<view style="font-weight: 600;">流程</view>
<u-steps :current="checkProcess.length-1" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+'-'+item.processName">
<u-steps :current="currentIndex" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+' '+item.processName">
<view slot="desc">
<text v-if="item.checkState==0" style="color: #000;">未处理</text>
<text v-if="item.checkState==1" style="color: rgb(31, 114, 234);">同意</text>
<text v-if="item.checkState==2" style="color: rgb(230, 0, 68);">拒绝</text>
<text style="margin-left: 20rpx;font-size: 24rpx;">{{item.createTime}}</text>
@ -227,6 +228,7 @@ export default {
certificateNos:[],
},
checkProcess:[],
currentIndex:0,
showPic:false,
imagerUrl:"",
certificateList:[]
@ -247,7 +249,13 @@ export default {
const res = await checkProcessCertificateApplyApi(param);
console.log("getCheckProcess",res)
if(res.code==200){
this.checkProcess = res.data
this.checkProcess = res.data||[];
let index = res.data.findIndex(v=>v.checkState==0)
if(index==-1){
this.currentIndex = 3
}else{
this.currentIndex = index
}
}else{
this.checkProcess = []
}

View File

@ -173,9 +173,10 @@
<view style="width: 100%;background: #fff;padding: 20rpx;">
<view style="font-weight: 600;">流程</view>
<u-steps :current="checkProcess.length-1" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+'-'+item.processName">
<u-steps :current="currentIndex" direction="column" style="margin: 20rpx;">
<u-steps-item v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+' '+item.processName">
<view slot="desc">
<text v-if="item.checkState==0" style="color: #000;">未处理</text>
<text v-if="item.checkState==1" style="color: rgb(31, 114, 234);">同意</text>
<text v-if="item.checkState==2" style="color: rgb(230, 0, 68);">拒绝</text>
<text style="margin-left: 20rpx;font-size: 24rpx;">{{item.createTime}}</text>
@ -227,6 +228,7 @@ export default {
certificateNos:[],
},
checkProcess:[],
currentIndex:0,
showPic:false,
imagerUrl:"",
certificateList:[]
@ -247,7 +249,13 @@ export default {
const res = await checkProcessCertificateApplyApi(param);
console.log("getCheckProcess",res)
if(res.code==200){
this.checkProcess = res.data
this.checkProcess = res.data||[];
let index = res.data.findIndex(v=>v.checkState==0)
if(index==-1){
this.currentIndex = 3
}else{
this.currentIndex = index
}
}else{
this.checkProcess = []
}

View File

@ -154,29 +154,29 @@
<image v-if="item.verifyState==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon2.png"></image>
<image v-if="item.verifyResult==1" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon3.png"></image>
<image v-if="item.verifyResult==2" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
<image v-if="item.verifyResult==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
</view>
</scroll-view>
<!-- 出入境 -->
<scroll-view @scrolltolower="onScrollTolower" scroll-y="true" v-if="tagIndex==4" style="width: 100%;height: 56vh;background: #F5F5F5;" >
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyIn.png"></image>
<view style="color: #00CC44;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">入境</view>
</view>
<view style="width: 70%;">
<view class="info-text">入境时间暂无</view>
<view class="info-text">入境口岸暂无</view>
</view>
</view>
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyOut.png"></image>
<view style="color: #E60044;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">出境</view>
</view>
<view style="width: 70%;">
<view class="info-text">出境时间暂无</view>
<view class="info-text">出境口岸暂无</view>
<view class="info-text">出境时间{{tabData4.exitTime || "暂无"}}</view>
<!-- <view class="info-text">出境口岸暂无</view> -->
</view>
</view>
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyIn.png"></image>
<view style="color: #00CC44;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">入境</view>
</view>
<view style="width: 70%;">
<view class="info-text">入境时间{{tabData4.entryTime || "暂无"}}</view>
<!-- <view class="info-text">入境口岸暂无</view> -->
</view>
</view>
</scroll-view>
@ -186,6 +186,7 @@
<script>
import { certificateTaskListApi,certificateApplyListApi,certificateVerifyDetailListApi } from '@/api/certificateReturnManage/index.js';
import { getExitEntryApi } from '@/api/certificateManage/index.js';
export default {
data() {
return {
@ -210,6 +211,7 @@ export default {
pageSize3: 10,
total3: 0,
tabList3: [],
tabData4: {},
}
},
onLoad(options) {
@ -223,6 +225,7 @@ export default {
this.getList1()
this.getList2()
this.getList3()
this.getList4()
},
methods: {
//
@ -312,6 +315,24 @@ export default {
console.log(error)
}
},
//
async getList4() {
const params = {
certificateNo:this.certificate.certificateNo
}
try {
const res = await getExitEntryApi(params)
console.log('?? ~ getList3 ~ res:', res)
// this.total3 = res.total;
// if(this.pageNum3==1){
this.tabData4 = res.data[0]
// }else{
// this.tabList3.push(...res.rows)
// }
} catch (error) {
console.log(error)
}
},
handleEdit(certificate) {

View File

@ -7,20 +7,20 @@
<view class="tag-view-item" @click="changeTag(2)" :class="tagIndex==2?'active tag-view-item':'tag-view-item'">证件核验</view>
</view>
<view style="width: 100%;height: auto;background: #FFF;padding: 10rpx 20rpx;">
<u-search shape="round" placeholder="搜索" v-model="keyWord" :showAction="true" actionText="搜索" :animation="false" @custom="searchList"></u-search>
<u-search shape="round" placeholder="请输入关键字" v-model="keyWord" :showAction="true" actionText="搜索" :animation="false" @custom="searchList"></u-search>
</view>
<view style="width: 100%;height: auto;background: #FFF;padding: 10rpx 20rpx;margin-bottom: 20rpx;">
<view style="width: 50%;height: auto;display: flex;" v-if="tagIndex==1">
<uni-data-select style="width: 50%;margin-right: 20rpx;" v-model="state" :localdata="range1"
mode="none" placeholder="证件状态" :clear="false" @change="changeSelect1"></uni-data-select>
mode="none" placeholder="证件状态" :clear="true" @change="changeSelect1"></uni-data-select>
<uni-data-select style="width: 50%;" v-model="dateState" :localdata="range2"
mode="none" placeholder="预警状态" :clear="false" @change="changeSelect2"></uni-data-select>
mode="none" placeholder="预警状态" :clear="true" @change="changeSelect2"></uni-data-select>
</view>
<view style="width: 65%;height: auto;display: flex;" v-if="tagIndex==2">
<uni-data-select style="width: 70%;margin-right: 20rpx;" v-model="verifyType" :localdata="range3"
mode="none" placeholder="任务类型" :clear="false" @change="changeSelect3"></uni-data-select>
mode="none" placeholder="任务类型" :clear="true" @change="changeSelect3"></uni-data-select>
<uni-data-select style="width: 30%;" v-model="verifyState" :localdata="range4"
mode="none" placeholder="任务状态" :clear="false" @change="changeSelect4"></uni-data-select>
mode="none" placeholder="任务状态" :clear="true" @change="changeSelect4"></uni-data-select>
</view>
</view>
<scroll-view v-if="tagIndex==1" style="width: 100%;height: 72vh;background: #FFF;" @scrolltolower="onScrollTolower1" scroll-y="true">

View File

@ -154,29 +154,29 @@
<image v-if="item.verifyState==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon2.png"></image>
<image v-if="item.verifyResult==1" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon3.png"></image>
<image v-if="item.verifyResult==2" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
<image v-if="item.verifyResult==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
</view>
</scroll-view>
<!-- 出入境 -->
<scroll-view @scrolltolower="onScrollTolower" scroll-y="true" v-if="tagIndex==4" style="width: 100%;height: 56vh;background: #F5F5F5;" >
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyIn.png"></image>
<view style="color: #00CC44;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">入境</view>
</view>
<view style="width: 70%;">
<view class="info-text">入境时间暂无</view>
<view class="info-text">入境口岸暂无</view>
</view>
</view>
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyOut.png"></image>
<view style="color: #E60044;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">出境</view>
</view>
<view style="width: 70%;">
<view class="info-text">出境时间暂无</view>
<view class="info-text">出境口岸暂无</view>
<view class="info-text">出境时间{{tabData4.exitTime || "暂无"}}</view>
<!-- <view class="info-text">出境口岸暂无</view> -->
</view>
</view>
<view class="scroll-item" style="display: flex;align-items: center;">
<view style="width: 30%;height: 6vh;display: flex;align-items: center;">
<image style="width: 60rpx;height: 60rpx;" src="/static/images/system/flyIn.png"></image>
<view style="color: #00CC44;font-size: 32rpx;font-weight: 600;margin-left: 20rpx;">入境</view>
</view>
<view style="width: 70%;">
<view class="info-text">入境时间{{tabData4.entryTime || "暂无"}}</view>
<!-- <view class="info-text">入境口岸暂无</view> -->
</view>
</view>
</scroll-view>
@ -186,6 +186,7 @@
<script>
import { certificateTaskListApi,certificateApplyListApi,certificateVerifyDetailListApi } from '@/api/certificateReturnManage/index.js';
import { getExitEntryApi } from '@/api/certificateManage/index.js';
export default {
data() {
return {
@ -210,6 +211,7 @@ export default {
pageSize3: 10,
total3: 0,
tabList3: [],
tabData4: {},
}
},
onLoad(options) {
@ -223,6 +225,7 @@ export default {
this.getList1()
this.getList2()
this.getList3()
this.getList4()
},
methods: {
//
@ -312,7 +315,24 @@ export default {
console.log(error)
}
},
//
async getList4() {
const params = {
certificateNo:this.certificate.certificateNo
}
try {
const res = await getExitEntryApi(params)
console.log('?? ~ getList3 ~ res:', res)
// this.total3 = res.total;
// if(this.pageNum3==1){
this.tabData4 = res.data[0]
// }else{
// this.tabList3.push(...res.rows)
// }
} catch (error) {
console.log(error)
}
},
handleEdit(certificate) {
uni.navigateTo({

View File

@ -18,14 +18,14 @@
height="120" style="font-size: 24rpx;background: transparent;"
></u--textarea>
</view>
<view style="font-size: 14px;margin-bottom: 10px;margin-top: 20rpx;color: #64686E;">上传照片最多6</view>
<view style="font-size: 14px;margin-bottom: 10px;margin-top: 20rpx;color: #64686E;">上传照片最多5</view>
<!-- 图片上传 -->
<view class="upload-box">
<u-upload
:fileList="fileList"
@afterRead="afterRead"
@delete="deletePic"
:maxCount="6"
:maxCount="5"
multiple
>
<view class="upload-btn">

View File

@ -3,9 +3,9 @@
<view class="top-view">
<!-- 用户信息区域 -->
<view class="user-info">
<view class="avatar-wrapper">
<!-- <view class="avatar-wrapper">
<image class="avatar" :src="headPortraitUrl" mode="aspectFill"></image>
</view>
</view> -->
<view class="user-detail">
<view class="username">{{userName}}</view>
<view class="phone">{{phonenumber}}</view>
@ -46,7 +46,7 @@
<view class="grid-item" @click="navigateTo('/pages/mine/aboutMe/index')">
<view class="icon-wrapper">
<image style="width: 40rpx;height: 40rpx;" src="/static/images/my/Attention.png"></image>
<text class="icon-text">关于证途通</text>
<text class="icon-text">关于证件管理</text>
</view>
<view style="padding-right: 40rpx;">
<image style="width: 40rpx;height: 40rpx;" src="/static/images/my/arrow.png"></image>

View File

@ -24,9 +24,8 @@
<view class="info-text">发起时间{{item.startTime}}</view>
<image v-if="item.verifyState==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon1.png"></image>
<image v-if="item.verifyResult==1" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon3.png"></image>
<image v-if="item.verifyResult==2" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
<view style="width: 100%;padding: 14rpx;border-top: 1px solid rgba(209,211,215,0.5);display: flex;justify-content: flex-end;">
<image v-if="item.verifyResult==0" style="width: 120rpx;height: 120rpx;position: absolute;top:30%;right: 5%;" src="/static/images/system/statusIcon4.png"></image>
<view v-if="item.verifyState==0" style="width: 100%;padding: 14rpx;border-top: 1px solid rgba(209,211,215,0.5);display: flex;justify-content: flex-end;">
<view class="button-view" @click="handleDetail(item)">核验</view>
</view>
</view>
@ -112,26 +111,25 @@ export default {
// })
},
gotoWX(){
// #ifdef APP-PLUS
plus.share.getServices(function(res){
var sweixin = null;
for(var i=0;i<res.length;i++){
var t = res[i];
if(t.id == 'weixin'){
sweixin = t;
}
// #ifdef APP-PLUS
plus.share.getServices((res) => {
const weixin = res.find(service => service.id === 'weixin');
if (weixin) {
weixin.launchMiniProgram({
id: 'gh_be6f72c67de1', // ID
// path: 'pages/index/index?id=123', //
type: 0, // 0-1-2-
success: () => console.log('跳转成功'),
fail: (err) => console.error('跳转失败', err)
});
} else {
uni.showToast({ title: '请安装微信', icon: 'none' });
}
console.log("sweixin", sweixin)
if (sweixin) {
sweixin.launchMiniProgram({
id:"gh_be6f72c67de1"
});
}
}, function(e){
console.log("获取分享服务列表失败:"+JSON.stringify(e));
}, (err) => {
console.error('获取分享服务失败', err);
});
// #endif }
// #endif
}
}
}
</script>
@ -148,6 +146,7 @@ export default {
margin:20rpx 0;
background: #fff;
position: relative;
padding: 10rpx 0;
}
.info-text{
font-size: 28rpx;