This commit is contained in:
jiask 2025-10-16 14:39:10 +08:00
parent dcb6c1b8db
commit de6667b07d
11 changed files with 194 additions and 101 deletions

Binary file not shown.

View File

@ -131,3 +131,14 @@ export function getCertificateTakeAddPageApi(data) {
data: data data: data
}) })
} }
export function getReplacelistApi(data) {
return request({
url: '/certificate/certificate_returnmanage/certificateAtake/replacelist',
method: 'get',
headers: {
//"merchant-id":"378915229716713472",
},
params:data
})
}

View File

@ -93,6 +93,7 @@
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800"> <el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120" fixed="left"/> <el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120" fixed="left"/>
<el-table-column label="部门" align="center" prop="deptFullName" :show-overflow-tooltip="true" width="250" fixed="left"/>
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180" fixed="left"/> <el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180" fixed="left"/>
<el-table-column label="出生日期" align="center" prop="birthday" :show-overflow-tooltip="true"/> <el-table-column label="出生日期" align="center" prop="birthday" :show-overflow-tooltip="true"/>
<el-table-column label="出生地点" align="center" prop="birthAddr" :show-overflow-tooltip="true"/> <el-table-column label="出生地点" align="center" prop="birthAddr" :show-overflow-tooltip="true"/>
@ -106,12 +107,12 @@
<el-table-column label="当前状态" align="center" prop="stateName" :show-overflow-tooltip="true"/> <el-table-column label="当前状态" align="center" prop="stateName" :show-overflow-tooltip="true"/>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="scope.row.state==0||scope.row.state==4"
size="mini" size="mini"
type="text" type="text"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
>编辑</el-button> >编辑</el-button>
<el-button <el-button v-if="scope.row.state==0||scope.row.state==4"
size="mini" size="mini"
type="text" type="text"
style="color: red;" style="color: red;"
@ -158,6 +159,11 @@
<el-input v-model="baseForm.idNumber" placeholder="请输入" maxlength="30" clearable/> <el-input v-model="baseForm.idNumber" placeholder="请输入" maxlength="30" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="手机号码" prop="phone">
<el-input v-model="baseForm.phone" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="出生日期" prop="birthday"> <el-form-item label="出生日期" prop="birthday">
<el-date-picker <el-date-picker
@ -226,6 +232,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item label-width="120px" label="是否创建账号" prop="isCreate">
<el-radio-group v-model="baseForm.isCreate" size="small">
<el-radio @change="handleRadioChange('1')" label="1"></el-radio>
<el-radio @change="handleRadioChange('0')" label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="userNameFlage" label="用户名" prop="userName">
<el-input v-model="baseForm.userName" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -234,6 +253,7 @@
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -249,6 +269,7 @@
import { getCertificateInfoListPageApi,addCertificateInfoApi, updateCertificateInfoApi, deleteCertificateInfoApi } from "@/api/certificateManage/index"; import { getCertificateInfoListPageApi,addCertificateInfoApi, updateCertificateInfoApi, deleteCertificateInfoApi } from "@/api/certificateManage/index";
import base64 from 'base-64'; import base64 from 'base-64';
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { downloadFileByUrl } from '@/utils/download'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default { export default {
@ -276,6 +297,7 @@
// //
open: false, open: false,
checked: false, checked: false,
userNameFlage:false,
certificateNos:[], certificateNos:[],
// //
deptOptions: [], deptOptions: [],
@ -302,6 +324,8 @@
issueAddr:"", issueAddr:"",
issueDay:"", issueDay:"",
issueLifespan:"0", issueLifespan:"0",
createTime:"",
phone:"",
isEle:"" isEle:""
}, },
// //
@ -324,6 +348,9 @@
issueDay: [ issueDay: [
{ required: true, message: "签发日期不能为空", trigger: "blur" } { required: true, message: "签发日期不能为空", trigger: "blur" }
], ],
phone: [
{ required: true, message: "手机号码不能为空", trigger: "blur" }
],
issueLifespan: [ issueLifespan: [
{ required: true, message: "有效期不能为空", trigger: "blur" } { required: true, message: "有效期不能为空", trigger: "blur" }
] ]
@ -342,23 +369,6 @@
// //
url: process.env.VUE_APP_BASE_API + '/certificate/certificate_manage/certificateInfo/import', url: process.env.VUE_APP_BASE_API + '/certificate/certificate_manage/certificateInfo/import',
}, },
appFormRules:{
version: [
{ required: true, message: "版本号不能为空", trigger: "blur" }
],
versionName: [
{ required: true, message: "版本号名称不能为空", trigger: "blur" }
],
apkName: [
{ required: true, message: "APP名称不能为空", trigger: "blur" }
],
apkPath: [
{ required: true, message: "APP路径不能为空", trigger: "blur" }
],
updateContent: [
{ required: true, message: "更新内容不能为空", trigger: "blur" }
]
},
}; };
}, },
mounted(){ mounted(){
@ -367,6 +377,68 @@
}, },
methods: { methods: {
handleRadioChange(val){
if(val==1){
this.userNameFlage=true;
this.baseFormRules= {
deptId: [
{ required: true, message: "部门不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idNumber: [
{ required: true, message: "身份证不能为空", trigger: "blur" }
],
certificateType: [
{ required: true, message: "证件类型不能为空", trigger: "blur" }
],
certificateNo: [
{ required: true, message: "证件编号不能为空", trigger: "blur" }
],
issueDay: [
{ required: true, message: "签发日期不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "手机号码不能为空", trigger: "blur" }
],
issueLifespan: [
{ required: true, message: "有效期不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "用户名不能为空", trigger: "blur" }
]
}
}else{
this.userNameFlage=false;
this.baseFormRules= {
deptId: [
{ required: true, message: "部门不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idNumber: [
{ required: true, message: "身份证不能为空", trigger: "blur" }
],
certificateType: [
{ required: true, message: "证件类型不能为空", trigger: "blur" }
],
certificateNo: [
{ required: true, message: "证件编号不能为空", trigger: "blur" }
],
issueDay: [
{ required: true, message: "签发日期不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "手机号码不能为空", trigger: "blur" }
],
issueLifespan: [
{ required: true, message: "有效期不能为空", trigger: "blur" }
]
}
}
},
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
@ -415,7 +487,7 @@
issueAddr:"", issueAddr:"",
issueDay:"", issueDay:"",
issueLifespan:"", issueLifespan:"",
isEle:"0" isEle:"0",isCreate:"0"
}; };
this.resetForm("baseForm"); this.resetForm("baseForm");
}, },
@ -463,7 +535,7 @@
console.log("this.baseForm",this.baseForm); console.log("this.baseForm",this.baseForm);
this.$refs["baseForm"].validate(valid => { this.$refs["baseForm"].validate(valid => {
if (valid) { if (valid) {
if (this.baseForm.certificateNo != undefined) { if (this.baseForm.createTime != undefined) {
updateCertificateInfoApi(this.baseForm).then(response => { updateCertificateInfoApi(this.baseForm).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
@ -487,14 +559,13 @@
} }
const certificateNos = certificateNoRow || this.certificateNos; const certificateNos = certificateNoRow || this.certificateNos;
console.log("certificateNos",certificateNos); console.log("certificateNos",certificateNos);
this.$modal.confirm('是否确认删除数据项?').then(function() { this.$modal.confirm('是否确认删除数据项?').then(() => {
deleteCertificateInfoApi({certificateNos:certificateNos}).then(response => { deleteCertificateInfoApi({certificateNos:certificateNos}).then(response => {
console.log("deleteCertificateInfoApi",response); console.log("deleteCertificateInfoApi",response);
this.getList();
this.$modal.msgSuccess("删除成功");
return;
}); });
return;
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => {});
}, },
formatDate(date) { formatDate(date) {
@ -558,9 +629,4 @@
width: 100%; width: 100%;
font-size: 14px !important; font-size: 14px !important;
} }
</style> </style>

View File

@ -42,7 +42,7 @@
icon="el-icon-download" icon="el-icon-download"
size="mini" size="mini"
@click="handleAdd(3)" @click="handleAdd(3)"
>取证</el-button> >取证</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -102,21 +102,35 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title+''" :visible.sync="open" width="700px" append-to-body> <el-dialog :title="title+''" :visible.sync="open" width="700px" append-to-body>
<el-tabs v-model="activeName" @tab-click="handleTabClick"> <el-tabs v-model="activeName">
<!-- 基础设置 --> <!-- 基础设置 -->
<el-tab-pane label="" name="baseSetting" style="height: 100px;"> <el-tab-pane label="" name="baseSetting" style="height: 100px;">
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px"> <el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-select
v-model="baseForm.name"
placeholder="请选择"
filterable
clearable
style="width: 240px"
@change="handleSelectChange"
>
<el-option
v-for="item in allreplace"
:key="item.idNumber"
:label="item.name"
:value="item.idNumber"
@click.native="getCorpAndDept(item)"
/>
</el-select>
</el-form-item>
<el-form-item label="身份证号" prop="idNumber"> <el-form-item label="身份证号" prop="idNumber">
<el-input v-model="baseForm.idNumber" placeholder="请输入" maxlength="30" clearable/> <el-input style="width: 240px;background-color:#DAE1EE;" v-model="baseForm.idNumber" readonly="true" maxlength="30" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
</el-row>
</el-form> </el-form>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -137,7 +151,8 @@
updateDept, updateDept,
listDeptExcludeChild, listDeptExcludeChild,
} from '@/api/system/dept' } from '@/api/system/dept'
import { getCertificateAtakeListPageApi,addCertificateInfoApi, updateCertificateInfoApi, deleteCertificateInfoApi,getCertificateTakeAddPageApi } from "@/api/certificateManage/index"; import { getCertificateAtakeListPageApi,addCertificateInfoApi, updateCertificateInfoApi,
deleteCertificateInfoApi,getCertificateTakeAddPageApi,getReplacelistApi } from "@/api/certificateManage/index";
import base64 from 'base-64'; import base64 from 'base-64';
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
@ -160,6 +175,7 @@
showSearch: true, showSearch: true,
// //
total: 0, total: 0,
allreplace:[],
// //
tableListData: [], tableListData: [],
// //
@ -167,6 +183,10 @@
// //
open: false, open: false,
checked: false, checked: false,
selectName:"",
selectIdNumber:"",
selectCertificateNos:"",
selectType:"",
// //
deptOptions: [], deptOptions: [],
// //
@ -196,27 +216,11 @@
}, },
// //
baseFormRules: { baseFormRules: {
deptId: [
{ required: true, message: "部门不能为空", trigger: "blur" }
],
name: [ name: [
{ required: true, message: "姓名不能为空", trigger: "blur" } { required: true, message: "姓名不能为空", trigger: "blur" }
], ],
idNumber: [
{ required: true, message: "身份证不能为空", trigger: "blur" }
],
certificateType: [
{ required: true, message: "证件类型不能为空", trigger: "blur" }
],
certificateNo: [
{ required: true, message: "证件编号不能为空", trigger: "blur" }
],
issueDay: [
{ required: true, message: "签发日期不能为空", trigger: "blur" }
],
issueLifespan: [
{ required: true, message: "有效期不能为空", trigger: "blur" }
]
}, },
logTableData:[],// logTableData:[],//
// //
@ -232,30 +236,12 @@
// //
url: process.env.VUE_APP_BASE_API + '/file/upload', url: process.env.VUE_APP_BASE_API + '/file/upload',
}, },
appFormRules:{
version: [
{ required: true, message: "版本号不能为空", trigger: "blur" }
],
versionName: [
{ required: true, message: "版本号名称不能为空", trigger: "blur" }
],
apkName: [
{ required: true, message: "APP名称不能为空", trigger: "blur" }
],
apkPath: [
{ required: true, message: "APP路径不能为空", trigger: "blur" }
],
updateContent: [
{ required: true, message: "更新内容不能为空", trigger: "blur" }
]
},
}; };
}, },
mounted(){ mounted(){
this.getList(); this.getList();
}, },
methods: { methods: {
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
@ -278,8 +264,6 @@
"certificateNo":this.queryParams.certificateNo "certificateNo":this.queryParams.certificateNo
} }
console.log("param",param) console.log("param",param)
// let str = base64.encode(JSON.stringify(param))
// console.log({"content":str})
getCertificateAtakeListPageApi(param).then(response => { getCertificateAtakeListPageApi(param).then(response => {
this.tableListData = response.rows; this.tableListData = response.rows;
this.total = Number(response.total); this.total = Number(response.total);
@ -309,6 +293,16 @@
}; };
this.resetForm("baseForm"); this.resetForm("baseForm");
}, },
handleSelectChange(value) {
console.log('Selected value:', value);
this.baseForm.idNumber=value;
//
},
getCorpAndDept(val){
console.log("getCorpAndDept",val)
this.selectName=val.name;
this.selectIdNumber=val.idNumber;
},
/** 取证按钮操作 */ /** 取证按钮操作 */
handleAdd(type) { handleAdd(type) {
console.log("type",type); console.log("type",type);
@ -319,9 +313,9 @@
this.$modal.msgError("请选择证件"); this.$modal.msgError("请选择证件");
return; return;
} }
var titlemsg="是否确定自取证?" var titlemsg="是否确定自取证?"
if(type==3){ if(type==3){
titlemsg="是否确定自取证?" titlemsg="是否确定自取证?"
}else if(type==4){ }else if(type==4){
titlemsg="是否确定管理员取证?" titlemsg="是否确定管理员取证?"
}else if(type==5){ }else if(type==5){
@ -329,12 +323,37 @@
}else if(type==6){ }else if(type==6){
titlemsg="是否确定代人取证?" titlemsg="是否确定代人取证?"
} }
this.$modal.confirm(titlemsg).then(() => { if(type==6){
getCertificateTakeAddPageApi({"certificateNos":CertificateNos,"type":type}).then(response => { this.open = true;
this.getList(); this.title = "代人取证";
this.$modal.msgSuccess("操作成功"); this.selectCertificateNos=CertificateNos;
}); this.selectType=type;
}).catch(() => {}); getReplacelistApi({}).then(response => {
console.log("response",response);
this.allreplace=response;
});
}else{
this.$modal.confirm(titlemsg).then(() => {
getCertificateTakeAddPageApi({"certificateNos":CertificateNos,"type":type,"idNumber":"","name":""}).then(response => {
this.getList();
this.$modal.msgSuccess("操作成功");
});
}).catch(() => {});
}
},
submitForm: function() {
console.log("this.baseForm",this.baseForm);
getCertificateTakeAddPageApi({"certificateNos":this.selectCertificateNos,"type":this.selectType,"idNumber":this.selectIdNumber,"name":this.selectName}).then(response => {
this.getList();
this.open = false;
this.reset();
this.$modal.msgSuccess("操作成功");
});
},
//
cancel() {
this.open = false;
this.reset();
}, },
formatDate(date) { formatDate(date) {
// YYYY-MM-DD // YYYY-MM-DD

View File

@ -42,7 +42,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
>存证</el-button> >存证</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button

View File

@ -72,8 +72,9 @@
<el-table-column label="设备编号" align="center" prop="deviceNo" :show-overflow-tooltip="true"/> <el-table-column label="设备编号" align="center" prop="deviceNo" :show-overflow-tooltip="true"/>
<el-table-column label="槽位编号" align="center" prop="soltNo" :show-overflow-tooltip="true"/> <el-table-column label="槽位编号" align="center" prop="soltNo" :show-overflow-tooltip="true"/>
<el-table-column label="验证码" align="center" prop="verificationCode" :show-overflow-tooltip="true"/> <el-table-column label="验证码" align="center" prop="verificationCode" :show-overflow-tooltip="true"/>
<el-table-column label="截止时间" align="center" prop="processDate" :show-overflow-tooltip="true" width="180"/> <el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true"/>
<el-table-column label="创建时间" align="center" prop="createTime" :show-overflow-tooltip="true" fixed="right"/>
<el-table-column label="类型" align="center" prop="typeName" width="120" :show-overflow-tooltip="true" fixed="right"/>
<el-table-column label="处理结果" align="center" prop="processStateName" :show-overflow-tooltip="true" fixed="right"> <el-table-column label="处理结果" align="center" prop="processStateName" :show-overflow-tooltip="true" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> --> <!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> -->
@ -362,7 +363,7 @@
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('certificate/certificate_manage/certificateRecord/export', { this.download('certificate/certificate_returnmanage/certificateTask/export', {
...this.queryParams ...this.queryParams
}, `证件任务记录_${new Date().getTime()}.xlsx`) }, `证件任务记录_${new Date().getTime()}.xlsx`)
}, },
@ -397,7 +398,7 @@
return; return;
} }
this.$modal.confirm('是否确定撤回任务?').then(() => { this.$modal.confirm('是否确定撤回任务?').then(() => {
getCertificateTakeReturnPageApi({"certificateNos":taskNos}).then(response => { getCertificateTakeReturnPageApi({"taskNos":taskNos}).then(response => {
this.getList(); this.getList();
this.$modal.msgSuccess("撤回成功"); this.$modal.msgSuccess("撤回成功");
}); });
@ -427,9 +428,4 @@
width: 100%; width: 100%;
font-size: 14px !important; font-size: 14px !important;
} }
</style> </style>

View File

@ -31,16 +31,17 @@
<el-table v-loading="loading" :data="tableListData" height="800"> <el-table v-loading="loading" :data="tableListData" height="800">
<el-table-column label="设备编号" align="center" prop="deviceNumber" :show-overflow-tooltip="true" width="120" fixed="left"/> <el-table-column label="设备编号" align="center" prop="deviceNumber" :show-overflow-tooltip="true" width="120" fixed="left"/>
<el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="180" fixed="left"/> <el-table-column label="设备名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="180" fixed="left"/>
<el-table-column label="IP地址" align="center" prop="deviceIp" :show-overflow-tooltip="true"> <el-table-column label="IP地址" align="center" prop="deviceIp" :show-overflow-tooltip="true"></el-table-column>
</el-table-column> <el-table-column label="设备位置" align="center" prop="deviceAddr" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="设备状态" align="center" prop="deviceState" :show-overflow-tooltip="true" width="100"> <el-table-column label="设备状态" align="center" prop="deviceState" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> --> <!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> -->
<span v-if="scope.row.deviceState==1">正常</span> <span v-if="scope.row.onlineState==1" style="color: green;">在线</span>
<span v-if="scope.row.deviceState==2">异常</span> <span v-if="scope.row.onlineState==2" style="color: red;">离线</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备版本号" align="center" prop="versionCode" :show-overflow-tooltip="true"/> <el-table-column label="总槽位数" align="center" prop="soltNum" :show-overflow-tooltip="true"/>
<el-table-column label="已使用槽位数" align="center" prop="soltUsedNum" :show-overflow-tooltip="true"/>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">