Commit 1c95a56a authored by dragondean@qq.com's avatar dragondean@qq.com
parents e25c40bf 0d8d7960
import request from '@/utils/request'
// 创建客户佣金类型
export function createCustomerCommission(data) {
return request({
url: '/ecw/customer-commission/create',
method: 'post',
data: data
})
}
// 更新客户佣金类型
export function updateCustomerCommission(data) {
return request({
url: '/ecw/customer-commission/update',
method: 'put',
data: data
})
}
// 删除客户佣金类型
export function deleteCustomerCommission(id) {
return request({
url: '/ecw/customer-commission/delete?id=' + id,
method: 'delete'
})
}
// 获得客户佣金类型
export function getCustomerCommission(id) {
return request({
url: '/ecw/customer-commission/get?id=' + id,
method: 'get'
})
}
// 获得客户佣金类型分页
export function getCustomerCommissionPage(query) {
return request({
url: '/ecw/customer-commission/page',
method: 'get',
params: query
})
}
// 导出客户佣金类型 Excel
export function exportCustomerCommissionExcel(query) {
return request({
url: '/ecw/customer-commission/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -48,7 +48,23 @@ export function exportCustomerCommissionInfoExcel(query) {
return request({
url: '/ecw/customer-commission-info/export-excel',
method: 'get',
params: query,
query: query,
responseType: 'blob'
})
}
//商品类型列表
export function itemTypeListApi(query){
return request({
url:'/ecw/product-attr/list',
method:'get',
query:query
})
}
//
export function customerDropDownList(query){
return request({
url:'/ecw/customer/select',
method:'get',
query,
})
}
......@@ -34,6 +34,15 @@ export function getNode(id) {
})
}
// 获得服务网点分页
export function getNodeList(query) {
return request({
url: '/ecw/node/list',
method: 'get',
params: query
})
}
// 获得服务网点分页
export function getNodePage(query) {
return request({
......
......@@ -91,6 +91,16 @@ export const constantRoutes = [
meta: {title: '字典数据', icon: '', activeMenu: '/system/dict'}
}
]
}, {
path: '/c',
component: Layout,
hidden: true,
children: [{
path: 'ecw/customer/edit/:customerId(\\d+)',
component: (resolve) => require(['@/views/ecw/customer/edit'], resolve),
name: 'Data',
meta: {title: '字典数据', icon: '', activeMenu: '/system/dict'}
}]
}, {
path: '/job',
component: Layout,
......@@ -204,6 +214,21 @@ export const constantRoutes = [
]
},
// {
// path: '/product',
// component: Layout,
// hidden: true,
// redirect: 'noredirect',
// children: [{
// path: 'product-black',
// component: (resolve) => require(['@/views/ecw/productPrice/index'], resolve),
// name: 'ProductPrice',
// meta: {title: '黑名单产品列表', activeMenu: '/product/product-black'}
// }
// ]
// },
{
path: '/shelf',
component: Layout,
......@@ -216,7 +241,19 @@ export const constantRoutes = [
meta: {title: '货架设置', activeMenu: '/warehouse/shelf'}
}
]
}
},
{
path: '/customer',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [{
path: '/customerCommissionInfo/:dictId(\\d+)',
component: (resolve) => require(['@/views/ecw/customerCommissionInfo/index'], resolve),
name: 'customerCommissionInfo',
meta: {title: '佣金详情', icon: '', activeMenu: '/customer/customerCommissionInfo'}
}]
},
]
// 防止连续点击多次路由报错
......
......@@ -100,6 +100,12 @@ export const DICT_TYPE = {
AREA_CODE: 'area_code', // 区号
SOCIAL: 'customer_social_tools', // 社交软件
IS_DEFAULT: 'is_default', // 默认联系人
COMMISSION_PRODUCT_APPROVAL:'commission_product_approval', //佣金备案
SHIPPING_DECLARATION_TYPE:'shipping_declaration_type',//出货报关方式(与订单报关方式相同)
COMMISSION_TYPE:'commission_type',//佣金类型
COMMISSION_DARK_TYPE :'commission_dark_type',//暗涌类型
COMMISSION_CURRENCY_TYPE:'commission_currency_type',//佣金货币类型
COMMISSION_UNIT:'commission_unit'//佣金货物单位
}
......
This diff is collapsed.
This diff is collapsed.
<template>
<view>
<el-row type="flex" style="margin-top: 15px;margin-bottom: 15px" justify="center">
<el-col :xs="24" :sm="24" :md="24" :lg="20" :xl="16">
<h2></h2>
<el-row :gutter="10">
<el-col>
<h2>查看</h2>
</el-col>
<el-col>
<el-button type="primary">主要按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="danger">危险按钮</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
</view>
</template>
<script>
export default {
name: 'view'
}
</script>
<style scoped>
</style>
This diff is collapsed.
<template>
<el-select v-if="options" v-model="selectVal" placeholder="请选择">
<el-option
v-for="item in options"
:key="item[valueKey]"
:label="item[labelKey]"
:value="item[valueKey]">
</el-option>
</el-select>
</template>
<script>
export default {
name: "customSelectorsDictionary",
props:{
options:{
type:Array,
default:()=>[]
},
value:String,
labelKey:{
type:String,
default:'label'
},
valueKey:{
type:String,
default: 'value',
},
},
data(){
return{
selectVal:''
}
},
watch:{
selectVal(val){
this.$emit('input',val)
}
}
}
</script>
<style scoped lang="scss">
</style>
<template>
<el-form>
<el-form-item label="商品类型">
<div class="shanping-type">
<div class="tool">
<el-input placeholder="商品"></el-input>
</div>
<div class="box">
<div class="label">
商品类型
</div>
<div class="custom">
<custom-selectors-dictionary label-key="attrName" value-key="id" :options="commodityType"></custom-selectors-dictionary>
</div>
</div>
<div class="box">
<div class="label">
佣金
</div>
<div class="custom">
<el-input></el-input>
</div>
<div class="custom">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
</div>
<div class="custom">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_UNIT)"></custom-selectors-dictionary>
</div>
</div>
<div>
<el-button type="primary">添加</el-button>
</div>
</div>
</el-form-item>
</el-form>
</template>
<script>
//暗涌加产品
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import customSelectorsDictionary from "@/views/ecw/customerCommissionInfo/customSelectorsDictionary";
export default {
name: "darkServantAndProduct",
components:{
customSelectorsDictionary
},
props:{
commodityType:{
type:Array,
default:()=>[]
}
},
data(){
return{
DICT_TYPE,
getDictDatas,
}
},
mounted() {
console.log(this.commodityType,'commodityType')
},
watch:{
}
}
</script>
<style scoped lang="scss">
.shanping-type {
display: flex;
.tool {
width: 150px;
}
.box {
margin-left: 20px;
display: flex;
.label {
width: 80px;
vertical-align: middle;
font-size: 14px;
color: #606266;
font-weight: 700;
}
.custom {
width: 150px;
margin-right:10px;
}
}
}
</style>
<template>
<div>
<div class="column">
<div class="label">
佣金:
</div>
<div class="content">
<div class="item label"></div>
<div class="item"><el-input></el-input></div>
<div class="item"> <custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary></div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_UNIT)"></custom-selectors-dictionary>
</div>
</div>
<div class="content">
<div class="item label"></div>
<div class="item"><el-input></el-input></div>
<div class="item"> <custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary></div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_UNIT)"></custom-selectors-dictionary>
</div>
</div>
<el-button>添加</el-button>
</div>
</div>
</template>
<script>
//暗佣-达标返佣
import customSelectorsDictionary from "@/views/ecw/customerCommissionInfo/customSelectorsDictionary";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
export default {
name: "darkServantAndRebate",
components:{
customSelectorsDictionary
},
data(){
return{
DICT_TYPE,
getDictDatas
}
}
}
</script>
<style scoped lang="scss">
.column{
display: flex;
align-items: center;
.label{
width: 50px;
white-space: nowrap;
vertical-align: middle;
font-size: 14px;
color: #606266;
font-weight: 700;
}
}
.content{
display: flex;
align-items: center;
margin-right: 10px;
.item{
text-align: right;
width: 150px;
margin: 0 5px;
}
.label{
width: 50px;
}
}
</style>
<template>
<div>
<div class="mingServantAndDarkServant">
<div class="box">
<div class="label">暗佣佣金:</div>
<div class="content">
<div class="item">
<el-input></el-input>
</div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
</div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_UNIT)"></custom-selectors-dictionary>
</div>
</div>
</div>
<div class="title">
<span class="label">成本价:</span>原价-暗佣佣金
</div>
<div class="box">
<div class="label">销售价上调:</div>
<div class="content">
<div class="item">
<el-input></el-input>
</div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_CURRENCY_TYPE)"></custom-selectors-dictionary>
</div>
<div class="item">
<custom-selectors-dictionary :options="getDictDatas(DICT_TYPE.COMMISSION_UNIT)"></custom-selectors-dictionary>
</div>
</div>
</div>
<div class="title">
<span class="label"> 实际佣金返点:</span>销售价-成本价
</div>
</div>
</div>
</template>
<script>
//暗佣+明佣
import customSelectorsDictionary from "@/views/ecw/customerCommissionInfo/customSelectorsDictionary";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
export default {
name: "mingServantAndDarkServant",
components:{
customSelectorsDictionary
},
data(){
return{
getDictDatas,
DICT_TYPE
}
}
}
</script>
<style scoped lang="scss">
.mingServantAndDarkServant{
margin-top: 10px;
.box{
display: flex;
align-items: center;
.label{
vertical-align: middle;
font-size: 14px;
color: #606266;
font-weight: 700;
}
.content{
display: flex;
align-items: center;
.item{
margin-right: 20px;
}
}
}
.title{
margin: 15px 0;
.label{
vertical-align: middle;
font-size: 14px;
color: #606266;
font-weight: 700;
}
}
}
</style>
......@@ -67,7 +67,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['ecw:message-leave:update']">修改</el-button>
v-hasPermi="['ecw:message-leave:update']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['ecw:message-leave:delete']">删除</el-button>
</template>
......@@ -119,13 +119,55 @@
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 留言详情-->
<el-dialog title="留言详情" :visible.sync="leavingShow" width="500px" append-to-body>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">客户编号:</el-col><el-col :span="12">{{}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">姓名:</el-col><el-col :span="12">{{messageVal.name ? messageVal.name : ''}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">联系方式:</el-col><el-col :span="12">{{messageVal.phone}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">当前状态:</el-col><el-col :span="12">{{messageVal.status === 1 ? '待回复' : '已回复'}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">订单编号:</el-col><el-col :span="12">{{messageVal.orderCode}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">留言类型:</el-col><el-col :span="12">{{messageVal.type === 1 ? '咨询':'建议'}}</el-col>
</el-row>
<div style="background-color:#cccccc;padding:10px 20px;">
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">{{messageVal.type === 1 ? '咨询':'建议'}}时间:</el-col><el-col :span="12">{{parseTime(messageVal.createTime)}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">{{messageVal.type === 1 ? '咨询':'建议'}}类容:</el-col><el-col :span="12">{{messageVal.content}}</el-col>
</el-row>
</div>
<div style="background-color:#f6f6f6;padding:10px 20px;margin-top: 20px;">
<el-row v-if="messageVal.status === 2" class="el-row-leaving" :gutter="10">
<el-col :span="4">回复人:</el-col><el-col :span="12">{{messageVal.replyUserId}}</el-col>
</el-row>
<el-row v-if="messageVal.status === 2" class="el-row-leaving" :gutter="10">
<el-col :span="4">回复时间:</el-col><el-col :span="12">{{parseTime(messageVal.replyTime)}}</el-col>
</el-row>
<el-row class="el-row-leaving" :gutter="10">
<el-col :span="4">回复类容:</el-col><el-col :span="12"><el-input type="textarea" v-model="messageVal.replyContent" :disabled="messageVal.status === 2"></el-input></el-col><el-col :span="4"><el-button v-if="messageVal.status === 1" @click="replyFn">回复</el-button></el-col>
</el-row>
</div>
<div slot="footer" style="text-align: center;">
<el-button type="primary" @click="leavingShow = false;">关 闭</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { createMessageLeave, replyMessageLeave, updateReply, deleteMessageLeave, getMessageLeave, getMessageLeavePage, exportMessageLeaveExcel } from "@/api/ecw/messageLeave"
import { getDictDatas, DICT_TYPE } from '@/utils/dict'
export default {
name: "MessageLeave",
components: {
......@@ -133,6 +175,7 @@ export default {
},
data() {
return {
leavingShow:false,//留言详请弹窗
// 遮罩层
loading: true,
// 导出遮罩层
......@@ -160,6 +203,19 @@ export default {
},
// 表单参数
form: {},
messageVal:{
content: "",
createTime: "",
id: undefined,
name: "",
orderCode: "",
phone: "",
replyContent: "",
replyTime: "",
replyUserId: undefined,
status: 0,
type: 0
},
// 表单校验
rules: {
}
......@@ -226,8 +282,8 @@ export default {
const id = row.id;
getMessageLeave(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改留言";
this.messageVal = response.data;
this.leavingShow = true;
});
},
/** 提交按钮 */
......@@ -236,15 +292,6 @@ export default {
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
replyMessageLeave(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
return;
}
// 添加的提交
createMessageLeave(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
......@@ -278,7 +325,19 @@ export default {
this.$download.excel(response, '${table.classComment}.xls');
this.exportLoading = false;
}).catch(() => {});
},
replyFn(){
replyMessageLeave({id:this.messageVal.id, replyContent:this.messageVal.replyContent,}).then(response => {
this.$modal.msgSuccess("修改成功");
this.leavingShow = false;
this.getList();
});
}
}
};
</script>
<style lang="scss" scoped>
.el-row-leaving{
margin-bottom: 10px;
}
</style>
This diff is collapsed.
......@@ -338,7 +338,8 @@ export default {
this.$router.push({
name:'ProductPrice',
query: {
product_id: row.id
product_id: row.id,
product_type: row.typeId
}
})
},
......
......@@ -2,7 +2,7 @@
<div class="app-container">
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
<el-form-item label="品牌中文标题" prop="titleZh">
<el-input v-model="queryParams.titleZh" placeholder="请输入品牌中文标题" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
......@@ -20,7 +20,7 @@
<!-- </el-form-item>-->
<el-form-item label="是否备案" prop="filing">
<el-select v-model="queryParams.filing" placeholder="请选择是否备案" clearable size="small">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
<el-option v-for="dict in getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
......@@ -79,8 +79,8 @@
@pagination="getList"/>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="品牌中文标题" prop="titleZh">
<el-input v-model="form.titleZh" placeholder="请输入品牌中文标题" />
</el-form-item>
......@@ -98,12 +98,32 @@
<!-- </el-form-item>-->
<el-form-item label="是否备案" prop="filing">
<el-select v-model="form.filing" placeholder="请选择是否备案">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-select v-model="form.filing" placeholder="请选择是否备案">
<el-option v-for="dict in getDictDatas(DICT_TYPE.BRAND_REG_TYPE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-form>
<h3>包含商标列表</h3>
<el-form ref="form" :model="brand" label-width="80px" v-for="(brand, index) in brands" :key="index">
<el-form-item label="商标">
<el-input v-model="brand.name" placeholder="商标"></el-input>
</el-form-item>
<el-form-item label="商标分类">
<el-select v-model="brand.type" placeholder="placeholder">
<el-option
v-for="item in []"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
......@@ -124,6 +144,8 @@ export default {
},
data() {
return {
getDictDatas,
DICT_TYPE,
// 遮罩层
loading: true,
// 导出遮罩层
......@@ -154,6 +176,7 @@ export default {
rules: {
},
recordStatus: getDictDatas(DICT_TYPE.BRAND_REG_TYPE),
brands: [{name: '', type: ''}]
};
},
created() {
......
This diff is collapsed.
......@@ -44,7 +44,7 @@
</el-select>
</el-form-item>
<el-form-item label="" prop="blacklist">
<el-form-item label="" prop="blacklist" v-if="false">
<el-checkbox v-model="queryParams.blacklist"
:true-label="1" :false-label="0">黑名单</el-checkbox>
</el-form-item>
......@@ -506,12 +506,24 @@ export default {
}
},
created() {
activated() {
let typeId = this.$route.query.product_type;
if(typeId) {
if(!this.queryParams.typeId || this.queryParams.typeId != typeId)
this.$set(this.queryParams, 'typeId', typeId);
// this.queryParams.typeId = typeId;
this.getList();
}
},
created() {
// this.transportDatas = getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE);
// console.log(this.transportDatas);
let productJson = localStorage.getItem('product');
// console.log(productJson);
this.product = eval('(' + productJson + ')');
let typeListJson = localStorage.getItem('typeList');
if(typeListJson) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment