<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="$t('关键字')" prop="nickname"> <el-input v-model="queryParams.searchKey" :placeholder="$t('搜索昵称、姓名、手机、Email')" clearable @keyup.enter.native="handleQuery"/> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</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="list"> <el-table-column :label="$t('用户昵称')" align="center" prop="nickname" /> <el-table-column :label="$t('真实姓名')" align="center" prop="identityName" /> <el-table-column align="center" :label="$t('区号')"> <template v-slot:default = 'scope'> +{{scope.row.areaCode ? `${scope.row.areaCode}`:''}} </template> </el-table-column> <el-table-column :label="$t('手机号')" show-overflow-tooltip align="center" prop="mobile" > </el-table-column> <el-table-column :label="$t('提交审核时间')" align="center" prop="createTime"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.identityAuditCreateTime) }}</span> </template> </el-table-column> <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope" > <el-button v-if="scope.row.identityAuditStatus !== 0 && scope.row.identityAuditStatus !== undefined" size="mini" type="text" @click="identityFn(scope.row , '1')">{{$t('身份证审核')}}</el-button> </template> </el-table-column> </el-table> <!-- 分页组件 --> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" @pagination="getList"/> <el-dialog :title="$t('认证')" :visible.sync="attestationShow" width="80%"> <div class="details"> <el-tabs v-model="activeName" > <el-tab-pane :label="$t('身份证')" name="1"> <div style="padding:0 40px;box-sizing: border-box;"> <el-form ref="formId" label-position="left" label-width="100px" :rules="rulesId" :model="IdDetails" > <el-form-item :label="$t('姓名')" prop="name"> <el-input v-model="IdDetails.name"></el-input> </el-form-item> <el-form-item :label="$t('证件类型')" prop="cardType"> <dict-selector v-model="IdDetails.cardType" :type="DICT_TYPE.CERTIFICATE_TYPE" ></dict-selector> </el-form-item> <el-form-item :label="$t('证件号码')" prop="cardNumber"> <el-input v-model="IdDetails.cardNumber"></el-input> </el-form-item> <el-form-item :label="$t('证件正面照')" prop="img1"> <div> <el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img1"></el-input> <ImageUpload :isShowTip="false" v-model="IdDetails.img1" :limit="1"></ImageUpload> </div> </el-form-item> <el-form-item :label="$t('证件背面照')" prop="img2"> <div> <el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img2"></el-input> <ImageUpload :isShowTip="false" :limit="1" v-model="IdDetails.img2"></ImageUpload> </div> </el-form-item> <el-form-item :label="$t('审核状态')"> {{getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status].label}} </el-form-item> <el-form-item :label="$t('审核时间')" v-if="IdDetails.status === 2 || IdDetails.status === 3"> {{parseTime(IdDetails.auditTime)}} </el-form-item> <el-form-item v-if="IdDetails.status === 1 || IdDetails.status === 3" :label="$t('审核备注')"> <el-input v-model="IdDetails.auditRemark" :disabled="IdDetails.status === 3" type="textarea"></el-input> </el-form-item> </el-form> <div v-if="IdDetails.status === 1" style="text-align: center;margin-top: 20px;"> <el-button type="primary" @click="idCardAuditFn(2)">{{$t('审核通过')}}</el-button> <el-button type="primary" @click="idCardAuditFn(3)">{{$t('审核不通过')}}</el-button> <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button> </div> </div> </el-tab-pane> </el-tabs> </div> </el-dialog> </div> </template> <script> import { deleteUser, exportUserExcel, operationLogApi, seTupdateBackletter, memberGetAuthIdcardInfo, memberGetAuthEnterpriseInfo, memberUserAuditIdCard, setUserUpdateStatus, userCreateAuditEnterprise, getWaitApprovePage } from "@/api/member/user"; import {DICT_TYPE, getDictDatas} from "@/utils/dict"; import FileUpload from "@/components/FileUpload" import ImageUpload from "@/components/ImageUpload"; import uploadImage from "@/components/UploadImage"; import {CommonStatusEnum} from "@/utils/constants"; export default { name: "underReview", components: { FileUpload, ImageUpload,uploadImage }, data() { return { totalLog:0, IdDetails:{}, enterpriseFrom:{}, guaranteeUrl:undefined, DICT_TYPE, getDictDatas, // audit_status activeName:"1", // 遮罩层 loading: true, // 导出遮罩层 exportLoading: false, // 显示搜索条件 showSearch: true, // 总条数 total: 0, // 用户列表 list: [], // 弹出层标题 title: "", // 是否显示弹出层 open: false, // 查询参数 queryParams: { page: 1, rows: 10, isDeal:undefined,// 是否成交 searchKey:undefined,//关键字 auditStatus:1,//审核状态 authType:2,//关键字 }, // 表单参数 form: {}, // 表单校验 rulesId: { name: [{ required: true, message: this.$t('用户昵称不能为空'), trigger: "blur" }], cardType: [{ required: true, message: this.$t('证件类型不能为空'), trigger: "blur" }], cardNumber: [{ required: true, message: this.$t('证件号码不能为空'), trigger: "blur" }], img1: [{ required: true, message: this.$t('身份正面照不能为空'), trigger: ['blur','change'] }], img2: [{ required: true, message: this.$t('身份正面照不能为空'), trigger: ['blur','change'] }], }, publicObj:undefined, operationLogShow:false, guaranteeShow:false, operationLogFrom:{ page:1, row:10, userId:undefined }, operationLogList:[], attestationShow:false }; }, created() { this.resetId(); this.resetEnterprise() this.getList(); }, methods: { deleteFn(row){ this.$modal.confirm(`${this.$t('是否要删除昵称为')}${row.nickname}${this.$t('的会员')}`).then(function (){ return deleteUser(row.id) }).then( res => { if(res.code === 0) this.getList(); this.$message.success(this.$t('删除成功')) }).catch(() =>{ this.$message.success(this.$t('删除失败')) } ) }, //导出 exportFn(){ this.$modal.confirm(this.$t('是否确认导出所有用户数据项?')).then(() => { this.exportLoading = true; return exportUserExcel(this.queryParams); }).then(response => { this.$download.excel(response, `${this.$t('待审核会员')}.xls`); this.exportLoading = false; }).catch(() => {}); }, // 用户状态修改 handleStatusChange(row) { let text = row.status === CommonStatusEnum.ENABLE ? this.$t('启用') : this.$t('停用'); this.$modal.confirm(this.$t('确认要"') + text + '""' + row.nickname + this.$t('"用户吗?')).then(function() { return setUserUpdateStatus({id:row.id,status:row.status}) }).then(() => { this.$modal.msgSuccess(text + this.$t('成功')); }).catch(function() { row.status = row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE; }); }, /** 查询列表 */ getList() { this.loading = true; // 处理查询参数 let params = {...this.queryParams}; // 执行查询 getWaitApprovePage(params).then(response => { this.list = response.data.list; this.total = response.data.total; this.loading = false; }); }, /** 表单重置 */ resetId(){ this.IdDetails = { auditRemark: undefined, auditTime: undefined, cardNumber: undefined, cardType: 0, createTime: undefined, id: 0, img1: undefined, img2: undefined, name: '', status: 0, userId: 0 } },//清空身份证 resetEnterprise(){ this.enterpriseFrom = { auditRemark: undefined, auditTime: undefined, cardNumber: undefined, createTime: undefined, id: undefined, img1: undefined, img2: undefined, legalName: undefined, name: undefined, status: 0, userId: undefined } },//清空企业 /** 搜索按钮操作 */ handleQuery() { this.queryParams.page = 1; this.getList(); }, /** 重置按钮操作 */ resetQuery() { this.resetForm("queryForm"); this.queryParams = { page: 1, rows: 10, isDeal:undefined,// 是否成交 searchKey:undefined,//关键字 auditStatus:1,//审核状态 authType:2,//关键字 } this.handleQuery(); }, getOperationLogList(){ operationLogApi(this.operationLogFrom).then(r=>{ if(r.code === 0){ this.operationLogList = r.data.list this.totalLog = r.data.total } }) }, setGuarantee(){ seTupdateBackletter({userId:this.publicObj.id,backLetter:this.guaranteeUrl}).then(r=>{ if(r.code === 0){ this.publicObj.backLetterImg = this.guaranteeUrl; this.guaranteeShow = false; this.$message.success(this.$t('保存成功')); } }) }, identityFn(row,val){ this.attestationShow = true; this.activeName = val; this.publicObj = row; this.getIdentityDetails(); }, getIdentityDetails(){ this.resetId(); memberGetAuthIdcardInfo({userId:this.publicObj.id}).then(r=>{ if(r.code === 0 && !!r.data){ this.IdDetails = r.data } }) }, getEnterpriseFn(){ this.resetEnterprise(); memberGetAuthEnterpriseInfo({userId:this.publicObj.id}).then(r => { if(r.code === 0 && !!r.data){ this.enterpriseFrom = r.data } }) }, //身份证审核 idCardAuditFn(val){ let p = { auditStatus:val, userCardAuthId:this.IdDetails.id, auditRemark:this.IdDetails.auditRemark } if(val === 2){ p.auditRemark = undefined } memberUserAuditIdCard(p).then(r => { if(r.code === 0){ this.$message.success(this.$t('修改成功')); this.getList() this.attestationShow = false; } }) }, submit(){ let p = { cardNumber:this.enterpriseFrom.cardNumber, img1:this.enterpriseFrom.img1, img2:this.enterpriseFrom.img2, legalName:this.enterpriseFrom.legalName, name:this.enterpriseFrom.name, userEnterpriseAuthId:this.enterpriseFrom.id, userId:this.publicObj.id } userCreateAuditEnterprise(p).then(r => { console.log(r); if(r.code === 0){ this.$message.success(this.$t('添加成功!')); this.enterpriseFrom.status = 2 this.enterpriseFrom.auditTime = new Date().getTime() this.getEnterpriseFn(); } }) } }, watch:{ attestationShow(newVal){ if(!newVal){ this.resetId(); this.resetEnterprise() this.publicObj = undefined; } } } }; </script> <style lang="scss" scoped> .details{ .el-input { width: 300px; } .el-textarea{ width: 300px; } } </style>