This commit is contained in:
jiask 2025-12-08 10:52:31 +08:00
parent be8cd0e6e7
commit ab69ad8ef9
4 changed files with 93 additions and 59 deletions

View File

@ -164,6 +164,18 @@ export function getSysUserListApi(data) {
params:data params:data
}) })
} }
export function getApplyUserListApi(data) {
return request({
url: '/certificate/certificate_check/certificateCheck/applyUserlist',
method: 'get',
headers: {
//"merchant-id":"378915229716713472",
},
params:data
})
}
export function getDevicelistApi(data) { export function getDevicelistApi(data) {
return request({ return request({
url: '/certificate/certificate_returnmanage/certificateSave/devicelist', url: '/certificate/certificate_returnmanage/certificateSave/devicelist',

View File

@ -425,7 +425,7 @@
// //
open: false, open: false,
checked: false, checked: false,
isCreateFlage:true, isCreateFlage:false,
userNameFlage:false, userNameFlage:false,
certificateNos:[], certificateNos:[],
userIds:[], userIds:[],

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名" prop="name">
<el-input <el-input
@ -9,7 +9,7 @@
style="width: 300px" style="width: 300px"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="身份证号" prop="idNumber"> <el-form-item label="身份证号" prop="idNumber">
<el-input <el-input
v-model="queryParams.idNumber" v-model="queryParams.idNumber"
@ -20,7 +20,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="证件类型" prop="certificateType"> <el-form-item label="证件类型" prop="certificateType">
<el-select v-model="queryParams.certificateType" placeholder="证件类型" clearable style="width: 100%;"> <el-select v-model="queryParams.certificateType" placeholder="证件类型" clearable style="width: 100%;">
<el-option <el-option
v-for="dict in dict.type.sys_certificate_type" v-for="dict in dict.type.sys_certificate_type"
:key="dict.value" :key="dict.value"
@ -33,7 +33,7 @@
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -61,7 +61,7 @@
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="申请人" align="center" prop="name" :show-overflow-tooltip="true" width="120"/> <el-table-column label="申请人" align="center" prop="name" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="岗位" align="center" prop="postName" :show-overflow-tooltip="true" width="180"/> <el-table-column label="岗位" align="center" prop="postName" :show-overflow-tooltip="true" width="180"/>
<el-table-column label="联系方式" align="center" prop="phone" :show-overflow-tooltip="true" width="150"/> <el-table-column label="联系方式" align="center" prop="phone" :show-overflow-tooltip="true" width="150"/>
<!-- <el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180"/> --> <!-- <el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180"/> -->
@ -81,7 +81,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="申请状态" align="center" prop="applyState" :show-overflow-tooltip="true"> <el-table-column label="申请状态" align="center" prop="applyState" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.applyState==-1" style="color: #FF7322;font-size: 15px;">待提交</span> <span v-if="scope.row.applyState==-1" style="color: #FF7322;font-size: 15px;">待提交</span>
<span v-if="scope.row.applyState==0" style="color: #FF7322;font-size: 15px;">待审核</span> <span v-if="scope.row.applyState==0" style="color: #FF7322;font-size: 15px;">待审核</span>
<span v-if="scope.row.applyState==1" style="color: #FEE838;font-size: 15px;">审核中</span> <span v-if="scope.row.applyState==1" style="color: #FEE838;font-size: 15px;">审核中</span>
@ -89,7 +89,7 @@
<span v-if="scope.row.applyState==3" style="color: #FEE838;font-size: 15px;">已退回</span> <span v-if="scope.row.applyState==3" style="color: #FEE838;font-size: 15px;">已退回</span>
<span v-if="scope.row.applyState==4" style="color: #FF7322;font-size: 15px;">已执行</span> <span v-if="scope.row.applyState==4" style="color: #FF7322;font-size: 15px;">已执行</span>
</template> </template>
</el-table-column> </el-table-column>
<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
@ -98,7 +98,7 @@
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
>编辑</el-button> >编辑</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@click="handleView(scope.row)" @click="handleView(scope.row)"
>查看</el-button> >查看</el-button>
@ -110,19 +110,27 @@
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title+''" :visible.sync="open" width="900px" append-to-body> <el-dialog :title="title+''" :visible.sync="open" width="900px" append-to-body>
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="120px" style="height: 650px;overflow-y: auto;"> <el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="120px" style="height: 650px;overflow-y: auto;">
<el-row>
<el-form-item label-width="120px" label="申请类型" prop="applyType">
<el-radio-group v-model="baseForm.applyType" size="small">
<el-radio @change="handleRadioChange('1')" label="1">存证</el-radio>
<el-radio @change="handleRadioChange('2')" label="2">取证</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="申请人" prop="name"> <el-form-item label="申请人" prop="name">
@ -139,7 +147,7 @@
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位" prop="postId"> <el-form-item label="岗位" prop="postId">
<el-select <el-select
v-model="baseForm.postId" v-model="baseForm.postId"
@ -150,7 +158,7 @@
v-for="item in postOptions" v-for="item in postOptions"
:key="item.postId+''" :key="item.postId+''"
:label="item.postName" :label="item.postName"
:value="item.postId+''" :value="item.postId+''"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -169,7 +177,7 @@
</el-col> --> </el-col> -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="证件类型" prop="certificateType"> <el-form-item label="证件类型" prop="certificateType">
<el-select v-model="baseForm.certificateType" placeholder="证件类型" clearable style="width: 100%;"> <el-select v-model="baseForm.certificateType" placeholder="证件类型" clearable style="width: 100%;">
<el-option <el-option
v-for="dict in dict.type.sys_certificate_type" v-for="dict in dict.type.sys_certificate_type"
:key="dict.value" :key="dict.value"
@ -188,7 +196,7 @@
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -221,7 +229,7 @@
:action="upload.url" :action="upload.url"
:disabled="upload.isUploading" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-progress="handleFileUploadProgress"
:file-list="fileList" :file-list="fileList"
:on-success="handleFileSuccess" :on-success="handleFileSuccess"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-preview="handlePreviewDownloadFile" :on-preview="handlePreviewDownloadFile"
@ -275,7 +283,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="手机号码" prop="phone"> <el-form-item label="手机号码" prop="phone">
<el-input style="width: 100%;background-color:#DAE1EE;" v-model="baseForm2.phone" readonly="true" maxlength="30" clearable/> <el-input style="width: 100%;background-color:#DAE1EE;" v-model="baseForm2.phone" readonly maxlength="30" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -284,7 +292,7 @@
<el-button type="primary" @click="submitForm2"> </el-button> <el-button type="primary" @click="submitForm2"> </el-button>
<el-button @click="cancel2"> </el-button> <el-button @click="cancel2"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="查看附件" :visible.sync="openFile" width="400px" append-to-body> <el-dialog title="查看附件" :visible.sync="openFile" width="400px" append-to-body>
<div style="width: 100%;padding: 10px;color: #46a6ff;"> <div style="width: 100%;padding: 10px;color: #46a6ff;">
@ -292,17 +300,17 @@
{{ item.name }} {{ item.name }}
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="openFile=false"> </el-button> <el-button @click="openFile=false"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { getUser } from '@/api/system/user' import { getUser } from '@/api/system/user'
import { getCertificateApplyListPageApi,addCertificateApplyApi, editCertificateApplyApi, import { getCertificateApplyListPageApi,addCertificateApplyApi, editCertificateApplyApi,
delCertificateApplyApi,getSysUserListApi,addCertificateCheckApi } from "@/api/certificateManage/index"; delCertificateApplyApi,getSysUserListApi,getApplyUserListApi,addCertificateCheckApi } 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 { downloadFileByUrl } from '@/utils/download'
@ -348,23 +356,24 @@
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
idNumber:null,// idNumber:null,//
name:null,// name:null,//
}, },
activeName:"baseSetting", activeName:"baseSetting",
deviceData:{}, deviceData:{},
// //
postOptions: [], postOptions: [],
// //
baseForm: { baseForm: {
userId:"", userId:"",
postId:"", postId:"",
phone:"", phone:"",
certificateType:"", certificateType:"",
applyReason:"", applyReason:"",
applyDetail:"", applyDetail:"",
startTime:"", startTime:"",
startTime:"", startTime:"",
endTime:"", endTime:"",
applyType:"1",
dateRange:[] dateRange:[]
}, },
isView:false, isView:false,
@ -383,10 +392,10 @@
phone: [ phone: [
{ required: true, message: "手机号码不能为空", trigger: "change" }, { required: true, message: "手机号码不能为空", trigger: "change" },
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'change' } { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'change' }
], ],
postId: [ postId: [
{ required: true, message: "岗位不能为空", trigger: "change" }, { required: true, message: "岗位不能为空", trigger: "change" },
], ],
certificateType: [ certificateType: [
{ required: true, message: "证件类型不能为空", trigger: "change" } { required: true, message: "证件类型不能为空", trigger: "change" }
], ],
@ -399,8 +408,8 @@
dateRange: [ dateRange: [
{ required: true, message: "预计使用时间不能为空", trigger: "change" } { required: true, message: "预计使用时间不能为空", trigger: "change" }
], ],
}, },
// //
upload: { upload: {
// //
@ -418,13 +427,13 @@
}, },
mounted(){ mounted(){
this.getPostList(); this.getPostList();
this.getList(); this.getList();
}, },
methods: { methods: {
getPostList(){ getPostList(){
getUser().then((response) => { getUser().then((response) => {
this.postOptions = response.posts this.postOptions = response.posts
}) })
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
@ -450,7 +459,7 @@
} }
getCertificateApplyListPageApi(param).then(response => { getCertificateApplyListPageApi(param).then(response => {
this.tableListData = response.rows; this.tableListData = response.rows;
this.total = Number(response.total); this.total = Number(response.total);
this.loading = false; this.loading = false;
}); });
@ -466,20 +475,20 @@
phone:"", phone:"",
certificateType:"", certificateType:"",
applyReason:"", applyReason:"",
applyDetail:"", applyDetail:"",
startTime:"", startTime:"",
startTime:"", startTime:"",
endTime:"", endTime:"",
dateRange:[] dateRange:[]
}; };
this.resetForm("baseForm"); this.resetForm("baseForm");
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.isReadOnly=false; this.isReadOnly=false;
this.title = "新增"; this.title = "新增";
console.log("this.baseForm",this.baseForm); console.log("this.baseForm",this.baseForm);
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
@ -487,7 +496,7 @@
this.reset(); this.reset();
this.open = true; this.open = true;
this.isReadOnly=true; this.isReadOnly=true;
this.baseForm = Object.assign({}, row) this.baseForm = Object.assign({}, row)
this.baseForm.dateRange = [row.startTime,row.endTime] this.baseForm.dateRange = [row.startTime,row.endTime]
if(row.fileUrl&&row.fileUrl!=''){ if(row.fileUrl&&row.fileUrl!=''){
let arr = row.fileUrl.split(","); let arr = row.fileUrl.split(",");
@ -504,7 +513,7 @@
} }
his.isView = false his.isView = false
this.title = "修改"; this.title = "修改";
}, },
handleView(row) { handleView(row) {
this.reset(); this.reset();
this.open = true; this.open = true;
@ -544,8 +553,8 @@
this.baseForm.endTime = "" this.baseForm.endTime = ""
} }
//applyState -1 0 //applyState -1 0
this.baseForm.applyState = type; this.baseForm.applyState = type;
//fileUrls //fileUrls
this.baseForm.fileUrls = this.fileUrls this.baseForm.fileUrls = this.fileUrls
this.baseForm.fileNames = this.fileNames this.baseForm.fileNames = this.fileNames
console.log("this.baseForm",this.baseForm); console.log("this.baseForm",this.baseForm);
@ -572,10 +581,21 @@
this.open = false; this.open = false;
this.reset(); this.reset();
}, },
handleRadioChange(val){
// const param={"applyType":val}
// getApplyUserListApi(param).then(response => {
// console.log("response",response);
// this.allUserList=response;
// this.$set(this.baseForm2,"userId",this.baseForm.userId)
// this.$set(this.baseForm2,"phone",this.baseForm.phone)
// });
},
// //
handleSelect(){ handleSelect(){
this.openSelectUser = true; this.openSelectUser = true;
getSysUserListApi({}).then(response => { console.log("this.baseForm",this.baseForm);
const param={"applyType":this.baseForm.applyType}
getApplyUserListApi(param).then(response => {
console.log("response",response); console.log("response",response);
this.allUserList=response; this.allUserList=response;
this.$set(this.baseForm2,"userId",this.baseForm.userId) this.$set(this.baseForm2,"userId",this.baseForm.userId)
@ -608,7 +628,7 @@
this.openSelectUser = false; this.openSelectUser = false;
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal.confirm('是否确认删除数据项?').then(() => { this.$modal.confirm('是否确认删除数据项?').then(() => {
delCertificateApplyApi({checkId:row.checkId}).then(response => { delCertificateApplyApi({checkId:row.checkId}).then(response => {
console.log("delCertificateApplyApi",response); console.log("delCertificateApplyApi",response);
@ -626,9 +646,9 @@
handleFileSuccess(response, file, fileList) { handleFileSuccess(response, file, fileList) {
this.upload.isUploading = false; this.upload.isUploading = false;
if(response.code==200){ if(response.code==200){
this.fileUrls.push(response.data.url) this.fileUrls.push(response.data.url)
this.fileNames.push(response.data.name) this.fileNames.push(response.data.name)
this.$modal.msgSuccess(response.msg); this.$modal.msgSuccess(response.msg);
}else{ }else{
this.$modal.msgError(response.msg); this.$modal.msgError(response.msg);
} }
@ -643,7 +663,7 @@
this.fileUrls.splice(sum, 1) this.fileUrls.splice(sum, 1)
this.fileNames.splice(sum, 1) this.fileNames.splice(sum, 1)
}, },
async handlePreviewDownloadFile(file) { async handlePreviewDownloadFile(file) {
if (file.url != null && file.url !== '') { if (file.url != null && file.url !== '') {
let downloadUrl = file.url; let downloadUrl = file.url;
try { try {
@ -663,17 +683,17 @@
console.error(error); console.error(error);
} }
} }
if (file.raw != null && file.raw !== '') { if (file.raw != null && file.raw !== '') {
const blob = file.raw; // Blob const blob = file.raw; // Blob
const link = document.createElement('a'); const link = document.createElement('a');
link.href = URL.createObjectURL(blob); // URL link.href = URL.createObjectURL(blob); // URL
link.download = file.name; // link.download = file.name; //
document.body.appendChild(link); // DOM document.body.appendChild(link); // DOM
link.click(); // link.click(); //
document.body.removeChild(link); // <a> document.body.removeChild(link); // <a>
} }
}, },
checkFile(row){ checkFile(row){
this.fileList=[] this.fileList=[]
this.fileUrls=[] this.fileUrls=[]
this.fileNames = [] this.fileNames = []
@ -700,7 +720,7 @@
// this.single = selection.length !== 1 // this.single = selection.length !== 1
// this.multiple = !selection.length // this.multiple = !selection.length
}, },
formatDate(date) { formatDate(date) {
const year = date.getFullYear(); const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 0 const month = String(date.getMonth() + 1).padStart(2, '0'); // 0
const day = String(date.getDate()).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0');

View File

@ -145,7 +145,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="功能接口" prop="funImp"> <el-form-item label="功能接口" prop="funImp">
<el-input v-model="baseForm.funImp" placeholder="请输入功能接口" maxlength="30" clearable/> <el-input v-model="baseForm.funImp" placeholder="http://xxx.xxx.xxx:8088/externaltask/accessfunction" maxlength="30" clearable/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -254,7 +254,8 @@
deviceAddr:"", deviceAddr:"",
deviceMac:"", deviceMac:"",
deviceGateway:"", deviceGateway:"",
devicePwd:"" devicePwd:"",
funImp:"http://xxx.xxx.xxx:8088/externaltask/accessfunction"
}, },
// //
baseFormRules: { baseFormRules: {
@ -377,7 +378,8 @@
deviceAddr:"", deviceAddr:"",
deviceMac:"", deviceMac:"",
deviceGateway:"", deviceGateway:"",
devicePwd:"" devicePwd:"",
funImp:"http://xxx.xxx.xxx:8088/externaltask/accessfunction"
}; };
this.resetForm("baseForm"); this.resetForm("baseForm");
}, },