完善厂商管理、经销商管理、门店管理公共组件

master
panqihua 2 years ago
parent 14119eb866
commit 6105cf0dd7
  1. 25
      src/plugins/index.js
  2. 29
      src/plugins/platform.js
  3. 113
      src/views/platform/manufacturer/base.vue
  4. 33
      src/views/platform/manufacturer/detail.vue
  5. 56
      src/views/platform/manufacturer/detail_table.vue
  6. 81
      src/views/platform/manufacturer/index.vue
  7. 2
      src/views/system/user/profile/baseForm.vue
  8. 16
      src/views/system/user/profile/userAvatar.vue

@ -1,20 +1,21 @@
import tab from './tab'
import auth from './auth'
import cache from './cache'
import modal from './modal'
import download from './download'
import tab from "./tab";
import auth from "./auth";
import cache from "./cache";
import modal from "./modal";
import download from "./download";
import "./platform";
export default {
install(Vue) {
// 页签操作
Vue.prototype.$tab = tab
Vue.prototype.$tab = tab;
// 认证对象
Vue.prototype.$auth = auth
Vue.prototype.$auth = auth;
// 缓存对象
Vue.prototype.$cache = cache
Vue.prototype.$cache = cache;
// 模态框对象
Vue.prototype.$modal = modal
Vue.prototype.$modal = modal;
// 下载文件
Vue.prototype.$download = download
}
}
Vue.prototype.$download = download;
},
};

@ -0,0 +1,29 @@
import router from "@/router";
function meta(to, type, desc) {
to.meta.manufacturer = {
name: to.fullPath.split("/").at(1),
//1:厂商管理,2:经销商管理,3:门店管理
type,
//1:厂商/经销商/商店列表,2:审核
subType: to.fullPath.split("/").at(-1),
desc,
};
}
router.beforeEach((to, from, next) => {
switch (to.fullPath.split("/").at(1)) {
case "manufacturer":
meta(to, "1", "厂商");
break;
case "dealer":
meta(to, "2", "经销商");
break;
case "store":
meta(to, "3", "门店");
break;
}
// your logic
next();
});

@ -6,10 +6,10 @@
<el-row>
<el-col :span="18">
<div class="w240">
<el-form-item :label="(manufacturerType === 1 ? '厂商' : '经销商') + '名称'">
<el-form-item :label="`${$route.meta.manufacturer.desc}名称`">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item :label="(manufacturerType === 1 ? '厂商' : '经销商') + 'ID'" class="ml">
<el-form-item :label="`${$route.meta.manufacturer.desc}ID`" class="ml">
<el-input v-model="form.id"></el-input>
</el-form-item>
<br />
@ -19,10 +19,11 @@
<el-form-item label="负责人电话" class="ml">
<el-input v-model="form.phone"></el-input>
</el-form-item>
<el-form-item label="厂商类型" v-if="manufacturerType === 1">
<el-form-item :label="$route.meta.manufacturer.desc + '类型'"
v-if="$route.meta.manufacturer.subType !== '2'">
<el-select v-model="form.type"></el-select>
</el-form-item>
<el-form-item label="技术支持时间" :class="{ 'ml': manufacturerType === 1 }">
<el-form-item label="技术支持时间" :class="{ 'ml': $route.meta.manufacturer.subType !== '2' }">
<el-date-picker v-model="form.dateRange" value-format="yyyy-MM-dd" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
@ -32,7 +33,7 @@
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
</div>
<el-form-item label="厂商地址">
<el-form-item :label="$route.meta.manufacturer.desc + '地址'">
<el-select v-model="form.address.province" placeholder="请选择">
</el-select>
@ -56,35 +57,70 @@
}}</el-radio>
</el-form-item>
<br />
<template v-if="type === '2'">
<el-form-item label="审核">
<el-radio v-model="form.audit" :key="item.value" v-for="item in dict.type.audit_status"
:label="item.value">{{
<template v-if="$route.meta.manufacturer.type === '3'">
<el-form-item label="是否平台自营">
<el-radio v-model="form.isPlatformOwned" :key="item.value"
v-for="item in dict.type.sys_yes_no" :label="item.value">{{
item.label
}}</el-radio>
</el-form-item>
<br />
<el-form-item :style="{
marginLeft: `${width}px`
}">
<el-input :autosize="{ minRows: 5 }" type="textarea" placeholder="拒绝原因"
:minRow="5"></el-input>
</el-form-item>
</template>
<template v-if="$route.meta.manufacturer.subType === '1'">
</template>
<template v-if="manufacturerType === 2">
<template v-else>
<template>
<el-form-item label="审核">
<el-radio v-model="form.audit" :key="item.value" v-for="item in dict.type.audit_status"
:label="item.value">{{
item.label
}}</el-radio>
</el-form-item>
<br />
<el-form-item :style="{
marginLeft: `${width}px`
}">
<el-input :autosize="{ minRows: 5 }" type="textarea" placeholder="拒绝原因"
:minRow="5"></el-input>
</el-form-item>
</template>
</template>
<template v-if="$route.meta.manufacturer.type === '2'">
<div class="h1">授权厂商</div>
<authorized />
</template>
<template
v-else-if="$route.meta.manufacturer.type === '3' && $route.meta.manufacturer.subType === '1'">
<el-divider />
<el-row class="price">
<el-col :span="5">
<div class="label">总订单交易额</div>
<div class="value">12333.00</div>
</el-col>
<el-col :span="5" :offset="1">
<div class="label">提现支出</div>
<div class="value">12333.00</div>
</el-col>
<el-col :span="5" :offset="1">
<div class="label">本月订单交易额</div>
<div class="value">12333.00</div>
</el-col>
<el-col :span="5" :offset="1">
<div class="label">本月提现支出</div>
<div class="value">12333.00</div>
</el-col>
</el-row>
</template>
</el-col>
<el-col :span="5" :offset="1">
<user-avatar :circle="false" show-bottom-label />
<user-avatar :circle="false" show-bottom-label title="logo" />
</el-col>
</el-row>
<div v-if="type === '2'" style="text-align:center">
<div v-if="$route.meta.manufacturer.subType === '2'" style="text-align:center">
<el-button type="primary" @click="$modal.msgSuccess('保存成功'); $emit('close')">保存</el-button>
<el-button @click="$emit('close')">关闭</el-button>
</div>
@ -97,7 +133,7 @@ import Authorized from "./authorized"
export default {
name: 'Base',
components: { userAvatar, Authorized },
dicts: ['manufacturer_type_1', 'audit_status'],
dicts: ['manufacturer_type_1', 'audit_status', 'sys_yes_no'],
data() {
return {
width: 100,
@ -116,23 +152,38 @@ export default {
address: '光明路128号'
},
status: '0',
isPlatformOwned: 'Y',
audit: undefined
}
}
},
computed: {
// 12
type() {
return this.$route.fullPath.split('/').at(-1)
},
// 1:2
manufacturerType() {
return this.$route.fullPath.includes('manufacturer') ? 1 : 2
}
}
}
</script>
<style scoped lang="scss">
.price {
&>div {
background-color: #EFEFEF;
padding: 20px 10px;
&>div {
text-align: center;
}
&>.label {
color: rgba(16, 16, 16, 1);
font-size: 14px;
font-family: SourceHanSansSC-regular;
}
&>.value {
margin-top: 10px;
color: rgba(51, 51, 51, 1);
font-size: 20px;
font-family: SourceHanSansSC-regular;
}
}
}
.w240 {
.el-input,

@ -1,11 +1,11 @@
<template>
<el-dialog :visible="open" @close="$emit('close')" width="1000px">
<template v-if="type === '1'">
<el-dialog :visible="open" @close="$emit('close')" width="1200px">
<template v-if="$route.meta.manufacturer.subType === '1'">
<el-tabs :activeName="activeName" type="card">
<el-tab-pane label="基本信息" name="base">
<base-info @close="$emit('close')" />
</el-tab-pane>
<template v-if="manufacturerType === 1">
<template v-if="$route.meta.manufacturer.type === '1'">
<el-tab-pane label="经销商(5)" name="dealer">
<detail-table :type="1" />
</el-tab-pane>
@ -13,12 +13,23 @@
<detail-table :type="2" />
</el-tab-pane>
</template>
<template v-else-if="$route.meta.manufacturer.type === '2'">
<el-tab-pane label="厂商(12)" name="manufacturer">
<detail-table :type="3" />
</el-tab-pane>
<el-tab-pane label="加盟店(12)" name="franchisee">
<detail-table :type="4" />
</el-tab-pane>
</template>
<template v-else>
<el-tab-pane label="厂商(12)" name="dealer">
<el-tab-pane label="厂商(12)" name="manufacturer">
<detail-table :type="3" />
</el-tab-pane>
<el-tab-pane label="经销商(12)" name="dealer">
<detail-table :type="1" />
</el-tab-pane>
<el-tab-pane label="加盟店(12)" name="direct_store">
<detail-table :type="2" />
<el-tab-pane label="提现记录" name="withdrawal_record">
<detail-table :type="5" />
</el-tab-pane>
</template>
</el-tabs>
@ -39,16 +50,6 @@ export default {
return {
activeName: 'base'
}
},
computed: {
// 12
type() {
return this.$route.fullPath.split('/').at(-1)
},
// 1:2
manufacturerType() {
return this.$route.fullPath.includes('manufacturer') ? 1 : 2
}
}
}
</script>

@ -2,34 +2,46 @@
<div>
<el-button>批量锁定</el-button>
<el-button>批量开启</el-button>
<el-button v-if="manufacturerType === 2">批量删除</el-button>
<el-button v-if="$route.meta.manufacturer.type !== '2'">批量删除</el-button>
<div v-if="type === 5" class="total-price">总金额141343.00元</div>
<el-table :data="dataList" class="table">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column label="ID" align="center">CS000001</el-table-column>
<template v-if="manufacturerType === 1">
<el-table-column label="经销商名称" align="center" v-if="type === 1">联想经销商</el-table-column>
<template v-if="type === 5">
<el-table-column label="订单号" align="center">CS00001</el-table-column>
<el-table-column label="用户" align="center">联想门店</el-table-column>
<el-table-column label="用户类型" align="center">门店用户</el-table-column>
<el-table-column label="提现金额" align="center"> 500.00</el-table-column>
<el-table-column label="提现方式" align="center">招商银行</el-table-column>
<el-table-column label="提现账户" align="center">454544545454</el-table-column>
<el-table-column label="手续费" align="center">5%</el-table-column>
<el-table-column label="实际到账" align="center"> 495</el-table-column>
<el-table-column label="申请时间" align="center">2022-12-31 12:31</el-table-column>
</template>
<template v-else>
<template v-if="type === 1">
<el-table-column label="厂商名称" align="center">厂商名称</el-table-column>
<el-table-column label="厂商分类" align="center">厂商分类</el-table-column>
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column label="ID" align="center">CS000001</el-table-column>
<el-table-column label="经销商名称" align="center" v-if="type === 1">联想经销商</el-table-column>
<template v-else-if="type === 2 || type === 4">
<el-table-column label="门店名称" align="center">联想经销商</el-table-column>
<el-table-column label="门店类型" align="center">联想经销商</el-table-column>
</template>
<template v-else-if="type === 3">
<el-table-column label="厂商名称" align="center">联想经销商</el-table-column>
<el-table-column label="厂商分类" align="center">联想经销商</el-table-column>
</template>
<el-table-column label="联系人" align="center">张三</el-table-column>
<el-table-column label="联系电话" align="center">188888888888</el-table-column>
<el-table-column label="经销商品" align="center">1125</el-table-column>
<el-table-column label="授权时间" align="center">2022-12-31 12:31</el-table-column>
</template>
<template v-if="type === 2">
<el-table-column label="门店名称" align="center">门店名称</el-table-column>
<el-table-column label="门店类型" align="center">直营门店</el-table-column>
</template>
<el-table-column label="联系人" align="center">张三</el-table-column>
<el-table-column label="联系电话" align="center">188888888888</el-table-column>
<el-table-column label="经销商品" align="center">1125</el-table-column>
<el-table-column label="授权时间" align="center">2022-12-31 12:31</el-table-column>
<el-table-column label="状态" align="center">正常</el-table-column>
<el-table-column label="操作" align="center">
<el-button type="text">详情</el-button>
<el-button type="text">锁定</el-button>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
@ -38,6 +50,7 @@
export default {
name: 'DetailTable',
props: {
// 12345
type: Number
},
data() {
@ -68,4 +81,15 @@ export default {
.table {
margin-top: 10px;
}
.total-price {
background-color: rgba(22, 132, 252, 0.08);
padding: 20px 25px;
margin-top: 10px;
color: rgba(16, 16, 16, 1);
font-size: 14px;
text-align: left;
font-family: SourceHanSansSC-regular;
}
</style>

@ -1,12 +1,12 @@
<template>
<div class="app-container">
<el-form :inline="true">
<template v-if="type === '1'">
<template v-if="$route.meta.manufacturer.subType === '1'">
<el-form-item>
<el-input :placeholder="'请输入' + (manufacturerType === 1 ? '厂商' : '经销商') + '名称'"></el-input>
<el-input :placeholder="`请输入${$route.meta.manufacturer.desc}名称`"></el-input>
</el-form-item>
<el-form-item>
<el-input :placeholder="'请输入' + (manufacturerType === 1 ? '厂商' : '经销商') + 'ID'"></el-input>
<el-input :placeholder="`请输入${$route.meta.manufacturer.desc}ID`"></el-input>
</el-form-item>
</template>
<template v-else>
@ -24,9 +24,12 @@
<el-form-item>
<el-input placeholder="请输入电话"></el-input>
</el-form-item>
<el-form-item v-if="manufacturerType === 1">
<el-form-item v-if="$route.meta.manufacturer.type === '1'">
<el-select v-model="queryParams.type" placeholder="请选择类型"></el-select>
</el-form-item>
<el-form-item v-else-if="$route.meta.manufacturer.type === '3'">
<el-select v-model="queryParams.type" placeholder="全部类型"></el-select>
</el-form-item>
<el-form-item>
<el-select v-model="queryParams.manufacturerType" placeholder="全部状态" clearable>
<el-option v-for="dict in dict.type.manufacturer_type" :key="dict.value" :label="dict.label"
@ -44,7 +47,7 @@
</el-form-item>
<br />
<el-form-item v-if="type === '1'">
<el-form-item v-if="$route.meta.manufacturer.subType === '1'">
<el-button>批量锁定</el-button>
<el-button>批量开启</el-button>
</el-form-item>
@ -60,25 +63,51 @@
<el-table-column align="center" label="ID">
CS000001
</el-table-column>
<template v-if="manufacturerType === 1">
<el-table-column align="center" label="厂商名称">
联想厂商
<template v-if="$route.meta.manufacturer.subType === '1'">
<el-table-column align="center" :label="$route.meta.manufacturer.desc + '名称'">
联想经销商
</el-table-column>
<el-table-column align="center" label="类型">
<el-table-column align="center" label="类型" v-if="$route.meta.manufacturer.type === '1'">
电子产品
</el-table-column>
</template>
<el-table-column align="center" :label="type === '1' ? '经销商名称' : '门店名称'" v-else>
联想经销商
</el-table-column>
<template v-else>
<template v-if="$route.meta.manufacturer.type === '1'">
<el-table-column align="center" label="厂商名称">
联想厂商
</el-table-column>
<el-table-column align="center" label="类型">
电子产品
</el-table-column>
</template>
<template v-else>
<el-table-column align="center" label="门店名称">
门店名称
</el-table-column>
<template v-if="$route.meta.manufacturer.type === '3'">
<el-table-column align="center" label="门店类型">
加盟店
</el-table-column>
<el-table-column align="center" label="申请类型">
入驻申请
</el-table-column>
</template>
</template>
</template>
<el-table-column align="center" label="联系人">
张三
</el-table-column>
<el-table-column align="center" label="联系电话">
18888888888
</el-table-column>
<template v-if="type === '1'">
<template v-if="manufacturerType === 1">
<template v-if="$route.meta.manufacturer.subType === '1'">
<template v-if="$route.meta.manufacturer.type === '1'">
<el-table-column align="center" label="经销商">
125
</el-table-column>
@ -86,12 +115,18 @@
1
</el-table-column>
</template>
<el-table-column align="center" label="门店" v-else>
<el-table-column align="center" label="门店" v-else-if="$route.meta.manufacturer.type === '2'">
1125
</el-table-column>
<el-table-column align="center" label="类型" v-else>
直营门店
</el-table-column>
<el-table-column align="center" label="商品数量">
1125
</el-table-column>
<el-table-column align="center" label="粉丝" v-if="$route.meta.manufacturer.type === '3'">
1125
</el-table-column>
<el-table-column align="center" label="技术支持时间">
2022-12-31 12:31
</el-table-column>
@ -110,11 +145,12 @@
<el-table-column align="center" label="操作">
<el-button type="text" @click="dialog.detail = true">详情</el-button>
<el-button type="text">锁定</el-button>
<el-button type="text" v-if="type === '2'" @click="dialog.audit = true">审核</el-button>
<el-button type="text" v-if="$route.meta.manufacturer.subType === '2'"
@click="dialog.audit = true">审核</el-button>
</el-table-column>
</el-table>
<detail :open="dialog.detail" @close="dialog.detail = false" :type="type" />
<detail :open="dialog.detail" @close="dialog.detail = false" />
<el-dialog :visible.sync="dialog.audit" title="审核">
<el-form :label-width="width + 'px'">
@ -137,6 +173,7 @@
<script>
import { type } from "os";
import Detail from "./detail"
export default {
name: "Index",
dicts: ['manufacturer_type', 'audit_status'],
@ -165,16 +202,6 @@ export default {
getList() {
}
},
computed: {
// 12
type() {
return this.$route.fullPath.split('/').at(-1)
},
// 1:2
manufacturerType() {
return this.$route.fullPath.includes('manufacturer') ? 1 : 2
}
}
}
</script>

@ -95,7 +95,7 @@
</el-row>
</el-col>
<el-col :span="5" :offset="1">
<user-avatar :circle="false" show-bottom-label />
<user-avatar :circle="false" show-bottom-label title="头像" />
</el-col>
</el-row>
</el-form>

@ -1,11 +1,11 @@
<template>
<div>
<div class="user-info-head" :class="{ 'img-circle': circle }" @click="editCropper()"><img v-bind:src="options.img"
title="点击上传头像" class="img-lg" :class="{ 'img-circle': circle }" />
:title="'点击上传' + title" class="img-lg" :class="{ 'img-circle': circle }" />
</div>
<div v-if="showBottomLabel" style="width: 120px;text-align: center;margin-top: 10px;">头像</div>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"
<div v-if="showBottomLabel" style="width: 120px;text-align: center;margin-top: 10px;">{{ title }}</div>
<el-dialog :title="'修改' + title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened"
@close="closeDialog">
<el-row>
<el-col :xs="24" :md="12" :style="{ height: '350px' }">
@ -68,6 +68,9 @@ export default {
showBottomLabel: {
type: Boolean,
default: false
},
title: {
type: String
}
},
data() {
@ -76,8 +79,7 @@ export default {
open: false,
// cropper
visible: false,
//
title: "修改头像",
options: {
img: store.getters.avatar, //
autoCrop: true, //
@ -91,7 +93,7 @@ export default {
};
},
methods: {
//
//
editCropper() {
this.open = true;
},
@ -142,6 +144,8 @@ export default {
this.$refs.cropper.getCropBlob(data => {
let formData = new FormData();
formData.append("avatarfile", data);
// TODO:LOGO
uploadAvatar(formData).then(response => {
this.open = false;
this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;

Loading…
Cancel
Save