前端新需求修改

This commit is contained in:
zzyuan 2025-10-27 17:55:55 +08:00
parent 76f4976192
commit ccdc53840d
8 changed files with 1221 additions and 288 deletions

View File

@ -88,13 +88,28 @@
>模板下载
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
:disabled="multiple"
@click="handleTask"
>一人多证核验</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<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="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 type="selection" width="55" align="center"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="部门" align="center" prop="deptFullName" :show-overflow-tooltip="true" width="250"/>
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180"/>
<el-table-column label="出生日期" align="center" width="120" 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="certificateTypeName" :show-overflow-tooltip="true"/>
@ -140,179 +155,187 @@
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title+''" :visible.sync="open" width="700px" append-to-body>
<el-tabs v-model="activeName" @tab-click="handleTabClick">
<!-- 基础设置 -->
<el-tab-pane label="" name="baseSetting" style="height: 400px;">
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="24" v-if="baseForm.deptId !== 0">
<el-form-item label="系统人员" prop="sysuser">
<el-button
type="success"
size="mini"
@click="handleSelect()"
>系统人员
</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" v-if="baseForm.deptId !== 0">
<el-form-item label="单位" prop="deptId">
<treeselect
v-model="baseForm.deptId"
:options="deptOptions"
:normalizer="normalizer"
placeholder="选择单位"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="baseForm.name" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idNumber">
<el-input v-model="baseForm.idNumber" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</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-form-item label="出生日期" prop="birthday">
<el-date-picker
v-model="baseForm.birthday"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生地点" prop="birthAddr">
<el-input v-model="baseForm.birthAddr" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model="baseForm.certificateType" placeholder="证件类型" clearable>
<el-option
v-for="dict in dict.type.sys_certificate_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件编号" prop="certificateNo">
<el-input v-model="baseForm.certificateNo" :readonly="isReadOnly" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签发地" prop="issueAddr">
<el-input v-model="baseForm.issueAddr" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签发日期" prop="issueDay">
<el-date-picker
v-model="baseForm.issueDay"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="有效期至" prop="issueLifespan">
<el-date-picker
v-model="baseForm.issueLifespan"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label-width="120px" label="是否电子标签" prop="isEle">
<el-radio-group v-model="baseForm.isEle" size="small">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item v-if="isCreateFlage" 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-tab-pane>
</el-tabs>
<el-dialog :title="title+''" :visible.sync="open" width="800px" append-to-body>
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="baseForm.name" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col el-col :span="12" v-if="baseForm.deptId !== 0">
<el-form-item label="">
<el-button
type="success"
size="mini"
@click="handleSelect()"
>选择人员
</el-button>
</el-form-item>
</el-col>
<el-col :span="12" v-if="baseForm.deptId !== 0">
<el-form-item label="单位" prop="deptId" style="width: 100%;">
<treeselect
v-model="baseForm.deptId"
:options="deptOptions"
:normalizer="normalizer"
placeholder="选择单位"
/>
</el-form-item>
</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-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="idNumber">
<el-input v-model="baseForm.idNumber" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
v-model="baseForm.birthday"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出生地点" prop="birthAddr">
<el-input v-model="baseForm.birthAddr" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model="baseForm.certificateType" placeholder="证件类型" clearable>
<el-option
v-for="dict in dict.type.sys_certificate_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件编号" prop="certificateNo">
<el-input v-model="baseForm.certificateNo" :readonly="isReadOnly" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签发地" prop="issueAddr">
<el-input v-model="baseForm.issueAddr" placeholder="请输入" maxlength="30" clearable/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="签发日期" prop="issueDay">
<el-date-picker
v-model="baseForm.issueDay"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="有效期至" prop="issueLifespan">
<el-date-picker
v-model="baseForm.issueLifespan"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="120px" label="是否电子标签" prop="isEle">
<el-radio-group v-model="baseForm.isEle" size="small">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-if="isCreateFlage" 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>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog :title="selectUserTitle+''" :visible.sync="openSelectUser" width="700px" append-to-body>
<el-tabs v-model="activeName">
<!-- 基础设置 -->
<el-tab-pane label="" name="baseSetting" style="height: 100px;">
<el-form ref="baseForm2" :model="baseForm2" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-select
v-model="selectItme"
placeholder="请选择"
filterable
clearable
style="width: 240px"
@change="handleSelectChange"
>
<el-option
v-for="item in allUser"
:key="item.phone"
:label="item.userName"
:value="item.phone"
@click.native="getCorpAndDept(item)"
/>
</el-select>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input style="width: 240px;background-color:#DAE1EE;" v-model="baseForm2.phone" readonly="true" maxlength="30" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
</el-tabs>
<!-- 选择人员 -->
<el-dialog title="选择系统人员" :visible.sync="openSelectUser" width="600px" append-to-body>
<el-form ref="baseForm2" :model="baseForm2" :rules="baseFormRules" label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="姓名" prop="userId">
<el-select
v-model="baseForm2.userId"
placeholder="请选择"
filterable
clearable
style="width: 100%"
>
<el-option
v-for="item in allUserList"
:key="item.userId"
:label="item.userName"
:value="item.userId"
@click.native="getCorpAndDept(item)"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="手机号码" prop="phone">
<el-input style="width: 100%;background-color:#DAE1EE;" v-model="baseForm2.phone" readonly="true" maxlength="30" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm2"> </el-button>
<el-button @click="cancel2"> </el-button>
</div>
</el-dialog>
<!-- 核验任务下达 -->
<el-dialog title="核验任务下达" :visible.sync="openTask" width="600px" append-to-body>
<el-form ref="taskForm" :model="taskForm" :rules="taskRules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="核验截止日期" prop="verificationDate">
<el-date-picker
v-model="taskForm.verificationDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd" style="width: 100%;"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTask"> </el-button>
<el-button @click="cancelTask"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -361,10 +384,9 @@
userNameFlage:false,
certificateNos:[],
isReadOnly:false,
openSelectUser:false,
selectUserTitle:"",
openSelectUser:false,
selectItme:{},
allUser:[],
allUserList:[],
//
deptOptions: [],
//
@ -396,7 +418,7 @@
isEle:""
},
baseForm2: {
name:"",
userId:"",
phone:""
},
//
@ -441,7 +463,23 @@
headers: { Authorization: 'Bearer ' + getToken() },
//
url: process.env.VUE_APP_BASE_API + '/certificate/certificate_manage/certificateInfo/import',
},
},
//
openTask: false,
//
taskForm: {
verificationDate:""
},
//
taskRules: {
verificationDate: [
{
required: true,
message: '核验截止日期不能为空',
trigger: 'blur',
},
]
},
};
},
mounted(){
@ -644,34 +682,29 @@
this.reset();
},
handleSelect(){
this.openSelectUser = true;
this.selectUserTitle = "选择系统人员";
this.openSelectUser = true;
getSysUserListApi({}).then(response => {
console.log("response",response);
this.allUser=response;
this.allUserList=response;
this.$set(this.baseForm2,"userId",this.baseForm.userId)
this.$set(this.baseForm2,"phone",this.baseForm.phone)
});
},
handleSelectChange() {
console.log('Selected item:', this.selectItme);
this.baseForm2.phone=this.selectItme.phone;
this.baseForm2.name=this.selectItme.userName;
//
},
getCorpAndDept(val){
console.log("getCorpAndDept",val)
this.selectItme=val;
this.baseForm2.phone=this.selectItme.phone;
this.baseForm2.name=this.selectItme.userName;
this.baseForm.userId=this.selectItme.userId;
this.$set(this.baseForm2,"phone",this.selectItme.phone)
this.$set(this.baseForm2,"userId",this.selectItme.userId)
},
/** 提交按钮 */
submitForm2: function() {
console.log("this.baseForm2",this.baseForm2);
this.$refs["baseForm2"].validate(valid => {
if (valid) {
this.baseForm.phone=this.selectItme.phone;
this.baseForm.name=this.selectItme.userName;
this.baseForm.deptId=this.selectItme.deptId;
this.$set(this.baseForm,"phone",this.selectItme.phone)
this.$set(this.baseForm,"name",this.selectItme.userName)
this.$set(this.baseForm,"userId",this.selectItme.userId)
this.$set(this.baseForm,"deptId",this.selectItme.deptId)
this.openSelectUser = false;
this.isCreateFlage=false;
}
@ -739,7 +772,41 @@
},
//
handleSelectionChange(selection) {
this.certificateNos = selection.map(item => item.certificateNo)
this.certificateNos = selection.map(item => item.certificateNo)
//
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 远程校验按钮操作 */
handleTask() {
this.resetTask()
this.openTask = true
},
//
cancelTask() {
this.openTask = false
this.resetTask()
},
//
resetTask() {
this.taskForm = {
verificationDate:""
}
this.resetForm('taskForm')
},
/** 提交按钮 */
submitTask: function () {
this.$refs['taskForm'].validate((valid) => {
let param = Object.assign({},this.taskForm)
console.log(param)
if (valid) {
// updateUser(param).then((response) => {
// this.$modal.msgSuccess('')
// this.openTask = false
// this.getList()
// })
}
})
},
}
};

View File

@ -47,16 +47,17 @@
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180" />
<el-table-column label="证件类型" align="center" prop="certificateTypeName" :show-overflow-tooltip="true"/>
<el-table-column label="证件编号" align="center" prop="certificateNo" :show-overflow-tooltip="true"/>
<el-table-column label="状态" align="center" prop="stateName" :show-overflow-tooltip="true"/>
<el-table-column label="有效期至" align="center" prop="issueLifespan" :show-overflow-tooltip="true"/>
<el-table-column label="超期天数" align="center" prop="processGapDate" :show-overflow-tooltip="true">
<template slot-scope="scope">
<!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> -->
<el-table-column label="证件有效期至" align="center" prop="issueLifespan" :show-overflow-tooltip="true"/>
<el-table-column label="过期天数" align="center" prop="" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.processGapDate<=10" style="color: #FEE838;font-size: 25px;">{{scope.row.processGapDate}}</span>
<span v-else-if="scope.row.processGapDate<=20" style="color: orange;font-size: 25px;">{{scope.row.processGapDate}}</span>
<span v-else="scope.row.processGapDate<=30" style="color: red;font-size: 25px;">{{scope.row.processGapDate}}</span>
</template>
</el-table-column>
<!-- <el-table-column label="过期类型" align="center" prop="" :show-overflow-tooltip="true">
</el-table-column> -->
</el-table>
<pagination

View File

@ -62,8 +62,7 @@
size="mini"
@click="handleAdd(5)"
>应急取证</el-button>
</el-col>
</el-col>
<el-col :span="1.5">
<el-button
icon="el-icon-download"
@ -73,12 +72,28 @@
>他人代领
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
:disabled="multiple"
@click="handleTask"
>出入境核验
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<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="idNumber" :show-overflow-tooltip="true" width="180" fixed="left"/>
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180"/>
<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="certificateTypeName" :show-overflow-tooltip="true"/>
@ -139,6 +154,27 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog title="核验任务下达" :visible.sync="openTask" width="600px" append-to-body>
<el-form ref="taskForm" :model="taskForm" :rules="taskRules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="核验截止日期" prop="verificationDate">
<el-date-picker
v-model="taskForm.verificationDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd" style="width: 100%;"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTask"> </el-button>
<el-button @click="cancelTask"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -236,6 +272,21 @@
//
url: process.env.VUE_APP_BASE_API + '/file/upload',
},
openTask: false,
//
taskForm: {
verificationDate:""
},
//
taskRules: {
verificationDate: [
{
required: true,
message: '核验截止日期不能为空',
trigger: 'blur',
},
]
},
};
},
mounted(){
@ -369,6 +420,41 @@
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 远程校验按钮操作 */
handleTask() {
this.resetTask()
this.openTask = true
},
//
cancelTask() {
this.openTask = false
this.resetTask()
},
//
resetTask() {
this.taskForm = {
verificationDate:""
}
this.resetForm('taskForm')
},
/** 提交按钮 */
submitTask: function () {
this.$refs['taskForm'].validate((valid) => {
let param = Object.assign({},this.taskForm)
console.log(param)
console.log(this.ids)
if (valid) {
// updateUser(param).then((response) => {
// this.$modal.msgSuccess('')
// this.openTask = false
// this.getList()
// })
}
})
},
}
};
</script>

View File

@ -56,8 +56,13 @@
</el-row>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<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="idNumber" :show-overflow-tooltip="true" width="180" fixed="left"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180"/>
<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="certificateTypeName" :show-overflow-tooltip="true"/>
@ -77,44 +82,41 @@
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title+''" :visible.sync="open" width="700px" append-to-body>
<el-tabs v-model="activeName">
<!-- 基础设置 -->
<el-tab-pane label="" name="baseSetting" style="height: 100px;">
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="设备" prop="deviceId">
<el-select
v-model="baseForm.deviceId"
placeholder="请选择"
filterable
clearable
style="width: 240px"
@change="handleSelectChange"
>
<el-option
v-for="item in allDevice"
:key="item.deviceId"
:label="item.deviceName"
:value="item.deviceId"
@click.native="getCorpAndDept(item)"
/>
</el-select>
</el-form-item>
<el-form-item label="截止日期" prop="processDate">
<el-date-picker
v-model="baseForm.processDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-tab-pane>
</el-tabs>
<el-dialog :title="title+''" :visible.sync="open" width="700px" append-to-body>
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label="证件柜" prop="deviceId">
<el-select
v-model="baseForm.deviceId"
placeholder="请选择"
filterable
clearable
style="width: 100%"
>
<el-option
v-for="item in allDevice"
:key="item.deviceId"
:label="item.deviceName"
:value="item.deviceId"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="截止日期" prop="processDate">
<el-date-picker
v-model="baseForm.processDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd" style="width: 100%"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
@ -163,9 +165,7 @@
open: false,
allDevice:[],
selectCertificateNos:"",
selectType:"",
selectDeviceId:"",
selectDeviceName:"",
selectType:"",
checked: false,
//
deptOptions: [],
@ -181,18 +181,8 @@
deviceData:{},
//
baseForm: {
deptId:null,
name:"",
idNumber:"",
birthday:"",
birthAddr:"",
certificateType:"",
certificateTypeName:"",
certificateNo:"",
issueAddr:"",
issueDay:"",
issueLifespan:"0",
isEle:""
deviceId:null,
processDate:""
},
//
baseFormRules: {
@ -254,10 +244,6 @@
this.loading = false;
});
},
getCorpAndDept(val){
console.log("getCorpAndDept",val)
this.selectDeviceId=val.deviceId;
},
//
cancel() {
this.open = false;
@ -265,21 +251,11 @@
},
//
reset() {
this.baseForm = {
deptId:null,
name:"",
idNumber:"",
birthday:"",
birthAddr:"",
certificateType:"",
certificateTypeName:"",
certificateNo:"",
issueAddr:"",
issueDay:"",
issueLifespan:"",
isEle:"0"
};
this.resetForm("baseForm");
this.baseForm = {
deviceId:null,
processDate:""
};
this.resetForm("baseForm");
},
/** 新增按钮操作 */
handleAdd() {
@ -297,6 +273,7 @@
console.log("response",response);
this.allDevice=response;
});
this.reset();
},
/** 管理员存证 */
handleBatchAdd(){
@ -314,10 +291,11 @@
console.log("response",response);
this.allDevice=response;
});
this.reset();
},
submitForm: function() {
console.log("this.baseForm",this.baseForm);
if(this.selectDeviceId==""||this.selectDeviceId==null){
if(this.baseForm.deviceId==""||this.baseForm.deviceId==null){
this.$modal.msgError("请选择设备信息");
return;
}
@ -325,18 +303,20 @@
this.$modal.msgError("请选择截止日期");
return;
}
getCertificateSaveAddPageApi({"certificateNos":this.selectCertificateNos,"type":this.selectType,"deviceId":this.selectDeviceId,"processDate":this.baseForm.processDate}).then(response => {
let params = {
"certificateNos":this.selectCertificateNos,
"type":this.selectType,
"deviceId":this.baseForm.deviceId,
"processDate":this.baseForm.processDate
}
getCertificateSaveAddPageApi(params).then(response => {
this.getList();
this.open = false;
this.reset();
this.$modal.msgSuccess("操作成功");
});
},
//
cancel() {
this.open = false;
this.reset();
},
formatDate(date) {
// YYYY-MM-DD
const year = date.getFullYear();

View File

@ -57,7 +57,12 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<el-table-column type="selection" width="55" align="center" :selectable="selectablerow" />
<el-table-column type="selection" width="55" align="center" :selectable="selectablerow"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="任务编号" align="center" prop="taskNo" :show-overflow-tooltip="true" width="180" />
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120" />
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true" width="180" />

View File

@ -1,10 +1,26 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="关键字" prop="keyWord">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="护照柜名称" prop="deviceName">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
v-model="queryParams.deviceName"
placeholder="请输入护照柜名称"
clearable maxlength="20"
style="width: 300px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="护照柜类型" prop="deviceType">
<el-select v-model="queryParams.deviceType" placeholder="护照柜类型" clearable>
<el-option label="小型" value="1"/>
<el-option label="中型" value="2"/>
<el-option label="大型" value="3"/>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="unitName">
<el-input
v-model="queryParams.unitName"
placeholder="请输入单位名称"
clearable maxlength="20"
style="width: 300px"
@keyup.enter.native="handleQuery"
@ -29,11 +45,23 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<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="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>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="护照柜名称" align="center" prop="deviceName" :show-overflow-tooltip="true" width="180"/>
<el-table-column label="设备编号" align="center" prop="deviceNumber" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="护照柜类型" align="center" prop="deviceType" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope">
<!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> -->
<span v-if="scope.row.deviceType==1" >小型</span>
<span v-if="scope.row.deviceType==2" >中型</span>
<span v-if="scope.row.deviceType==3" >大型</span>
</template>
</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">
<!-- <dict-tag :options="dict.type.dev_status" :value="scope.row.deviceState"/> -->
<span v-if="scope.row.onlineState==1" style="color: green;">在线</span>
@ -42,6 +70,12 @@
</el-table-column>
<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" prop="" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{Number(scope.row.soltNum)-Number(scope.row.soltUsedNum)}}</span>
</template>
</el-table-column>
<el-table-column label="所属单位" align="center" prop="unitName" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope">

View File

@ -0,0 +1,392 @@
<template>
<div class="app-container">
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
node-key="id"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
</div>
</el-col>
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="用户姓名" prop="nickName">
<el-input
v-model="queryParams.nickName"
placeholder="请输入用户姓名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
:disabled="multiple"
@click="handleTask"
>有无证件核验
</el-button>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center"/>
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="用户姓名" align="center" prop="nickName" :show-overflow-tooltip="true"/>
<el-table-column label="身份证号" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="手机号码" align="center" prop="phonenumber" width="120">
<template slot-scope="scope">
<span>{{ hidePhone(scope.row.phonenumber) }}</span>
</template>
</el-table-column>
<el-table-column label="单位职务" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="人员类别" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="应备案类型" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="责任处室" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="有无证件" align="center" prop="" :show-overflow-tooltip="true"/>
<!-- <el-table-column label="创建时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<!-- 添加或修改参数配置对话框 -->
<el-dialog title="核验任务下达" :visible.sync="openTask" width="600px" append-to-body>
<el-form ref="taskForm" :model="taskForm" :rules="taskRules" label-width="120px">
<el-row>
<el-col :span="24">
<el-form-item label="核验截止日期" prop="verificationDate">
<el-date-picker
v-model="taskForm.verificationDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd" style="width: 100%;"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTask"> </el-button>
<el-button @click="cancelTask"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listUser,
deptTreeSelect,
} from '@/api/system/user'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
name: '',
dicts: [
// 'sys_normal_disable',
// 'sys_user_sex',
// 'sys_user_type',
// 'sys_login_type',
// 'sys_user_permanent',
],
components: { Treeselect },
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
userList: null,
//
deptOptions: undefined,
//
deptName: undefined,
defaultProps: {
children: 'children',
label: 'label',
},
//
queryParams: {
pageNum: 1,
pageSize: 10,
userName: undefined,
phonenumber: undefined,
deptId: undefined,
},
openTask: false,
//
taskForm: {
verificationDate:""
},
//
taskRules: {
verificationDate: [
{
required: true,
message: '核验截止日期不能为空',
trigger: 'blur',
},
]
},
}
},
watch: {
//
deptName(val) {
this.$refs.tree.filter(val)
},
},
created() {
this.getList()
this.getDeptTree()
},
methods: {
/* 手机号码脱敏 */
hidePhone(phone) {
if (!phone) return ''
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
},
/** 查询用户列表 */
getList() {
this.loading = true
listUser(this.queryParams).then(
(response) => {
this.userList = response.rows
this.total = response.total
this.loading = false
},
)
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then((response) => {
this.deptOptions = this.filterTree(response.data)
})
},
filterTree(nodes) {
return nodes
.map((node) => {
if (node.children) {
node.children = this.filterTree(node.children)
}
return node
})
.filter((node) => node.status !== '1')
},
//
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
//
handleNodeClick(data) {
this.queryParams.deptId = data.id
this.handleQuery()
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm')
this.$refs.tree.setCurrentKey(null)
this.handleQuery()
},
//
handleSelectionChange(selection) {
// roleId
this.ids = selection.map((item) => item.userId)
//
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 远程校验按钮操作 */
handleTask() {
this.resetTask()
this.openTask = true
},
//
cancelTask() {
this.openTask = false
this.resetTask()
},
//
resetTask() {
this.taskForm = {
verificationDate:""
}
this.resetForm('taskForm')
},
/** 提交按钮 */
submitTask: function () {
this.$refs['taskForm'].validate((valid) => {
let param = Object.assign({},this.taskForm)
console.log(param)
console.log(this.ids)
if (valid) {
// updateUser(param).then((response) => {
// this.$modal.msgSuccess('')
// this.openTask = false
// this.getList()
// })
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
// const userIds = row.userId || this.ids
// this.$modal
// .confirm('"' + userIds + '"')
// .then(function () {
// return delUser(userIds)
// })
// .then(() => {
// this.getList()
// this.$modal.msgSuccess('')
// })
// .catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
// this.download(
// 'system/user/export',
// {
// ...this.queryParams,
// },
// `user_${new Date().getTime()}.xlsx`,
// )
},
//
formatDate(sdate) {
let date = new Date(sdate);
// YYYY-MM-DD
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 0
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
},
}
</script>
<style lang="scss" scoped>
//css
::v-deep.disabled {
.el-upload--picture-card {
display: none;
}
}
.disabled-row {
background-color: #f5f7fa !important;
color: #909399;
cursor: not-allowed;
}
.disabled-row .el-checkbox__input {
cursor: not-allowed !important;
}
.disabled-row:hover td {
background-color: #f5f7fa !important;
}
</style>

View File

@ -0,0 +1,368 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable maxlength="20"
style="width: 300px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="证件编号" prop="certificateNo">
<el-input
v-model="queryParams.certificateNo"
placeholder="请输入证件编号"
clearable maxlength="20"
style="width: 300px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>核验任务下达</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableListData" @selection-change="handleSelectionChange" height="800">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="身份证号" align="center" prop="idNumber" :show-overflow-tooltip="true"/>
<el-table-column label="证件类型" align="center" prop="certificateTypeName" :show-overflow-tooltip="true"/>
<el-table-column label="证件编号" align="center" prop="certificateNo" :show-overflow-tooltip="true"/>
<el-table-column label="申请出境时间" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="申请入境时间" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="核验类型" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="核验状态" align="center" prop="" :show-overflow-tooltip="true"/>
<el-table-column label="核验结果" align="center" prop="" :show-overflow-tooltip="true"/>
<!-- <el-table-column label="当前状态" align="center" prop="stateName" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.state==0" style="color: #FF7322;font-size: 15px;">{{scope.row.stateName}}</span>
<span v-if="scope.row.state==1" style="color: #FEE838;font-size: 15px;">{{scope.row.stateName}}</span>
<span v-if="scope.row.state==2" style="color: #03DF6D;font-size: 15px;">{{scope.row.stateName}}</span>
<span v-if="scope.row.state==3" style="color: #FEE838;font-size: 15px;">{{scope.row.stateName}}</span>
<span v-if="scope.row.state==4" style="color: #FF7322;font-size: 15px;">{{scope.row.stateName}}</span>
</template>
</el-table-column> -->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog title="核验任务下达" :visible.sync="open" width="700px" append-to-body>
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="80px">
<el-row>
<el-col :span="24">
<el-form-item label-width="120px" label="选择核验类型" prop="verificationType">
<el-radio-group v-model="baseForm.verificationType" size="small">
<el-radio label="1">有无证件</el-radio>
<el-radio label="2">一人多证</el-radio>
<el-radio label="3">出入境时间</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="核验截止日期" prop="verificationDate">
<el-date-picker
v-model="baseForm.verificationDate"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDept,
getDept,
delDept,
addDept,
updateDept,
listDeptExcludeChild,
} from '@/api/system/dept'
import { getCertificateInfoListPageApi,addCertificateInfoApi, updateCertificateInfoApi,
deleteCertificateInfoApi,getSysUserListApi } from "@/api/certificateManage/index";
import base64 from 'base-64';
import { getToken } from '@/utils/auth'
import { downloadFileByUrl } from '@/utils/download'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
name: "",
dicts: ["sys_certificate_type"],
components: { Treeselect },
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
tableListData: [],
//
title: "",
//
open: false,
certificateNos:[],
//
queryParams: {
pageNum: 1,
pageSize: 10,
name:null,//
certificateNo:null,//
},
//
baseForm: {
verificationType:1,
verificationDate:"",
},
//
baseFormRules: {
verificationType: [
{ required: true, message: "核验类型不能为空", trigger: "blur" }
],
verificationDate: [
{ required: true, message: "核验截至日期不能为空", trigger: "blur" }
]
},
};
},
mounted(){
this.getList();
},
methods: {
validateIDCard(rule, value, callback) {
// 15
const reg15 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
// 18
const reg18 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|X|x)$/;
if (reg15.test(value) || reg18.test(value)) {
callback(); //
} else {
callback(new Error('请输入有效的身份证号')); //
}
},
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" },
{ validator: this.validateIDCard, 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" },
{ pattern: /^1[3456789]\d{9}$/, 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" },
{ validator: this.validateIDCard, 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" },
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
],
issueLifespan: [
{ required: true, message: "有效期不能为空", trigger: "blur" }
]
}
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 查询列表 */
getList() {
this.loading = true;
let param = {
"pageNum":this.queryParams.pageNum,
"pageSize":this.queryParams.pageSize,
"idNumber":this.queryParams.idNumber,
"name":this.queryParams.name,
"certificateNo":this.queryParams.certificateNo
}
console.log("param",param)
// let str = base64.encode(JSON.stringify(param))
// console.log({"content":str})
getCertificateInfoListPageApi(param).then(response => {
this.tableListData = response.rows;
this.total = Number(response.total);
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.baseForm = {
deptId:null,
name:"",
idNumber:"",
birthday:"",
birthAddr:"",
certificateType:"",
certificateTypeName:"",
certificateNo:"",
issueAddr:"",
issueDay:"",
issueLifespan:"",
isEle:"0",isCreate:"0"
};
this.resetForm("baseForm");
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
console.log("this.baseForm",this.baseForm);
},
//
handleSelectionChange(selection) {
this.certificateNos = selection.map(item => item.certificateNo)
},
/** 提交按钮 */
submitForm: function() {
console.log("this.baseForm",this.baseForm);
this.$refs["baseForm"].validate(valid => {
if (valid) {
if (this.baseForm.createTime != undefined) {
updateCertificateInfoApi(this.baseForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addCertificateInfoApi(this.baseForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
formatDate(date) {
// YYYY-MM-DD
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 0
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
}
};
</script>
<style scoped lang="scss">
.form-title{
display: flex;
align-items: flex-end;
// width: 100%;
// height: 40px;
background: #e7f0fa;
border-left: 3px solid #46a6ff;
margin: 10px 0;
padding: 5px;
}
.form-item{
width: 100%;
font-size: 14px !important;
}
</style>