添加:商户分割为商户、酒道馆、供应商
This commit is contained in:
parent
ad1e81ae73
commit
945ebdfc51
|
|
@ -210,8 +210,8 @@ export function merchantIsCloseApi(id, status) {
|
|||
/**
|
||||
* @description 商户列表 -- 开启商户数
|
||||
*/
|
||||
export function merchantCountApi() {
|
||||
return request.get(`system/merchant/count`)
|
||||
export function merchantCountApi(data) {
|
||||
return request.get(`system/merchant/count`,data)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,127 +1,145 @@
|
|||
|
||||
import Layout from '@/layout'
|
||||
import { roterPre } from '@/settings'
|
||||
import {roterPre} from '@/settings'
|
||||
|
||||
const merchantRouter =
|
||||
{
|
||||
path: `${roterPre}/merchant`,
|
||||
name: 'merchant',
|
||||
meta: {
|
||||
icon: 'dashboard',
|
||||
title: '商户管理'
|
||||
{
|
||||
path: `${roterPre}/merchant`,
|
||||
name: 'merchant',
|
||||
meta: {
|
||||
icon: 'dashboard',
|
||||
title: '商户管理'
|
||||
},
|
||||
alwaysShow: true,
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'system',
|
||||
name: 'MerchantSystem',
|
||||
meta: {
|
||||
title: '商户权限管理',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/system/index')
|
||||
},
|
||||
alwaysShow: true,
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: 'system',
|
||||
name: 'MerchantSystem',
|
||||
meta: {
|
||||
title: '商户权限管理',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/system/index')
|
||||
{
|
||||
path: 'list',
|
||||
name: 'MerchantList',
|
||||
meta: {
|
||||
title: '商户列表',
|
||||
noCache: true
|
||||
},
|
||||
{
|
||||
path: 'list',
|
||||
name: 'MerchantList',
|
||||
meta: {
|
||||
title: '商户列表',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/list/index')
|
||||
component: () => import('@/views/merchant/list/index')
|
||||
},
|
||||
{
|
||||
path: 'shop',
|
||||
name: 'MerchantShopList',
|
||||
meta: {
|
||||
title: '酒道馆',
|
||||
noCache: true
|
||||
},
|
||||
{
|
||||
path: 'list/reconciliation/:id/:type?',
|
||||
name: 'MerchantRecord',
|
||||
component: () => import('@/views/merchant/list/record'),
|
||||
meta: {
|
||||
title: '商户对账',
|
||||
noCache: true,
|
||||
activeMenu: `${roterPre}/merchant/list`
|
||||
},
|
||||
hidden: true
|
||||
component: () => import('@/views/merchant/list/shop')
|
||||
},
|
||||
{
|
||||
path: 'supplier',
|
||||
name: 'MerchantSupplierList',
|
||||
meta: {
|
||||
title: '供应商',
|
||||
noCache: true
|
||||
},
|
||||
{
|
||||
path: 'classify',
|
||||
name: 'MerchantClassify',
|
||||
meta: {
|
||||
title: '商户分类',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/classify')
|
||||
component: () => import('@/views/merchant/list/supplier')
|
||||
},
|
||||
{
|
||||
path: 'list/reconciliation/:id/:type?',
|
||||
name: 'MerchantRecord',
|
||||
component: () => import('@/views/merchant/list/record'),
|
||||
meta: {
|
||||
title: '商户对账',
|
||||
noCache: true,
|
||||
activeMenu: `${roterPre}/merchant/list`
|
||||
},
|
||||
{
|
||||
path: 'application',
|
||||
name: 'MerchantApplication',
|
||||
meta: {
|
||||
title: '商户申请',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/application')
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'classify',
|
||||
name: 'MerchantClassify',
|
||||
meta: {
|
||||
title: '商户分类',
|
||||
noCache: true
|
||||
},
|
||||
{
|
||||
path: 'agree',
|
||||
name: 'MerchantAgreement',
|
||||
meta: {
|
||||
title: '入驻协议',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/agreement')
|
||||
component: () => import('@/views/merchant/classify')
|
||||
},
|
||||
{
|
||||
path: 'application',
|
||||
name: 'MerchantApplication',
|
||||
meta: {
|
||||
title: '商户申请',
|
||||
noCache: true
|
||||
},
|
||||
{
|
||||
path: 'type',
|
||||
name: 'storeType',
|
||||
meta: {
|
||||
title: '店铺类型',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/type/index')
|
||||
},
|
||||
{
|
||||
path: 'applyMents',
|
||||
name: 'MerchantApplyMents',
|
||||
meta: {
|
||||
title: '服务申请',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/applyments/index')
|
||||
},
|
||||
{
|
||||
path: 'applyList',
|
||||
name: 'ApplyList',
|
||||
meta: {
|
||||
title: '分账商户列表'
|
||||
},
|
||||
component: () => import('@/views/merchant/applyments/list')
|
||||
},
|
||||
{
|
||||
path: 'type/description',
|
||||
name: 'MerTypeDesc',
|
||||
meta: {
|
||||
title: '店铺类型说明',
|
||||
noCache: true,
|
||||
},
|
||||
component: () => import('@/views/merchant/type/description')
|
||||
},
|
||||
{
|
||||
path: 'deposit_list',
|
||||
name: 'DepositList',
|
||||
meta: {
|
||||
title: '店铺保证金管理',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/deposit/index')
|
||||
},
|
||||
{
|
||||
path: 'recharge_record',
|
||||
name: 'RechargeRecord',
|
||||
meta: {
|
||||
title: '商户充值记录',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/rechargeRecord/index')
|
||||
},
|
||||
]
|
||||
}
|
||||
component: () => import('@/views/merchant/application')
|
||||
},
|
||||
{
|
||||
path: 'agree',
|
||||
name: 'MerchantAgreement',
|
||||
meta: {
|
||||
title: '入驻协议',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/agreement')
|
||||
},
|
||||
{
|
||||
path: 'type',
|
||||
name: 'storeType',
|
||||
meta: {
|
||||
title: '店铺类型',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/type/index')
|
||||
},
|
||||
{
|
||||
path: 'applyMents',
|
||||
name: 'MerchantApplyMents',
|
||||
meta: {
|
||||
title: '服务申请',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/applyments/index')
|
||||
},
|
||||
{
|
||||
path: 'applyList',
|
||||
name: 'ApplyList',
|
||||
meta: {
|
||||
title: '分账商户列表'
|
||||
},
|
||||
component: () => import('@/views/merchant/applyments/list')
|
||||
},
|
||||
{
|
||||
path: 'type/description',
|
||||
name: 'MerTypeDesc',
|
||||
meta: {
|
||||
title: '店铺类型说明',
|
||||
noCache: true,
|
||||
},
|
||||
component: () => import('@/views/merchant/type/description')
|
||||
},
|
||||
{
|
||||
path: 'deposit_list',
|
||||
name: 'DepositList',
|
||||
meta: {
|
||||
title: '店铺保证金管理',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/deposit/index')
|
||||
},
|
||||
{
|
||||
path: 'recharge_record',
|
||||
name: 'RechargeRecord',
|
||||
meta: {
|
||||
title: '商户充值记录',
|
||||
noCache: true
|
||||
},
|
||||
component: () => import('@/views/merchant/rechargeRecord/index')
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
export default merchantRouter
|
||||
|
|
|
|||
|
|
@ -72,13 +72,13 @@
|
|||
<div v-else class="head">
|
||||
<div class="text">
|
||||
<div class="title">
|
||||
<span class="bold">添加商户</span>
|
||||
<span class="bold">添加{{ defaultMerchantType == 1 ? '酒道馆' : (defaultMerchantType == 2 ? '供应商' :'商户') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--详情-->
|
||||
<merEditForm ref="editForm" :merId="merId" :isAdd="isAdd" :merData="merData" @modifyCopy="modifyCopy" @success="editSuccess" v-if="isEdit || isAdd"></merEditForm>
|
||||
<mer-info ref="merInfo" :merData="merData" v-else-if="!isEdit && !isAdd"></mer-info>
|
||||
<merEditForm ref="editForm" :defaultMerchantType="defaultMerchantType" :merId="merId" :isAdd="isAdd" :merData="merData" @modifyCopy="modifyCopy" @success="editSuccess" v-if="isEdit || isAdd"></merEditForm>
|
||||
<mer-info ref="merInfo" :defaultMerchantType="defaultMerchantType" :merData="merData" v-else-if="!isEdit && !isAdd"></mer-info>
|
||||
</div>
|
||||
<div v-if="isAdd" class="footer">
|
||||
<el-button size="small" @click="handleClose">取消</el-button>
|
||||
|
|
@ -101,6 +101,10 @@ export default {
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
defaultMerchantType: {
|
||||
type: [Number, String],
|
||||
default: 0,
|
||||
},
|
||||
},
|
||||
components: { merInfo, merEditForm },
|
||||
data() {
|
||||
|
|
@ -116,8 +120,7 @@ export default {
|
|||
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
},
|
||||
filters: {},
|
||||
methods: {
|
||||
handleClose() {
|
||||
if(this.isEdit || this.isAdd) {
|
||||
|
|
|
|||
|
|
@ -13,16 +13,16 @@
|
|||
<div class="title">基础信息</div>
|
||||
<el-row :gutter="24" class="mt20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户名称:" prop="mer_name">
|
||||
<el-form-item :label="mar_type_name + '名称:'" prop="mer_name">
|
||||
<el-input
|
||||
v-model="merData.mer_name"
|
||||
placeholder="请填写商户名称"
|
||||
:placeholder="'请填写' + mar_type_name + '名称'"
|
||||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户地址:" prop="mer_address">
|
||||
<el-form-item :label="mar_type_name + '地址:'" prop="mer_address">
|
||||
<el-input
|
||||
v-model="merData.mer_address"
|
||||
placeholder="请填写详细地址"
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户分类:" prop="category_id">
|
||||
<el-form-item :label="mar_type_name + '分类:'" prop="category_id">
|
||||
<el-select
|
||||
v-model="merData.category_id"
|
||||
placeholder="请选择"
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户类型:" prop="is_trader">
|
||||
<el-form-item :label="mar_type_name + '类型:'" prop="is_trader">
|
||||
<el-radio-group
|
||||
v-model="merData.is_trader"
|
||||
>
|
||||
|
|
@ -77,7 +77,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="推荐商户:" prop="is_best">
|
||||
<el-form-item :label="'推荐' + mar_type_name + ':'" prop="is_best">
|
||||
<el-switch
|
||||
v-model="merData.is_best"
|
||||
:active-value="1"
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户状态:" prop="status">
|
||||
<el-form-item :label="mar_type_name + '状态:'" prop="status">
|
||||
<el-switch
|
||||
v-model="merData.status"
|
||||
:active-value="1"
|
||||
|
|
@ -133,8 +133,8 @@
|
|||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户标签:" prop="mer_label">
|
||||
<el-input type="textarea" v-model="merData.mer_label" placeholder="请填写商户标签,多个以逗号隔开!" class="selWidth" />
|
||||
<el-form-item :label="mar_type_name + '标签:'" prop="mer_label">
|
||||
<el-input type="textarea" v-model="merData.mer_label" placeholder="请填写标签,多个以逗号隔开!" class="selWidth" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -160,7 +160,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商户手续费单独设置:" label-width="150px" prop="commission_rate">
|
||||
<el-form-item :label="mar_type_name + '手续费单独设置:'" label-width="150px" prop="commission_rate">
|
||||
<el-switch
|
||||
v-model="merData.commission_switch"
|
||||
:active-value="1"
|
||||
|
|
@ -169,7 +169,7 @@
|
|||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
/>
|
||||
<span class="info info-red">(注:此处如未设置手续费,系统会自动读取商户分类下对应手续费;此处已设置,则优先以此处设置为准)</span>
|
||||
<span class="info info-red">(注:此处如未设置手续费,系统会自动读取{{ mar_type_name }}分类下对应手续费;此处已设置,则优先以此处设置为准)</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="merData.commission_switch" :span="24">
|
||||
|
|
@ -231,8 +231,8 @@
|
|||
<div class="mt20">
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户关键字:" prop="mer_keyword">
|
||||
<el-input v-model="merData.mer_keyword" placeholder="请填写商户关键字" class="selWidth" />
|
||||
<el-form-item :label="mar_type_name + '关键字:'" prop="mer_keyword">
|
||||
<el-input v-model="merData.mer_keyword" placeholder="请填写关键字" class="selWidth" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -252,7 +252,7 @@
|
|||
<div class="title">登录账号</div>
|
||||
<el-row :gutter="24" class="mt20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商户账号:" prop="mer_account">
|
||||
<el-form-item :label="mar_type_name + '账号:'" prop="mer_account">
|
||||
<el-input
|
||||
type="text"
|
||||
v-model="merData.mer_account"
|
||||
|
|
@ -296,16 +296,18 @@
|
|||
<div class="title">财务帐号</div>
|
||||
<el-row :gutter="24" class="mt20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="分账商户号:" prop="sub_mchid">
|
||||
<el-form-item :label="'分账' + mar_type_name + '号:'" prop="sub_mchid">
|
||||
<el-input
|
||||
placeholder="请填写分账商户号"
|
||||
:placeholder="'请填写分账' + mar_type_name + '号'"
|
||||
v-model="merData.sub_mchid"
|
||||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="info-red" style="margin-left: 120px;">当开启自动分账时,每个子商户在微信后台的分账商户号,即特约子商户号</div>
|
||||
<div class="info-red" style="margin-left: 120px;">
|
||||
当开启自动分账时,每个子{{ mar_type_name }} 在微信后台的分账{{ mar_type_name }}号, 即特约子{{ mar_type_name }}号
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
|
@ -321,6 +323,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mt20">
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="mar_type_name +' 类别:'" prop="merchant_type">
|
||||
<el-select v-model="merData.merchant_type" disabled placeholder="请选择" class="selWidth">
|
||||
<el-option label="普通商户" :value="0" />
|
||||
<el-option label="酒道馆" :value="1" />
|
||||
<el-option label="供应商" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--<el-row :gutter="24" class="mt20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商户积分兑换平台积分比例:" prop="mer_integral_platform_rate" label-width="200">
|
||||
|
|
@ -359,7 +372,11 @@ export default {
|
|||
isAdd: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
}
|
||||
},
|
||||
defaultMerchantType: {
|
||||
type: [Number, String],
|
||||
default: 0,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
const validatePhone = (rule, value, callback) => {
|
||||
|
|
@ -372,6 +389,7 @@ export default {
|
|||
}
|
||||
}
|
||||
return {
|
||||
mar_type_name: '商户',
|
||||
loading: false,
|
||||
merId: '',
|
||||
direction: 'rtl',
|
||||
|
|
@ -380,13 +398,13 @@ export default {
|
|||
storeType: [],
|
||||
ruleValidate: {
|
||||
mer_name: [
|
||||
{ required: true, message: '请输入商户名称', trigger: 'blur' }
|
||||
{ required: true, message: `请输入${this.mar_type_name}名称`, trigger: 'blur' }
|
||||
],
|
||||
mer_account: [
|
||||
{ required: true, message: '请输入商户账号', trigger: 'blur' }
|
||||
{ required: true, message: `请输入${this.mar_type_name}账号`, trigger: 'blur' }
|
||||
],
|
||||
category_id: [
|
||||
{ required: true, message: '请选择商户分类', trigger: 'change' }
|
||||
{ required: true, message: `请选择${this.mar_type_name}分类`, trigger: 'change' }
|
||||
],
|
||||
type_id: [
|
||||
{ required: true, message: '请选择店铺类型', trigger: 'change' }
|
||||
|
|
@ -395,7 +413,15 @@ export default {
|
|||
},
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
filters: {},
|
||||
watch: {
|
||||
merData: {
|
||||
handler() {
|
||||
this.merData.merchant_type = this.defaultMerchantType || 0;
|
||||
this.mar_type_name = this.defaultMerchantType == 1 ? '酒道馆' : (this.defaultMerchantType == 2 ? '供应商' :'商户');
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getCategorySelect();
|
||||
|
|
@ -457,10 +483,10 @@ export default {
|
|||
this.$message.error(res.message);
|
||||
});
|
||||
} else {
|
||||
if(!this.merData.mer_name)return this.$message.error('请填写基本信息-商户名称');
|
||||
if(!this.merData.category_id)return this.$message.error('请选择基本信息-商户分类');
|
||||
if(!this.merData.mer_name)return this.$message.error(`请填写基本信息-${mar_type_name}名称`);
|
||||
if(!this.merData.category_id)return this.$message.error(`请选择基本信息-${mar_type_name}分类`);
|
||||
if(!this.merData.type_id)return this.$message.error('请选择基本信息-店铺类型');
|
||||
if(!this.merData.mer_account)return this.$message.error('请填写账号信息-商户账号');
|
||||
if(!this.merData.mer_account)return this.$message.error(`请填写账号信息-${mar_type_name}账号`);
|
||||
if(!this.merData.mer_phone)return this.$message.error('请填写账号信息-联系电话');
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,24 +6,24 @@
|
|||
<div class="title">基础信息</div>
|
||||
<ul class="list">
|
||||
<li class="item">
|
||||
<div>商户名称:</div>
|
||||
<div>{{ mar_type_name }}名称:</div>
|
||||
<div class="value">
|
||||
{{merData.mer_name}}
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>商户类型:</div>
|
||||
<div>{{ mar_type_name }}类型:</div>
|
||||
<div class="value">{{merData.is_trader == 1 ? "自营" : "非自营"}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>商户分类:</div>
|
||||
<div>{{ mar_type_name }}分类:</div>
|
||||
<div v-if="merData.merchantCategory" class="value">
|
||||
{{merData.merchantCategory.category_name}}
|
||||
<span class="info info-red">(该分类下的商户手续费是{{merData.merchantCategory.commission_rate*100}}%)</span>
|
||||
<span class="info info-red">(该分类下的{{ mar_type_name }}手续费是{{merData.merchantCategory.commission_rate*100}}%)</span>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>推荐商户:</div>
|
||||
<div>推荐{{ mar_type_name }}:</div>
|
||||
<div class="value">{{merData.is_best == 1 ? "是" : "否"}}</div>
|
||||
</li>
|
||||
<li v-if="merData.merchantType" class="item">
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
<div class="value">{{merData.merchantType.type_name}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>商户状态:</div>
|
||||
<div>{{ mar_type_name }}状态:</div>
|
||||
<div class="value">{{merData.status == 1 ? "开启" : "关闭"}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
<div class="value">{{merData.avg_consumption}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>商户标签:</div>
|
||||
<div>{{ mar_type_name }}标签:</div>
|
||||
<div class="value">{{merData.mer_label}}</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -62,16 +62,16 @@
|
|||
<div class="title">费用信息</div>
|
||||
<ul class="list">
|
||||
<li class="item item100">
|
||||
<div>商户手续费单独设置:</div>
|
||||
<div>{{ mar_type_name }}手续费单独设置:</div>
|
||||
<div class="value">
|
||||
{{merData.commission_switch ? "开启" : "关闭"}}
|
||||
</div>
|
||||
</li>
|
||||
<li v-if="merData.commission_switch" class="item item100">
|
||||
<div>商户手续费:</div>
|
||||
<div>{{ mar_type_name }}手续费:</div>
|
||||
<div class="value">
|
||||
{{ merData.commission_rate}}%
|
||||
<span class="info info-red">(注:此处如未设置手续费,系统会自动读取商户分类下对应手续费;此处已设置,则优先以此处设置为准)</span>
|
||||
<span class="info info-red">(注:此处如未设置手续费,系统会自动读取{{ mar_type_name }}分类下对应手续费;此处已设置,则优先以此处设置为准)</span>
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
|
|
@ -113,7 +113,7 @@
|
|||
<div class="title">其他信息</div>
|
||||
<ul class="list">
|
||||
<li class="item item100">
|
||||
<div>搜索商户关键字:</div>
|
||||
<div>搜索{{ mar_type_name }}关键字:</div>
|
||||
<div class="value">{{merData.mer_keyword}}</div>
|
||||
</li>
|
||||
<li class="item item100">
|
||||
|
|
@ -121,7 +121,7 @@
|
|||
<div class="value">{{merData.copy_product_num}}次</div>
|
||||
</li>
|
||||
<li class="item item100">
|
||||
<div>商户资质:</div>
|
||||
<div>{{ mar_type_name }}资质:</div>
|
||||
<div class="value">
|
||||
<el-image
|
||||
v-for="(item, index) in merData.mer_certificate"
|
||||
|
|
@ -140,7 +140,7 @@
|
|||
<div class="title">登录账号</div>
|
||||
<ul class="list">
|
||||
<li class="item">
|
||||
<div>商户账号:</div>
|
||||
<div>{{ mar_type_name }}账号:</div>
|
||||
<div class="value">
|
||||
{{merData.mer_account}}
|
||||
</div>
|
||||
|
|
@ -172,7 +172,7 @@
|
|||
<div class="title">财务帐号</div>
|
||||
<ul class="list">
|
||||
<li class="item">
|
||||
<div>微信分账商户号:</div>
|
||||
<div>微信分账{{ mar_type_name }}号:</div>
|
||||
<div class="value">{{merData.sub_mchid}}</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -187,6 +187,13 @@
|
|||
<div class="value" v-if="merData.mer_exchange_quota_multiple > 0">{{merData.mer_exchange_quota_multiple}}倍</div>
|
||||
<div class="value" v-else>未设置</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>{{ mar_type_name }}类别:</div>
|
||||
<!--商户类别:0=普通商户,1=酒道馆,2=供应商-->
|
||||
<div class="value" v-if="merData.merchant_type == 0">普通商户</div>
|
||||
<div class="value" v-else-if="merData.merchant_type == 1">酒道馆</div>
|
||||
<div class="value" v-else-if="merData.merchant_type == 2">供应商</div>
|
||||
</li>
|
||||
<!--<li class="item">
|
||||
<div>商户积分兑换平台积分比例:</div>
|
||||
<div class="value">
|
||||
|
|
@ -214,6 +221,10 @@ export default {
|
|||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
defaultMerchantType: {
|
||||
type: [Number, String],
|
||||
default: 0,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -223,7 +234,15 @@ export default {
|
|||
activeName: 'detail',
|
||||
};
|
||||
},
|
||||
filters: {
|
||||
filters: {},
|
||||
watch: {
|
||||
merData: {
|
||||
handler() {
|
||||
this.merData.merchant_type = this.defaultMerchantType || 0;
|
||||
this.mar_type_name = this.defaultMerchantType == 1 ? '酒道馆' : (this.defaultMerchantType == 2 ? '供应商' :'商户');
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
lookImg(item) {
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@
|
|||
@handleTimes="handleTimes"
|
||||
@getList="getList"
|
||||
:drawer="drawer"
|
||||
:defaultMerchantType="0"
|
||||
></mer-detail>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,434 @@
|
|||
<template>
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px" :inline="true">
|
||||
<el-form-item label="选择时间:" style="display: inline-block">
|
||||
<el-radio-group
|
||||
v-model="tableFrom.date"
|
||||
size="small"
|
||||
@change="selectChange(tableFrom.date)"
|
||||
>
|
||||
<el-radio-button
|
||||
v-for="(itemn,indexn) in fromList.fromTxt"
|
||||
:key="indexn"
|
||||
:label="itemn.val"
|
||||
>{{ itemn.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
type="daterange"
|
||||
placeholder="选择日期"
|
||||
format="yyyy/MM/dd"
|
||||
value-format="yyyy/MM/dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="onchangeTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字:" label-width="80px" style="display: inline-block;">
|
||||
<el-input
|
||||
v-model="tableFrom.keyword"
|
||||
@keyup.enter.native="getList(1)"
|
||||
placeholder="请输入店铺关键字/店铺名/联系电话"
|
||||
class="selWidth"
|
||||
>
|
||||
<el-button slot="append" icon="el-icon-search" class="el-button-solt" @click="getList(1)" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="酒道馆类别:">
|
||||
<el-select
|
||||
v-model="tableFrom.is_trader"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option label="自营" value="1" />
|
||||
<el-option label="非自营" value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="酒道馆分类:">
|
||||
<el-select
|
||||
v-model="tableFrom.category_id"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in merCateList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="店铺类型:">
|
||||
<el-select
|
||||
v-model="tableFrom.type_id"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in storeType"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否推荐:">
|
||||
<el-select
|
||||
v-model="tableFrom.is_best"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option key="1" label="是" value="1"/>
|
||||
<el-option key="0" label="否" value="0"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-tabs v-if="headeNum.length > 0" v-model="tableFrom.status" @tab-click="getList(1),getHeadNum()">
|
||||
<el-tab-pane
|
||||
v-for="(item,index) in headeNum"
|
||||
:key="index"
|
||||
:name="item.type.toString()"
|
||||
:label="item.title +'('+item.count +')' "
|
||||
/>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button size="small" type="primary" @click="onAdd">添加酒道馆</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="tableData.data"
|
||||
style="width: 100%"
|
||||
size="small"
|
||||
highlight-current-row
|
||||
class="switchTable"
|
||||
>
|
||||
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
||||
<el-table-column prop="mer_name" label="酒道馆名称" min-width="150" />
|
||||
<el-table-column prop="real_name" label="酒道馆姓名" min-width="150" />
|
||||
|
||||
<el-table-column prop="status" label="推荐" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.is_best"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
disabled
|
||||
@click.native="onchangeIsShow(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="开启/关闭" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.status"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
disabled
|
||||
@click.native="onchangeIsClose(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间" min-width="150" />
|
||||
<el-table-column prop="margin" label="保证金" min-width="150">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.is_margin == 1 ? '未支付' : scope.row.is_margin == 0 ? '无' : '已支付'}}</span>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" label="排序" min-width="100" />
|
||||
<el-table-column prop="mark" label="备注" min-width="200" />
|
||||
|
||||
<el-table-column label="操作" min-width="150" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!-- <router-link
|
||||
v-if="tableFrom.status === '1'"
|
||||
:to="{path: roterPre+ '/merchant/list/reconciliation/' + scope.row.mer_id + '/1' }"
|
||||
>
|
||||
<el-button type="text" size="small" class="mr10">对账</el-button>
|
||||
</router-link> -->
|
||||
<el-button
|
||||
v-if="tableFrom.status === '1'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="onLogo(scope.row.mer_id)"
|
||||
>登录</el-button>
|
||||
<el-button type="text" size="small" @click="onEdit(scope.row.mer_id)">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="onDetails(scope.row.mer_id)">详情</el-button>
|
||||
<el-button
|
||||
v-if="tableFrom.status === '0'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="handleDelete(scope.row.mer_id, scope.$index)"
|
||||
>删除</el-button>
|
||||
<!-- <el-button
|
||||
v-if="tableFrom.status === '1'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="onDeduct(scope.row.mer_id)"
|
||||
>扣除保证金</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
:page-sizes="[20, 40, 60, 80]"
|
||||
:page-size="tableFrom.limit"
|
||||
:current-page="tableFrom.page"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<!--酒道馆详情-->
|
||||
<mer-detail
|
||||
ref="merDetail"
|
||||
:merId="merId"
|
||||
@closeDrawer="closeDrawer"
|
||||
@changeDrawer="changeDrawer"
|
||||
@onPassword="onPassword"
|
||||
@handleTimes="handleTimes"
|
||||
@getList="getList"
|
||||
:drawer="drawer"
|
||||
:defaultMerchantType="1"
|
||||
></mer-detail>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
import {
|
||||
merchantListApi,
|
||||
merchantCreateApi,
|
||||
merchantUpdateApi,
|
||||
merchantDeleteForm,
|
||||
merchantStatuseApi,
|
||||
merchantPasswordApi,
|
||||
merchantLoginApi,
|
||||
changeCopyApi,
|
||||
merchantCountApi,
|
||||
merchantIsCloseApi,
|
||||
getstoreTypeApi,
|
||||
getMerCateApi, marginDeductionForm
|
||||
} from "@/api/merchant";
|
||||
import merDetail from './handle/merDetails.vue';
|
||||
import { fromList } from "@/libs/constants.js";
|
||||
import { roterPre } from "@/settings";
|
||||
import SettingMer from "@/libs/settingMer";
|
||||
import Cookies from "js-cookie";
|
||||
export default {
|
||||
name: "MerchantList",
|
||||
components: { merDetail },
|
||||
data() {
|
||||
return {
|
||||
fromList: fromList,
|
||||
roterPre: roterPre,
|
||||
isChecked: false,
|
||||
listLoading: true,
|
||||
merCateList: [],
|
||||
storeType: [],
|
||||
headeNum: [
|
||||
{
|
||||
count: '',
|
||||
type: "1",
|
||||
title: "正常开启的酒道馆"
|
||||
},
|
||||
{
|
||||
count: '',
|
||||
type: "0",
|
||||
title: "已关闭酒道馆"
|
||||
}
|
||||
],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
date: "",
|
||||
status: "1",
|
||||
keyword: "",
|
||||
is_trader: "",
|
||||
is_best: "",
|
||||
category_id: '',
|
||||
type_id: "",
|
||||
merchant_type: 1
|
||||
},
|
||||
autoUpdate: true,
|
||||
merId: "",
|
||||
drawer: false,
|
||||
timeVal: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getHeadNum();
|
||||
this.getMerCategory();
|
||||
this.getStoreType();
|
||||
this.getList("");
|
||||
},
|
||||
methods: {
|
||||
onLogo(id) {
|
||||
merchantLoginApi(id)
|
||||
.then(res => {
|
||||
Cookies.set("merchantToken", res.data.token);
|
||||
window.open(SettingMer.httpUrl + res.data.url);
|
||||
})
|
||||
.catch(res => {
|
||||
this.$message.error(res.message);
|
||||
});
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.tableFrom.date = tab;
|
||||
this.timeVal = [];
|
||||
this.tableFrom.page = 1;
|
||||
this.getList("");
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e;
|
||||
this.tableFrom.date = this.timeVal ? this.timeVal.join("-") : "";
|
||||
this.tableFrom.page = 1;
|
||||
this.getList("");
|
||||
},
|
||||
// 获取开启酒道馆数
|
||||
getHeadNum() {
|
||||
merchantCountApi(this.tableFrom)
|
||||
.then(res => {
|
||||
this.headeNum[0]["count"] = res.data.valid;
|
||||
this.headeNum[1]["count"] = res.data.invalid;
|
||||
})
|
||||
.catch(res => {});
|
||||
},
|
||||
// 酒道馆分类;
|
||||
getMerCategory() {
|
||||
getMerCateApi().then(res => {
|
||||
this.merCateList = res.data
|
||||
}).catch(res => {
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
getStoreType(){
|
||||
getstoreTypeApi().then(res => {
|
||||
this.storeType = res.data
|
||||
}).catch(res => {
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
merchantListApi(this.tableFrom)
|
||||
.then(res => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList("");
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList(1);
|
||||
},
|
||||
// 修改状态
|
||||
onchangeIsShow(row) {
|
||||
const title = row.is_best === 0 ? "是否开启推荐酒道馆" : "是否关闭推荐酒道馆";
|
||||
this.$modalSure(title).then(() => {
|
||||
merchantStatuseApi(row.mer_id, row.is_best === 1 ? 0 : 1)
|
||||
.then(({ message }) => {
|
||||
this.$message.success(message);
|
||||
this.getList("");
|
||||
})
|
||||
.catch(({ message }) => {
|
||||
this.$message.error(message);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 开启关闭
|
||||
onchangeIsClose(row) {
|
||||
merchantIsCloseApi(row.mer_id, row.status === 1 ? 0 : 1)
|
||||
.then(({ message }) => {
|
||||
this.$message.success(message);
|
||||
this.getList("");
|
||||
})
|
||||
.catch(({ message }) => {
|
||||
this.$message.error(message);
|
||||
});
|
||||
},
|
||||
// 添加
|
||||
onAdd() {
|
||||
// this.$modalForm(merchantCreateApi()).then(() => this.getList(""));
|
||||
this.drawer = true;
|
||||
this.$refs.merDetail.initData();
|
||||
|
||||
|
||||
},
|
||||
// 编辑
|
||||
onEdit(id) {
|
||||
this.merId = id;
|
||||
this.$refs.merDetail.isEdit = true;
|
||||
this.$refs.merDetail.getInfo(id);
|
||||
this.drawer = true;
|
||||
|
||||
},
|
||||
// 详情
|
||||
onDetails(id) {
|
||||
this.merId = id;
|
||||
this.$refs.merDetail.isEdit = false;
|
||||
this.$refs.merDetail.getInfo(id);
|
||||
this.drawer = true;
|
||||
},
|
||||
changeDrawer(v) {
|
||||
this.drawer = v;
|
||||
},
|
||||
closeDrawer() {
|
||||
this.drawer = false;
|
||||
},
|
||||
// 删除
|
||||
handleDelete(id) {
|
||||
this.$modalForm(merchantDeleteForm(id)).then(() => this.getList(""));
|
||||
},
|
||||
// 扣除保证金
|
||||
onDeduct(id) {
|
||||
this.$modalForm(marginDeductionForm(id)).then(() => this.getList(""));
|
||||
},
|
||||
// 设置复制次数
|
||||
handleTimes(id) {
|
||||
this.$modalForm(changeCopyApi(id)).then(() => this.getList(""));
|
||||
},
|
||||
|
||||
// 修改密码表单
|
||||
onPassword(id) {
|
||||
this.$modalForm(merchantPasswordApi(id));
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
|
|
@ -0,0 +1,434 @@
|
|||
<template>
|
||||
<div class="divBox">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<div class="container">
|
||||
<el-form size="small" label-width="100px" :inline="true">
|
||||
<el-form-item label="选择时间:" style="display: inline-block">
|
||||
<el-radio-group
|
||||
v-model="tableFrom.date"
|
||||
size="small"
|
||||
@change="selectChange(tableFrom.date)"
|
||||
>
|
||||
<el-radio-button
|
||||
v-for="(itemn,indexn) in fromList.fromTxt"
|
||||
:key="indexn"
|
||||
:label="itemn.val"
|
||||
>{{ itemn.text }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
type="daterange"
|
||||
placeholder="选择日期"
|
||||
format="yyyy/MM/dd"
|
||||
value-format="yyyy/MM/dd"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@change="onchangeTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字:" label-width="80px" style="display: inline-block;">
|
||||
<el-input
|
||||
v-model="tableFrom.keyword"
|
||||
@keyup.enter.native="getList(1)"
|
||||
placeholder="请输入店铺关键字/店铺名/联系电话"
|
||||
class="selWidth"
|
||||
>
|
||||
<el-button slot="append" icon="el-icon-search" class="el-button-solt" @click="getList(1)" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="供应商类别:">
|
||||
<el-select
|
||||
v-model="tableFrom.is_trader"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option label="自营" value="1" />
|
||||
<el-option label="非自营" value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="供应商分类:">
|
||||
<el-select
|
||||
v-model="tableFrom.category_id"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in merCateList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="店铺类型:">
|
||||
<el-select
|
||||
v-model="tableFrom.type_id"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in storeType"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否推荐:">
|
||||
<el-select
|
||||
v-model="tableFrom.is_best"
|
||||
clearable
|
||||
placeholder="请选择"
|
||||
class="selWidth"
|
||||
@change="getList(1)"
|
||||
>
|
||||
<el-option key="1" label="是" value="1"/>
|
||||
<el-option key="0" label="否" value="0"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-tabs v-if="headeNum.length > 0" v-model="tableFrom.status" @tab-click="getList(1),getHeadNum()">
|
||||
<el-tab-pane
|
||||
v-for="(item,index) in headeNum"
|
||||
:key="index"
|
||||
:name="item.type.toString()"
|
||||
:label="item.title +'('+item.count +')' "
|
||||
/>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button size="small" type="primary" @click="onAdd">添加供应商</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="tableData.data"
|
||||
style="width: 100%"
|
||||
size="small"
|
||||
highlight-current-row
|
||||
class="switchTable"
|
||||
>
|
||||
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
||||
<el-table-column prop="mer_name" label="供应商名称" min-width="150" />
|
||||
<el-table-column prop="real_name" label="供应商姓名" min-width="150" />
|
||||
|
||||
<el-table-column prop="status" label="推荐" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.is_best"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-text="是"
|
||||
inactive-text="否"
|
||||
disabled
|
||||
@click.native="onchangeIsShow(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="开启/关闭" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.status"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
disabled
|
||||
@click.native="onchangeIsClose(scope.row)"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间" min-width="150" />
|
||||
<el-table-column prop="margin" label="保证金" min-width="150">
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.is_margin == 1 ? '未支付' : scope.row.is_margin == 0 ? '无' : '已支付'}}</span>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" label="排序" min-width="100" />
|
||||
<el-table-column prop="mark" label="备注" min-width="200" />
|
||||
|
||||
<el-table-column label="操作" min-width="150" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!-- <router-link
|
||||
v-if="tableFrom.status === '1'"
|
||||
:to="{path: roterPre+ '/merchant/list/reconciliation/' + scope.row.mer_id + '/1' }"
|
||||
>
|
||||
<el-button type="text" size="small" class="mr10">对账</el-button>
|
||||
</router-link> -->
|
||||
<el-button
|
||||
v-if="tableFrom.status === '1'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="onLogo(scope.row.mer_id)"
|
||||
>登录</el-button>
|
||||
<el-button type="text" size="small" @click="onEdit(scope.row.mer_id)">编辑</el-button>
|
||||
<el-button type="text" size="small" @click="onDetails(scope.row.mer_id)">详情</el-button>
|
||||
<el-button
|
||||
v-if="tableFrom.status === '0'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="handleDelete(scope.row.mer_id, scope.$index)"
|
||||
>删除</el-button>
|
||||
<!-- <el-button
|
||||
v-if="tableFrom.status === '1'"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="onDeduct(scope.row.mer_id)"
|
||||
>扣除保证金</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
:page-sizes="[20, 40, 60, 80]"
|
||||
:page-size="tableFrom.limit"
|
||||
:current-page="tableFrom.page"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="tableData.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="pageChange"
|
||||
/>
|
||||
</div>
|
||||
</el-card>
|
||||
<!--供应商详情-->
|
||||
<mer-detail
|
||||
ref="merDetail"
|
||||
:merId="merId"
|
||||
@closeDrawer="closeDrawer"
|
||||
@changeDrawer="changeDrawer"
|
||||
@onPassword="onPassword"
|
||||
@handleTimes="handleTimes"
|
||||
@getList="getList"
|
||||
:drawer="drawer"
|
||||
:defaultMerchantType="2"
|
||||
></mer-detail>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
import {
|
||||
merchantListApi,
|
||||
merchantCreateApi,
|
||||
merchantUpdateApi,
|
||||
merchantDeleteForm,
|
||||
merchantStatuseApi,
|
||||
merchantPasswordApi,
|
||||
merchantLoginApi,
|
||||
changeCopyApi,
|
||||
merchantCountApi,
|
||||
merchantIsCloseApi,
|
||||
getstoreTypeApi,
|
||||
getMerCateApi, marginDeductionForm
|
||||
} from "@/api/merchant";
|
||||
import merDetail from './handle/merDetails.vue';
|
||||
import { fromList } from "@/libs/constants.js";
|
||||
import { roterPre } from "@/settings";
|
||||
import SettingMer from "@/libs/settingMer";
|
||||
import Cookies from "js-cookie";
|
||||
export default {
|
||||
name: "MerchantList",
|
||||
components: { merDetail },
|
||||
data() {
|
||||
return {
|
||||
fromList: fromList,
|
||||
roterPre: roterPre,
|
||||
isChecked: false,
|
||||
listLoading: true,
|
||||
merCateList: [],
|
||||
storeType: [],
|
||||
headeNum: [
|
||||
{
|
||||
count: '',
|
||||
type: "1",
|
||||
title: "正常开启的供应商"
|
||||
},
|
||||
{
|
||||
count: '',
|
||||
type: "0",
|
||||
title: "已关闭供应商"
|
||||
}
|
||||
],
|
||||
tableData: {
|
||||
data: [],
|
||||
total: 0
|
||||
},
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
date: "",
|
||||
status: "1",
|
||||
keyword: "",
|
||||
is_trader: "",
|
||||
is_best: "",
|
||||
category_id: '',
|
||||
type_id: "",
|
||||
merchant_type: 2
|
||||
},
|
||||
autoUpdate: true,
|
||||
merId: "",
|
||||
drawer: false,
|
||||
timeVal: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getHeadNum();
|
||||
this.getMerCategory();
|
||||
this.getStoreType();
|
||||
this.getList("");
|
||||
},
|
||||
methods: {
|
||||
onLogo(id) {
|
||||
merchantLoginApi(id)
|
||||
.then(res => {
|
||||
Cookies.set("merchantToken", res.data.token);
|
||||
window.open(SettingMer.httpUrl + res.data.url);
|
||||
})
|
||||
.catch(res => {
|
||||
this.$message.error(res.message);
|
||||
});
|
||||
},
|
||||
// 选择时间
|
||||
selectChange(tab) {
|
||||
this.tableFrom.date = tab;
|
||||
this.timeVal = [];
|
||||
this.tableFrom.page = 1;
|
||||
this.getList("");
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e;
|
||||
this.tableFrom.date = this.timeVal ? this.timeVal.join("-") : "";
|
||||
this.tableFrom.page = 1;
|
||||
this.getList("");
|
||||
},
|
||||
// 获取开启供应商数
|
||||
getHeadNum() {
|
||||
merchantCountApi(this.tableFrom)
|
||||
.then(res => {
|
||||
this.headeNum[0]["count"] = res.data.valid;
|
||||
this.headeNum[1]["count"] = res.data.invalid;
|
||||
})
|
||||
.catch(res => {});
|
||||
},
|
||||
// 供应商分类;
|
||||
getMerCategory() {
|
||||
getMerCateApi().then(res => {
|
||||
this.merCateList = res.data
|
||||
}).catch(res => {
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
getStoreType(){
|
||||
getstoreTypeApi().then(res => {
|
||||
this.storeType = res.data
|
||||
}).catch(res => {
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.listLoading = true;
|
||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||
merchantListApi(this.tableFrom)
|
||||
.then(res => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
});
|
||||
},
|
||||
pageChange(page) {
|
||||
this.tableFrom.page = page;
|
||||
this.getList("");
|
||||
},
|
||||
handleSizeChange(val) {
|
||||
this.tableFrom.limit = val;
|
||||
this.getList(1);
|
||||
},
|
||||
// 修改状态
|
||||
onchangeIsShow(row) {
|
||||
const title = row.is_best === 0 ? "是否开启推荐供应商" : "是否关闭推荐供应商";
|
||||
this.$modalSure(title).then(() => {
|
||||
merchantStatuseApi(row.mer_id, row.is_best === 1 ? 0 : 1)
|
||||
.then(({ message }) => {
|
||||
this.$message.success(message);
|
||||
this.getList("");
|
||||
})
|
||||
.catch(({ message }) => {
|
||||
this.$message.error(message);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 开启关闭
|
||||
onchangeIsClose(row) {
|
||||
merchantIsCloseApi(row.mer_id, row.status === 1 ? 0 : 1)
|
||||
.then(({ message }) => {
|
||||
this.$message.success(message);
|
||||
this.getList("");
|
||||
})
|
||||
.catch(({ message }) => {
|
||||
this.$message.error(message);
|
||||
});
|
||||
},
|
||||
// 添加
|
||||
onAdd() {
|
||||
// this.$modalForm(merchantCreateApi()).then(() => this.getList(""));
|
||||
this.drawer = true;
|
||||
this.$refs.merDetail.initData();
|
||||
|
||||
|
||||
},
|
||||
// 编辑
|
||||
onEdit(id) {
|
||||
this.merId = id;
|
||||
this.$refs.merDetail.isEdit = true;
|
||||
this.$refs.merDetail.getInfo(id);
|
||||
this.drawer = true;
|
||||
|
||||
},
|
||||
// 详情
|
||||
onDetails(id) {
|
||||
this.merId = id;
|
||||
this.$refs.merDetail.isEdit = false;
|
||||
this.$refs.merDetail.getInfo(id);
|
||||
this.drawer = true;
|
||||
},
|
||||
changeDrawer(v) {
|
||||
this.drawer = v;
|
||||
},
|
||||
closeDrawer() {
|
||||
this.drawer = false;
|
||||
},
|
||||
// 删除
|
||||
handleDelete(id) {
|
||||
this.$modalForm(merchantDeleteForm(id)).then(() => this.getList(""));
|
||||
},
|
||||
// 扣除保证金
|
||||
onDeduct(id) {
|
||||
this.$modalForm(marginDeductionForm(id)).then(() => this.getList(""));
|
||||
},
|
||||
// 设置复制次数
|
||||
handleTimes(id) {
|
||||
this.$modalForm(changeCopyApi(id)).then(() => this.getList(""));
|
||||
},
|
||||
|
||||
// 修改密码表单
|
||||
onPassword(id) {
|
||||
this.$modalForm(merchantPasswordApi(id));
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
Loading…
Reference in New Issue