|
|
@@ -1,271 +1,574 @@
|
|
|
<template>
|
|
|
- <div class="app-container">
|
|
|
- <el-form
|
|
|
- :model="auditForm"
|
|
|
- label-width="68px"
|
|
|
- :inline="true"
|
|
|
- >
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="姓名">
|
|
|
- <el-input style="width: 240px" v-model="auditForm.teName" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="昵称">
|
|
|
- <el-input style="width: 240px" v-model="auditForm.teNickName" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="用户类型">
|
|
|
- <el-select style="width: 240px" v-model="auditForm.techType" clearable>
|
|
|
- <el-option label="虚拟用户" value="1"></el-option>
|
|
|
- <el-option label="正式用户" value="0"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="商户电话">
|
|
|
- <el-input style="width: 240px" v-model="auditForm.tePhone" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="申请时间">
|
|
|
- <el-date-picker
|
|
|
- style="width: 240px"
|
|
|
- v-model="auditForm.applyTime"
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- clearable
|
|
|
- ></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="性别">
|
|
|
- <el-select style="width: 240px" v-model="auditForm.teSex" clearable>
|
|
|
- <el-option v-for="item in dict.type.sys_user_sex" :label="item.label" :value="item.value"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6">
|
|
|
- <el-button type="primary" @click="handleSearch">搜索</el-button>
|
|
|
- <el-button @click="handleReset">重置</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
- <div class="btns">
|
|
|
- <div class="type">
|
|
|
- <span class="typeItem" :class="{ 'active': typeIndex === index }" @click="handleTypeIndex(item, index)" v-for="(item, index) in typeList">{{ item.name }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-table
|
|
|
- :data="table"
|
|
|
- >
|
|
|
- <el-table-column prop="merchantId" label="商户ID" width="150"></el-table-column>
|
|
|
- <el-table-column prop="teName" label="姓名" width="150"></el-table-column>
|
|
|
- <el-table-column prop="teNickName" label="昵称" width="150"></el-table-column>
|
|
|
- <el-table-column prop="teSex" label="性别">
|
|
|
- <template #default="{ row }">
|
|
|
- <dict-tag :options="dict.type.sys_user_sex" :value="`${row.teSex}`"/>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="tePhone" label="电话"></el-table-column>
|
|
|
- <el-table-column prop="avatar" label="形象照">
|
|
|
- <template #default="{ row }">
|
|
|
- <image-preview :src="row.avatar" :width="120" :height="120" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="teAddress" label="意向城市"></el-table-column>
|
|
|
- <el-table-column prop="openServiceName" label="开通服务"></el-table-column>
|
|
|
- <el-table-column prop="applyTime" label="申请时间"></el-table-column>
|
|
|
- <el-table-column label="操作" fixed="right" width="120">
|
|
|
- <template #default="{ row }">
|
|
|
- <el-button v-if="row.auditStatus == 1" size="small" type="text" icon="el-icon-document-checked" @click="handleAudit(row)">审核</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <div class="pagination">
|
|
|
- <el-pagination
|
|
|
- v-show="total > 0"
|
|
|
- background
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="auditForm.current"
|
|
|
- :page-size="auditForm.size"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="total"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <el-dialog
|
|
|
- title="商户审核"
|
|
|
- :visible.sync="dialogShow"
|
|
|
- width="30%"
|
|
|
- >
|
|
|
- <el-form
|
|
|
- :model="addForm"
|
|
|
- ref="addFormRefs"
|
|
|
- label-width="120px"
|
|
|
- :rules="addRules"
|
|
|
- >
|
|
|
- <el-form-item label="审核意见" prop="auditStatus">
|
|
|
- <el-radio-group v-model="addForm.auditStatus">
|
|
|
- <el-radio label="2">审核通过</el-radio>
|
|
|
- <el-radio label="3">审核驳回</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="审核备注" prop="auditRemark">
|
|
|
- <el-input type="textarea" show-word-limit maxlength="200" v-model="addForm.auditRemark" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <el-button @click="handleCancel">取消</el-button>
|
|
|
- <el-button type="primary" @click="handleSave">确定</el-button>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-form :model="auditForm" label-width="68px" :inline="true">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input style="width: 240px" v-model="auditForm.teName" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="昵称">
|
|
|
+ <el-input style="width: 240px" v-model="auditForm.teNickName" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="用户类型">
|
|
|
+ <el-select style="width: 240px" v-model="auditForm.techType" clearable>
|
|
|
+ <el-option label="虚拟用户" value="1"></el-option>
|
|
|
+ <el-option label="正式用户" value="0"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="商户电话">
|
|
|
+ <el-input style="width: 240px" v-model="auditForm.tePhone" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="申请时间">
|
|
|
+ <el-date-picker style="width: 240px" v-model="auditForm.applyTime" type="daterange" range-separator="至"
|
|
|
+ start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" clearable></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="性别">
|
|
|
+ <el-select style="width: 240px" v-model="auditForm.teSex" clearable>
|
|
|
+ <el-option v-for="item in dict.type.sys_user_sex" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-button type="primary" @click="handleSearch">搜索</el-button>
|
|
|
+ <el-button @click="handleReset">重置</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div class="btns">
|
|
|
+ <div class="type">
|
|
|
+ <span class="typeItem" :class="{ 'active': typeIndex === index }" @click="handleTypeIndex(item, index)"
|
|
|
+ v-for="(item, index) in typeList">{{ item.name }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table :data="table">
|
|
|
+ <el-table-column prop="merchantId" label="商户ID" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="teName" label="姓名" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="teSexName" label="性别">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="tePhone" label="电话"></el-table-column>
|
|
|
+ <el-table-column prop="teNickName" label="昵称" width="150"></el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ <el-table-column key="col-cert1" v-if="auditForm.auditStatus != 1" prop="avatar" label="形象照">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <image-preview :src="row.avatar" :width="120" :height="120" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column key="col-cert2" v-if="auditForm.auditStatus == 0 || auditForm.auditStatus == 1" prop="teAddress"
|
|
|
+ :label="auditForm.auditStatus == 0 ? '意向城市' : '入驻城市'"></el-table-column>
|
|
|
+ <el-table-column key="col-cert5" v-if="auditForm.auditStatus != 0" prop="teBrief" label="简介"></el-table-column>
|
|
|
+
|
|
|
+ <el-table-column key="col-cert3" v-if="auditForm.auditStatus == 0 || auditForm.auditStatus == 1"
|
|
|
+ prop="openServiceName" label="开通服务"></el-table-column>
|
|
|
+
|
|
|
+ <el-table-column key="col-cert4" v-if="auditForm.auditStatus != 0" prop="openServiceName" label="证照管理">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button size="small" type="text" @click="handleAuditLook(row)">查看</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="applyTime" label="申请时间"></el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ <el-table-column v-if="auditForm.auditStatus == 2 || auditForm.auditStatus == 3" prop="auditStatusName"
|
|
|
+ label="审批结果"></el-table-column>
|
|
|
+ <el-table-column v-if="auditForm.auditStatus == 2 || auditForm.auditStatus == 3" prop="auditRemark"
|
|
|
+ label="备注"></el-table-column>
|
|
|
+ <el-table-column v-if="auditForm.auditStatus == 2 || auditForm.auditStatus == 3" prop="approveTime"
|
|
|
+ label="审批时间"></el-table-column>
|
|
|
+ <el-table-column v-if="auditForm.auditStatus == 1 || auditForm.auditStatus == 0" label="操作" fixed="right"
|
|
|
+ width="120">
|
|
|
+ <template v-if="auditForm.auditStatus == 1 || auditForm.auditStatus == 0" #default="{ row }">
|
|
|
+ <el-button size="small" type="text" icon="el-icon-document-checked" @click="handleAudit(row)">审核</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="pagination">
|
|
|
+ <el-pagination v-show="total > 0" background @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
|
|
+ :current-page="auditForm.current" :page-size="auditForm.size" layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="total" />
|
|
|
</div>
|
|
|
+ <!-- 审核弹窗 -->
|
|
|
+ <el-dialog title="商户审核" :visible.sync="dialogShow" width="60%">
|
|
|
+
|
|
|
+ <el-form :model="addForm" ref="addFormRefs" label-width="120px" :rules="addRules">
|
|
|
+ <el-form-item label="审核意见" prop="auditStatus">
|
|
|
+ <el-radio-group v-model="addForm.auditStatus">
|
|
|
+ <el-radio label="2">审核通过</el-radio>
|
|
|
+ <el-radio label="3">审核驳回</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="身份证加密" prop="idCardFront"
|
|
|
+ :show-message="false">
|
|
|
+ <div style="display: flex;gap: 40px;">
|
|
|
+ <div>
|
|
|
+ <ImageUpload v-model="addForm.idCardFront" :limit="1" :file-size="2" :isShowTip="false" />
|
|
|
+ <span>身份证正面</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <ImageUpload v-model="addForm.idCardBack" :limit="1" :file-size="2" :isShowTip="false" />
|
|
|
+ <span>身份证反面</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <ImageUpload v-model="addForm.idCardHandheld" :limit="1" :file-size="2" :isShowTip="false" />
|
|
|
+ <span>手持身份证</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button v-if="addForm1.idCardFrout && addForm1.idCardBack && addForm1.idCardHandheld" type="text"
|
|
|
+ @click="handleLookImg([addForm1.idCardFrout[0], addForm1.idCardBack[0], addForm1.idCardHandheld[0]])">查看原件</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="健康证加密" prop="healthCard"
|
|
|
+ :show-message="false">
|
|
|
+ <div style="display: flex;gap: 20px;">
|
|
|
+ <ImageUpload v-model="addForm.healthCard" :limit="9" @input="onUpload($event, 'healthCard')" :file-size="2"
|
|
|
+ :isShowTip="false" />
|
|
|
+ <div>
|
|
|
+ <el-button type="text" @click="handleLookImg(addForm1.healthCertificate)">查看原件</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="资格证加密" :show-message="false"
|
|
|
+ prop="qualificationCard">
|
|
|
+ <div style="display: flex;gap: 20px;">
|
|
|
+
|
|
|
+ <ImageUpload v-model="addForm.qualificationCard" :limit="9" @input="onUpload($event, 'qualificationCard')"
|
|
|
+ :file-size="2" :isShowTip="false" />
|
|
|
+ <div>
|
|
|
+ <el-button type="text" @click="handleLookImg(addForm1.qualificationCertificate)">查看原件</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="身份证到期时间"
|
|
|
+ prop="idCardExpireTime" :show-message="false">
|
|
|
+ <el-date-picker v-model="addForm.idCardExpireTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="健康证到期时间"
|
|
|
+ prop="healthCardExpireTime" :show-message="false">
|
|
|
+ <el-date-picker v-model="addForm.healthCardExpireTime" type="date" value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="auditForm.auditStatus == 1 && addForm.auditStatus == 2" label="资格证到期时间"
|
|
|
+ prop="qualificationCardExpireTime" :show-message="false">
|
|
|
+ <el-date-picker v-model="addForm.qualificationCardExpireTime" type="date" value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审核备注" prop="auditRemark">
|
|
|
+ <el-input type="textarea" show-word-limit maxlength="200" v-model="addForm.auditRemark" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="handleCancel">取消</el-button>
|
|
|
+ <el-button type="primary" @click="handleSave">确定</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 查看原件弹窗 -->
|
|
|
+ <el-dialog title="预览" width="800" append-to-body :visible.sync="dialogVisibleImg">
|
|
|
+ <div style="display: flex;flex-wrap: wrap;gap: 20px;">
|
|
|
+ <img v-if="imgList.length > 0" v-for="(item, index) in imgList" :key="index" :src="item"
|
|
|
+ style="display: block; max-width: 100%; margin: 0 0 20px 0;text-align: center;" />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 证照管理弹窗 -->
|
|
|
+ <el-dialog title="证照管理" :visible.sync="dialogShow1" width="60%" append-to-body @close="dialogShow1 = false">
|
|
|
+ <el-form v-loading="certLoading" :model="addForm1" ref="addFormRefs" label-width="120px"
|
|
|
+ element-loading-text="加载中..." element-loading-spinner="el-icon-loading">
|
|
|
+
|
|
|
+ <el-form-item label="形象照" prop="avatar" v-if="addForm1.avatar">
|
|
|
+ <el-image v-for="(item, index) in addForm1.avatar" :key="index" fit="fill" style="width: 100px; height: 100px"
|
|
|
+ :src="item" :preview-src-list="addForm1.avatar">
|
|
|
+ </el-image>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="生活照" prop="lifePhotos" v-if="addForm1.lifePhotos">
|
|
|
+ <div style="display: flex;gap: 20px;flex-wrap: wrap;">
|
|
|
+ <el-image v-for="(item, index) in addForm1.lifePhotos" :key="index" style="width: 100px; height: 100px"
|
|
|
+ :src="item" :preview-src-list="addForm1.lifePhotos">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="身份证" v-if="addForm1.idCardFrout && addForm1.idCardBack && addForm1.idCardHandheld">
|
|
|
+ <div style="display: flex;gap: 20px;">
|
|
|
+ <el-image style="width: 100px; height: 100px" :src="addForm1.idCardFrout[0]"
|
|
|
+ :preview-src-list="[addForm1.idCardFrout[0], addForm1.idCardBack[0], addForm1.idCardHandheld[0]]">
|
|
|
+ </el-image>
|
|
|
+ <el-image style="width: 100px; height: 100px" :src="addForm1.idCardBack[0]"
|
|
|
+ :preview-src-list="[addForm1.idCardFrout[0], addForm1.idCardBack[0], addForm1.idCardBack[0]]">
|
|
|
+ </el-image>
|
|
|
+ <el-image style="width: 100px; height: 100px" :src="addForm1.idCardHandheld[0]"
|
|
|
+ :preview-src-list="[addForm1.idCardFrout[0], addForm1.idCardBack[0], addForm1.idCardHandheld[0]]">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="健康证" prop="healthCertificate" v-if="addForm1.healthCertificate">
|
|
|
+ <div style="display: flex;gap: 20px;flex-wrap: wrap;">
|
|
|
+ <el-image v-for="(item, index) in addForm1.healthCertificate" :key="index"
|
|
|
+ style="width: 100px; height: 100px" :src="item" :preview-src-list="addForm1.healthCertificate">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="从业资格证" prop="qualificationCertificate" v-if="addForm1.qualificationCertificate">
|
|
|
+ <div style="display: flex;gap: 20px;flex-wrap: wrap;">
|
|
|
+ <el-image v-for="(item, index) in addForm1.qualificationCertificate" :key="index"
|
|
|
+ style="width: 100px; height: 100px" :src="item" :preview-src-list="addForm1.qualificationCertificate">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="无犯罪记录证明" prop="noCrimeRecord" v-if="addForm1.noCrimeRecord">
|
|
|
+ <div style="display: flex;gap: 20px;flex-wrap: wrap;">
|
|
|
+ <el-image v-for="(item, index) in addForm1.noCrimeRecord" :key="index" style="width: 100px; height: 100px"
|
|
|
+ :src="item" :preview-src-list="addForm1.noCrimeRecord">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="承诺书" prop="commitmentPdf" v-if="addForm1.commitmentPdf">
|
|
|
+ <div style="display: flex;gap: 20px;flex-wrap: wrap;">
|
|
|
+ <el-image v-for="(item, index) in addForm1.commitmentPdf" :key="index" style="width: 100px; height: 100px"
|
|
|
+ :src="item" :preview-src-list="addForm1.commitmentPdf">
|
|
|
+ </el-image>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="承诺视频" prop="commitmentVideo" v-if="addForm1.commitmentVideo">
|
|
|
+ <div class="custom-video">
|
|
|
+ <video ref="video" :src="addForm1.commitmentVideo[0]" height="300px" controls playsinline></video>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 音频改用audio标签,不能用el-image -->
|
|
|
+ <el-form-item label="承诺录音" prop="commitmentAudio" v-if="addForm1.commitmentAudio">
|
|
|
+ <audio controls :src="addForm1.commitmentAudio[0]" style="width:300px;"></audio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { list, audit } from '@/api/tenant/enterAudit'
|
|
|
+import { list, audit, getCertificate, applySubmit } from '@/api/tenant/enterAudit'
|
|
|
+import C from 'highlight.js/lib/languages/1c';
|
|
|
export default {
|
|
|
- name: "audit",
|
|
|
- dicts: ['sys_user_sex'],
|
|
|
- data() {
|
|
|
- return {
|
|
|
- auditForm: {
|
|
|
- current: 1,
|
|
|
- size: 10
|
|
|
- },
|
|
|
- typeList: [ // 0-待入驻 1-待审核 2-审核通过 3-审核驳回
|
|
|
- {
|
|
|
- name: '待入驻',
|
|
|
- type: '0'
|
|
|
- },{
|
|
|
- name: '待审核',
|
|
|
- type: '1'
|
|
|
- },{
|
|
|
- name: '审核通过',
|
|
|
- type: '2'
|
|
|
- },{
|
|
|
- name: '审核驳回',
|
|
|
- type: '3'
|
|
|
- },
|
|
|
- ],
|
|
|
- typeIndex: 0,
|
|
|
- table: [],
|
|
|
- total: 0,
|
|
|
- dialogShow: false,
|
|
|
- addForm: {},
|
|
|
- addRules: {
|
|
|
- auditStatus: [
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
- ]
|
|
|
- },
|
|
|
- auditId: ''
|
|
|
+ name: "audit",
|
|
|
+ dicts: ['sys_user_sex'],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ imgList: [],
|
|
|
+ dialogVisibleImg: false,
|
|
|
+ certLoading: false,
|
|
|
+ dialogShow1: false,
|
|
|
+ srcList: [],
|
|
|
+ auditForm: {
|
|
|
+ current: 1,
|
|
|
+ size: 10,
|
|
|
+ auditStatus: '0',
|
|
|
+ },
|
|
|
+ typeList: [ // 0-待入驻 1-待审核 2-审核通过 3-审核驳回
|
|
|
+ {
|
|
|
+ name: '待入驻',
|
|
|
+ type: '0'
|
|
|
+ }, {
|
|
|
+ name: '待审核',
|
|
|
+ type: '1'
|
|
|
+ }, {
|
|
|
+ name: '审核通过',
|
|
|
+ type: '2'
|
|
|
+ }, {
|
|
|
+ name: '审核驳回',
|
|
|
+ type: '3'
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ typeIndex: 0,
|
|
|
+ table: [],
|
|
|
+ total: 0,
|
|
|
+ dialogShow: false,
|
|
|
+ addForm: {
|
|
|
+ auditStatus: '',
|
|
|
+ auditRemark: '',
|
|
|
+ idCardFront: '',
|
|
|
+ idCardBack: '',
|
|
|
+ idCardHandheld: '',
|
|
|
+ healthCard: '',
|
|
|
+ qualificationCard: '',
|
|
|
+
|
|
|
+ },
|
|
|
+ addForm1: {
|
|
|
+ avatar: [],
|
|
|
+ lifePhotos: [],
|
|
|
+ idCardFrout: [],
|
|
|
+ idCardBack: [],
|
|
|
+ idCardHandheld: [],
|
|
|
+ healthCertificate: [],
|
|
|
+ qualificationCertificate: [],
|
|
|
+ noCrimeRecord: [],
|
|
|
+ commitmentPdf: [],
|
|
|
+ commitmentVideo: [],
|
|
|
+ commitmentAudio: [],
|
|
|
+ },
|
|
|
+ addRules: {
|
|
|
+ auditStatus: [
|
|
|
+ { required: true, message: '请选择', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ idCardFront: [
|
|
|
+ { required: true, message: '请上传身份证正面', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ idCardBack: [
|
|
|
+ { required: true, message: '请上传身份证反面', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ idCardHandheld: [
|
|
|
+ { required: true, message: '请上传身份证手持', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ healthCard: [
|
|
|
+ { required: true, message: '请上传健康证', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ qualificationCard: [
|
|
|
+ { required: true, message: '请上传从业资格证', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ idCardExpireTime: [
|
|
|
+ { required: true, message: '请选择身份证到期时间', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ qualificationCardExpireTime: [
|
|
|
+ { required: true, message: '请选择从业资格证到期时间', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ healthCardExpireTime: [
|
|
|
+ { required: true, message: '请选择健康证到期时间', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ auditId: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initData() {
|
|
|
+ this.$set(this.table, 'table', [])
|
|
|
+ let params = {
|
|
|
+ current: this.auditForm.current,
|
|
|
+ size: this.auditForm.size,
|
|
|
+ auditStatus: this.auditForm.auditStatus,
|
|
|
+ teName: this.auditForm.teName,
|
|
|
+ teNickName: this.auditForm.teNickName,
|
|
|
+ techType: this.auditForm.techType,
|
|
|
+ tePhone: this.auditForm.tePhone,
|
|
|
+ beginApplyTime: this.auditForm.applyTime?.[0],
|
|
|
+ endApplyTime: this.auditForm.applyTime?.[1],
|
|
|
+ teSex: this.auditForm.teSex,
|
|
|
+ }
|
|
|
+ list({
|
|
|
+ ...params
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.table = res.data.records
|
|
|
+ this.total = res.data.total
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg)
|
|
|
}
|
|
|
+ })
|
|
|
},
|
|
|
- methods: {
|
|
|
- initData() {
|
|
|
- let params = {
|
|
|
- current: this.auditForm.current,
|
|
|
- size: this.auditForm.size,
|
|
|
- auditStatus: this.auditForm.auditStatus,
|
|
|
- teName: this.auditForm.teName,
|
|
|
- teNickName: this.auditForm.teNickName,
|
|
|
- techType: this.auditForm.techType,
|
|
|
- tePhone: this.auditForm.tePhone,
|
|
|
- beginApplyTime: this.auditForm.applyTime?.[0],
|
|
|
- endApplyTime: this.auditForm.applyTime?.[1],
|
|
|
- teSex: this.auditForm.teSex,
|
|
|
- }
|
|
|
- list({
|
|
|
- ...params
|
|
|
- }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
- this.table = res.data.records
|
|
|
- this.total = res.data.total
|
|
|
- } else {
|
|
|
- this.$message.error(res.msg)
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- handleSizeChange(size) {
|
|
|
- this.auditForm.size = size
|
|
|
- this.initData();
|
|
|
- },
|
|
|
- handleCurrentChange(page) {
|
|
|
- this.auditForm.current = page
|
|
|
- this.initData();
|
|
|
- },
|
|
|
- handleSearch() {
|
|
|
- this.initData();
|
|
|
- },
|
|
|
- handleReset() {
|
|
|
- this.initData();
|
|
|
- },
|
|
|
- handleTypeIndex(item, index) {
|
|
|
- this.typeIndex = index
|
|
|
- this.auditForm.auditStatus = item.type
|
|
|
- },
|
|
|
- handleAudit(row) {
|
|
|
- this.dialogShow = true
|
|
|
- this.auditId = row.merchantId
|
|
|
- },
|
|
|
- handleCancel() {
|
|
|
- this.dialogShow = false
|
|
|
- },
|
|
|
- handleSave() {
|
|
|
- this.dialogShow = false
|
|
|
- audit(this.auditId, {
|
|
|
- ...this.addForm
|
|
|
- }).then(res => {
|
|
|
- if(res.code == 200) {
|
|
|
- this.$message.success(res.msg)
|
|
|
- this.initData();
|
|
|
- } else {
|
|
|
- this.$message.error(res.msg)
|
|
|
- }
|
|
|
- })
|
|
|
+ handleSizeChange(size) {
|
|
|
+ this.auditForm.size = size
|
|
|
+ this.initData();
|
|
|
+ },
|
|
|
+ handleCurrentChange(page) {
|
|
|
+ this.auditForm.current = page
|
|
|
+ this.initData();
|
|
|
+ },
|
|
|
+ handleSearch() {
|
|
|
+ this.initData();
|
|
|
+ },
|
|
|
+ handleReset() {
|
|
|
+ this.initData();
|
|
|
+ },
|
|
|
+ handleTypeIndex(item, index) {
|
|
|
+ this.typeIndex = index
|
|
|
+ this.auditForm.auditStatus = item.type
|
|
|
+ this.initData();
|
|
|
+ },
|
|
|
+ // 上传事件
|
|
|
+ onUpload(e, k) {
|
|
|
+ console.log(e, k, 'e, k')
|
|
|
+ this.addForm[k] = e;
|
|
|
+ },
|
|
|
+ // 查看原件
|
|
|
+ handleLookImg(imgList) {
|
|
|
+ this.imgList = imgList
|
|
|
+ this.dialogVisibleImg = true
|
|
|
+
|
|
|
+ },
|
|
|
+ //审核
|
|
|
+ handleAudit(row) {
|
|
|
+ this.dialogShow = true
|
|
|
+ this.auditId = row.merchantId
|
|
|
+
|
|
|
+
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.addFormRefs.resetFields();
|
|
|
+ })
|
|
|
+ getCertificate(row.merchantId).then(res => {
|
|
|
+
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.addForm1 = res.data
|
|
|
+ }
|
|
|
+ }).finally(() => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //查看
|
|
|
+ handleAuditLook(row) {
|
|
|
+ this.addForm1 = {}
|
|
|
+ this.certLoading = true
|
|
|
+ this.dialogShow1 = true
|
|
|
+ getCertificate(row.merchantId).then(res => {
|
|
|
+
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.addForm1 = res.data
|
|
|
}
|
|
|
+ }).finally(() => {
|
|
|
+ this.certLoading = false
|
|
|
+ })
|
|
|
},
|
|
|
- mounted() {
|
|
|
- this.initData();
|
|
|
+ handleCancel() {
|
|
|
+ this.dialogShow = false
|
|
|
+ },
|
|
|
+ //审核提交
|
|
|
+ handleSave() {
|
|
|
+ this.$refs.addFormRefs.validate((valid) => {
|
|
|
+
|
|
|
+ if (valid) {
|
|
|
+ if (this.addForm.auditStatus == '3') {
|
|
|
+ if (!this.addForm.auditRemark) {
|
|
|
+ this.$message.error('请输入审核备注')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!this.addForm.idCardHandheld || !this.addForm.idCardFront || !this.addForm.idCardBack) {
|
|
|
+ this.$message.error('请上传身份证')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let api = audit
|
|
|
+ let params = {
|
|
|
+ auditStatus: this.addForm.auditStatus,
|
|
|
+ auditRemark: this.addForm.auditRemark,
|
|
|
+ }
|
|
|
+ if (this.auditForm.auditStatus == '1') {//待入驻审核
|
|
|
+ api = applySubmit
|
|
|
+ if (this.addForm.auditStatus == '2') {
|
|
|
+ params.idCardExpirationDate = this.addForm.idCardExpireTime
|
|
|
+ params.healthCertificateExpirationDate = this.addForm.healthCardExpireTime
|
|
|
+ params.qualificationCertificateExpirationDate = this.addForm.qualificationCardExpireTime
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ api(this.auditId, params).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.dialogShow = false
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.initData();
|
|
|
+ } else {
|
|
|
+ this.dialogShow = false
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message.error('请填写完整信息')
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.initData();
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
-.btns{
|
|
|
- margin-bottom: 20px;
|
|
|
+::v-deep .el-input--medium {
|
|
|
+ height: 38px;
|
|
|
+}
|
|
|
+.video-control {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 6px;
|
|
|
+}
|
|
|
+
|
|
|
+.btns {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+
|
|
|
+ .type {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: flex-start;
|
|
|
- .type{
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-start;
|
|
|
- .typeItem{
|
|
|
- padding: 5px 15px;
|
|
|
- border-radius: 4px;
|
|
|
- font-size: 14px;
|
|
|
- margin: 0 10px 0 0;
|
|
|
- cursor: pointer;
|
|
|
- border: 1px solid #ccc;
|
|
|
- }
|
|
|
- .active{
|
|
|
- background: #1890ff;
|
|
|
- color: white;
|
|
|
- border-color: #1890ff;
|
|
|
- }
|
|
|
+
|
|
|
+ .typeItem {
|
|
|
+ padding: 5px 15px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 14px;
|
|
|
+ margin: 0 10px 0 0;
|
|
|
+ cursor: pointer;
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ }
|
|
|
+
|
|
|
+ .active {
|
|
|
+ background: #1890ff;
|
|
|
+ color: white;
|
|
|
+ border-color: #1890ff;
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
-.pagination{
|
|
|
- margin-top: 20px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-end;
|
|
|
+
|
|
|
+// ::v-deep .el-upload-list--picture-card .el-upload-list__item {
|
|
|
+// width: 120px;
|
|
|
+// height: 120px;
|
|
|
+// }
|
|
|
+
|
|
|
+// ::v-deep .el-upload--picture-card {
|
|
|
+// width: 120px !important;
|
|
|
+// height: 120px !important;
|
|
|
+// }
|
|
|
+
|
|
|
+.pagination {
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
}
|
|
|
</style>
|