文件
xionggeshop/public/assets/js/backend/shopro/commission/level.js

523 行
23 KiB
JavaScript

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
var indexPage = new Vue({
el: "#indexPage",
data() {
return {
indexList: [],
isAjax: true,
}
},
mounted() {
this.getindexList();
},
methods: {
getindexList() {
let that = this;
that.isAjax = true;
Fast.api.ajax({
url: 'shopro/commission/level/index',
loading: false,
type: 'GET',
}, function (ret, res) {
that.indexList = res.data;
that.isAjax = false;
return false
}, function (ret, res) {
that.isAjax = false;
})
},
operation(opttype, id) {
let that = this;
switch (opttype) {
case 'create':
Fast.api.open('shopro/commission/level/add', '新建分销商等级', {
callback(data) {
that.getindexList();
}
})
break;
case 'edit':
Fast.api.open('shopro/commission/level/edit?level=' + id, '编辑分销商等级', {
callback(data) {
that.getindexList();
}
})
break;
}
},
tableCellClassName({
columnIndex
}) {
if (columnIndex == 0 || columnIndex == 7) {
return 'cell-left';
}
return '';
},
},
})
},
add: function () {
Controller.detailInit('add');
Controller.api.bindevent();
},
edit: function () {
Controller.detailInit('edit');
Controller.api.bindevent();
},
detailInit: function (type) {
var detailPage = new Vue({
el: "#detailPage",
data() {
return {
optType: type,
formData: {
level: '',
name: '',
image: '',
commission_rules: {
commission_1: '0.00',
commission_2: '0.00',
commission_3: '0.00',
differential_amount: '0',
management_rate: '0',
},
upgrade_type: 0,
upgrade_rules: ''
},
upgradeCondition: [{
title: '用户消费金额',
key: 'total_consume',
value: '',
}, {
title: '一级用户人数',
key: 'child_user_count_1',
value: '',
}, {
title: '二级用户人数',
key: 'child_user_count_2',
value: '',
}, {
title: '团队用户人数',
key: 'child_user_count',
value: '',
}, {
title: '直推分销订单金额',
key: 'order_money',
value: '',
}, {
title: '一级分销订单金额',
key: 'child_order_money_1',
value: '',
}, {
title: '二级分销订单金额',
key: 'child_order_money_2',
value: '',
}, {
title: '团队分销订单金额',
key: 'child_order_money',
value: '',
}, {
title: '直推分销订单数量',
key: 'order_count',
value: '',
}, {
title: '一级分销订单数量',
key: 'child_order_count_1',
value: '',
}, {
title: '二级分销订单数量',
key: 'child_order_count_2',
value: '',
}, {
title: '团队分销订单数量',
key: 'child_order_count',
value: '',
}, {
title: '一级分销商人数',
key: 'child_agent_count_1',
value: '',
}, {
title: '二级分销商人数',
key: 'child_agent_count_2',
value: '',
}, {
title: '团队分销商人数',
key: 'child_agent_count',
value: '',
}, {
title: '团队分销商等级统计',
key: 'child_agent_level',
value: [],
}, {
title: '一级分销商等级统计',
key: 'child_agent_level_1',
value: [],
}],
upgradeConditionBak: [],
upgradeConditionInit: [{
title: '用户消费金额',
key: 'total_consume',
value: '',
}, {
title: '一级用户人数',
key: 'child_user_count_1',
value: '',
}, {
title: '二级用户人数',
key: 'child_user_count_2',
value: '',
}, {
title: '团队用户人数',
key: 'child_user_count',
value: '',
}, {
title: '直推分销订单金额',
key: 'order_money',
value: '',
}, {
title: '一级分销订单金额',
key: 'child_order_money_1',
value: '',
}, {
title: '二级分销订单金额',
key: 'child_order_money_2',
value: '',
}, {
title: '团队分销订单金额',
key: 'child_order_money',
value: '',
}, {
title: '直推分销订单数量',
key: 'order_count',
value: '',
}, {
title: '一级分销订单数量',
key: 'child_order_count_1',
value: '',
}, {
title: '二级分销订单数量',
key: 'child_order_count_2',
value: '',
}, {
title: '团队分销订单数量',
key: 'child_order_count',
value: '',
}, {
title: '一级分销商人数',
key: 'child_agent_count_1',
value: '',
}, {
title: '二级分销商人数',
key: 'child_agent_count_2',
value: '',
}, {
title: '团队分销商人数',
key: 'child_agent_count',
value: '',
}, {
title: '团队分销商等级统计',
key: 'child_agent_level',
value: [],
}, {
title: '一级分销商等级统计',
key: 'child_agent_level_1',
value: [],
}],
goods_ids_list: null,
levelList: [{
title: '一级',
value: '1',
}, {
title: '二级',
value: '2',
}, {
title: '三级',
value: '3',
}, {
title: '四级',
value: '4',
}, {
title: '五级',
value: '5',
}, {
title: '六级',
value: '6',
}, {
title: '七级',
value: '7',
}, {
title: '八级',
value: '8',
}, {
title: '九级',
value: '9',
}, {
title: '十级',
value: '10',
}],
levelOptions: [],
selectLevelOptionsLength: 0,
moveLevel: '',
editId: null,
deleteDialog: false,
existLevel: [],
}
},
mounted() {
this.initData();
},
methods: {
//init 数据
initData() {
let that = this;
that.existLevel = Config.existLevel;
that.levelOptions = []
Fast.api.ajax({
url: 'shopro/commission/level/index',
loading: false,
type: 'GET',
}, function (ret, res) {
that.levelOptions = res.data;
if (that.optType == 'edit') {
that.formData = Config.row;
that.editId = Config.row.level;
if (!that.formData.commission_rules) {
that.formData.commission_rules = {};
}
that.formData.commission_rules.differential_amount = that.formData.commission_rules.differential_amount ?? '0';
that.formData.commission_rules.management_rate = that.formData.commission_rules.management_rate ?? '0';
//判断下面的等级选择
let selectLevel = [];
that.levelOptions.forEach((item, index) => {
if (item.level < that.formData.level) {
selectLevel.push(item)
}
})
that.selectLevelOptionsLength = selectLevel.length;
that.existLevel.splice(that.existLevel.indexOf(Config.row.level), 1)
that.formData.upgrade_rules = JSON.parse(that.formData.upgrade_rules)
for (key in that.formData.upgrade_rules) {
that.upgradeCondition.forEach(i => {
if (key == i.key) {
i.value = that.formData.upgrade_rules[key];
i.selected = true;
}
})
}
that.upgradeConditionBak = JSON.parse(JSON.stringify(that.upgradeCondition))
}
return false
})
},
childAgentCountAdd(index) {
if (this.formData.level) {
this.upgradeCondition[index].value.push({
level: '',
count: ''
})
} else {
this.$notify({
title: '警告',
message: '请先选择等级',
type: 'warning'
});
}
},
childAgentCountDelete(zindex, index) {
this.upgradeCondition[zindex].value.splice(index, 1)
},
//选择等级徽章
bgimageAdd() {
let that = this;
Fast.api.open("general/file/index?select=1&multiple=false", "选择", {
callback: function (data) {
that.formData.image = data.url;
that.$forceUpdate();
}
});
return false;
},
//选择条件
selectCondition(index) {
this.upgradeCondition[index].selected = !this.upgradeCondition[index].selected;
if (!this.upgradeCondition[index].selected) {
this.upgradeCondition[index].value = ""
}
this.$forceUpdate();
},
//条件删除
conditionDelete(index) {
this.upgradeCondition[index].selected = false;
this.upgradeCondition[index].value = ""
this.$forceUpdate();
},
selectLevel(index) {
//赋值level
this.formData.level = this.levelList[index].value;
//控制添加按钮是否显示
let selectLevel = [];
this.levelOptions.forEach((item, index) => {
if (item.level < this.formData.level && item.level != this.editId) {
selectLevel.push(item)
}
})
this.selectLevelOptionsLength = selectLevel.length;
//清空条件
this.upgradeCondition = JSON.parse(JSON.stringify(this.upgradeConditionInit));
if (this.editId == this.formData.level) {
this.upgradeCondition = JSON.parse(JSON.stringify(this.upgradeConditionBak));
}
},
addGoods(index) {
let that = this;
let multiple = false;
let type = '';
let ids = that.upgradeCondition[index].value ? that.upgradeCondition[index].value : '';
let params = {
multiple: multiple,
type: type,
ids: ids
}
shoproSelectGoods(params, "选择商品").then(data => {
that.upgradeCondition[index].value = data.data.id;
that.goods_ids_list = data.data;
that.$forceUpdate();
}).catch(error => {
});
return false;
},
formDelete() {
this.deleteDialog = true
},
deleteDialogClose(type) {
this.deleteDialog = false;
if (type == 'define') {
Fast.api.ajax({
url: ajaxUrl,
loading: true,
data: formSubmit
}, function (ret, res) {})
}
},
formSubmit(formName) {
let that = this;
if (that.formData.level == "") {
this.$notify({
title: '警告',
message: '等级权重未填写',
type: 'warning'
});
return false;
}
if (that.formData.name == "") {
this.$notify({
title: '警告',
message: '等级名称未填写',
type: 'warning'
});
return false;
}
if (Number(that.formData.commission_rules.commission_1) + Number(that.formData.commission_rules.commission_2) + Number(that.formData.commission_rules.commission_3) > 100) {
this.$notify({
title: '警告',
message: '差价比例之和不可超过100',
type: 'warning'
});
return false;
}
if (Number(that.formData.commission_rules.commission_1) < 0 || Number(that.formData.commission_rules.commission_2) < 0 || Number(that.formData.commission_rules.commission_3) < 0) {
this.$notify({
title: '警告',
message: '差价比例不可小于0',
type: 'warning'
});
return false;
}
let upgrade_rules = {}
let nowrite = true
let condition = 0;
that.upgradeCondition.forEach(k => {
if (k.selected) {
upgrade_rules[k.key] = k.value
if (k.value === "") {
nowrite = false;
};
if (k.key == 'agent_level') {
k.value.length > 0
if (k.value.length == 0) {
nowrite = false;
} else {
k.value.forEach(i => {
if (i.level == "" || i.count == "") {
nowrite = false;
}
})
}
}
condition++
}
})
that.formData.upgrade_rules = JSON.stringify(upgrade_rules)
if (that.formData.level != 1) {
if (condition == 0) {
this.$notify({
title: '警告',
message: '至少选择一个升级条件',
type: 'warning'
});
return false;
}
if (!nowrite) {
this.$notify({
title: '警告',
message: '升级条件必须填写完整',
type: 'warning'
});
return false;
}
}
var formSubmit = JSON.parse(JSON.stringify(that.formData));
for (key in formSubmit.commission_rules) {
formSubmit.commission_rules[key] = Number(formSubmit.commission_rules[key]).toFixed(2)
}
formSubmit.commission_rules = JSON.stringify(formSubmit.commission_rules)
if (this.optType == 'edit') {
formSubmit.new_level = formSubmit.level;
delete formSubmit.level;
}
// return false;
let ajaxUrl = "shopro/commission/level/add"
if (this.optType == 'edit') {
ajaxUrl = 'shopro/commission/level/edit?level=' + that.editId
}
Fast.api.ajax({
url: ajaxUrl,
loading: true,
data: formSubmit
}, function (ret, res) {
Fast.api.close()
return false;
})
},
},
})
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});