前端代码优化
This commit is contained in:
parent
25179e7051
commit
d02cb070cf
|
|
@ -303,7 +303,7 @@ export function editCertificateApplyApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
// 证件领用申请删除
|
||||
// 证件领用申请-删除
|
||||
export function delCertificateApplyApi(data) {
|
||||
return request({
|
||||
url: '/certificate/certificate_check/certificateApply/del',
|
||||
|
|
@ -314,7 +314,17 @@ export function delCertificateApplyApi(data) {
|
|||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 证件领用申请-撤销
|
||||
export function revokeCertificateApplyApi(data) {
|
||||
return request({
|
||||
url: '/certificate/certificate_check/certificateApply/Revoke',
|
||||
method: 'post',
|
||||
headers: {
|
||||
//"merchant-id":"378915229716713472",
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 证件领用审核列表-分页查询
|
||||
export function getCertificateExamListPageApi(data) {
|
||||
|
|
@ -327,6 +337,19 @@ export function getCertificateExamListPageApi(data) {
|
|||
params:data
|
||||
})
|
||||
}
|
||||
//存取证审核列表-分页查询 type 1 待处理 2已处理
|
||||
export function getCertificateExamListByTypePageApi(data) {
|
||||
return request({
|
||||
url: '/certificate/certificate_check/certificateCheck/listByType',
|
||||
method: 'get',
|
||||
headers: {
|
||||
//"merchant-id":"378915229716713472",
|
||||
},
|
||||
params:data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 证件领用审核-审核
|
||||
export function checkCertificateApplyApi(data) {
|
||||
return request({
|
||||
|
|
@ -339,6 +362,18 @@ export function checkCertificateApplyApi(data) {
|
|||
})
|
||||
}
|
||||
|
||||
// 证件领用审核-流程详情
|
||||
export function applyCheckProcessApi(data) {
|
||||
return request({
|
||||
url: '/certificate/certificate_check/certificateCheck/checkProcess',
|
||||
method: 'post',
|
||||
headers: {
|
||||
//"merchant-id":"378915229716713472",
|
||||
},
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 核验任务列表-分页查询
|
||||
export function getCertificateVerifyListPageApi(data) {
|
||||
return request({
|
||||
|
|
@ -385,3 +420,16 @@ export function getCertificateVerifyDetailApi(data) {
|
|||
params:data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 问题反馈-列表
|
||||
export function getFeedbackListPageApi(data) {
|
||||
return request({
|
||||
url: '/certificate/certificate_feedback/list',
|
||||
method: 'get',
|
||||
headers: {
|
||||
//"merchant-id":"378915229716713472",
|
||||
},
|
||||
params:data
|
||||
})
|
||||
}
|
||||
|
|
@ -9,6 +9,12 @@
|
|||
style="width: 300px"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-radio-group v-model="queryParams.type" @change="getList" style="width: 300px">
|
||||
<el-radio label="1">待我处理</el-radio>
|
||||
<el-radio label="2">我已处理</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="身份证号" prop="idNumber">
|
||||
<el-input
|
||||
|
|
@ -35,25 +41,16 @@
|
|||
</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 v-loading="loading" :data="tableListData" 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="userName" :show-overflow-tooltip="true" width="120"/>
|
||||
<el-table-column label="申请类型" align="center" prop="applyType" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.applyType==1">存证</span>
|
||||
|
|
@ -94,7 +91,7 @@
|
|||
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini" v-if="scope.row.applyState==0||scope.row.applyState==1"
|
||||
size="mini" v-if="queryParams.type==1&&(scope.row.applyState==0||scope.row.applyState==1)"
|
||||
type="text"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>审核</el-button>
|
||||
|
|
@ -113,136 +110,118 @@
|
|||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<el-dialog title="申请详情" :visible.sync="openView" width="1100px" append-to-body>
|
||||
<div style="width: 100%;height: 500px;overflow-y: auto;">
|
||||
<el-descriptions title="存取证申请" :column="2" size="small" border>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">申请类型</template>
|
||||
<span v-if="applyRow.applyType==1">存证</span>
|
||||
<span v-if="applyRow.applyType==2">取证</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">申请人</template>
|
||||
{{applyRow.userName}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">证件编号</template>
|
||||
{{applyRow.certificateNo}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">证件用途</template>
|
||||
<span v-if="applyRow.applyReason==1">公事</span>
|
||||
<span v-if="applyRow.applyReason==2">私事</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">事由</template>
|
||||
<div>
|
||||
{{applyRow.applyDetail}}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item v-if="applyRow.applyType==2">
|
||||
<template slot="label">计划出国地点</template>
|
||||
{{applyRow.exitAddr}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="applyRow.applyType==2">
|
||||
<template slot="label">计划出国日期</template>
|
||||
{{applyRow.exitTime}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="applyRow.applyType==2">
|
||||
<template slot="label">计划回国日期</template>
|
||||
{{applyRow.entryTime}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">允许他人代办</template>
|
||||
<span v-if="applyRow.isThrid==1">是</span>
|
||||
<span v-if="applyRow.isThrid==2">否</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="applyRow.isThrid==1">
|
||||
<template slot="label">代办人</template>
|
||||
{{applyRow.thridName}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="applyRow.isThrid==1">
|
||||
<template slot="label">代办人身份证号</template>
|
||||
{{applyRow.thridIdNumber}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<!-- 添加或修改参数配置对话框 -->
|
||||
<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-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请人" prop="name">
|
||||
<el-input v-model="baseForm.name" placeholder="点击选择申请人" maxlength="30" readonly/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="岗位" prop="postId">
|
||||
<el-select
|
||||
v-model="baseForm.postId"
|
||||
style="width: 100%;"
|
||||
placeholder="请选择岗位"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in postOptions"
|
||||
:key="item.postId+''"
|
||||
:label="item.postName"
|
||||
:value="item.postId+''"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</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="certificateType">
|
||||
<el-select v-model="baseForm.certificateType" placeholder="证件类型" clearable style="width: 100%;">
|
||||
<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="applyReason">
|
||||
<el-select v-model="baseForm.applyReason" placeholder="请选择领用原因" clearable style="width: 100%;">
|
||||
<el-option
|
||||
v-for="dict in dict.type.issue_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="详细说明" prop="applyDetail">
|
||||
<el-input v-model="baseForm.applyDetail" type="textarea" placeholder="请输入内容"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="预计使用时间" prop="dateRange">
|
||||
<el-date-picker
|
||||
v-model="baseForm.dateRange"
|
||||
type="daterange"
|
||||
align="right"
|
||||
unlink-panels
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
format="yyyy-MM-dd" style="width: 100%">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件上传">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:limit="3"
|
||||
accept=".xlsx, .xls, .jpg, .png"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url"
|
||||
:disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress"
|
||||
:file-list="fileList"
|
||||
:on-success="handleFileSuccess"
|
||||
:on-remove="handleRemove"
|
||||
:on-preview="handlePreviewDownloadFile"
|
||||
:auto-upload="true"
|
||||
drag
|
||||
>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div style="font-size: 18px;font-weight: 600;margin-bottom: 4px;">注意事项</div>
|
||||
<div style="font-size: 16px;margin-bottom: 4px;">1.因公出国需提供单位出具的出差证明</div>
|
||||
<div style="font-size: 16px;margin-bottom: 4px;">2.因私出国需提供相关证明材料(如邀请函等)</div>
|
||||
<div style="font-size: 16px;margin-bottom: 4px;">3.证件领取后请妥善保管,如有遗失需立即报告</div>
|
||||
<div style="font-size: 16px;margin-bottom: 4px;">4.使用完毕后请及时归还证件</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">备注</template>
|
||||
{{applyRow.remark}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">附件</template>
|
||||
<div v-if="applyRow.fileList&&applyRow.fileList.length>0" style="width: 100%;height: 100px;display: flex;align-items: center;">
|
||||
<img v-for="(item,index) in applyRow.fileList" :key="index" :src="item.url" @click="handlePictureCardPreview(item)" style="width: 60px;height: 60px;margin-right: 8px;"/>
|
||||
</div>
|
||||
<div v-else>无附件</div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<div style="width: 100%;height: auto;padding: 20px;">
|
||||
<div style="margin-bottom: 20px;font-weight: 600;font-size: 18px;">流程</div>
|
||||
<el-steps :active="checkProcess.length" finish-status="success" :space="300" align-center>
|
||||
<el-step v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+'-'+item.processName" >
|
||||
<template slot="description">
|
||||
<div>
|
||||
<span v-if="item.checkState==1" style="color: rgb(31, 114, 234);font-size: 18px;">同意</span>
|
||||
<span v-if="item.checkState==2" style="color: rgb(230, 0, 68);font-size: 18px;">拒绝</span>
|
||||
<span v-if="item.checkState==1" style="color: rgb(31, 114, 234);margin-left: 10px;font-size: 14px;">{{item.createTime}}</span>
|
||||
<span v-if="item.checkState==2" style="color: rgb(230, 0, 68);margin-left: 10px;font-size: 14px;">{{item.createTime}}</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="success" @click="submitForm(1)" v-if="!isView">同 意</el-button>
|
||||
<el-button type="danger" @click="submitForm(2)" v-if="!isView">拒 绝</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
<el-button type="success" v-if="!isView" @click="submitForm(1)">同 意</el-button>
|
||||
<el-button type="danger" v-if="!isView" @click="submitForm(2)">驳 回</el-button>
|
||||
<el-button @click="openView=false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="附件列表" :visible.sync="openFile" width="500px" append-to-body>
|
||||
<div style="width: 100%;height: 240px;padding: 10px;color: #46a6ff;display: flex;flex-wrap: wrap;">
|
||||
<div v-for="(item,index) in fileList" :key="index" style="margin: 10px;">
|
||||
<div style="margin-bottom: 10px;"><img :src="item.url" @click="handlePictureCardPreview(item)" style="width: 60px;height: 60px;margin-right: 8px;"/></div>
|
||||
<div style="cursor: pointer;" @click="handlePreviewDownloadFile(item)">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="openFile=false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="查看附件" :visible.sync="openFile" width="400px" append-to-body>
|
||||
<div style="width: 100%;padding: 10px;color: #46a6ff;">
|
||||
<div v-for="(item,index) in fileList" :key="index" style="margin: 10px;cursor: pointer;" @click="handlePreviewDownloadFile(item)">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="openFile=false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog :visible.sync="dialogVisible" width="700px">
|
||||
<img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt="">
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUser } from '@/api/system/user'
|
||||
import { getCertificateExamListPageApi,checkCertificateApplyApi,getSysUserListApi,addCertificateCheckApi } from "@/api/certificateManage/index";
|
||||
<script>
|
||||
import { getCertificateExamListByTypePageApi,checkCertificateApplyApi,applyCheckProcessApi } from "@/api/certificateManage/index";
|
||||
import base64 from 'base-64';
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { downloadFileByUrl } from '@/utils/download'
|
||||
|
|
@ -271,99 +250,34 @@
|
|||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
checked: false,
|
||||
isCreateFlage:true,
|
||||
userNameFlage:false,
|
||||
certificateNos:[],
|
||||
userIds:[],
|
||||
isReadOnly:false,
|
||||
openSelectUser:false,
|
||||
selectItme:{},
|
||||
allUserList:[],
|
||||
// 部门树选项
|
||||
deptOptions: [],
|
||||
open: false,
|
||||
certificateNos:[],
|
||||
openSelectUser:false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
idNumber:null,//身份证号
|
||||
type:'1',//身份证号
|
||||
name:null,//姓名
|
||||
},
|
||||
activeName:"baseSetting",
|
||||
deviceData:{},
|
||||
// 岗位选项
|
||||
postOptions: [],
|
||||
// 表单参数
|
||||
baseForm: {
|
||||
userId:"",
|
||||
postId:"",
|
||||
phone:"",
|
||||
certificateType:"",
|
||||
applyReason:"",
|
||||
applyDetail:"",
|
||||
startTime:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
dateRange:[]
|
||||
},
|
||||
isView:false,
|
||||
// 表单校验
|
||||
baseFormRules: {
|
||||
name: [
|
||||
{ required: true, message: "申请人不能为空", trigger: "change" }
|
||||
],
|
||||
userId: [
|
||||
{ required: true, message: "申请人不能为空", trigger: "change" }
|
||||
],
|
||||
phone: [
|
||||
{ required: true, message: "手机号码不能为空", trigger: "change" },
|
||||
{ pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号', trigger: 'change' }
|
||||
],
|
||||
postId: [
|
||||
{ required: true, message: "岗位不能为空", trigger: "change" },
|
||||
],
|
||||
certificateType: [
|
||||
{ required: true, message: "证件类型不能为空", trigger: "change" }
|
||||
],
|
||||
applyReason: [
|
||||
{ required: true, message: "领用原因不能为空", trigger: "change" }
|
||||
],
|
||||
applyDetail: [
|
||||
{ required: true, message: "详细说明不能为空", trigger: "blur" }
|
||||
],
|
||||
dateRange: [
|
||||
{ required: true, message: "预计使用时间不能为空", trigger: "change" }
|
||||
],
|
||||
|
||||
},
|
||||
//导入参数
|
||||
upload: {
|
||||
// 是否禁用上传
|
||||
isUploading: false,
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: 'Bearer ' + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + '/file/upload?type=face',
|
||||
},
|
||||
fileList:[],
|
||||
fileUrls:[],
|
||||
fileNames:[],
|
||||
openFile:false
|
||||
openFile:false,
|
||||
checkProcess:[],
|
||||
dialogVisible:false,//图片弹窗
|
||||
dialogImageUrl:"",//图片弹窗
|
||||
openView:false,//查看弹窗
|
||||
applyRow:{},
|
||||
isView:false,
|
||||
};
|
||||
},
|
||||
mounted(){
|
||||
this.getPostList();
|
||||
mounted(){
|
||||
this.getList();
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
getPostList(){
|
||||
getUser().then((response) => {
|
||||
this.postOptions = response.posts
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
|
|
@ -380,138 +294,75 @@
|
|||
let param = {
|
||||
"pageNum":this.queryParams.pageNum,
|
||||
"pageSize":this.queryParams.pageSize,
|
||||
"idNumber":this.queryParams.idNumber,
|
||||
// "idNumber":this.queryParams.idNumber,
|
||||
"name":this.queryParams.name,
|
||||
"certificateType":this.queryParams.certificateType,
|
||||
"type":this.queryParams.type,
|
||||
// "certificateType":this.queryParams.certificateType,
|
||||
// "certificateNo":this.queryParams.certificateNo
|
||||
}
|
||||
getCertificateExamListPageApi(param).then(response => {
|
||||
getCertificateExamListByTypePageApi(param).then(response => {
|
||||
this.tableListData = response.rows;
|
||||
this.total = Number(response.total);
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
this.baseForm = {
|
||||
userId:"",
|
||||
postId:"",
|
||||
phone:"",
|
||||
certificateType:"",
|
||||
applyReason:"",
|
||||
applyDetail:"",
|
||||
startTime:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
dateRange:[]
|
||||
};
|
||||
this.resetForm("baseForm");
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=false;
|
||||
this.title = "新增";
|
||||
console.log("this.baseForm",this.baseForm);
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
applyCheckProcess() {
|
||||
let param = {
|
||||
"checkId":this.applyRow.checkId,
|
||||
}
|
||||
applyCheckProcessApi(param).then(response => {
|
||||
this.checkProcess = response.data||[];
|
||||
});
|
||||
},
|
||||
/** 审批按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=false;
|
||||
this.baseForm = Object.assign({}, row)
|
||||
this.baseForm.dateRange = [row.startTime,row.endTime]
|
||||
this.applyRow = row;
|
||||
this.applyCheckProcess()
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
let arr2 = row.fileName.split(",");
|
||||
this.applyRow.fileList=[]
|
||||
arr.forEach((item,index)=>{
|
||||
this.fileList.push({url:item,name:arr2[index]})
|
||||
this.fileUrls.push(item)
|
||||
this.fileNames.push(arr2[index])
|
||||
this.applyRow.fileList.push({url:item,name:arr2[index]})
|
||||
})
|
||||
}else{
|
||||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
}
|
||||
this.upload.isUploading = true
|
||||
this.isView = false
|
||||
this.title = "修改";
|
||||
this.applyRow.fileList=[]
|
||||
}
|
||||
console.log(this.applyRow.fileList)
|
||||
this.isView=false;
|
||||
this.openView = true;
|
||||
},
|
||||
handleView(row) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=true;
|
||||
this.baseForm = Object.assign({}, row)
|
||||
getUser().then((response) => {
|
||||
this.postOptions = response.posts
|
||||
})
|
||||
this.baseForm.dateRange = [row.startTime,row.endTime]
|
||||
this.applyRow = row;
|
||||
this.applyCheckProcess()
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
let arr2 = row.fileName.split(",");
|
||||
this.applyRow.fileList=[]
|
||||
arr.forEach((item,index)=>{
|
||||
this.fileList.push({url:item,name:arr2[index]})
|
||||
this.fileUrls.push(item)
|
||||
this.fileNames.push(arr2[index])
|
||||
this.applyRow.fileList.push({url:item,name:arr2[index]})
|
||||
})
|
||||
}else{
|
||||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
}
|
||||
this.upload.isUploading = true
|
||||
this.isView = true
|
||||
this.title = "查看";
|
||||
this.applyRow.fileList=[]
|
||||
}
|
||||
console.log(this.applyRow.fileList)
|
||||
this.isView=true;
|
||||
this.openView = true;
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function(type) {
|
||||
//checkState 1同意 2拒绝 checkId
|
||||
console.log("this.baseForm",this.baseForm);
|
||||
console.log("this.applyRow",this.applyRow);
|
||||
let param = {
|
||||
checkId:this.baseForm.checkId,
|
||||
checkId:this.applyRow.checkId,
|
||||
checkState:type
|
||||
}
|
||||
checkCertificateApplyApi(param).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.openView = false;
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
this.upload.isUploading = true
|
||||
},
|
||||
// 文件上传成功处理
|
||||
handleFileSuccess(response, file, fileList) {
|
||||
this.upload.isUploading = false;
|
||||
if(response.code==200){
|
||||
this.fileUrls.push(response.data.url)
|
||||
this.fileNames.push(response.data.name)
|
||||
this.$modal.msgSuccess(response.msg);
|
||||
}else{
|
||||
this.$modal.msgError(response.msg);
|
||||
}
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
let sum = 0
|
||||
this.fileNames.forEach((item, index) => {
|
||||
if (item == file.name) {
|
||||
sum = index
|
||||
}
|
||||
})
|
||||
this.fileUrls.splice(sum, 1)
|
||||
this.fileNames.splice(sum, 1)
|
||||
},
|
||||
},
|
||||
async handlePreviewDownloadFile(file) {
|
||||
if (file.url != null && file.url !== '') {
|
||||
let downloadUrl = file.url;
|
||||
|
|
@ -556,19 +407,12 @@
|
|||
})
|
||||
}
|
||||
this.openFile = true
|
||||
},
|
||||
/** 批量删除 */
|
||||
handleBatchDel(){
|
||||
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
// this.certificateNos = selection.map(item => item.certificateNo)
|
||||
// this.userIds=selection.map(item => item.userId)
|
||||
// // 更新单选和多选状态
|
||||
// this.single = selection.length !== 1
|
||||
// this.multiple = !selection.length
|
||||
},
|
||||
},
|
||||
//图片点击查看
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
formatDate(date) {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始
|
||||
|
|
|
|||
|
|
@ -54,14 +54,14 @@
|
|||
</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 v-loading="loading" :data="tableListData" 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="userName" :show-overflow-tooltip="true" width="120"/>
|
||||
<el-table-column label="申请类型" align="center" prop="applyType" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.applyType==1">存证</span>
|
||||
|
|
@ -86,7 +86,8 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="附件" align="center" prop="" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span @click="checkFile(scope.row)" style="cursor: pointer;color: #46a6ff;">查看</span>
|
||||
<span v-if="scope.row.fileUrl!=''" @click="checkFile(scope.row)" style="cursor: pointer;color: #46a6ff;">查看</span>
|
||||
<span v-else>无附件</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="申请状态" align="center" prop="applyState" :show-overflow-tooltip="true">
|
||||
|
|
@ -111,6 +112,12 @@
|
|||
type="text"
|
||||
@click="handleView(scope.row)"
|
||||
>查看</el-button>
|
||||
<el-button
|
||||
size="mini" v-if="scope.row.applyState==0"
|
||||
type="text"
|
||||
style="color: red;"
|
||||
@click="handleRevoke(scope.row)"
|
||||
>撤销</el-button>
|
||||
<el-button
|
||||
size="mini" v-if="scope.row.applyState==-1"
|
||||
type="text"
|
||||
|
|
@ -130,33 +137,39 @@
|
|||
|
||||
|
||||
<!-- 添加或修改参数配置对话框 -->
|
||||
<el-dialog :title="title+''" :visible.sync="open" width="1000px" append-to-body>
|
||||
<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-dialog :title="title+''" :visible.sync="open" width="1000px" append-to-body>
|
||||
<el-form ref="baseForm" :model="baseForm" :rules="baseFormRules" label-width="120px" style="width: 100%;height: 650px;overflow-y: auto;padding-right: 10px;">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请人" prop="name">
|
||||
<el-input v-model="baseForm.name" placeholder="点击选择申请人" maxlength="30" clearable readonly @focus="handleSelect()"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请类型" prop="applyType">
|
||||
<el-radio-group v-model="baseForm.applyType" @input="changeApplyType">
|
||||
<el-radio :label="1">存证</el-radio>
|
||||
<el-radio :label="2">取证</el-radio>
|
||||
<el-form-item label="申请类型" prop="applyType" required>
|
||||
<el-radio-group v-model="baseForm.applyType" @change="changeApplyType">
|
||||
<el-radio label="1">存证</el-radio>
|
||||
<el-radio label="2">取证</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请人" prop="userId">
|
||||
<el-select
|
||||
v-model="baseForm.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="chosenSysUser(item)"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="证件编号" prop="certificateNos">
|
||||
<el-select v-model="baseForm.certificateNos" multiple placeholder="请选择证件编号" clearable style="width: 100%;">
|
||||
<el-select v-model="baseForm.certificateNos" multiple placeholder="请先选择申请人再选择证件编号" clearable style="width: 100%;">
|
||||
<el-option
|
||||
v-for="item in certificateList"
|
||||
:key="item.certificateNo"
|
||||
|
|
@ -167,25 +180,24 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="证件用途" prop="applyReason">
|
||||
<el-form-item label="证件用途" prop="applyReason">
|
||||
<el-radio-group v-model="baseForm.applyReason">
|
||||
<el-radio :label="1">公事</el-radio>
|
||||
<el-radio :label="2">私事</el-radio>
|
||||
<el-radio label="1">公事</el-radio>
|
||||
<el-radio label="2">私事</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="事由" prop="applyDetail">
|
||||
<el-input v-model="baseForm.applyDetail" type="textarea" placeholder="请输入申请事由"></el-input>
|
||||
<el-input v-model="baseForm.applyDetail" type="textarea" placeholder="请输入申请事由" maxlength="100"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="12" v-if="baseForm.applyType==2">
|
||||
<el-form-item label="计划出国地点" prop="exitAddr">
|
||||
<el-input v-model="baseForm.exitAddr" placeholder="计划出国(境)地点" maxlength="50" clearable/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-input v-model="baseForm.exitAddr" placeholder="计划出国(境)地点" maxlength="30" clearable/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="baseForm.applyType==2">
|
||||
<el-form-item label="计划出国日期" prop="exitTime">
|
||||
<el-date-picker
|
||||
v-model="baseForm.exitTime"
|
||||
|
|
@ -195,7 +207,7 @@
|
|||
value-format="yyyy-MM-dd"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="12" v-if="baseForm.applyType==2">
|
||||
<el-form-item label="计划回国日期" prop="entryTime">
|
||||
<el-date-picker
|
||||
v-model="baseForm.entryTime"
|
||||
|
|
@ -206,15 +218,15 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="允许他人代办" prop="isThrid" >
|
||||
<el-radio-group v-model="baseForm.isThrid">
|
||||
<el-radio :label="1">是</el-radio>
|
||||
<el-radio :label="2">否</el-radio>
|
||||
<el-form-item label="允许他人代办" prop="isThrid" required>
|
||||
<el-radio-group v-model="baseForm.isThrid" @change="changeIsThrid">
|
||||
<el-radio label="1">是</el-radio>
|
||||
<el-radio label="2">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="代办人" prop="thridId" >
|
||||
<el-col :span="12" v-if="baseForm.isThrid==1">
|
||||
<el-form-item label="代办人" prop="thridId" >
|
||||
<el-select v-model="baseForm.thridId" placeholder="请先选择申请人后再选择代办人" clearable style="width: 100%;" @change="changThridId">
|
||||
<el-option
|
||||
v-for="item in thridManList"
|
||||
|
|
@ -225,14 +237,14 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="12" v-if="baseForm.isThrid==1">
|
||||
<el-form-item label="代办人身份证号" prop="thridIdNumber">
|
||||
<el-input v-model="baseForm.thridIdNumber" placeholder="代办人身份证号" maxlength="30" clearable readonly />
|
||||
<el-input v-model="baseForm.thridIdNumber" placeholder="代办人身份证号" maxlength="20" clearable readonly />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="baseForm.remark" type="textarea" placeholder="请输入备注"></el-input>
|
||||
<el-input v-model="baseForm.remark" type="textarea" placeholder="请输入备注" maxlength="100"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
|
|
@ -240,7 +252,7 @@
|
|||
<el-upload
|
||||
ref="upload"
|
||||
:limit="3"
|
||||
accept=".xlsx, .xls, .jpg, .png"
|
||||
accept=".png, .jpg, .jpeg"
|
||||
:headers="upload.headers"
|
||||
:action="upload.url"
|
||||
:disabled="upload.isUploading"
|
||||
|
|
@ -265,61 +277,123 @@
|
|||
<div style="font-size: 16px;margin-bottom: 4px;">4.使用完毕后请及时归还证件</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="success" @click="submitForm(-1)" v-if="!isView">保 存</el-button>
|
||||
<el-button type="primary" @click="submitForm(0)" v-if="!isView">提 交</el-button>
|
||||
<el-button type="success" @click="submitForm(-1)">保 存</el-button>
|
||||
<el-button type="primary" @click="submitForm(0)">提 交</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 选择人员 -->
|
||||
<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-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="openFile" width="400px" append-to-body>
|
||||
<div style="width: 100%;padding: 10px;color: #46a6ff;">
|
||||
<div v-for="(item,index) in fileList" :key="index" style="margin: 10px;cursor: pointer;" @click="handlePreviewDownloadFile(item)">
|
||||
{{ item.name }}
|
||||
<el-dialog title="申请详情" :visible.sync="openView" width="1100px" append-to-body>
|
||||
<div style="width: 100%;height: 500px;overflow-y: auto;">
|
||||
<el-descriptions title="存取证申请" :column="2" size="small" border>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">申请类型</template>
|
||||
<span v-if="viewRow.applyType==1">存证</span>
|
||||
<span v-if="viewRow.applyType==2">取证</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">申请人</template>
|
||||
{{viewRow.userName}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">证件编号</template>
|
||||
{{viewRow.certificateNo}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">证件用途</template>
|
||||
<span v-if="viewRow.applyReason==1">公事</span>
|
||||
<span v-if="viewRow.applyReason==2">私事</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">事由</template>
|
||||
<div>
|
||||
{{viewRow.applyDetail}}
|
||||
</div>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item v-if="viewRow.applyType==2">
|
||||
<template slot="label">计划出国地点</template>
|
||||
{{viewRow.exitAddr}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewRow.applyType==2">
|
||||
<template slot="label">计划出国日期</template>
|
||||
{{viewRow.exitTime}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewRow.applyType==2">
|
||||
<template slot="label">计划回国日期</template>
|
||||
{{viewRow.entryTime}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item>
|
||||
<template slot="label">允许他人代办</template>
|
||||
<span v-if="viewRow.isThrid==1">是</span>
|
||||
<span v-if="viewRow.isThrid==2">否</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewRow.isThrid==1">
|
||||
<template slot="label">代办人</template>
|
||||
{{viewRow.thridName}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="viewRow.isThrid==1">
|
||||
<template slot="label">代办人身份证号</template>
|
||||
{{viewRow.thridIdNumber}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">备注</template>
|
||||
{{viewRow.remark}}
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item :span="2">
|
||||
<template slot="label">附件</template>
|
||||
<div v-if="viewRow.fileList&&viewRow.fileList.length>0" style="width: 100%;height: 100px;display: flex;align-items: center;">
|
||||
<img v-for="(item,index) in viewRow.fileList" :key="index" :src="item.url" @click="handlePictureCardPreview(item)" style="width: 60px;height: 60px;margin-right: 8px;"/>
|
||||
</div>
|
||||
<div v-else>无附件</div>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<div style="width: 100%;height: auto;padding: 20px;">
|
||||
<div style="margin-bottom: 20px;font-weight: 600;font-size: 18px;">流程</div>
|
||||
<el-steps :active="checkProcess.length" finish-status="success" :space="300" align-center>
|
||||
<el-step v-for="(item,index) in checkProcess" :key="index" :title="item.createBy+'-'+item.processName" >
|
||||
<template slot="description">
|
||||
<div>
|
||||
<span v-if="item.checkState==1" style="color: rgb(31, 114, 234);font-size: 18px;">同意</span>
|
||||
<span v-if="item.checkState==2" style="color: rgb(230, 0, 68);font-size: 18px;">拒绝</span>
|
||||
<span v-if="item.checkState==1" style="color: rgb(31, 114, 234);margin-left: 10px;font-size: 14px;">{{item.createTime}}</span>
|
||||
<span v-if="item.checkState==2" style="color: rgb(230, 0, 68);margin-left: 10px;font-size: 14px;">{{item.createTime}}</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="附件列表" :visible.sync="openFile" width="500px" append-to-body>
|
||||
<div style="width: 100%;height: 240px;padding: 10px;color: #46a6ff;display: flex;flex-wrap: wrap;">
|
||||
<div v-for="(item,index) in fileList" :key="index" style="margin: 10px;">
|
||||
<div style="margin-bottom: 10px;"><img :src="item.url" @click="handlePictureCardPreview(item)" style="width: 60px;height: 60px;margin-right: 8px;"/></div>
|
||||
<div style="cursor: pointer;" @click="handlePreviewDownloadFile(item)">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="openFile=false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog :visible.sync="dialogVisible" width="700px">
|
||||
<img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt="">
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getUser } from '@/api/system/user'
|
||||
import { getCertificateApplyListPageApi,addCertificateApplyApi, editCertificateApplyApi,
|
||||
delCertificateApplyApi,getSysUserListApi,addCertificateCheckApi,applyCertificateNoListApi,thridListApi } from "@/api/certificateManage/index";
|
||||
delCertificateApplyApi,revokeCertificateApplyApi,getSysUserListApi,applyCheckProcessApi,applyCertificateNoListApi,thridListApi } from "@/api/certificateManage/index";
|
||||
import base64 from 'base-64';
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { downloadFileByUrl } from '@/utils/download'
|
||||
|
|
@ -348,18 +422,7 @@
|
|||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
checked: false,
|
||||
isCreateFlage:true,
|
||||
userNameFlage:false,
|
||||
|
||||
userIds:[],
|
||||
isReadOnly:false,
|
||||
openSelectUser:false,
|
||||
selectItme:{},
|
||||
allUserList:[],
|
||||
// 部门树选项
|
||||
deptOptions: [],
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
|
|
@ -367,51 +430,51 @@
|
|||
idNumber:null,//身份证号
|
||||
name:null,//姓名
|
||||
},
|
||||
activeName:"baseSetting",
|
||||
deviceData:{},
|
||||
// 岗位选项
|
||||
postOptions: [],
|
||||
// 表单参数
|
||||
baseForm: {
|
||||
userId:"",
|
||||
applyType:1,
|
||||
applyReason:1,
|
||||
certificateNos:[],
|
||||
isThrid:2,
|
||||
applyType:"1",
|
||||
applyReason:"1",
|
||||
isThrid:"2",
|
||||
certificateNos:[],
|
||||
applyDetail:"",
|
||||
startTime:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
dateRange:[]
|
||||
exitAddr:"",
|
||||
exitTime:"",
|
||||
entryTime:"",
|
||||
thridId:"",
|
||||
thridName:"",
|
||||
thridIdNumber:"",
|
||||
remark:"",
|
||||
},
|
||||
selectItme:{},
|
||||
allUserList:[],
|
||||
certificateList:[],
|
||||
thridManList:[],
|
||||
isView:false,
|
||||
baseForm2: {
|
||||
userId:""
|
||||
},
|
||||
// 表单校验
|
||||
baseFormRules: {
|
||||
name: [
|
||||
{ required: true, message: "申请人不能为空", trigger: "change" }
|
||||
],
|
||||
userId: [
|
||||
{ required: true, message: "申请人不能为空", trigger: "change" }
|
||||
],
|
||||
postId: [
|
||||
{ required: true, message: "岗位不能为空", trigger: "change" },
|
||||
],
|
||||
certificateNos: [
|
||||
{ required: true, message: "证件编号不能为空", trigger: "change" }
|
||||
],
|
||||
applyReason: [
|
||||
{ required: true, message: "领用原因不能为空", trigger: "change" }
|
||||
],
|
||||
applyDetail: [
|
||||
{ required: true, message: "详细说明不能为空", trigger: "blur" }
|
||||
{ required: true, message: "事由不能为空", trigger: "blur" }
|
||||
],
|
||||
exitAddr: [
|
||||
{ required: true, message: "计划出国地点不能为空", trigger: "change" },
|
||||
],
|
||||
exitTime: [
|
||||
{ required: true, message: "计划出国日期不能为空", trigger: "change" },
|
||||
],
|
||||
entryTime: [
|
||||
{ required: true, message: "计划回国日期不能为空", trigger: "change" }
|
||||
],
|
||||
dateRange: [
|
||||
{ required: true, message: "预计使用时间不能为空", trigger: "change" }
|
||||
thridId: [
|
||||
{ required: true, message: "代办人不能为空", trigger: "change" }
|
||||
],
|
||||
thridIdNumber: [
|
||||
{ required: true, message: "代办人身份证号不能为空", trigger: "change" }
|
||||
],
|
||||
|
||||
},
|
||||
|
|
@ -427,13 +490,17 @@
|
|||
fileList:[],
|
||||
fileUrls:[],
|
||||
fileNames:[],
|
||||
openFile:false
|
||||
openFile:false,//查看附件
|
||||
checkProcess:[],
|
||||
dialogVisible:false,//图片弹窗
|
||||
dialogImageUrl:"",//图片弹窗
|
||||
openView:false,//查看弹窗
|
||||
viewRow:{}
|
||||
};
|
||||
},
|
||||
mounted(){
|
||||
this.getList();
|
||||
},
|
||||
|
||||
},
|
||||
methods: {
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
|
|
@ -468,34 +535,53 @@
|
|||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
this.certificateList=[]
|
||||
this.thridManList=[]
|
||||
this.baseForm = {
|
||||
userId:"",
|
||||
applyType:1,
|
||||
applyReason:1,
|
||||
isThrid:2,
|
||||
applyType:"1",
|
||||
applyReason:"1",
|
||||
isThrid:"2",
|
||||
certificateNos:[],
|
||||
applyDetail:"",
|
||||
startTime:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
dateRange:[]
|
||||
exitAddr:"",
|
||||
exitTime:"",
|
||||
entryTime:"",
|
||||
thridId:"",
|
||||
thridName:"",
|
||||
thridIdNumber:"",
|
||||
remark:"",
|
||||
};
|
||||
this.resetForm("baseForm");
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=false;
|
||||
this.getApplyUserList()
|
||||
this.open = true;
|
||||
this.title = "新增";
|
||||
console.log("this.baseForm",this.baseForm);
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=true;
|
||||
this.open = true;
|
||||
this.baseForm = Object.assign({}, row)
|
||||
this.baseForm.dateRange = [row.startTime,row.endTime]
|
||||
this.getApplyUserList()
|
||||
this.getCertificateList() //获取可申请证件编号列表
|
||||
setTimeout(()=>{
|
||||
this.$set(this.baseForm,"name",row.name)
|
||||
this.$set(this.baseForm,"userId",row.userId)
|
||||
this.$set(this.baseForm,"certificateNos",row.certificateNos)
|
||||
},1000)
|
||||
if(row.isThrid==1){
|
||||
this.getThridList();//获取代领人列表
|
||||
setTimeout(()=>{
|
||||
this.$set(this.baseForm,"thridId",row.thridId)
|
||||
this.$set(this.baseForm,"thridName",row.thridName)
|
||||
this.$set(this.baseForm,"thridIdNumber",row.thridIdNumber)
|
||||
},1000)
|
||||
}
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
let arr2 = row.fileName.split(",");
|
||||
|
|
@ -508,36 +594,73 @@
|
|||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
}
|
||||
his.isView = false
|
||||
}
|
||||
this.title = "修改";
|
||||
},
|
||||
handleView(row) {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.isReadOnly=true;
|
||||
this.baseForm = Object.assign({}, row)
|
||||
getUser().then((response) => {
|
||||
this.postOptions = response.posts
|
||||
})
|
||||
this.baseForm.dateRange = [row.startTime,row.endTime]
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
let arr2 = row.fileName.split(",");
|
||||
arr.forEach((item,index)=>{
|
||||
this.fileList.push({url:item,name:arr2[index]})
|
||||
this.fileUrls.push(item)
|
||||
this.fileNames.push(arr2[index])
|
||||
})
|
||||
}else{
|
||||
this.fileList=[]
|
||||
this.fileUrls=[]
|
||||
this.fileNames = []
|
||||
}
|
||||
this.upload.isUploading = true
|
||||
this.isView = true
|
||||
this.title = "查看";
|
||||
|
||||
//变更申请类型时获取可申请证件编号列表
|
||||
changeApplyType(){
|
||||
console.log('changeApplyType')
|
||||
this.getApplyUserList()
|
||||
this.certificateList=[]
|
||||
this.$set(this.baseForm,"certificateNos",[])
|
||||
this.thridManList=[]
|
||||
this.$set(this.baseForm,'thridId',null)
|
||||
this.$set(this.baseForm,'thridName',null)
|
||||
this.$set(this.baseForm,'thridIdNumber',null)
|
||||
},
|
||||
getApplyUserList(){
|
||||
const param={"applyType":this.baseForm.applyType,pageNum:1,pageSize:100}
|
||||
this.$set(this.baseForm,"name",null)
|
||||
this.$set(this.baseForm,"userId",null)
|
||||
getSysUserListApi(param).then(response => {
|
||||
console.log("response",response);
|
||||
this.allUserList=response;
|
||||
});
|
||||
},
|
||||
//选中人员-渲染数据
|
||||
chosenSysUser(val){
|
||||
console.log("chosenSysUser",val)
|
||||
this.selectItme=val;
|
||||
this.$set(this.baseForm,"name",this.selectItme.userName)
|
||||
this.$set(this.baseForm,"userId",this.selectItme.userId)
|
||||
this.getCertificateList();//获取可申请证件编号列表
|
||||
this.getThridList();//获取代领人列表
|
||||
},
|
||||
//获取可申请证件编号列表
|
||||
getCertificateList(){
|
||||
let param = {
|
||||
applyType:this.baseForm.applyType,
|
||||
userId:this.baseForm.userId
|
||||
}
|
||||
this.certificateList=[]
|
||||
this.$set(this.baseForm,"certificateNos",[])
|
||||
applyCertificateNoListApi(param).then((response) => {
|
||||
this.certificateList = response
|
||||
})
|
||||
},
|
||||
//获取代领人列表
|
||||
getThridList(){
|
||||
let param = {
|
||||
userId:this.baseForm.userId
|
||||
}
|
||||
this.thridManList=[]
|
||||
this.$set(this.baseForm,'thridId',null)
|
||||
this.$set(this.baseForm,'thridName',null)
|
||||
this.$set(this.baseForm,'thridIdNumber',null)
|
||||
thridListApi(param).then((response) => {
|
||||
this.thridManList = response.data
|
||||
})
|
||||
},
|
||||
changeIsThrid(){
|
||||
this.getThridList()
|
||||
},
|
||||
changThridId(val){
|
||||
console.log(val)
|
||||
let index = this.thridManList.findIndex(v=>v.id==val)
|
||||
this.$set(this.baseForm,'thridName',this.thridManList[index].name)
|
||||
this.$set(this.baseForm,'thridIdNumber',this.thridManList[index].idNumber)
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function(type) {
|
||||
console.log(this.baseForm.dateRange)
|
||||
|
|
@ -579,73 +702,42 @@
|
|||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
//获取代领人列表
|
||||
getThridList(){
|
||||
let param = {
|
||||
userId:this.baseForm.userId
|
||||
}
|
||||
this.thridManList=[]
|
||||
thridListApi(param).then((response) => {
|
||||
this.thridManList = response.data
|
||||
})
|
||||
},
|
||||
changThridId(val){
|
||||
console.log(val)
|
||||
let index = this.thridManList.findIndex(v=>v.id==val)
|
||||
this.$set(this.baseForm,'thridIdName',this.thridManList[index].name)
|
||||
this.$set(this.baseForm,'thridIdNumber',this.thridManList[index].idNumber)
|
||||
},
|
||||
//选择人员
|
||||
handleSelect(){
|
||||
this.openSelectUser = true;
|
||||
console.log("this.baseForm",this.baseForm);
|
||||
const param={"applyType":this.baseForm.applyType}
|
||||
getApplyUserListApi(param).then(response => {
|
||||
console.log("response",response);
|
||||
this.allUserList=response;
|
||||
this.$set(this.baseForm2,"userId",this.baseForm.userId)
|
||||
});
|
||||
},
|
||||
//选中人员-渲染数据
|
||||
getCorpAndDept(val){
|
||||
console.log("getCorpAndDept",val)
|
||||
this.selectItme=val;
|
||||
this.$set(this.baseForm2,"userId",this.selectItme.userId)
|
||||
},
|
||||
/** 提交选中人员*/
|
||||
submitForm2: function() {
|
||||
console.log("this.baseForm2",this.baseForm2);
|
||||
this.$refs["baseForm2"].validate(valid => {
|
||||
if (valid) {
|
||||
this.$set(this.baseForm,"name",this.selectItme.userName)
|
||||
this.$set(this.baseForm,"userId",this.selectItme.userId)
|
||||
this.getCertificateList();//获取可申请证件编号列表
|
||||
this.getThridList();//获取代领人列表
|
||||
this.openSelectUser = false;
|
||||
this.isCreateFlage=false;
|
||||
}
|
||||
applyCheckProcess() {
|
||||
let param = {
|
||||
"checkId":this.viewRow.checkId,
|
||||
}
|
||||
applyCheckProcessApi(param).then(response => {
|
||||
this.checkProcess = response.data||[];
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel2() {
|
||||
this.openSelectUser = false;
|
||||
},
|
||||
//获取可申请证件编号列表
|
||||
getCertificateList(){
|
||||
let param = {
|
||||
applyType:this.baseForm.applyType,
|
||||
userId:this.baseForm.userId
|
||||
}
|
||||
this.certificateList=[]
|
||||
applyCertificateNoListApi(param).then((response) => {
|
||||
this.certificateList = response
|
||||
})
|
||||
},
|
||||
//变更申请类型时获取可申请证件编号列表
|
||||
changeApplyType(e){
|
||||
console.log(e)
|
||||
this.getCertificateList();//获取可申请证件编号列表
|
||||
},
|
||||
//查看弹窗
|
||||
handleView(row) {
|
||||
this.viewRow = row;
|
||||
this.applyCheckProcess()
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
let arr2 = row.fileName.split(",");
|
||||
this.viewRow.fileList=[]
|
||||
arr.forEach((item,index)=>{
|
||||
this.viewRow.fileList.push({url:item,name:arr2[index]})
|
||||
})
|
||||
}else{
|
||||
this.viewRow.fileList=[]
|
||||
}
|
||||
console.log(this.viewRow.fileList)
|
||||
this.openView = true;
|
||||
},
|
||||
// 撤销
|
||||
handleRevoke(row) {
|
||||
this.$modal.confirm('是否确认撤销申请?').then(() => {
|
||||
revokeCertificateApplyApi({checkId:row.checkId}).then(response => {
|
||||
console.log("revokeCertificateApplyApi",response);
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("撤销成功");
|
||||
return;
|
||||
});
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
this.$modal.confirm('是否确认删除数据项?').then(() => {
|
||||
|
|
@ -727,18 +819,11 @@
|
|||
}
|
||||
this.openFile = true
|
||||
},
|
||||
/** 批量删除 */
|
||||
handleBatchDel(){
|
||||
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
// this.certificateNos = selection.map(item => item.certificateNo)
|
||||
// this.userIds=selection.map(item => item.userId)
|
||||
// // 更新单选和多选状态
|
||||
// this.single = selection.length !== 1
|
||||
// this.multiple = !selection.length
|
||||
},
|
||||
//图片点击查看
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
formatDate(date) {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始
|
||||
|
|
@ -749,6 +834,12 @@
|
|||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
::v-deep .el-upload {
|
||||
width: 100%;
|
||||
}
|
||||
::v-deep .el-upload-dragger{
|
||||
width: 100%;
|
||||
}
|
||||
.form-title{
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
|
|
|
|||
|
|
@ -93,8 +93,7 @@
|
|||
<el-table-column label="设备地址" align="center" prop="deviceAddr" :show-overflow-tooltip="true" width="150"/>
|
||||
<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="verificationCode" :show-overflow-tooltip="true">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="验证码" align="center" prop="verificationCode" :show-overflow-tooltip="true"></el-table-column> -->
|
||||
<el-table-column label="二维码" align="center" prop="verificationCode" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span @click="checkCode(scope.row)" style="color:blue">查看</span>
|
||||
|
|
|
|||
|
|
@ -265,6 +265,9 @@
|
|||
deviceType: [
|
||||
{ required: true, message: "设备类型不能为空", trigger: "blur" }
|
||||
],
|
||||
deviceAddr: [
|
||||
{ required: true, message: "设备地址不能为空", trigger: "blur" }
|
||||
],
|
||||
funImp: [
|
||||
{ required: true, message: "设备编号不能为空", trigger: "blur" }
|
||||
],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,211 @@
|
|||
<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-input
|
||||
v-model="queryParams.keyWord"
|
||||
placeholder="请输入关键字"
|
||||
clearable maxlength="20"
|
||||
style="width: 200px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="证件编号" prop="certificateNo">
|
||||
<el-input
|
||||
v-model="queryParams.certificateNo"
|
||||
placeholder="请输入证件编号"
|
||||
clearable maxlength="20"
|
||||
style="width: 200px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="证件类型" prop="certificateType">
|
||||
<el-select v-model="queryParams.certificateType" placeholder="证件类型" clearable style="width: 200px">
|
||||
<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-form-item label="核验状态" prop="verifyState">
|
||||
<el-select v-model="queryParams.verifyState" placeholder="核验状态" clearable style="width: 200px">
|
||||
<el-option label="待验证" value="0" />
|
||||
<el-option label="已验证" value="1" />
|
||||
</el-select>
|
||||
</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">
|
||||
<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" 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="createBy" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="联系方式" align="center" prop="contacts" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="类型" align="center" prop="type" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.type==1">后台问题</span>
|
||||
<span v-if="scope.row.type==2">APP问题</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="问题/建议描述" align="center" prop="detail" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="附件" align="center" prop="" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.fileUrl!=''" @click="checkFile(scope.row)" style="cursor: pointer;color: #46a6ff;">查看</span>
|
||||
<span v-else>无附件</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="openFile" width="500px" append-to-body>
|
||||
<div style="width: 100%;height: 240px;padding: 10px;color: #46a6ff;display: flex;flex-wrap: wrap;">
|
||||
<div v-for="(item,index) in fileList" :key="index" style="margin: 10px;">
|
||||
<div style="margin-bottom: 10px;"><img :src="item.url" @click="handlePictureCardPreview(item)" style="width: 60px;height: 60px;margin-right: 8px;"/></div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="openFile=false">关 闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog :visible.sync="dialogVisible" width="700px">
|
||||
<img style="width: 100%;height: 100%;" :src="dialogImageUrl" alt="">
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getFeedbackListPageApi } 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,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord:null,
|
||||
},
|
||||
fileList:[],
|
||||
openFile:false,//查看附件
|
||||
dialogVisible:false,//图片弹窗
|
||||
dialogImageUrl:"",//图片弹窗
|
||||
};
|
||||
},
|
||||
mounted(){
|
||||
this.getList();
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keyWord:null,//姓名
|
||||
}
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
let param = {
|
||||
"pageNum":this.queryParams.pageNum,
|
||||
"pageSize":this.queryParams.pageSize,
|
||||
"keyWord":this.queryParams.keyWord,
|
||||
}
|
||||
console.log("param",param)
|
||||
getFeedbackListPageApi(param).then(response => {
|
||||
this.tableListData = response.rows;
|
||||
this.total = Number(response.total);
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
checkFile(row){
|
||||
this.fileList=[]
|
||||
if(row.fileUrl&&row.fileUrl!=''){
|
||||
let arr = row.fileUrl.split(",");
|
||||
arr.forEach((item,index)=>{
|
||||
this.fileList.push({url:item})
|
||||
})
|
||||
}
|
||||
this.openFile = true
|
||||
},
|
||||
//图片点击查看
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
},
|
||||
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>
|
||||
|
|
@ -154,7 +154,7 @@
|
|||
v-model="baseForm.verifyUsers"
|
||||
:options="deptOptions"
|
||||
:normalizer="normalizer" :multiple="true" :flat="false" value-consists-of="LEAF_PRIORITY"
|
||||
placeholder="选择上级部门"
|
||||
placeholder="选择核验人员"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -193,7 +193,7 @@
|
|||
style="width: 200px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="证件编号" prop="certificateNo">
|
||||
<el-form-item label="证件编号" prop="certificateNo">
|
||||
<el-input
|
||||
v-model="detailParams.certificateNo"
|
||||
placeholder="请输入证件编号"
|
||||
|
|
@ -325,15 +325,32 @@
|
|||
},
|
||||
// 表单参数
|
||||
baseForm: {
|
||||
|
||||
verifyTitle:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
verifyUsers:[],
|
||||
verifyType:"1",
|
||||
noticeType:"1",
|
||||
},
|
||||
// 表单校验
|
||||
baseFormRules: {
|
||||
checkType: [
|
||||
{ required: true, message: "核验类型不能为空", trigger: "blur" }
|
||||
baseFormRules: {
|
||||
verifyTitle: [
|
||||
{ required: true, message: "任务标题不能为空", trigger: "change" }
|
||||
],
|
||||
processDate: [
|
||||
{ required: true, message: "核验截至日期不能为空", trigger: "blur" }
|
||||
startTime: [
|
||||
{ required: true, message: "开始时间不能为空", trigger: "change" }
|
||||
],
|
||||
endTime: [
|
||||
{ required: true, message: "结束时间不能为空", trigger: "change" }
|
||||
],
|
||||
verifyUsers: [
|
||||
{ required: true, message: "核验人员不能为空", trigger: "change" }
|
||||
],
|
||||
verifyType: [
|
||||
{ required: true, message: "核验类型不能为空", trigger: "change" }
|
||||
],
|
||||
noticeType: [
|
||||
{ required: true, message: "提醒方式不能为空", trigger: "change" }
|
||||
]
|
||||
},
|
||||
openDetail:false,
|
||||
|
|
@ -417,7 +434,14 @@
|
|||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.baseForm = {};
|
||||
this.baseForm = {
|
||||
verifyTitle:"",
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
verifyUsers:[],
|
||||
verifyType:"1",
|
||||
noticeType:"1",
|
||||
};
|
||||
this.resetForm("baseForm");
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
|
|
|
|||
|
|
@ -463,6 +463,15 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input
|
||||
v-model="form.email"
|
||||
placeholder="请输入邮箱"
|
||||
maxlength="50"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
v-if="form.userId == undefined"
|
||||
|
|
@ -900,7 +909,7 @@ export default {
|
|||
},
|
||||
],
|
||||
email: [
|
||||
{
|
||||
{
|
||||
type: 'email',
|
||||
message: '请输入正确的邮箱地址',
|
||||
trigger: ['blur', 'change'],
|
||||
|
|
|
|||
Loading…
Reference in New Issue