Compare commits

...

7 Commits

Author SHA1 Message Date
1154079537
43e122c34e 分类树 2024-05-23 15:53:34 +08:00
bada6ede69 修改店铺保证金展示 2024-05-15 17:33:21 +08:00
f8743d7d90 修改店铺编辑 2024-05-10 17:53:02 +08:00
4e92994cfe 商户编辑添加自动扣除保证金比例 2024-05-09 14:54:20 +08:00
1154079537
4e05aac46e 商户审核 2024-05-06 14:50:19 +08:00
1154079537
5ffd91762a 修改省市区 2024-04-30 17:57:27 +08:00
1154079537
bef3fb22e9 布局默认 2024-04-29 14:40:51 +08:00
9 changed files with 259 additions and 187 deletions

View File

@ -10,7 +10,10 @@
import { dataURItoBlob } from 'dropzone'
import request from './request'
// 查询商品分类
export function proCategoryListApi(data) {
return request.get('store/category/list', data)
}
// 导出商品数据
export function outportApi(data) {
@ -535,4 +538,4 @@ export function merProductLstApi(data) {
/** 商品列表 -- 商品操作记录 */
export function operateRecordList(id, data) {
return request.get(`store/product/get_operate_list/${id}`, data)
}
}

View File

@ -1,18 +1,22 @@
import request from './request_area'
/*
/*
获取第一级商圈
*/
export const get_area = (data) => request.get('api/city/get_area', data)
/*
/*
获取第二级商圈
*/
export const get_stree = (data) => request.get('api/city/get_street', data)
/*
/*
获取第三级级商圈
*/
export const get_village = (data) => request.get('api/city/get_village', data)
// 城市
export const get_city = (data) => request.get('api/city/get_city', data)
// 省份
export const get_province = (data) => request.get('api/city/get_province', data)

View File

@ -372,6 +372,9 @@ export default {
},
mounted() {
this.initLayoutConfig();
this.onSetLayout('defaults');
},
methods: {
//

View File

@ -4,29 +4,32 @@
<el-form :model="tableFrom" ref="searchForm" size="small" label-width="85px" :inline="true">
<el-form-item label="状态:" prop="status">
<el-select v-model="tableFrom.status" clearable placeholder="请选择" class="selWidth" @change="getList(1)">
<el-option label="全部" value="" />
<el-option label="待审核" value="0" />
<el-option label="审核通过" value="1" />
<el-option label="审核未通过" value="-1" />
<el-option label="全部" value=""/>
<el-option label="待审核" value="0"/>
<el-option label="审核通过" value="1"/>
<el-option label="审核未通过" value="-1"/>
</el-select>
</el-form-item>
<el-form-item label="选择时间:">
<el-date-picker v-model="timeVal" type="daterange" placeholder="选择日期" format="yyyy/MM/dd"
value-format="yyyy/MM/dd" :picker-options="pickerOptions" @change="onchangeTime" style="width: 280px" />
value-format="yyyy/MM/dd" :picker-options="pickerOptions" @change="onchangeTime"
style="width: 280px"/>
</el-form-item>
<el-form-item label="商户分类:" prop="category_id">
<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 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="店铺类型:" prop="type_id">
<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-option v-for="item in storeType" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="关键字:" prop="keyword">
<el-input v-model="tableFrom.keyword" @keyup.enter.native="getList(1)" placeholder="请输入商户名称关键字/联系电话"
class="selWidth" clearable />
<el-input v-model="tableFrom.keyword" @keyup.enter.native="getList(1)"
placeholder="请输入商户名称关键字/联系电话"
class="selWidth" clearable/>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
@ -36,18 +39,18 @@
</div>
<el-card class="mt14">
<el-table v-loading="listLoading" :data="tableData.data" size="small" highlight-current-row class="switchTable">
<el-table-column prop="mer_intention_id" label="ID" min-width="60" />
<el-table-column prop="mer_name" label="商户名称" min-width="150" />
<el-table-column prop="category_name" label="商户分类" min-width="150" />
<el-table-column prop="type_name" label="店铺类型" min-width="150" />
<el-table-column prop="name" label="商户姓名" min-width="100" />
<el-table-column prop="phone" label="联系方式" min-width="100" />
<el-table-column prop="create_time" label="申请时间" min-width="150" />
<el-table-column prop="mer_intention_id" label="ID" min-width="60"/>
<el-table-column prop="mer_name" label="商户名称" min-width="150"/>
<el-table-column prop="category_name" label="商户分类" min-width="150"/>
<el-table-column prop="type_name" label="店铺类型" min-width="150"/>
<el-table-column prop="name" label="商户姓名" min-width="100"/>
<el-table-column prop="phone" label="联系方式" min-width="100"/>
<el-table-column prop="create_time" label="申请时间" min-width="150"/>
<el-table-column prop="create_time" label="资质图片" min-width="150">
<template slot-scope="scope">
<div class="demo-image__preview">
<el-image v-for="(item, index) in scope.row.images" :key="index" :src="item" class="mr5"
:preview-src-list="[item]" />
:preview-src-list="[item]"/>
</div>
</template>
</el-table-column>
@ -59,11 +62,12 @@
<div v-if="scope.row.status == 2">原因{{ scope.row.fail_msg }}</div>
</template>
</el-table-column>
<el-table-column prop="mark" label="备注" min-width="150" />
<el-table-column prop="mark" label="备注" min-width="150"/>
<el-table-column label="操作" min-width="170" fixed="right" align="center">
<template slot-scope="scope">
<el-button v-if="scope.row.status == 0" type="text" size="small"
@click="onchangeIsShow(scope.row)">审核</el-button>
@click="onchangeIsShow(scope.row)">审核
</el-button>
<el-button type="text" size="small" @click="onEdit(scope.row.mer_intention_id)">备注</el-button>
<el-button type="text" size="small" @click="handleView(scope.row)">查看</el-button>
<el-button type="text" size="small" @click="handleDelete(scope.row.mer_intention_id)">删除</el-button>
@ -72,20 +76,21 @@
</el-table>
<div class="block">
<el-pagination background :page-size="tableFrom.limit" :current-page="tableFrom.page"
layout="total, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange"
@current-change="pageChange" />
layout="total, prev, pager, next, jumper" :total="tableData.total"
@size-change="handleSizeChange"
@current-change="pageChange"/>
</div>
</el-card>
<!-- 审核状态 -->
<el-dialog title="修改审核状态" :visible.sync="statusAuditVisible" width="60%">
<el-form ref="statusAuditForm" :model="statusAuditForm" label-width="120px" @submit.native.prevent>
<el-form ref="statusAuditForm" :model="statusAuditForm" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="审核状态:">
<el-select v-model="statusAuditForm.state" placeholder="请选择审核状态" @change="statusChange">
<el-option label="同意" :value="1"> </el-option>
<el-option label="拒绝" :value="2"> </el-option>
<el-option label="同意" :value="1"></el-option>
<el-option label="拒绝" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -99,8 +104,8 @@
</el-col>
<el-col :span="24" v-if="statusAuditForm.state == 2">
<el-form-item label="拒绝原因:" prop="fail_msg">
<el-input type="textarea" :rows="2" placeholder="请输入拒绝原因" v-model="statusAuditForm.fail_msg">
<el-form-item label="拒绝原因:">
<el-input type="textarea" :rows="3" placeholder="请输入拒绝原因" v-model="statusAuditForm.fail_msg">
</el-input>
</el-form-item>
</el-col>
@ -108,85 +113,83 @@
<el-row>
<el-col :span="12">
<el-form-item label="申请类型:">
<el-input readony :value="statusAuditForm.type == 1 ? '商户入驻申请' : '商户开通交易申请'" />
<el-input readony :value="statusAuditForm.type == 1 ? '商户入驻申请' : '商户开通交易申请'"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户名称:">
<el-input readony :value="statusAuditForm.mer_name" />
<el-input readony :value="statusAuditForm.mer_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户分类:">
<el-input readony :value="statusAuditForm.category_name" />
<el-input readony :value="statusAuditForm.category_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="店铺类型:">
<el-input readony :value="statusAuditForm.type_name" />
<el-input readony :value="statusAuditForm.type_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户姓名:">
<el-input readony :value="statusAuditForm.name" />
<el-input readony :value="statusAuditForm.name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式:">
<el-input readony :value="statusAuditForm.phone" />
<el-input readony :value="statusAuditForm.phone"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请时间:">
<el-input readony :value="statusAuditForm.create_time" />
<el-input readony :value="statusAuditForm.create_time"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人姓名:">
<el-input readony :value="statusAuditForm.name" />
<el-input readony :value="statusAuditForm.name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="社会代码:">
<el-input readony :value="statusAuditForm.social_credit_code" />
<el-input readony :value="statusAuditForm.social_credit_code"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司名称:">
<el-input readony :value="statusAuditForm.company_name" />
<el-input readony :value="statusAuditForm.company_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司性质:">
<el-input readony :value="statusAuditForm.is_company == 1 ? '对公户' : '个体户'" />
<el-input readony :value="statusAuditForm.is_company == 1 ? '对公户' : '个体户'"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="资质:">
<div class="demo-image__preview">
<el-image style="width: 80px;height: 60px;margin-right: 10px;"
v-for="(ii, index) in statusAuditForm.images" :key="index" :src="ii" class="preview"
:preview-src-list="[ii]" />
v-for="(ii, index) in statusAuditForm.images" :key="index" :src="ii" class="preview"
:preview-src-list="[ii]"/>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注:">
<el-input readony :value="statusAuditForm.mark" />
<el-input v-model="statusAuditForm.mark" placeholder="请输入备注"/>
</el-form-item>
</el-col>
</el-row>
@ -202,87 +205,83 @@
<el-row>
<el-col :span="12">
<el-form-item label="申请类型:">
<el-input readony :value="statusAuditForm.type == 1 ? '商户入驻申请' : '商户开通交易申请'" />
<el-input readony :value="statusAuditForm.type == 1 ? '商户入驻申请' : '商户开通交易申请'"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户名称:">
<el-input readony :value="statusAuditForm.mer_name" />
<el-input readony :value="statusAuditForm.mer_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户分类:">
<el-input readony :value="statusAuditForm.category_name" />
<el-input readony :value="statusAuditForm.category_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="店铺类型:">
<el-input readony :value="statusAuditForm.type_name" />
<el-input readony :value="statusAuditForm.type_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户姓名:">
<el-input readony :value="statusAuditForm.name" />
<el-input readony :value="statusAuditForm.name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式:">
<el-input readony :value="statusAuditForm.phone" />
<el-input readony :value="statusAuditForm.phone"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请时间:">
<el-input readony :value="statusAuditForm.create_time" />
<el-input readony :value="statusAuditForm.create_time"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人姓名:">
<el-input readony :value="statusAuditForm.name" />
<el-input readony :value="statusAuditForm.name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="社会代码:">
<el-input readony :value="statusAuditForm.social_credit_code" />
<el-input readony :value="statusAuditForm.social_credit_code"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司名称:">
<el-input readony :value="statusAuditForm.company_name" />
<el-input readony :value="statusAuditForm.company_name"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司性质:">
<el-input readony :value="statusAuditForm.is_company == 1 ? '对公户' : '个体户'" />
<el-input readony :value="statusAuditForm.is_company == 1 ? '对公户' : '个体户'"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="资质:">
<div class="demo-image__preview">
<el-image style="width: 80px;height: 60px;margin-right: 10px;"
v-for="(ii, index) in statusAuditForm.images" :key="index" :src="ii" class="preview"
:preview-src-list="[ii]" />
v-for="(ii, index) in statusAuditForm.images" :key="index" :src="ii" class="preview"
:preview-src-list="[ii]"/>
</div>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注:">
<el-input readony :value="statusAuditForm.mark" />
<el-input readony :value="statusAuditForm.mark"/>
</el-form-item>
</el-col>
</el-row>
@ -291,7 +290,6 @@
<el-button type="primary" plain class="submission" size="small" @click="formShow = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
@ -314,9 +312,10 @@ import {
getMerCateApi,
updateStatus
} from "@/api/merchant";
import { fromList, statusList } from "@/libs/constants.js";
import { roterPre } from "@/settings";
import {fromList, statusList} from "@/libs/constants.js";
import {roterPre} from "@/settings";
import timeOptions from '@/utils/timeOptions';
export default {
name: "MerchantApplication",
data() {
@ -390,11 +389,7 @@ export default {
this.$refs.searchForm.resetFields()
this.getList(1)
},
statusChange(tab) {
this.tableFrom.status = tab;
this.tableFrom.page = 1;
this.getList("");
},
//
onchangeTime(e) {
this.timeVal = e;
@ -402,6 +397,7 @@ export default {
this.tableFrom.page = 1;
this.getList("");
},
//
getMerCategory() {
getMerCateApi().then(res => {
@ -410,6 +406,7 @@ export default {
this.$message.error(res.message)
})
},
/**获取店铺类型 */
getStoreType() {
getstoreTypeApi().then(res => {
@ -418,25 +415,26 @@ export default {
this.$message.error(res.message)
})
},
//
getList(num) {
this.listLoading = true;
this.tableFrom.page = num ? num : this.tableFrom.page;
intentionLstApi(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);
});
intentionLstApi(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);
@ -445,13 +443,12 @@ export default {
//
onchangeIsShow(item) {
this.statusAuditVisible = true;
this.statusAuditForm = item;
this.statusAuditForm = JSON.parse(JSON.stringify(item));
this.$set(this.statusAuditForm, 'state', 1);
this.$set(this.statusAuditForm, 'create_mer', 1);
this.$set(this.statusAuditForm, 'mark', '');
},
//
//
handleSubmit() {
if (this.statusAuditForm.state == 2 && !this.statusAuditForm.fail_msg) {
@ -461,12 +458,13 @@ export default {
updateStatus(this.statusAuditForm.mer_intention_id, {
status: this.statusAuditForm.state,
create_mer: this.statusAuditForm.create_mer,
fail_msg: this.statusAuditForm.fail_msg
fail_msg: this.statusAuditForm.fail_msg,
mark: this.statusAuditForm.mark
}).then(res => {
this.statusAuditVisible = false;
this.$message.success(res.message);
this.getList("");
}).catch(({ message }) => {
}).catch(({message}) => {
this.$message.error(message);
});
},
@ -486,17 +484,15 @@ export default {
//
handleDelete(id) {
this.$deleteSure().then(() => {
intentionDelte(id)
.then(({ message }) => {
this.$message.success(message);
this.getList("");
})
.catch(({ message }) => {
this.$message.error(message);
});
intentionDelte(id).then(({message}) => {
this.$message.success(message);
this.getList("");
}).catch(({message}) => {
this.$message.error(message);
});
});
},
},
}
}
};
</script>

View File

@ -1,6 +1,6 @@
<template>
<el-form ref="merDataField" size="small" :rules="ruleValidate" :model="merData" label-width="120px"
@submit.native.prevent>
<el-form ref="merDataField" size="small" :rules="ruleValidate" :model="merData" label-width="150px"
@submit.native.prevent>
<el-tabs v-loading="loading" type="border-card" v-model="activeName">
<el-tab-pane label="基本信息" name="detail">
<div class="section">
@ -8,12 +8,12 @@
<el-row :gutter="24" class="mt20">
<el-col :span="12">
<el-form-item label="商户名称:" prop="mer_name">
<el-input size="small" v-model="merData.mer_name" placeholder="请填写商户名称" class="selWidth" />
<el-input size="small" v-model="merData.mer_name" placeholder="请填写商户名称" class="selWidth"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户地址:" prop="mer_address">
<el-input size="small" v-model="merData.mer_address" placeholder="请填写详细地址" class="selWidth" />
<el-input size="small" v-model="merData.mer_address" placeholder="请填写详细地址" class="selWidth"/>
</el-form-item>
</el-col>
</el-row>
@ -21,7 +21,7 @@
<el-col :span="12">
<el-form-item label="商户分类:" prop="category_id">
<el-select size="small" v-model="merData.category_id" placeholder="请选择" class="selWidth">
<el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value" />
<el-option v-for="item in merCateList" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
</el-col>
@ -38,27 +38,28 @@
<el-col :span="12">
<el-form-item label="店铺类型:" prop="type_id">
<el-select size="small" v-model="merData.type_id" placeholder="请选择" class="selWidth">
<el-option v-for="item in storeType" :key="item.value" :label="item.label" :value="item.value" />
<el-option v-for="item in storeType" :key="item.value" :label="item.label" :value="item.value"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="推荐商户:" prop="is_best">
<el-switch v-model="merData.is_best" :active-value="1" :inactive-value="0" :width="50" active-text=""
inactive-text="否" />
inactive-text="否"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="排序:" prop="sort">
<el-input-number size="small" v-model="merData.sort" controls-position="right" placeholder="请输入排序" />
<el-input-number size="small" v-model="merData.sort" controls-position="right"
placeholder="请输入排序"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商户状态:" prop="status">
<el-switch v-model="merData.status" :active-value="1" :inactive-value="0" :width="55" active-text="开启"
inactive-text="关闭" />
inactive-text="关闭"/>
</el-form-item>
</el-col>
</el-row>
@ -66,28 +67,37 @@
<el-row>
<el-col>
<el-form-item label="店铺商圈:">
<el-select v-model="merData.province_id" placeholder="请选择省份" class="selWidth"
@change="cityChange($event, 5)" style="width:150px;"
v-if="provinceList && provinceList.length > 0">
<el-option v-for="(item, indx) in provinceList" :key="indx" :value="Number(item.code)"
:label="item.name"/>
</el-select>
<el-select v-model="merData.city_id" placeholder="请选择城市" class="selWidth"
@change="cityChange($event, 1)" style="width:150px;" v-if="cityList && cityList.length > 0">
@change="cityChange($event, 1)" style="width:150px;" v-if="cityList && cityList.length > 0">
<el-option v-for="(item, indx) in cityList" :key="indx" :value="Number(item.code)"
:label="item.name" />
:label="item.name"/>
</el-select>
<el-select v-model="merData.area_id" placeholder="请选择区县" class="selWidth"
@change="cityChange($event, 2)" style="width:150px;" v-if="areaList && areaList.length > 0">
@change="cityChange($event, 2)" style="width:150px;" v-if="areaList && areaList.length > 0">
<el-option v-for="(item, indx) in areaList" :key="indx" :value="Number(item.code)"
:label="item.name" />
:label="item.name"/>
</el-select>
<el-select v-model="merData.street_id" placeholder="请选择街道" class="selWidth"
@change="cityChange($event, 3)" style="width:150px;" v-if="streetList && streetList.length > 0">
@change="cityChange($event, 3)" style="width:150px;"
v-if="streetList && streetList.length > 0">
<el-option v-for="(item, indx) in streetList" :key="indx" :value="Number(item.code)"
:label="item.name" />
:label="item.name"/>
</el-select>
<el-select v-model="merData.village_id" placeholder="请选择社区" class="selWidth"
@change="cityChange($event, 4)" style="width:150px;" v-if="villageList && villageList.length > 0">
@change="cityChange($event, 4)" style="width:150px;"
v-if="villageList && villageList.length > 0">
<el-option v-for="(item, indx) in villageList" :key="indx" :value="Number(item.id)"
:label="item.name" />
:label="item.name"/>
</el-select>
</el-form-item>
</el-col>
@ -105,7 +115,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="备注:" prop="mark">
<el-input type="textarea" size="small" v-model="merData.mark" placeholder="请填写备注" class="selWidth" />
<el-input type="textarea" size="small" v-model="merData.mark" placeholder="请填写备注"
class="selWidth"/>
</el-form-item>
</el-col>
</el-row>
@ -116,8 +127,8 @@
<div class="title">费用信息</div>
<el-row :gutter="24" class="mt20">
<el-col v-if="!isAdd" :span="24">
<el-form-item label="店铺保证金:" prop="ot_margin">
<span>{{ merData.is_margin == 0 ? '无' : merData.ot_margin + '元' }}</span>
<el-form-item label="店铺保证金:" prop="margin">
<span>{{ merData.is_margin == 0 ? '无' : merData.margin + '元' }}</span>
</el-form-item>
</el-col>
<el-col v-if="!isAdd && merData.is_margin != 0" :span="24">
@ -127,18 +138,26 @@
</el-col>
<el-col v-if="!isAdd && merData.is_margin != 0" :span="24">
<el-form-item label="保证金余额:">
<span>{{ merData.margin }}</span>
<span>{{ merData.ot_margin }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="自动扣除保证金比例:" prop="auto_margin_rate">
<el-input-number :min="0" v-model="merData.auto_margin_rate" size="small" controls-position="right"
placeholder="请输入自动扣除保证金比例"/>%
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="手续费设置:" prop="commission_rate">
<el-switch v-model="merData.commission_switch" :active-value="1" :inactive-value="0" :width="55"
active-text="开启" inactive-text="关闭" />
active-text="开启" inactive-text="关闭"/>
<span v-if="merData.commission_switch">
<el-input-number :min="0" v-model="merData.commission_rate" size="small" controls-position="right"
placeholder="请输入手续费" />%
placeholder="请输入手续费"/>%
</span>
<div class="info info-red">(此处如未设置手续费系统会自动读取商户分类下对应手续费此处已设置则优先以此处设置为准)</div>
<div class="info info-red">
(此处如未设置手续费系统会自动读取商户分类下对应手续费此处已设置则优先以此处设置为准)
</div>
</el-form-item>
</el-col>
</el-row>
@ -149,19 +168,19 @@
<el-col :span="8">
<el-form-item label="商品审核:" prop="is_audit">
<el-switch v-model="merData.is_audit" :active-value="1" :inactive-value="0" :width="50" active-text=""
inactive-text="否" />
inactive-text="否"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="直播间审核:" prop="is_bro_room">
<el-switch v-model="merData.is_bro_room" :active-value="1" :inactive-value="0" :width="50"
active-text="是" inactive-text="否" />
active-text="是" inactive-text="否"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="直播商品:" prop="is_bro_goods">
<el-switch v-model="merData.is_bro_goods" :active-value="1" :inactive-value="0" :width="50"
active-text="是" inactive-text="否" />
active-text="是" inactive-text="否"/>
</el-form-item>
</el-col>
</el-row>
@ -172,7 +191,7 @@
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="商户关键字:" prop="mer_keyword">
<el-input size="small" v-model="merData.mer_keyword" placeholder="请填写商户关键字" class="selWidth" />
<el-input size="small" v-model="merData.mer_keyword" placeholder="请填写商户关键字" class="selWidth"/>
</el-form-item>
</el-col>
</el-row>
@ -181,7 +200,8 @@
<el-form-item label="商品采集数:">
<el-input v-model="merData.copy_product_num" size="small" disabled></el-input>
<el-button type="text" @click="modifyCopy"
style="margin-left: 10px;position:absolute;right: -30px;">修改</el-button>
style="margin-left: 10px;position:absolute;right: -30px;">修改
</el-button>
</el-form-item>
</el-col>
</el-row>
@ -194,23 +214,24 @@
<el-row :gutter="24" class="mt20">
<el-col :span="12">
<el-form-item label="商户账号:" prop="mer_account">
<el-input type="text" size="small" v-model="merData.mer_account" :disabled="!isAdd" class="selWidth" />
<el-input type="text" size="small" v-model="merData.mer_account" :disabled="!isAdd" class="selWidth"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登陆密码:" prop="mer_password">
<el-input type="password" size="small" v-model="merData.mer_password" :disabled="!isAdd"
class="selWidth" />
class="selWidth"/>
</el-form-item>
</el-col>
<el-col v-if="!isAdd" :span="12">
<el-form-item label="联系人:" prop="real_name">
<el-input type="text" size="small" placeholder="请填写联系人" v-model="merData.real_name" class="selWidth" />
<el-input type="text" size="small" placeholder="请填写联系人" v-model="merData.real_name"
class="selWidth"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话:" prop="mer_phone">
<el-input size="small" placeholder="请填写联系电话" v-model="merData.mer_phone" class="selWidth" />
<el-input size="small" placeholder="请填写联系电话" v-model="merData.mer_phone" class="selWidth"/>
</el-form-item>
</el-col>
</el-row>
@ -220,11 +241,13 @@
<el-row :gutter="24" class="mt20">
<el-col :span="12">
<el-form-item label="分账商户号:" prop="sub_mchid">
<el-input placeholder="请填写分账商户号" size="small" v-model="merData.sub_mchid" class="selWidth" />
<el-input placeholder="请填写分账商户号" size="small" 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;">
当开启自动分账时每个子商户在微信后台的分账商户号即特约子商户号
</div>
</el-col>
</el-row>
</div>
@ -242,13 +265,15 @@
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import { merchantUpdate, merchantCreate } from "@/api/merchant";
import {merchantUpdate, merchantCreate} from "@/api/merchant";
import {
get_area,
get_stree,
get_village,
get_city
get_city,
get_province
} from "@/api/shoplist";
export default {
props: {
merData: {
@ -285,19 +310,20 @@ export default {
activeName: 'detail',
ruleValidate: {
mer_name: [
{ required: true, message: '请输入商户名称', trigger: 'blur' }
{required: true, message: '请输入商户名称', trigger: 'blur'}
],
mer_account: [
{ required: true, message: '请输入商户账号', trigger: 'blur' }
{required: true, message: '请输入商户账号', trigger: 'blur'}
],
category_id: [
{ required: true, message: '请选择商户分类', trigger: 'change' }
{required: true, message: '请选择商户分类', trigger: 'change'}
],
type_id: [
{ required: true, message: '请选择店铺类型', trigger: 'change' }
{required: true, message: '请选择店铺类型', trigger: 'change'}
],
mer_phone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
mer_phone: [{required: true, validator: validatePhone, trigger: 'blur'}],
},
provinceList: [],
cityList: [],
areaList: [],
streetList: [],
@ -316,44 +342,72 @@ export default {
},
mounted() {
setTimeout(() => {
this.getCity(this.merData.city_id, this.merData.area_id, this.merData.street_id);
this.getProvince(this.merData.province_id, this.merData.city_id, this.merData.area_id, this.merData.street_id);
this.$forceUpdate();
}, 200);
},
methods: {
//
getCity(cityCode, areaCode, streetCode) {
get_city().then(res => {
this.cityList = res.data;
this.getArea(cityCode, areaCode, streetCode);
//
getProvince(provinceCode, cityCode, areaCode, streetCode) {
get_province().then(res => {
this.provinceList = res.data;
this.getCity(provinceCode, cityCode, areaCode, streetCode);
});
},
//
getCity(provinceCode, cityCode, areaCode, streetCode) {
if (provinceCode) {
get_city({province_code: provinceCode}).then(res => {
this.cityList = res.data;
this.getArea(cityCode, areaCode, streetCode);
});
}
},
//
getArea(cityCode, areaCode, streetCode) {
get_area({ city_code: cityCode }).then(res => {
this.areaList = res.data;
this.getStreet(areaCode, streetCode);
})
if (cityCode) {
get_area({city_code: cityCode}).then(res => {
this.areaList = res.data;
this.getStreet(areaCode, streetCode);
})
}
},
//
getStreet(areaCode, streetCode) {
get_stree({ area_code: areaCode }).then(res => {
this.streetList = res.data;
this.getVillage(streetCode);
})
if (areaCode) {
get_stree({area_code: areaCode}).then(res => {
this.streetList = res.data;
this.getVillage(streetCode);
})
}
},
//
getVillage(street_code) {
get_village({ street_code }).then(res => {
this.villageList = res.data;
})
if (street_code) {
get_village({street_code}).then(res => {
this.villageList = res.data;
})
}
},
// 1 2 3 4
cityChange(code, type) {
if (type == 5) {
this.getCity(code);
this.merData.city_id = "";
this.merData.area_id = "";
this.merData.street_id = "";
this.merData.village_id = "";
this.cityList = [];
this.areaList = [];
this.streetList = [];
this.villageList = [];
}
if (type == 1) {
this.getArea(code);
this.merData.area_id = "";
@ -389,9 +443,6 @@ export default {
},
/*提交信息*/
onSubmit(id) {
console.log(1)
this.$refs['merDataField'].validate(valid => {
if (valid) {
this.loading = true;
@ -520,4 +571,4 @@ export default {
.gary {
color: #aaa;
}
</style>
</style>

View File

@ -58,7 +58,7 @@
<div class="value">
{{merData.commission_switch ? "开启" : "关闭"}}
</div>
</li>
</li>
<li v-if="merData.commission_switch" class="item item100">
<div>手续费</div>
<div class="value">
@ -69,7 +69,7 @@
<li class="item">
<div>店铺保证金</div>
<div class="value">
{{merData.is_margin == 0 ? '无' : merData.ot_margin}}
{{merData.is_margin == 0 ? '无' : merData.margin}}
</div>
</li>
<li v-if="merData.is_margin != 0" class="item">
@ -80,8 +80,8 @@
</li>
<li v-if="merData.is_margin != 0" class="item">
<div>保证金余额</div>
<div class="value">{{merData.margin}}</div>
</li>
<div class="value">{{merData.ot_margin}}</div>
</li>
</ul>
</div>
<div class="section">
@ -116,9 +116,9 @@
<div>商户资质</div>
<div class="value">
<el-image
v-for="(item, index) in merData.mer_certificate"
:key="index"
:src="item"
v-for="(item, index) in merData.mer_certificate"
:key="index"
:src="item"
@click="lookImg(item)"
style="width: 36px;height: 36px;margin-right: 5px;"
/>
@ -140,7 +140,7 @@
<li class="item">
<div>登录密码</div>
<div class="value">{{merData.mer_password}}</div>
</li>
<li class="item">
<div>联系人</div>
@ -149,7 +149,7 @@
<li class="item">
<div>联系电话</div>
<div class="value">{{merData.mer_phone}}</div>
</li>
</li>
<!-- <li class="item">
<div>绑定手机号</div>
<div class="value">{{merData.real_name}}</div>
@ -157,7 +157,7 @@
<li class="item">
<div>绑定微信用户昵称/ID</div>
<div class="value">{{merData.real_name}}</div>
</li> -->
</li> -->
</ul>
</div>
<div v-if="merData.sub_mchid" class="section">
@ -252,8 +252,8 @@
</el-tabs>
<div class="images" v-show="false" v-viewer="{ movable: false }">
<img v-for="(src,index) in merData.mer_certificate" :src="src" :key="index" />
</div>
</div>
</div>
</div>
</template>
<script>
// +----------------------------------------------------------------------

View File

@ -28,16 +28,16 @@
<el-col :span="12">
<el-form-item label="商户是否隐藏:" prop="is_allow_apply">
<el-select v-model="formValidate.is_allow_apply" placeholder="请选择商家申请类型">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
<el-option label="是" :value="1"></el-option>
<el-option label="否" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="搜索商家:" prop="is_search_display">
<el-select v-model="formValidate.is_search_display" placeholder="请选择搜索商家是否展示">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
<el-option label="是" :value="1"></el-option>
<el-option label="否" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
@ -310,4 +310,4 @@ export default {
.gary {
color: #aaa;
}
</style>
</style>

View File

@ -13,8 +13,10 @@
:data="tableData.data"
size="small"
row-key="store_category_id"
:lazy="true"
:load="load"
:default-expand-all="false"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:tree-props="{children: 'children', hasChildren: 'child'}"
>
<el-table-column
label="分类名称"
@ -99,8 +101,8 @@
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {
storeCategoryListApi, storeCategoryCreateApi, storeCategoryUpdateApi, storeCategoryDeleteApi,
storeCategoryStatusApi, storeCategoryRecommendApi
storeCategoryListApi, storeCategoryCreateApi, storeCategoryUpdateApi, storeCategoryDeleteApi,
storeCategoryStatusApi, storeCategoryRecommendApi, proCategoryListApi
} from '@/api/product'
export default {
name: 'ProductClassify',
@ -126,10 +128,15 @@ export default {
//
getList() {
this.listLoading = true
storeCategoryListApi(this.tableFrom).then(res => {
this.tableData.data = res.data
proCategoryListApi(this.tableFrom).then(res => {
// res.data.map(i=>{
// this.$set(i,'children',[]);
// this.$set(i,'hasChildren',true);
// })
this.tableData.data = res.data;
this.tableData.total = res.data.count
this.listLoading = false
this.$forceUpdate();
}).catch(res => {
this.listLoading = false
this.$message.error(res.message)
@ -143,6 +150,14 @@ export default {
this.tableData.limit = val
this.getList()
},
load(tree,treeNode,resolve){
console.log(tree.store_category_id)
// console.log(treeNode)
proCategoryListApi({category_id:tree.store_category_id}).then(res=>{
console.log(res.data)
resolve(res.data)
})
},
//
onAdd() {
this.$modalForm(storeCategoryCreateApi()).then(() => this.getList())

View File

@ -24,10 +24,10 @@ module.exports = {
* In most cases please use '/' !!!
* Detail: https://cli.vuejs.org/config/#publicpath
*/
publicPath: '/',
publicPath: '/admin',
outputDir: 'dist',
assetsDir: 'system',
indexPath: process.env.NODE_ENV === 'development' ? 'index.html' : 'system.html',
assetsDir: 'static',
indexPath: 'index.html',
lintOnSave: process.env.NODE_ENV === 'development',
productionSourceMap: false,
devServer: {