index.vue 27.6 KB
Newer Older
dcy's avatar
dcy committed
1 2 3 4 5
<template>
  <div class="app-container">

    <!-- 搜索工作栏 -->
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
dcy's avatar
dcy committed
6 7
      <el-form-item :label="$t('关键字')" prop="nickname">
        <el-input v-model="queryParams.searchKey" :placeholder="$t('搜索昵称、姓名、手机、Email')" clearable @keyup.enter.native="handleQuery"/>
dcy's avatar
dcy committed
8
      </el-form-item>
dcy's avatar
dcy committed
9
      <el-form-item :label="$t('成交')" prop="mobile">
dcy's avatar
dcy committed
10
        <el-select v-model="queryParams.isDeal">
dcy's avatar
dcy committed
11
          <el-option v-for="item in [{label:$t('全部'),value:''},{label:$t('是'),value:true},{label:$t('否'),value:false}]" :value="item.value" :label="item.label" :key="item.value" ></el-option>
dcy's avatar
dcy committed
12
          </el-select>
dcy's avatar
dcy committed
13
      </el-form-item>
dcy's avatar
dcy committed
14
      <el-form-item :label="$t('认证')" prop="password">
dcy's avatar
dcy committed
15
        <el-select v-model="queryParams.authType">
dcy's avatar
dcy committed
16
          <el-option v-for="item in [{label: $t('全部'),value: ''},{label:$t('营业执照认证'),value:1},{label:$t('身份证认证'),value:2},{label:$t('双认证'),value:3}]" :key="item.value"  :value="item.value" :label="item.label"></el-option>
dcy's avatar
dcy committed
17
        </el-select>
dcy's avatar
dcy committed
18
      </el-form-item>
dcy's avatar
dcy committed
19
      <el-form-item :label="$t('审核状态')" prop="registerIp">
dcy's avatar
dcy committed
20
        <dict-selector v-model="queryParams.auditStatus" :type="DICT_TYPE.AUDIT_STATUS"></dict-selector>
dcy's avatar
dcy committed
21
      </el-form-item>
22 23 24 25 26 27 28 29 30
      <el-form-item :label="$t('创建时间')">
        <el-date-picker
          v-model="dateRangeCreateTime"
          type="datetimerange"
          :start-placeholder="$t('开始日期')"
           value-format="yyyy-MM-dd HH:mm:ss"
          :end-placeholder="$t('结束日期')">
        </el-date-picker>
      </el-form-item>
dcy's avatar
dcy committed
31
      <el-form-item>
dcy's avatar
dcy committed
32 33 34
        <el-button type="primary" icon="el-icon-search" @click="handleQuery">{{$t('搜索')}}</el-button>
        <el-button icon="el-icon-refresh" @click="resetQuery">{{$t('重置')}}</el-button>
        <el-button :loading="exportLoading" type="primary" @click="exportFn">{{$t('导 出')}}</el-button>
dcy's avatar
dcy committed
35 36 37 38 39 40 41 42 43
      </el-form-item>
    </el-form>

    <!-- 操作工具栏 -->
    <el-row :gutter="10" class="mb8">
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>

    <!-- 列表 -->
dcy's avatar
dcy committed
44
    <el-table v-loading="loading" :data="list">
dcy's avatar
dcy committed
45
      <el-table-column :label="$t('公司名称')" align="center" prop="enterpriseName" />
houjn@hikoon.cn's avatar
houjn@hikoon.cn committed
46
      <el-table-column :label="$t('用户昵称')" align="center" prop="nickname" width="150"/>
dcy's avatar
dcy committed
47 48
      <el-table-column :label="$t('真实姓名')" align="center" prop="identityName" />
      <el-table-column :label="$t('区号')">
dcy's avatar
dcy committed
49
        <template v-slot:default = 'scope'>
dcy's avatar
dcy committed
50
          +{{scope.row.areaCode ? `${scope.row.areaCode}`:''}}
dcy's avatar
dcy committed
51 52
        </template>
      </el-table-column>
houjn@hikoon.cn's avatar
houjn@hikoon.cn committed
53
      <el-table-column :label="$t('手机号')" show-overflow-tooltip align="center" prop="mobile" width="150">
dcy's avatar
dcy committed
54
     </el-table-column>
dcy's avatar
dcy committed
55
      <el-table-column :label="$t('成交')" align="center" prop="customerStatus" show-overflow-tooltip >
dcy's avatar
dcy committed
56
        <template v-slot="{row}">
dcy's avatar
dcy committed
57
          {{row.customerStatus === 3 ? $t('成交') : $t('非成交')}}
dcy's avatar
dcy committed
58 59
        </template>
      </el-table-column>
dcy's avatar
dcy committed
60 61
      <el-table-column :label="$t('认证')" align="center" :formatter="authentication" />
      <el-table-column :label="$t('状态')" align="center" prop="status" >
dcy's avatar
dcy committed
62 63 64 65
        <template slot-scope="scope">
          <el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1" @change="handleStatusChange(scope.row)" />
        </template>
      </el-table-column>
houjn@hikoon.cn's avatar
houjn@hikoon.cn committed
66
      <el-table-column :label="$t('身份证审核状态')" align="center" prop="createTime" >
dcy's avatar
dcy committed
67
        <template slot-scope="scope">
dcy's avatar
dcy committed
68
          <div v-if="!scope.row.identityAuditStatus">{{$t('未提交')}}</div>
dcy's avatar
dcy committed
69
        <dict-tag v-else :type="DICT_TYPE.AUDIT_STATUS" :value="scope.row.identityAuditStatus" ></dict-tag>
dcy's avatar
dcy committed
70
          <el-tooltip  v-if="scope.row.identityAuditStatus === 3" class="item" effect="dark" :content="scope.row.identityAuditRemark" placement="bottom">
dcy's avatar
dcy committed
71 72
            <i class="el-icon-question"></i>
          </el-tooltip>
dcy's avatar
dcy committed
73 74
        </template>
      </el-table-column>
houjn@hikoon.cn's avatar
houjn@hikoon.cn committed
75
      <el-table-column :label="$t('营业执照审核状态')" align="center" prop="createTime" >
dcy's avatar
dcy committed
76
        <template slot-scope="scope">
dcy's avatar
dcy committed
77
          <div v-if="!scope.row.enterpriseAuditStatus">{{$t('未提交')}}</div>
dcy's avatar
dcy committed
78
          <dict-tag v-else :type="DICT_TYPE.AUDIT_STATUS" :value="scope.row.enterpriseAuditStatus" ></dict-tag>
dcy's avatar
dcy committed
79
          <el-tooltip  v-if="scope.row.enterpriseAuditStatus === 3" class="item" effect="dark" :content="scope.row.rowenterpriseAuditRemark" placement="bottom">
dcy's avatar
dcy committed
80 81
          <i class="el-icon-question"></i>
            </el-tooltip>
dcy's avatar
dcy committed
82
        </template>
dcy's avatar
dcy committed
83
      </el-table-column>
dcy's avatar
dcy committed
84
      <el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
dcy's avatar
dcy committed
85
        <template slot-scope="scope">
dcy's avatar
dcy committed
86 87 88
          <span>{{ parseTime(scope.row.createTime) }}</span>
        </template>
      </el-table-column>
89
      <el-table-column :label="$t('操作')" align="center" class-name="small-padding fixed-width" width="200px">
dcy's avatar
dcy committed
90
        <template slot-scope="scope" >
dcy's avatar
dcy committed
91 92 93 94 95
          <el-button size="mini" type="text"  @click="guarantee(scope.row)">{{$t('保函/证书')}}</el-button>
          <el-button size="mini" type="text"  @click="operationLogFn(scope.row)">{{$t('操作日志')}}</el-button>
          <el-button size="mini" type="text"  @click="identityFn(scope.row , '1')">{{$t('身份证')}}</el-button>
          <el-button  size="mini" type="text"  @click="identityFn(scope.row, '2')">{{$t('营业执照')}}</el-button>
          <el-button  size="mini" type="text" @click="deleteFn(scope.row)">{{$t('删 除')}}</el-button>
dcy's avatar
dcy committed
96 97 98 99
        </template>
      </el-table-column>
    </el-table>
    <!-- 分页组件 -->
dcy's avatar
dcy committed
100
    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
dcy's avatar
dcy committed
101
                @pagination="getList"/>
dcy's avatar
dcy committed
102 103 104 105 106 107
    <el-dialog
      title="保函/证书"
      :visible.sync="guaranteeShow"
      :before-close="()=>{guaranteeUrl = ''; guaranteeShow = false;}"
      width="50%">
      <el-form>
dcy's avatar
dcy committed
108
        <el-form-item :label="$t('保函/证书')">
dcy's avatar
dcy committed
109 110 111 112 113 114
          <el-row :gutter="20" type="flex" justify="center" >
            <el-col :span="12"><el-input v-model="guaranteeUrl" ></el-input></el-col>
            <el-col :span="4"><div style="height: 45px;overflow: hidden;">
              <file-upload v-model="guaranteeUrl" :fileType="['png', 'jpg', 'jpeg','pdf']" :limit="1" :isShowTip="false"></file-upload>
            </div></el-col>
            <el-col :span="6">
dcy's avatar
dcy committed
115
              <div>{{$t('可上传图片,pdf文档')}}</div>
dcy's avatar
dcy committed
116 117 118 119
            </el-col>
          </el-row>
        </el-form-item>
      </el-form>
dcy's avatar
dcy committed
120
       <div style="text-align: center;"><el-button @click="setGuarantee">{{$t('保 存')}}</el-button></div>
dcy's avatar
dcy committed
121 122
    </el-dialog>
    <el-dialog
dcy's avatar
dcy committed
123
      :title="$t('操作日志')"
dcy's avatar
dcy committed
124 125 126
      :visible.sync="operationLogShow"
      width="50%">
      <el-table :data="operationLogList">
dcy's avatar
dcy committed
127 128 129
        <el-table-column :label="$t('标题')" prop="title"></el-table-column>
        <el-table-column :label="$t('操作内容')" prop="content"></el-table-column>
        <el-table-column :label="$t('操作人')" prop="userId">
dcy's avatar
dcy committed
130 131 132 133
          <template v-slot="{row}">
            {{list.find(i => i.id == row.userId).identityName}}
          </template>
        </el-table-column>
dcy's avatar
dcy committed
134
        <el-table-column :label="$t('操作时间')">
dcy's avatar
dcy committed
135 136 137 138
          <template v-slot:default ="scope">
            {{parseTime(scope.row.createTime) }}
          </template>
        </el-table-column>
dcy's avatar
dcy committed
139
        <el-table-column :label="$t('操作ip')" prop="ip"></el-table-column>
dcy's avatar
dcy committed
140
      </el-table>
dcy's avatar
dcy committed
141 142
      <pagination  v-show="totalLog >   0" :total="totalLog" :page.sync="operationLogFrom.page" :limit.sync="operationLogFrom.row"
                  @pagination="getOperationLogList"/>
dcy's avatar
dcy committed
143
    </el-dialog>
dcy's avatar
dcy committed
144
        <el-dialog
dcy's avatar
dcy committed
145
          :title="$t('认证')"
dcy's avatar
dcy committed
146
          :visible.sync="attestationShow"
dcy's avatar
dcy committed
147
          width="80%">
dcy's avatar
dcy committed
148 149
           <div class="details">
             <el-tabs v-model="activeName" @tab-click="handleClick">
dcy's avatar
dcy committed
150
               <el-tab-pane :label="$t('身份证')" name="1">
dcy's avatar
dcy committed
151
                <div style="padding:0 40px;box-sizing: border-box;">
dcy's avatar
dcy committed
152
                  <el-form :disabled="[2,3].includes(IdDetails.status) && modifyIdCard" ref="formId" label-position="left" label-width="100px" :rules="rulesId"  :model="IdDetails" >
dcy's avatar
dcy committed
153
                    <el-form-item :label="$t('姓名')" prop="name">
dcy's avatar
dcy committed
154
                      <el-input v-model="IdDetails.name"></el-input>
dcy's avatar
dcy committed
155
                    </el-form-item>
dcy's avatar
dcy committed
156
                    <el-form-item :label="$t('证件类型')" prop="cardType">
dcy's avatar
dcy committed
157
                      <dict-selector v-model="IdDetails.cardType"  :type="DICT_TYPE.CERTIFICATE_TYPE" ></dict-selector>
dcy's avatar
dcy committed
158
                    </el-form-item>
dcy's avatar
dcy committed
159
                    <el-form-item :label="$t('证件号码')" prop="cardNumber">
dcy's avatar
dcy committed
160
                      <el-input v-model="IdDetails.cardNumber"></el-input>
dcy's avatar
dcy committed
161
                    </el-form-item>
dcy's avatar
dcy committed
162
                    <el-form-item :label="$t('证件正面照')" prop="img1">
dcy's avatar
dcy committed
163
                      <div>
dcy's avatar
dcy committed
164
                          <el-input  readonly style="margin-bottom: 20px" v-model="IdDetails.img1"></el-input>
dcy's avatar
dcy committed
165
                        <ImageUpload :isShowTip="false" v-model="IdDetails.img1" :limit="1"></ImageUpload>
dcy's avatar
dcy committed
166 167
                      </div>
                    </el-form-item>
dcy's avatar
dcy committed
168
                    <el-form-item :label="$t('证件背面照')" prop="img2">
dcy's avatar
dcy committed
169
                      <div>
dcy's avatar
dcy committed
170
                        <el-input readonly style="margin-bottom: 20px" v-model="IdDetails.img2"></el-input>
dcy's avatar
dcy committed
171
                        <ImageUpload :isShowTip="false" :limit="1" v-model="IdDetails.img2"></ImageUpload>
dcy's avatar
dcy committed
172 173
                      </div>
                    </el-form-item>
dcy's avatar
dcy committed
174
                    <el-form-item :label="$t('审核状态')" v-if="modifyIdCard && IdDetails.status !== 0 ">
dcy's avatar
dcy committed
175
                     {{getDictDatas(DICT_TYPE.AUDIT_STATUS)[IdDetails.status].label}}
dcy's avatar
dcy committed
176
                    </el-form-item>
dcy's avatar
dcy committed
177
                    <el-form-item :label="$t('审核时间')" v-if="[2,3].includes(IdDetails.status) && modifyIdCard">
dcy's avatar
dcy committed
178 179
                     {{parseTime(IdDetails.auditTime)}}
                    </el-form-item>
dcy's avatar
dcy committed
180
                    <el-form-item v-if="modifyIdCard &&  IdDetails.status !== 0" :label="$t('审核备注')">
181
                     <el-input v-model="IdDetails.auditRemark" :disabled="IdDetails.status === 3" type="textarea"></el-input>
dcy's avatar
dcy committed
182
                    </el-form-item>
dcy's avatar
dcy committed
183
                  </el-form>
184
                  <div v-if="IdDetails.status === 1" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
185 186
                    <el-button type="primary" @click="idCardAuditFn(2)">{{$t('审核通过')}}</el-button>
                    <el-button type="primary" @click="idCardAuditFn(3)">{{$t('审核不通过')}}</el-button>
Marcus's avatar
Marcus committed
187
                    <el-button @click="attestationShow = false">{{ $t('取 消') }}</el-button>
dcy's avatar
dcy committed
188
                  </div>
189
                  <div v-if="IdDetails.status === 2 || IdDetails.status === 3" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
190 191 192
                    <el-button type="primary"  v-if="modifyIdCard" @click="modifyIdCard = false;">{{$t('修 改')}}</el-button>
                    <el-button type="primary" v-else @click="setMemberUserUpdateIdCard">{{$t('提交审核')}}</el-button>
                    <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button>
dcy's avatar
dcy committed
193 194
                  </div>
                  <div v-if="IdDetails.status === 0" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
195 196
                    <el-button type="primary" @click="submitId">{{$t('上 传')}}</el-button>
                    <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button>
dcy's avatar
dcy committed
197
                  </div>
dcy's avatar
dcy committed
198 199
                </div>
               </el-tab-pane>
dcy's avatar
dcy committed
200
               <el-tab-pane :label="$t('营业执照')" name="2" >
dcy's avatar
dcy committed
201
                <div style="width: 500px;padding:0 40px;box-sizing: border-box;">
dcy's avatar
dcy committed
202
                  <el-form :disabled="modifyLicense && [2,3].includes(enterpriseFrom.status)" :rules="rulesEnterprise" :model="enterpriseFrom" label-position="left" ref="formEnter" label-width="100px">
dcy's avatar
dcy committed
203
                    <el-form-item :label="$t('企业名称')" prop="name">
dcy's avatar
dcy committed
204
                        <el-input v-model="enterpriseFrom.name" ></el-input>
dcy's avatar
dcy committed
205
                    </el-form-item>
dcy's avatar
dcy committed
206
                    <el-form-item :label="$t('企业法人')" prop="legalName">
dcy's avatar
dcy committed
207
                      <el-input v-model="enterpriseFrom.legalName" ></el-input>
dcy's avatar
dcy committed
208
                    </el-form-item>
dcy's avatar
dcy committed
209
                    <el-form-item :label="$t('证件号码')" prop="cardNumber">
dcy's avatar
dcy committed
210
                      <el-input v-model="enterpriseFrom.cardNumber"></el-input>
dcy's avatar
dcy committed
211
                    </el-form-item>
dcy's avatar
dcy committed
212
                    <el-form-item :label="$t('证件照')" prop="img1">
dcy's avatar
dcy committed
213
                      <div>
dcy's avatar
dcy committed
214
                        <el-input readonly style="margin-bottom: 20px" v-model="enterpriseFrom.img1"></el-input>
dcy's avatar
dcy committed
215
                        <ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img1"></ImageUpload>
dcy's avatar
dcy committed
216 217
                      </div>
                    </el-form-item>
dcy's avatar
dcy committed
218
                    <el-form-item :label="$t('附件')">
dcy's avatar
dcy committed
219
                      <el-input readonly v-model="enterpriseFrom.img2"></el-input>
dcy's avatar
dcy committed
220
                      <ImageUpload :isShowTip="false" :limit="1" v-model="enterpriseFrom.img2"></ImageUpload>
dcy's avatar
dcy committed
221
                    </el-form-item>
dcy's avatar
dcy committed
222 223 224
                    <el-form-item v-if="modifyLicense &&  enterpriseFrom.status !== 0 " :label="$t('审核状态')">{{getDictDatas(DICT_TYPE.AUDIT_STATUS)[enterpriseFrom.status].label}}</el-form-item>
                    <el-form-item v-if="[2,3].includes(enterpriseFrom.status) && modifyLicense " :label="$t('审核时间')">{{parseTime(enterpriseFrom.auditTime)}}</el-form-item>
                    <el-form-item v-if="modifyLicense && enterpriseFrom.status !== 0" :label="$t('审核备注')">
225 226
                      <el-input v-model="enterpriseFrom.auditRemark" :disabled="enterpriseFrom.status === 3" type="textarea"></el-input>
                    </el-form-item>
dcy's avatar
dcy committed
227
                  </el-form>
228
                  <div v-if="enterpriseFrom.status === 1" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
229 230 231
                    <el-button type="primary" @click="certificateVerificationFn(2)">{{$t('审核通过')}}</el-button>
                    <el-button type="primary" @click="certificateVerificationFn(3)">{{$t('审核不通过')}}</el-button>
                    <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button>
dcy's avatar
dcy committed
232
                  </div>
233
                  <div v-if="enterpriseFrom.status === 2 || enterpriseFrom.status === 3" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
234 235 236
                    <el-button type="primary" v-if="modifyLicense" @click="modifyLicense = false">{{$t('修 改')}}</el-button>
                    <el-button type="primary" v-else @click="setMemberUserUpdateEnterprise">{{$t('提交审核')}}</el-button>
                    <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button>
dcy's avatar
dcy committed
237
                  </div>
238
                  <div v-if="enterpriseFrom.status === 0" style="text-align: center;margin-top: 20px;">
dcy's avatar
dcy committed
239 240
                    <el-button type="primary" @click="submit">{{$t('上 传')}}</el-button>
                    <el-button @click="attestationShow = false">{{$t('取 消')}}</el-button>
241
                  </div>
dcy's avatar
dcy committed
242 243 244 245 246
                </div>
               </el-tab-pane>
             </el-tabs>
           </div>
        </el-dialog>
dcy's avatar
dcy committed
247 248 249 250
  </div>
</template>

<script>
dcy's avatar
dcy committed
251 252 253 254 255 256 257 258
import {
  createUser,
  updateUser,
  deleteUser,
  getUserPage,
  exportUserExcel,
  operationLogApi,
  seTupdateBackletter,
dcy's avatar
dcy committed
259 260 261 262
  memberGetAuthIdcardInfo,
  memberGetAuthEnterpriseInfo,
  memberUserAuditIdCard,
  memberUserUpdateIdCard,
dcy's avatar
dcy committed
263 264 265 266 267
  memberUserUpdateEnterprise,
  setUserUpdateStatus,
  userCreateAuditEnterprise,
  memberUserAuditEnterprise,
  createAuditIdCard
dcy's avatar
dcy committed
268 269 270 271 272
} 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";
dcy's avatar
dcy committed
273
import {CommonStatusEnum} from "@/utils/constants";
dcy's avatar
dcy committed
274
import {changeUserStatus, listServiceUser, listSimpleUsers} from "@/api/system/user";
dcy's avatar
dcy committed
275 276
export default {
  name: "User",
dcy's avatar
dcy committed
277
  components: {
dcy's avatar
dcy committed
278 279
    FileUpload,
    ImageUpload,uploadImage
dcy's avatar
dcy committed
280
  },
dcy's avatar
dcy committed
281 282
  data() {
    return {
dcy's avatar
dcy committed
283 284 285
      totalLog:0,
      IdDetails:{},
      enterpriseFrom:{},
dcy's avatar
dcy committed
286 287
      guaranteeUrl:undefined,
      DICT_TYPE,
dcy's avatar
dcy committed
288
      getDictDatas,
dcy's avatar
dcy committed
289 290
      // audit_status
      activeName:"1",
dcy's avatar
dcy committed
291 292
      // 遮罩层
      loading: true,
dcy's avatar
dcy committed
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
      // 导出遮罩层
      exportLoading: false,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 用户列表
      list: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      dateRangeLoginDate: [],
      dateRangeCreateTime: [],
      // 查询参数
      queryParams: {
dcy's avatar
dcy committed
309 310
        page: 1,
        rows: 10,
dcy's avatar
dcy committed
311 312 313 314
        isDeal:undefined,//	是否成交
        searchKey:undefined,//关键字
        auditStatus:undefined,//审核状态
        authType:undefined,//关键字
dcy's avatar
dcy committed
315 316 317 318
      },
      // 表单参数
      form: {},
      // 表单校验
dcy's avatar
dcy committed
319
      rulesId: {
dcy's avatar
dcy committed
320 321 322 323 324
        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'] }],
dcy's avatar
dcy committed
325 326
      },
      rulesEnterprise: {
dcy's avatar
dcy committed
327 328 329 330
        name: [{required: true, message: this.$t('企业名称不能为空'), trigger: "blur"}],
        legalName: [{required: true, message: this.$t('企业法人不能为空'), trigger: "blur"}],
        cardNumber: [{required: true, message: this.$t('证件号码不能为空'), trigger: "blur"}],
        img1: [{required: true, message: this.$t('证件照不能为空'), trigger: ['blur','change']}],
dcy's avatar
dcy committed
331 332
      },
      publicObj:undefined,
dcy's avatar
dcy committed
333 334 335 336 337 338 339 340
      operationLogShow:false,
      guaranteeShow:false,
      operationLogFrom:{
        page:1,
        row:10,
        userId:undefined
      },
      operationLogList:[],
dcy's avatar
dcy committed
341 342 343
      attestationShow:false,
      modifyIdCard:true,//修改身份证
      modifyLicense:true,//修改营业执照
dcy's avatar
dcy committed
344 345 346
    };
  },
  created() {
dcy's avatar
dcy committed
347 348
    this.resetId();
    this.resetEnterprise()
dcy's avatar
dcy committed
349 350 351
    this.getList();
  },
  methods: {
dcy's avatar
dcy committed
352
    deleteFn(row){
353 354
      const nickname = row.nickname;
      this.$modal.confirm(`${this.$t('是否确认删除昵称为{nickname}的会员?', {nickname})}`).then(function (){
dcy's avatar
dcy committed
355 356
            return deleteUser(row.id)
      }).then( res => {
dcy's avatar
dcy committed
357
        if(res.code === 0) this.getList(); this.$message.success(this.$t('删除成功'))
dcy's avatar
dcy committed
358
      }).catch(() =>{
359
        // this.$message.success(this.$t('删除失败'))
dcy's avatar
dcy committed
360 361 362
        }
      )
    },
dcy's avatar
dcy committed
363 364
    //导出
    exportFn(){
dcy's avatar
dcy committed
365
      this.$modal.confirm(this.$t('是否确认导出所有用户数据项?')).then(() => {
dcy's avatar
dcy committed
366 367 368
        this.exportLoading = true;
        return exportUserExcel(this.queryParams);
      }).then(response => {
dcy's avatar
dcy committed
369
        this.$download.excel(response, `${this.$t('注册会员')}.xls`);
dcy's avatar
dcy committed
370 371 372 373 374
        this.exportLoading = false;
      }).catch(() => {});
    },
    // 用户状态修改
    handleStatusChange(row) {
dcy's avatar
dcy committed
375 376
      let text = row.status === CommonStatusEnum.ENABLE ? this.$t('启用') : this.$t('停用');
      this.$modal.confirm(this.$t('确认要"') + text + '""' + row.nickname + this.$t('"用户吗?')).then(function() {
dcy's avatar
dcy committed
377
        return setUserUpdateStatus({id:row.id,status:row.status})
dcy's avatar
dcy committed
378
      }).then(() => {
dcy's avatar
dcy committed
379
        this.$modal.msgSuccess(text + this.$t('成功'));
dcy's avatar
dcy committed
380 381 382 383 384
      }).catch(function() {
        row.status = row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE
          : CommonStatusEnum.ENABLE;
      });
    },
dcy's avatar
dcy committed
385 386
    /** 查询列表 */
    getList() {
dcy's avatar
dcy committed
387
      this.loading = true;
dcy's avatar
dcy committed
388 389
      // 处理查询参数
      let params = {...this.queryParams};
390 391
      // this.addBeginAndEndTime(params, this.dateRangeLoginDate, 'loginDate');
      this.addBeginAndEndTime(params, this.dateRangeCreateTime, 'createTime', false);
dcy's avatar
dcy committed
392 393 394 395
      // 执行查询
      getUserPage(params).then(response => {
        this.list = response.data.list;
        this.total = response.data.total;
dcy's avatar
dcy committed
396
        this.loading = false;
dcy's avatar
dcy committed
397 398 399
      });
    },
    /** 表单重置 */
dcy's avatar
dcy committed
400 401 402 403 404
    resetId(){
       this.IdDetails = {
         auditRemark: undefined,
         auditTime: undefined,
         cardNumber: undefined,
dcy's avatar
dcy committed
405
         cardType: undefined,
dcy's avatar
dcy committed
406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
         createTime: undefined,
         id: 0,
         img1: undefined,
         img2: undefined,
         name: '',
         status: 0,
         userId: 0
       }
    },//清空身份证
    resetEnterprise(){
      this.enterpriseFrom = {
        auditRemark: undefined,
        auditTime: undefined,
        cardNumber: undefined,
        createTime: undefined,
421
        id: undefined,
dcy's avatar
dcy committed
422 423 424 425 426 427 428 429
        img1: undefined,
        img2: undefined,
        legalName: undefined,
        name: undefined,
        status: 0,
        userId: undefined
      }
    },//清空企业
dcy's avatar
dcy committed
430 431
    /** 搜索按钮操作 */
    handleQuery() {
dcy's avatar
dcy committed
432
      this.queryParams.page = 1;
dcy's avatar
dcy committed
433 434 435 436 437 438
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRangeLoginDate = [];
      this.dateRangeCreateTime = [];
dcy's avatar
dcy committed
439 440 441 442 443 444 445 446
      this.queryParams = {
        page: 1,
        rows: 10,
        isDeal:undefined,//	是否成交
        searchKey:undefined,//关键字
        auditStatus:undefined,//审核状态
        authType:undefined,//关键字
      }
dcy's avatar
dcy committed
447 448 449
      this.resetForm("queryForm");
      this.handleQuery();
    },
dcy's avatar
dcy committed
450 451 452
    // 保函证书
    guarantee(row) {
         this.publicObj = row;
dcy's avatar
dcy committed
453
         this.guaranteeShow = true;
454
         this.guaranteeUrl = row.backLetterImg;
dcy's avatar
dcy committed
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469
    },
    // 操作日志
    operationLogFn(row){
      this.publicObj = row;
      this.operationLogFrom.page = 1;
      this.operationLogFrom.userId = row.id
      this.operationLogShow = true;
      this.operationLogList = [];
      this.getOperationLogList();

    },
    getOperationLogList(){
      operationLogApi(this.operationLogFrom).then(r=>{
        if(r.code === 0){
          this.operationLogList = r.data.list
dcy's avatar
dcy committed
470
          this.totalLog = r.data.total
dcy's avatar
dcy committed
471 472 473 474 475 476
        }
      })
    },
    setGuarantee(){
      seTupdateBackletter({userId:this.publicObj.id,backLetter:this.guaranteeUrl}).then(r=>{
        if(r.code === 0){
dcy's avatar
dcy committed
477
          this.publicObj.backLetterImg = this.guaranteeUrl;
dcy's avatar
dcy committed
478
          this.guaranteeShow = false;
dcy's avatar
dcy committed
479
          this.$message.success(this.$t('保存成功'));
dcy's avatar
dcy committed
480 481
        }
      })
dcy's avatar
dcy committed
482
    },
dcy's avatar
dcy committed
483 484 485 486 487 488
    identityFn(row,val){
      this.attestationShow = true;
      this.activeName = val;
      this.publicObj = row;
      if(val == 1){
        this.getIdentityDetails();
dcy's avatar
dcy committed
489 490 491 492 493 494 495 496 497
      }else {
        this.getEnterpriseFn();
      }
    },
    handleClick(val){
      if(val.name == 1){
        this.getIdentityDetails();
      }else {
        this.getEnterpriseFn();
dcy's avatar
dcy committed
498 499 500
      }
    },
    getIdentityDetails(){
dcy's avatar
dcy committed
501
      this.resetId();
dcy's avatar
dcy committed
502
      memberGetAuthIdcardInfo({userId:this.publicObj.id}).then(r=>{
dcy's avatar
dcy committed
503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
        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
      }
      memberUserAuditIdCard(p).then(r => {
        if(r.code === 0){
dcy's avatar
dcy committed
525
          this.$message.success(this.$t('修改成功'));
526
          this.getList()
dcy's avatar
dcy committed
527 528 529 530 531 532 533 534
          this.getIdentityDetails()
        }
      })
    },
  //  企业证书审核
    certificateVerificationFn(val){
      let p = {
        auditStatus:val,
dcy's avatar
dcy committed
535
        userEnterpriseAuthId:this.enterpriseFrom.id,
dcy's avatar
dcy committed
536 537 538 539
        auditRemark:this.enterpriseFrom.auditRemark
      }
      memberUserAuditEnterprise(p).then(r => {
        if(r.code === 0){
540
          this.getList()
dcy's avatar
dcy committed
541 542 543 544 545
          this.getEnterpriseFn();
        }
      })
    },
    setMemberUserUpdateIdCard(){
dcy's avatar
dcy committed
546
      this.$refs.formId.validate(async valid =>{
dcy's avatar
dcy committed
547 548 549 550 551 552 553 554 555 556 557 558
       if(valid){
         let p ={
           cardNumber:this.IdDetails.cardNumber,
           cardType:this.IdDetails.cardType,
           img1:this.IdDetails.img1,
           img2:this.IdDetails.img2,
           name:this.IdDetails.name,
           userCardAuthId:this.IdDetails.id,
           auditPass:true,
         };
         memberUserUpdateIdCard(p).then(r => {
           if(r.code === 0){
dcy's avatar
dcy committed
559
             this.$message.success(this.$t('修改成功'))
dcy's avatar
dcy committed
560 561 562 563 564 565
             if(p.auditPass === true ){
               this.getIdentityDetails()
             }
             this.getList()
             this.modifyIdCard = true;
           }
dcy's avatar
dcy committed
566
         })
dcy's avatar
dcy committed
567
       }
dcy's avatar
dcy committed
568 569 570
      })
    },
    setMemberUserUpdateEnterprise(){
dcy's avatar
dcy committed
571
      this.$refs.formEnter.validate(async valid =>{
dcy's avatar
dcy committed
572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588
        if(valid){
          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,
            auditPass:true,
          }
          memberUserUpdateEnterprise(p).then(r =>{
            if(r.code === 0){
              if(p.auditPass === true){
                this.getEnterpriseFn();
              }
              this.getList()
              this.modifyLicense = true;
dcy's avatar
dcy committed
589
              this.$message.success(this.$t('修改成功'));
dcy's avatar
dcy committed
590
            }
dcy's avatar
dcy committed
591
          })
dcy's avatar
dcy committed
592
        }
dcy's avatar
dcy committed
593
      })
dcy's avatar
dcy committed
594 595
    },
    authentication(row){
邓春圆's avatar
邓春圆 committed
596
     if(!row.identityAuditStatus && !row.enterpriseAuditStatus){
dcy's avatar
dcy committed
597
       return this.$t('')
邓春圆's avatar
邓春圆 committed
598
      }else if(!!row.identityAuditStatus && !!row.enterpriseAuditStatus){
dcy's avatar
dcy committed
599
       return this.$t('双认证')
dcy's avatar
dcy committed
600
     } else if(row.identityAuditStatus >= 0){
dcy's avatar
dcy committed
601
       return this.$t('身份')
邓春圆's avatar
邓春圆 committed
602
     }else if(row.enterpriseAuditStatus >= 0){
dcy's avatar
dcy committed
603
       return this.$t('营业')
dcy's avatar
dcy committed
604
     }
605 606 607 608 609 610 611 612 613 614 615 616 617
    },
    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 => {
        if(r.code === 0){
dcy's avatar
dcy committed
618
          this.$message.success(this.$t('添加成功!'));
dcy's avatar
dcy committed
619
          this.enterpriseFrom.status = 2
620
          this.enterpriseFrom.auditTime = new Date().getTime()
dcy's avatar
dcy committed
621 622
          this.getEnterpriseFn();
          this.getList()
623 624
        }
      })
dcy's avatar
dcy committed
625 626 627 628 629 630 631 632 633 634 635 636 637 638 639
    },
    submitId(){
      this.$refs.formId.validate(async valid =>{
        if(valid){
          let p ={
            cardNumber:this.IdDetails.cardNumber,
            cardType:this.IdDetails.cardType,
            img1:this.IdDetails.img1,
            img2:this.IdDetails.img2,
            name:this.IdDetails.name,
            status:2,
            userId:this.publicObj.id
          };
          createAuditIdCard(p).then(r => {
            if(r.code === 0){
dcy's avatar
dcy committed
640
              this.$message.success(this.$t('添加成功!'));
dcy's avatar
dcy committed
641 642 643 644 645 646 647 648
              this.IdDetails.status = 2
              this.IdDetails.auditTime = new Date().getTime()
              this.getIdentityDetails();
              this.getList()
            }
          })
        }
      })
dcy's avatar
dcy committed
649
    }
dcy's avatar
dcy committed
650 651 652 653 654 655 656
  },
  watch:{
    attestationShow(newVal){
       if(!newVal){
         this.resetId();
         this.resetEnterprise()
         this.publicObj = undefined;
dcy's avatar
dcy committed
657 658 659
       }else {
         this.modifyIdCard = true;
         this.modifyLicense = true;
dcy's avatar
dcy committed
660 661
       }
    }
dcy's avatar
dcy committed
662 663 664
  }
};
</script>
dcy's avatar
dcy committed
665 666 667 668 669 670 671 672 673 674
<style lang="scss" scoped>
.details{
  .el-input {
    width: 300px;
  }
  .el-textarea{
    width: 300px;
  }
}
</style>