This commit is contained in:
2026-10-08 18:19:39 +08:00
parent 25b8d0104f
commit 75527ae81d
425 changed files with 53925 additions and 2645 deletions
+65
View File
@@ -0,0 +1,65 @@
<template>
<el-dialog title="新闻动态" :visible.sync="dialogVisible" width="60%">
<el-table :data="list" style="width: 100%">
<el-table-column prop="title" label="标题"/>
<el-table-column label="是否显示">
<template #default="{ row }">
<el-switch v-model="row.isShow" size="mini"
@change="changeShow($event, row._id)" :active-value="1"
:inactive-value="0"/>
</template>
</el-table-column>
<el-table-column prop="_add_time_str" label="发布时间"/>
<el-table-column label="详情">
<template #default="{ row }">
<el-button type="primary" size="mini" @click.native="doShowDetail(row)">查看详情</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="新闻动态" :visible.sync="showDetail" width="60%" append-to-body="">
<div v-html="content"></div>
</el-dialog>
</el-dialog>
</template>
<script>
export default {
name: "ArticleList",
data() {
return {
dialogVisible: false,
showDetail: false,
list: [],
content: ''
}
},
methods: {
open(userId) {
this.getList(userId)
},
async getList(userId) {
const {rows} = await vk.callFunction({
url: 'admin/userArticle/list/sys/list',
data: {
userId
}
})
this.dialogVisible = true
this.list = rows
},
async changeShow(isShow, id) {
await vk.callFunction({
url: 'admin/userArticle/list/sys/changeShow',
data: {
id, isShow
}
})
},
doShowDetail(row) {
this.showDetail = true
this.content = row.content
}
}
}
</script>
@@ -0,0 +1,56 @@
<template>
<el-dialog title="授权人/法人变更历史" :visible.sync="dialogVisible" width="60%">
<el-table :data="list" style="width: 100%">
<el-table-column prop="type" label="授权人类型">
<template #default="{ row }">
{{ row.type === 1 ? '法人' : '授权人' }}
</template>
</el-table-column>
<el-table-column prop="personName" label="姓名"/>
<el-table-column prop="certType" label="证件类型">
<template #default="{ row }">
<div>{{ row.certType === 0 ? '身份证' : '护照'}}</div>
</template>
</el-table-column>
<el-table-column prop="idCard" label="证件号"/>
<el-table-column label="身份证头像面">
<template #default="{ row }">
<el-image :src="row.headPhotoPath"/>
</template>
</el-table-column>
<el-table-column label="身份证国徽面">
<template #default="{ row }">
<el-image :src="row.backgroundIdCardPath"/>
</template>
</el-table-column>
<el-table-column prop="_add_time_str" label="变更时间"/>
</el-table>
</el-dialog>
</template>
<script>
export default {
name: "ManagerChangeLog",
data() {
return {
dialogVisible: false,
list: [],
}
},
methods: {
open(userId){
this.getList(userId)
},
async getList(userId){
const {rows} = await vk.callFunction({
url: 'admin/system/user/sys/managerChangeLog',
data: {
userId
}
})
this.dialogVisible = true
this.list = rows
}
}
}
</script>
+334 -67
View File
@@ -1,75 +1,342 @@
<template>
<div>
<vk-data-table-query
v-model="queryForm1.formData"
:columns="queryForm1.columns"
@search="search"
></vk-data-table-query>
<vk-data-table
ref="table1"
:action="table1.action"
:columns="table1.columns"
:query-form-param="queryForm1"
:right-btns="[]"
:selection="true"
:row-no="true"
:pagination="true"
></vk-data-table>
</div>
<div>
<vk-data-table-query
v-model="queryForm1.formData"
:columns="queryForm1.columns"
@search="search"
></vk-data-table-query>
<view>
<el-row>
<el-button type="success" size="small" icon="el-icon-circle-plus-outline"
@click="showMultiAddQuoteNum = true">批量赠送报价次数
</el-button>
</el-row>
</view>
<vk-data-table
ref="table1"
:action="table1.action"
:columns="table1.columns"
:query-form-param="queryForm1"
:right-btns="[]"
:selection="true"
:row-no="true"
:pagination="true"
>
<template v-slot:action="{ row, column, index }">
<template v-if="row.authStatus === 0">
<el-button type="success" size="mini" @click.native="changeStatus(row._id, 1)">通过</el-button>
<el-button type="danger" size="mini" @click.native="refuse(row._id)">拒绝</el-button>
</template>
<template v-if="row.authStatus === 1 && row.businessCard && row.businessCard.status === 0">
<el-button type="success" size="mini" @click.native="cardChangeStatus(row._id, 1)">名片审核通过
</el-button>
<el-button type="danger" size="mini" @click.native="cardRefuse(row._id)">名片审核拒绝</el-button>
</template>
<el-button size="mini" @click.native="doShowInfo(row)">详情</el-button>
<el-button size="mini" @click.native="doShowBusinessCardInfo(row)">名片详情</el-button>
</template>
<template v-slot:remainQuoteNum="{ row, column, index }">
<el-input-number v-model="row.remainQuoteNum" @change="changeQuoteNum($event, row._id)"/>
</template>
<template v-slot:isNotaryBusiness="{ row, column, index }">
<el-switch v-model="row.isNotaryBusiness" size="mini"
@change="changeField(row._id, 'isNotaryBusiness', $event)"
:active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:mid="{ row, column, index }">
<el-input v-model="row.mid" @change="changeField(row._id, 'mid', $event)"/>
</template>
<template v-slot:tid="{ row, column, index }">
<el-input v-model="row.tid" @change="changeField(row._id, 'tid', $event)"/>
</template>
</vk-data-table>
<vk-data-dialog
v-model="showInfo"
:title="title"
width="60%"
top="14vh"
center
:close-on-click-modal="true"
>
<vk-data-detail-table
:data="info"
:columns="infoColumns"
size="medium"
label-width="150px"
></vk-data-detail-table>
<template v-slot:footer>
<el-button @click="showInfo = false">关闭</el-button>
</template>
</vk-data-dialog>
<vk-data-dialog
v-model="showBusinessCardInfo"
:title="title"
width="60%"
top="14vh"
center
:close-on-click-modal="true"
>
<vk-data-detail-table
:data="info"
:columns="businessColumns"
size="medium"
label-width="150px"
></vk-data-detail-table>
<template v-slot:footer>
<el-button @click="showBusinessCardInfo = false">关闭</el-button>
</template>
</vk-data-dialog>
<el-dialog
title="批量赠送报价次数"
:visible.sync="showMultiAddQuoteNum"
width="50%">
<el-row :gutter="10">
<el-col :span="20">
<el-select v-model="selectedList" placeholder="点击选择账号" style="width: 100%" multiple clearable
filterable>
<el-option
v-for="(item, index) in userList"
:key="item.value"
:label="item.nickname"
:value="item._id">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-button type="primary" @click="selectedList = userList.map(item => item._id)">全选</el-button>
</el-col>
</el-row>
<p style="margin-top: 2rem">请输入赠送报价次数</p>
<el-input-number v-model="sendNum" placeholder="请输入报价次数"/>
<div slot="footer" class="dialog-footer">
<el-button @click="showMultiAddQuoteNum = false">取 消</el-button>
<el-button type="primary" @click="multiAddQuoteNum">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "index",
data() {
return {
queryForm1: {
// 查询表单数据源,可在此设置默认值
formData: {
dcloud_appid: "",
type: 1
//allow_login_background : true,
},
// 查询表单的字段规则 fieldName:指定数据库字段名,不填默认等于key
columns: [
{key: "username", title: "用户名", type: "text", width: 160, mode: "%%"},
{key: "nickname", title: "昵称", type: "text", width: 140, mode: "%%"},
{key: "mobile", title: "手机号", type: "text", width: 140, mode: "%%"},
]
},
table1: {
// 表格数据请求地址
action: "admin/system/user/sys/getList",
// 表格字段显示规则
columns: [
{key: "mobile", title: "手机号", type: "text", width: 120, defaultValue: ""},
// {
// key: "", title: "认证类型", type: "text", width: 120, formatter: (val, row, column, index) => {
// return parseInt(row.type) === 1 ? '个人' : '企业'
// }
// },
{
key: "mobile", title: "个人信息", type: "html", defaultValue: "",
formatter: (val, row, column, index) => {
let str
str = `<view>${row.person.personName}</view>`
// str += `<view>${row.person.mobile}</view>`
return str;
}
},
{key: "authenticationSubmitTime", title: "认证时间", type: "time", width: 160, sortable: "custom"},
],
// 多选框选中的值
multipleSelection: [],
// 当前高亮的记录
selectItem: "",
}
}
},
methods: {
search() {
this.$refs.table1.query();
name: "index",
data() {
return {
showInfo: false,
showBusinessCardInfo: false,
info: null,
showMultiAddQuoteNum: false,
selectedList: [],
userList: [],
sendNum: 0,
infoColumns: [
{
key: "userType", title: "用户类型", type: "html",
formatter: (val, row, column, index) => {
if (!val) return '平台交易功能用户'
else return '金久信签约宝、特产商城用户'
}
},
{key: "person.personName", title: "姓名", type: "text"},
{key: "person.address", title: "通信地址", type: "text"},
{key: "person.mainSpotCategoryNames", title: "主营业务", type: "text"},
{key: "person.mobile", title: "手机号", type: "text"},
{key: "person.businessType", title: "行业分类", type: "text"},
{key: "person.personAccount", title: "个人账号", type: "text"},
{key: "person.personBankName", title: "开户行", type: "text"},
{key: "person.accountName", title: "个人账号", type: "text"},
// {key: "person.photo", title: "金久信平台幕布照", type: "image"},
],
businessColumns: [
{key: "businessCard.logo", title: "Logo", type: "image"},
{key: "businessCard.personalWechat", title: "个人微信", type: "image"},
{key: "businessCard.position", title: "职位", type: "text"},
{key: "businessCard.companyMobile", title: "公司电话", type: "text"},
{key: "businessCard.managerMobile", title: "负责人电话", type: "text"},
{key: "businessCard.address", title: "地区", type: "address"},
{key: "businessCard.addressDetail", title: "详细地址", type: "text"},
{key: "businessCard.email", title: "邮箱", type: "text"},
{key: "businessCard.website", title: "网址", type: "text"},
{key: "businessCard.companyIntroduction", title: "企业简介", type: "editor"},
],
queryForm1: {
// 查询表单数据源,可在此设置默认值
formData: {
dcloud_appid: "",
type: 1,
isSignOnly: false,
//allow_login_background : true,
},
// 查询表单的字段规则 fieldName:指定数据库字段名,不填默认等于key
columns: [
// {key: "username", title: "用户名", type: "text", width: 160, mode: "%%"},
{key: "nickname", title: "昵称", type: "text", width: 140, mode: "%%"},
{key: "mobile", title: "手机号", type: "text", width: 140, mode: "%%"},
{
key: "authStatus", title: "审核筛选", type: "select", width: 150, data: [
{value: 0, label: '待审核'},
{value: 1, label: '已通过'},
]
},
{
key: "businessCard.status", title: "名片审核筛选", type: "select", width: 150, data: [
{value: 0, label: '待审核'},
{value: 1, label: '已通过'},
]
},
]
},
table1: {
// 表格数据请求地址
action: "admin/system/user/sys/getList",
// 表格字段显示规则
columns: [
{key: "mobile", title: "手机号", type: "text", width: 120, defaultValue: ""},
{
key: "mobile", title: "个人信息", type: "html", defaultValue: "",
formatter: (val, row, column, index) => {
let str
str = `<view>${row.person.personName}</view>`
str += `<view>${row.mobile}</view>`
return str;
}
},
// {
// key: "authType", title: "认证类型", type: "html", defaultValue: "",
// formatter: (val, row, column, index) => {
// return `<view>${row.authType === 1 ? "法大大认证" : "平台认证"}</view>`;
// }
// },
{
key: "authStatus", title: "认证状态", type: "tag", data: [
{value: -1, label: "未认证", tagType: "warning"},
{value: 0, label: "认证中", tagType: "warning"},
{value: 1, label: "已认证", tagType: "success"},
{value: 2, label: "认证失败", tagType: "danger"},
]
},
{
key: "businessCard.status", title: "名片审核状态", type: "select", data: [
{value: 0, label: "审核中", tagType: "warning"},
{value: 1, label: "已审核", tagType: "success"},
{value: 2, label: "审核失败", tagType: "danger"},
]
},
{
key: "isNotaryBusiness", title: "金久信公证业务", type: "html", width: 160
},
{
key: "remainQuoteNum", title: "报价次数", type: "html", width: 300
},
{
key: "mid", title: "商户号", type: "html", width: 300
},
{
key: "tid", title: "终端号", type: "html", width: 300
},
{key: "authSubmitTime", title: "提交时间", type: "time", width: 160, sortable: "custom"},
{
key: "action", title: "操作", type: "html",
width: 200,
fixed: 'right'
},
],
// 多选框选中的值
multipleSelection: [],
// 当前高亮的记录
selectItem: "",
}
}
},
methods: {
search() {
this.$refs.table1.query();
},
async refuse(id) {
const {action, value} = await this.$prompt('拒绝理由', {
showInput: true
});
if (action === 'confirm') {
this.changeStatus(id, 2, value)
}
},
changeStatus(id, authStatus, refuseReason = null) {
vk.callFunction({
url: 'admin/system/user/sys/changeStatus',
data: {
id, authStatus, refuseReason
}
}).then(() => {
this.$refs.table1.refresh()
})
},
doShowInfo(info) {
this.info = info
this.title = '详情'
this.showInfo = true
},
doShowBusinessCardInfo(info) {
this.info = info
this.title = '名片详情'
this.showBusinessCardInfo = true
},
async cardRefuse(id) {
const {action, value} = await this.$prompt('拒绝理由', {
showInput: true
});
if (action === 'confirm') {
this.cardChangeStatus(id, 2, value)
}
},
cardChangeStatus(id, status, refuseReason = null) {
vk.callFunction({
url: 'admin/system/user/sys/changeCardStatus',
data: {
id, status, refuseReason
}
}).then(() => {
this.$refs.table1.refresh()
})
},
changeQuoteNum(value, id) {
this.changeField(id, 'remainQuoteNum', value)
},
changeField(id, field, value) {
vk.callFunction({
url: 'admin/system/user/sys/changeField',
data: {
id, field, value
}
}).then(() => {
this.$refs.table1.refresh()
})
},
async getUserList() {
const {rows} = await vk.callFunction({
url: 'admin/system/user/sys/getList',
data: {type: 1, pageSize: 500}
})
this.userList = rows
},
async multiAddQuoteNum() {
if (!this.sendNum) return this.$message.error('请输入赠送报价次数')
if (this.selectedList.length === 0) return this.$message.error('请选择要赠送的报价用户')
await vk.callFunction({
url: 'admin/system/user/sys/multiSendQuoteNum',
data: {
list: this.selectedList,
sendNum: this.sendNum
}
})
this.selectedList = []
this.$message.success('赠送成功')
this.showMultiAddQuoteNum = false
this.$refs.table1.refresh()
}
},
onLoad() {
this.getUserList()
}
}
</script>
</script>
+535 -170
View File
@@ -1,178 +1,543 @@
<template>
<div>
<vk-data-table-query
v-model="queryForm1.formData"
:columns="queryForm1.columns"
@search="search"
></vk-data-table-query>
<vk-data-table
ref="table1"
:action="table1.action"
:columns="table1.columns"
:query-form-param="queryForm1"
:right-btns="[]"
:selection="true"
:row-no="true"
:pagination="true"
>
<template v-slot:action="{ row, column, index }">
<el-button size="mini" @click.native="doShowInfo(row)">详情</el-button>
<template v-if="row.authStatus === 0">
<el-button type="success" size="mini" @click.native="changeStatus(row._id, 1)">通过</el-button>
<el-button type="danger" size="mini" @click.native="refuse(row._id)">拒绝</el-button>
</template>
</template>
<template v-slot:isCoop="{ row, column, index }">
<el-switch v-model="row.isCoop" size="mini" @change="changeIsCoop(row._id)" :active-value="1"
:inactive-value="0"/>
</template>
</vk-data-table>
<vk-data-dialog
v-model="showInfo"
:title="title"
width="60%"
top="14vh"
center
:close-on-click-modal="true"
>
<vk-data-detail-table
:data="info"
:columns="infoColumns"
size="medium"
label-width="150px"
></vk-data-detail-table>
<template v-slot:footer>
<el-button @click="showInfo = false">关闭</el-button>
</template>
</vk-data-dialog>
</div>
<div>
<vk-data-table-query
v-model="queryForm1.formData"
:columns="queryForm1.columns"
@search="search"
></vk-data-table-query>
<view>
<el-row>
<el-button type="success" size="small" icon="el-icon-circle-plus-outline"
@click="showMultiAddQuoteNum = true">批量赠送报价次数
</el-button>
</el-row>
</view>
<vk-data-table
ref="table1"
:action="table1.action"
:columns="table1.columns"
:query-form-param="queryForm1"
:right-btns="[]"
:selection="true"
:row-no="true"
:pagination="true"
right-fixed
:right-btns-width="400"
>
<template v-slot:action="{ row, column, index }">
<el-space>
<template v-if="row.authStatus === 0">
<el-button type="success" size="mini" @click.native="changeStatus(row._id, 1)">认证通过</el-button>
<el-button type="danger" size="mini" @click.native="refuse(row._id)">认证拒绝</el-button>
</template>
<template v-if="row.authStatus === 1 && row.businessCard && row.businessCard.status === 0">
<el-button type="success" size="mini" @click.native="cardChangeStatus(row._id, 1)">名片审核通过
</el-button>
<el-button type="danger" size="mini" @click.native="cardRefuse(row._id)">名片审核拒绝</el-button>
</template>
<el-dropdown>
<span class="el-dropdown-link">
其他操作<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<el-button size="mini" style="width: 100%" @click.native="doShowInfo(row)">详情</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button size="mini" style="width: 100%" @click.native="doShowBusinessCardInfo(row)">名片详情</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button size="mini" style="width: 100%" @click.native="doManagerChangeLog(row)">委托人/法人变更历史</el-button>
</el-dropdown-item>
<el-dropdown-item>
<el-button size="mini" style="width: 100%" @click.native="showArticle(row)" v-if="row.userLevel > 1">新闻动态</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-space>
</template>
<template v-slot:isCoop="{ row, column, index }">
<el-switch v-model="row.isCoop" size="mini" @change="changeIsCoop(row._id)" :active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:showInYellow="{ row, column, index }">
<template v-if="row.businessCard && row.businessCard.status === 1">
<el-switch v-model="row.showInYellow" size="mini"
@change="changeShowInYellow(row._id)"
:active-value="1"
:inactive-value="0"/>
</template>
<span v-else></span>
</template>
<template v-slot:isCompanyQuote="{ row, column, index }">
<el-switch v-model="row.isCompanyQuote" size="mini"
@change="changeField(row._id, 'isCompanyQuote', $event)"
:active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:isProductQuote="{ row, column, index }">
<el-switch v-model="row.isProductQuote" size="mini"
@change="changeField(row._id, 'isProductQuote', $event)"
:active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:isCostQuote="{ row, column, index }">
<el-switch v-model="row.isCostQuote" size="mini"
@change="changeField(row._id, 'isCostQuote', $event)"
:active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:isNotaryBusiness="{ row, column, index }">
<el-switch v-model="row.isNotaryBusiness" size="mini"
@change="changeField(row._id, 'isNotaryBusiness', $event)"
:active-value="1"
:inactive-value="0"/>
</template>
<template v-slot:merchantCode="{ row, column, index }">
<el-input v-model="row.merchantCode" size="mini"
@change="changeField(row._id, 'merchantCode', $event)"/>
</template>
<template v-slot:settleRate="{ row, column, index }">
<el-input-number :min="0" :max="100" v-model="row.settleRate" size="mini"
@change="changeField(row._id, 'settleRate', $event)"/>
</template>
<template v-slot:permissionArea="{ row, column, index }">
<vk-data-input-address v-model="row.permissionArea" placeholder="请选择省市区" :level="3"
@change="changeArea($event, row._id)"/>
</template>
<template v-slot:remainQuoteNum="{ row, column, index }">
<el-input-number v-model="row.remainQuoteNum" @change="changeQuoteNum($event, row._id)"/>
</template>
<template v-slot:mid="{ row, column, index }">
<el-input v-model="row.mid" @change="changeField(row._id, 'mid', $event)"/>
</template>
<template v-slot:merNo="{ row, column, index }">
<el-input v-model="row.merNo" placeholder="请输入企业用户号"
@change="changeField(row._id, 'merNo', $event)"/>
</template>
<template v-slot:tid="{ row, column, index }">
<el-input v-model="row.tid" @change="changeField(row._id, 'tid', $event)"/>
</template>
</vk-data-table>
<vk-data-dialog
v-model="showInfo"
:title="title"
width="60%"
top="14vh"
center
:close-on-click-modal="true"
>
<vk-data-detail-table
:data="info"
:columns="infoColumns"
size="medium"
label-width="150px"
></vk-data-detail-table>
<template v-slot:footer>
<el-button @click="showInfo = false">关闭</el-button>
</template>
</vk-data-dialog>
<vk-data-dialog
v-model="showBusinessCardInfo"
:title="title"
width="60%"
top="14vh"
center
:close-on-click-modal="true"
>
<vk-data-detail-table
:data="info"
:columns="businessColumns"
size="medium"
label-width="150px"
>
</vk-data-detail-table>
<template v-slot:footer>
<el-button @click="showBusinessCardInfo = false">关闭</el-button>
</template>
</vk-data-dialog>
<ManagerChangeLog ref="ManagerChangeLog"/>
<ArticleList ref="ArticleList"/>
<el-dialog
title="批量赠送报价次数"
:visible.sync="showMultiAddQuoteNum"
width="50%">
<el-row :gutter="10">
<el-col :span="20">
<el-select v-model="selectedList" placeholder="点击选择账号" style="width: 100%" multiple clearable
filterable>
<el-option
v-for="(item, index) in userList"
:key="item.value"
:label="item.nickname"
:value="item._id">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-button type="primary" @click="selectedList = userList.map(item => item._id)">全选</el-button>
</el-col>
</el-row>
<p style="margin-top: 2rem">请输入赠送报价次数</p>
<el-input-number v-model="sendNum" placeholder="请输入报价次数"/>
<div slot="footer" class="dialog-footer">
<el-button @click="showMultiAddQuoteNum = false">取 消</el-button>
<el-button type="primary" @click="multiAddQuoteNum">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import ManagerChangeLog from "./components/ManagerChangeLog.vue";
import ArticleList from "./components/ArticleList.vue";
export default {
name: "index",
data() {
return {
showInfo: false,
info: null,
title: '',
infoColumns: [
{key: "company.companyName", title: "企业名称", type: "text"},
{key: "company.organization", title: "统一社会信用代码", type: "text"},
{key: "company.companyName", title: "公司所在地", type: "text"},
{key: "company.companyName", title: "详细地址", type: "text"},
{key: "company.mailAddress", title: "有效通信地址", type: "text"},
{key: "company.contactEmail", title: "有效邮箱地址", type: "text"},
{key: "company.companyAccount", title: "对公账号", type: "text"},
{key: "company.companyBankName", title: "开户行", type: "text"},
{key: "company.personAccount", title: "个人账号", type: "text"},
{key: "company.personBankName", title: "个人开户行", type: "text"},
{key: "company.accountName", title: "户名", type: "text"},
{key: "company.personBankName", title: "个人开户行", type: "text"},
{key: "company.organizationPath", title: "营业执照", type: "image"},
{key: "company.businessType", title: "经营类目", type: "text"},
{key: "company.invoiceInfo", title: "上开票资料", type: "image"},
{key: "company.taxType", title: "纳税人类型", type: "text"},
{key: "company.taxImage", title: "纳税人资格", type: "image"},
{key: "manager.personName", title: "代理人类型", type: "text"},
{
key: "manager.certType", title: "证件类型", type: "html", formatter: (val, row, column, index) => {
return `<div>${row.certType === 0 ? '身份证' : '护照'}</div>`;
}
},
{key: "manager.idCard", title: "代理人证件号", type: "text"},
{key: "manager.mobile", title: "代理人电话", type: "text"},
{key: "manager.headPhotoPath", title: "身份证正面", type: "image"},
{key: "manager.backgroundIdCardPath", title: "身份证反面", type: "image"},
],
queryForm1: {
// 查询表单数据源,可在此设置默认值
formData: {
dcloud_appid: "",
type: 2
//allow_login_background : true,
},
// 查询表单的字段规则 fieldName:指定数据库字段名,不填默认等于key
columns: [
{key: "username", title: "用户名", type: "text", width: 160, mode: "%%"},
{key: "nickname", title: "昵称", type: "text", width: 140, mode: "%%"},
{key: "mobile", title: "手机号", type: "text", width: 140, mode: "%%"},
]
},
table1: {
// 表格数据请求地址
action: "admin/system/user/sys/getList",
// 表格字段显示规则
columns: [
// {key: "user.mobile", title: "手机号", type: "text", width: 120, defaultValue: ""},
{key: "company.companyName", title: "企业名称", type: "text"},
{key: "company.organization", title: "统一社会信用代码", type: "text"},
{key: "company.mailAddress", title: "有效通信地址", type: "text"},
{
key: "", title: "代理人", type: "html", formatter: (val, row, column, index) => {
let str
str = `<view>${row.manager.personName}</view>`
// str += `<view>${row.person.mobile}</view>`
return str;
}
},
{key: "authTime", title: "认证时间", type: "time", width: 160, sortable: "custom"},
{
key: "authStatus", title: "认证状态", type: "tag", data: [
{value: 0, label: "未认证", tagType: "warning"},
{value: 1, label: "已认证", tagType: "success"},
{value: 2, label: "认证失败", tagType: "danger"},
]
},
{key: "isCoop", title: "是否合作/联营单位", type: "html"},
{
key: "action", title: "操作", type: "html"
},
],
// 多选框选中的值
multipleSelection: [],
// 当前高亮的记录
selectItem: "",
name: "index",
components: {ArticleList, ManagerChangeLog},
data() {
return {
showInfo: false,
showBusinessCardInfo: false,
showMultiAddQuoteNum: false,
selectedList: [],
userList: [],
sendNum: 0,
info: null,
title: '',
infoColumns: [
{
key: "userType", title: "用户类型", type: "html",
formatter: (val, row, column, index) => {
if (!val) return '平台交易功能用户'
else return '金久信签约宝、特产商城用户'
}
},
{key: "company.companyName", title: "企业名称", type: "text"},
{key: "company.organization", title: "统一社会信用代码", type: "text"},
{
key: "company.companyName",
title: "公司所在地",
type: "html",
formatter: (val, row, column, index) => {
const region = row.company.addressRegion
return `<div>${region.province.name}${region.city.name}${region.area.name}</div>`;
}
},
{key: "company.addressDetail", title: "详细地址", type: "text"},
{key: "company.mailAddress", title: "有效通信地址", type: "text"},
{key: "company.contactEmail", title: "有效邮箱地址", type: "text"},
{key: "company.mobile", title: "公司电话", type: "text"},
{key: "company.companyAccount", title: "对公账号", type: "text"},
{key: "company.companyBankName", title: "开户行", type: "text"},
{key: "company.personAccount", title: "个人账号", type: "text"},
{key: "company.personBankName", title: "个人开户行", type: "text"},
{key: "company.accountName", title: "户名", type: "text"},
{key: "merNo", title: "企业用户号", type: "text"},
{key: "company.personBankName", title: "个人开户行", type: "text"},
{key: "company.organizationPath", title: "营业执照", type: "image"},
{key: "company.businessType", title: "行业分类", type: "text"},
{key: "company.mainSpotCategoryNames", title: "主营业务", type: "text"},
{key: "company.invoiceInfo", title: "开票资料", type: "image"},
{key: "company.taxType", title: "纳税人类型", type: "text"},
{
key: "isNotaryBusiness", title: "金久信公证业务", type: "select", data: [
{value: 0, label: '关闭'},
{value: 1, label: '开启'},
]
},
// {key: "company.taxImage", title: "纳税人资格", type: "image"},
{
key: "manager.type", title: "授权人类型", type: "select", data: [
{value: 1, label: '法人'},
{value: 2, label: '授权人'},
]
},
{
key: "manager.certType", title: "证件类型", type: "html", formatter: (val, row, column, index) => {
return `<div>${parseInt(val) === 0 ? '身份证' : '护照'}</div>`;
}
},
{key: "manager.idCard", title: "代理人证件号", type: "text"},
{key: "manager.mobile", title: "代理人电话", type: "text"},
{key: "manager.headPhotoPath", title: "身份证头像面", type: "image"},
{key: "manager.backgroundIdCardPath", title: "身份证国徽面", type: "image"},
],
businessColumns: [
{key: "businessCard.logo", title: "Logo", type: "image"},
{key: "businessCard.personalWechat", title: "个人微信", type: "image"},
{key: "businessCard.companyWechat", title: "企业微信", type: "image"},
{key: "businessCard.companyMobile", title: "公司电话", type: "text"},
{key: "businessCard.managerMobile", title: "负责人电话", type: "text"},
{key: "businessCard.address", title: "地区", type: "address"},
{key: "businessCard.addressDetail", title: "详细地址", type: "text"},
{key: "businessCard.email", title: "邮箱", type: "text"},
{key: "businessCard.website", title: "网址", type: "text"},
{key: "businessCard.companyIntroduction", title: "企业简介", type: "editor"},
{
key: "businessCard.video", title: "视频", type: "html", formatter: (val, row, column, index) => {
let str
str = `<video src="${row.businessCard.video}" controls></video>`
// str += `<view>${row.person.mobile}</view>`
return str;
}
},
{key: "businessCard.album", title: "首页大图", type: "image"},
{key: "businessCard.productImageList", title: "产品展示", type: "image"},
{key: "businessCard.exampleImageList", title: "案例展示", type: "image"},
// {key: "map", title: "地图定位", type: "html", formatter: (val, row, column, index) => {
// let str
// str = `<view style="width: 100%; height: 300px">
// <tdt-map :center="[${row.businessCard.longitude}, ${row.businessCard.latitude}]" :zoom="12">
// <tdt-marker :position="[${row.businessCard.longitude}, ${row.businessCard.latitude}]" :draggable="false"/>
// </tdt-map>
// </view>`
// return str;
// }
// },
],
queryForm1: {
// 查询表单数据源,可在此设置默认值
formData: {
dcloud_appid: "",
type: 2,
isSignOnly: false
//allow_login_background : true,
},
// 查询表单的字段规则 fieldName:指定数据库字段名,不填默认等于key
columns: [
// {key: "username", title: "用户名", type: "text", width: 160, mode: "%%"},
{key: "nickname", title: "昵称", type: "text", width: 140, mode: "%%"},
{key: "mobile", title: "手机号", type: "text", width: 140, mode: "%%"},
{key: "address", title: "省份筛选", type: "address", width: 300, mode: "%%", level: 1},
{
key: "authStatus", title: "审核筛选", type: "select", width: 150, data: [
{value: 0, label: '待审核'},
{value: 1, label: '已通过'},
]
},
{
key: "businessCard.status", title: "名片审核筛选", type: "select", width: 150, data: [
{value: 0, label: '待审核'},
{value: 1, label: '已通过'},
]
},
]
},
table1: {
// 表格数据请求地址
action: "admin/system/user/sys/getList",
// 表格字段显示规则
columns: [
// {key: "user.mobile", title: "手机号", type: "text", width: 120, defaultValue: ""},
{key: "company.companyName", title: "企业名称", type: "text", width: 200, fixed: 'left'},
{key: "company.organization", title: "统一社会信用代码", type: "text", width: 200},
{key: "company.mailAddress", title: "有效通信地址", type: "text", width: 200},
{key: "mobile", title: "手机号", type: "text", width: 150},
{
key: "", title: "授权人", type: "html", formatter: (val, row, column, index) => {
let str
str = `<view>${row.manager.personName}</view>`
// str += `<view>${row.person.mobile}</view>`
return str;
}
}
},
methods: {
search() {
this.$refs.table1.query();
},
async refuse(id) {
const {action, value} = await this.$prompt('拒绝理由', {
showInput: true
});
if (action === 'confirm') {
this.changeStatus(id, 2, value)
}
},
changeStatus(id, authStatus, refuseReason = null) {
vk.callFunction({
url: 'admin/system/user/sys/changeStatus',
data: {
id, authStatus, refuseReason
}
}).then(() => {
this.$refs.table1.refresh()
})
},
doShowInfo(info) {
this.info = info
this.title = '详情'
this.showInfo = true
},
changeIsCoop(id) {
vk.callFunction({
url: 'admin/system/user/sys/changeCoop',
data: {
id
}
}).then(() => {
this.$refs.table1.refresh()
})
},
},
{key: "authSubmitTime", title: "认证提交时间", type: "time", width: 160, sortable: "custom"},
// {
// key: "authType", title: "认证类型", type: "html", defaultValue: "",
// formatter: (val, row, column, index) => {
// return `<view>${val === 1 ? "法大大认证" : "平台认证"}</view>`;
// }
// },
{
key: "authStatus", title: "认证状态", type: "tag", data: [
{value: -1, label: "未认证", tagType: "warning"},
{value: 0, label: "认证中", tagType: "warning"},
{value: 1, label: "已认证", tagType: "success"},
{value: 2, label: "认证失败", tagType: "danger"},
]
},
{
key: "businessCard.status", title: "名片审核状态", type: "select", width: 200, data: [
{value: 0, label: "审核中", tagType: "warning"},
{value: 1, label: "已审核", tagType: "success"},
{value: 2, label: "审核失败", tagType: "danger"},
]
},
{key: "isCoop", title: "是否合作商", type: "html", width: 140},
{
key: "showInYellow", title: "是否在黄页显示", type: "html", width: 140
},
{
key: "isCompanyQuote", title: "是否考察商", type: "html", width: 140
},
{
key: "isProductQuote", title: "是否检测商", type: "html", width: 140
},
{
key: "isCostQuote", title: "是否造价询价商", type: "html", width: 140
},
{
key: "isNotaryBusiness", title: "金久信公证业务", type: "html", width: 160
},
{
key: "settleRate", title: "结算比例", type: "html", width: 150
},
{
key: "company.addressRegion", title: "权限区域", type: "address", width: 230
},
{
key: "remainQuoteNum", title: "报价次数", type: "html", width: 300
},
{
key: "mid", title: "商户号", type: "html", width: 300
},
{
key: "merNo", title: "企业用户号", type: "html", width: 300
},
{
key: "tid", title: "终端号", type: "html", width: 300
},
{
key: "action", title: "操作", type: "html",
width: 200,
fixed: 'right'
},
],
// 多选框选中的值
multipleSelection: [],
// 当前高亮的记录
selectItem: "",
}
}
},
methods: {
search() {
this.$refs.table1.query();
},
async refuse(id) {
const {action, value} = await this.$prompt('拒绝理由', {
showInput: true
});
if (action === 'confirm') {
this.changeStatus(id, 2, value)
}
},
changeStatus(id, authStatus, refuseReason = null) {
vk.callFunction({
url: 'admin/system/user/sys/changeStatus',
data: {
id, authStatus, refuseReason
}
}).then(() => {
this.$refs.table1.refresh()
})
},
doShowInfo(info) {
this.info = info
this.title = '详情'
this.showInfo = true
},
doShowBusinessCardInfo(info) {
this.info = info
this.title = '名片详情'
this.showBusinessCardInfo = true
},
changeIsCoop(id) {
vk.callFunction({
url: 'admin/system/user/sys/changeCoop',
data: {
id
}
}).then(() => {
this.$refs.table1.refresh()
})
},
changeShowInYellow(id) {
vk.callFunction({
url: 'admin/system/user/sys/changeShowInYellow',
data: {
id
}
}).then(() => {
this.$refs.table1.refresh()
})
},
async cardRefuse(id) {
const {action, value} = await this.$prompt('拒绝理由', {
showInput: true
});
if (action === 'confirm') {
this.cardChangeStatus(id, 2, value)
}
},
cardChangeStatus(id, status, refuseReason = null) {
vk.callFunction({
url: 'admin/system/user/sys/changeCardStatus',
data: {
id, status, refuseReason
}
}).then(() => {
this.$refs.table1.refresh()
})
},
changeArea(permissionArea, id) {
this.changeField(id, 'permissionArea', permissionArea)
},
changeQuoteNum(value, id) {
this.changeField(id, 'remainQuoteNum', value)
},
changeField(id, field, value) {
vk.callFunction({
url: 'admin/system/user/sys/changeField',
data: {
id, field, value
}
}).then(() => {
this.$refs.table1.refresh()
})
},
doManagerChangeLog({_id}) {
this.$refs.ManagerChangeLog.open(_id)
},
showArticle({_id}) {
this.$refs.ArticleList.open(_id)
},
async getUserList() {
const {rows} = await vk.callFunction({
url: 'admin/system/user/sys/getList',
data: {type: 2, pageSize: 500}
})
this.userList = rows.filter(item => item.company && item.company.companyName !== '' && item.company.companyName)
},
async multiAddQuoteNum() {
if (!this.sendNum) return this.$message.error('请输入赠送报价次数')
if (this.selectedList.length === 0) return this.$message.error('请选择要赠送的报价用户')
await vk.callFunction({
url: 'admin/system/user/sys/multiSendQuoteNum',
data: {
list: this.selectedList,
sendNum: this.sendNum
}
})
this.selectedList = []
this.$message.success('赠送成功')
this.showMultiAddQuoteNum = false
this.$refs.table1.refresh()
}
},
onLoad() {
this.getUserList()
}
}
</script>
</script>
<style scoped>
.mapDiv {
width: 100%;
height: 300px;
}
</style>