You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1011 lines
44 KiB
1011 lines
44 KiB
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'toastr'], function ($, undefined, Backend, Table, Form, Toastr) {
|
|
|
|
var Controller = {
|
|
index: function () {
|
|
function debounce(handle, delay) {
|
|
let time = null;
|
|
return function () {
|
|
let self = this,
|
|
arg = arguments;
|
|
clearTimeout(time);
|
|
time = setTimeout(function () {
|
|
handle.apply(self, arg);
|
|
}, delay)
|
|
}
|
|
}
|
|
var userIndex = new Vue({
|
|
el: "#userIndex",
|
|
data() {
|
|
return {
|
|
data: [],
|
|
// chooseType: 0,
|
|
// platformType: 'all',
|
|
// roleType: 'all',
|
|
// joinTime: '',
|
|
searchKey: '',
|
|
|
|
offset: 0,
|
|
limit: 10,
|
|
totalPage: 0,
|
|
currentPage: 1,
|
|
|
|
}
|
|
},
|
|
created() {
|
|
this.getData();
|
|
},
|
|
methods: {
|
|
getData() {
|
|
let that = this;
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/index',
|
|
loading: true,
|
|
type: 'GET',
|
|
data: {
|
|
searchWhere: that.searchKey,
|
|
// platform: that.platformType,
|
|
// role: that.roleType,
|
|
// jointime: that.joinTime,
|
|
offset: that.offset,
|
|
limit: that.limit,
|
|
},
|
|
}, function (ret, res) {
|
|
that.data = res.data.rows;
|
|
that.data.forEach(i => {
|
|
i.visible = false;
|
|
})
|
|
that.totalPage = res.data.total;
|
|
return false;
|
|
})
|
|
},
|
|
operation(type, id) {
|
|
let that = this;
|
|
switch (type) {
|
|
case 'platform':
|
|
that.platformType = id;
|
|
break;
|
|
case 'role':
|
|
that.roleType = id;
|
|
break;
|
|
case 'filter':
|
|
that.offset = 0;
|
|
that.limit = 10;
|
|
that.currentPage = 1;
|
|
that.getData();
|
|
break;
|
|
case 'clear':
|
|
that.platformType = 'all';
|
|
that.roleType = 'all';
|
|
break;
|
|
case 'edit':
|
|
Fast.api.open('shopro/user/user/profile?id=' + id, '查看', {
|
|
callback() {
|
|
that.getData();
|
|
}
|
|
})
|
|
break;
|
|
case 'del':
|
|
that.$confirm('此操作将永久直接删除用户, 是否继续?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning'
|
|
}).then(() => {
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/del/ids/' + id,
|
|
loading: true,
|
|
type: 'POST',
|
|
}, function (ret, res) {
|
|
that.getData();
|
|
|
|
})
|
|
return false;
|
|
}).catch(() => {
|
|
that.$message({
|
|
type: 'info',
|
|
message: '已取消删除'
|
|
});
|
|
});
|
|
break;
|
|
case 'platformname':
|
|
let type = ''
|
|
switch (id) {
|
|
case 'H5':
|
|
type = 'H5'
|
|
break;
|
|
case 'wxOfficialAccount':
|
|
type = '微信公众号'
|
|
break;
|
|
case 'wxMiniProgram':
|
|
type = '微信小程序'
|
|
break;
|
|
case 'App':
|
|
type = 'App'
|
|
break;
|
|
}
|
|
return type
|
|
break;
|
|
default:
|
|
Fast.api.open('shopro/user/user/profile?id=' + type.id, '查看', {
|
|
callback() {
|
|
that.getData();
|
|
}
|
|
})
|
|
break;
|
|
}
|
|
},
|
|
handleSizeChange(val) {
|
|
this.offset = 0
|
|
this.limit = val;
|
|
this.currentPage = 1;
|
|
this.getData()
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.currentPage = val;
|
|
this.offset = (val - 1) * this.limit;
|
|
this.getData()
|
|
},
|
|
isShoose() {
|
|
this.chooseType == 0 ? 1 : 0;
|
|
if (this.chooseType == 0) {
|
|
this.activityType = 'all';
|
|
this.priceFrist = "";
|
|
this.priceLast = "";
|
|
}
|
|
},
|
|
tableRowClassName({
|
|
rowIndex
|
|
}) {
|
|
if (rowIndex % 2 == 1) {
|
|
return 'bg-color';
|
|
}
|
|
return '';
|
|
},
|
|
tableCellClassName({
|
|
columnIndex
|
|
}) {
|
|
if (columnIndex == 2 || columnIndex == 9) {
|
|
return 'cell-left';
|
|
}
|
|
return '';
|
|
},
|
|
debounceFilter: debounce(function () {
|
|
this.getData()
|
|
}, 1000),
|
|
},
|
|
watch: {
|
|
searchKey(newVal, oldVal) {
|
|
if (newVal != oldVal) {
|
|
this.offset = 0;
|
|
this.limit = 10;
|
|
this.currentPage = 1;
|
|
this.debounceFilter();
|
|
}
|
|
},
|
|
},
|
|
})
|
|
},
|
|
recyclebin: function () { },
|
|
add: function () { },
|
|
profile: function () {
|
|
function debounce(handle, delay) {
|
|
let time = null;
|
|
return function () {
|
|
let self = this,
|
|
arg = arguments;
|
|
clearTimeout(time);
|
|
time = setTimeout(function () {
|
|
handle.apply(self, arg);
|
|
}, delay)
|
|
}
|
|
}
|
|
let formatterHtml = {
|
|
time: (row, value) => {
|
|
return `${moment(row.createtime * 1000).format('YYYY-MM-DD HH:mm:ss')}`
|
|
},
|
|
image: (row, value) => {
|
|
return `<img src="/assets/addons/shopro/img/decorate/${row.platform}.png" />`
|
|
},
|
|
shareUser: (row, value) => {
|
|
if (row.user) {
|
|
return `<img style="width:24px;height:24px;margin-right:10px" src="${Fast.api.cdnurl(row.user.avatar)}" /><div>${row.user.nickname}</div>`
|
|
}
|
|
},
|
|
changeNumber: (row, value) => {
|
|
let str = ""
|
|
if (row.money) {
|
|
str = `${row.money > 0 ? '+' + row.money : row.money}`
|
|
} else if (row.score) {
|
|
str = `${row.score > 0 ? '+' + row.score : row.score}`
|
|
}
|
|
return str
|
|
},
|
|
shareMessage: (row, value) => {
|
|
let str = ""
|
|
if (row.type == "groupon") {
|
|
str = `<div class="flex-1 ellipsis-item">拼团ID:${row.groupon.id}</div>`
|
|
} else {
|
|
if (row.goods) {
|
|
str = `<img style="width:24px;height:24px;margin-right:14px;border:1px solid #E6E6E6" src="${Fast.api.cdnurl(row.goods.image)}" /><div class="flex-1 ellipsis-item">${row.goods.title}</div>`
|
|
}
|
|
}
|
|
return str
|
|
},
|
|
goods: (row, value) => {
|
|
if (row.goods) {
|
|
return `<img style="width:24px;height:24px;margin-right:10px" src="${Fast.api.cdnurl(row.goods.image)}" /><div class="flex-1 ellipsis-item" style="text-align:left">${row.goods.title}</div>`
|
|
}
|
|
},
|
|
coupon: (row, value) => {
|
|
if (row.coupons) {
|
|
return `${row.coupons[value.field]}`
|
|
}
|
|
},
|
|
couponStatus: (row, value) => {
|
|
let str = ''
|
|
if (row.usetime) {
|
|
str = 1
|
|
} else {
|
|
str = 0
|
|
}
|
|
return str
|
|
},
|
|
operUser: (row) => {
|
|
let htmls = ''
|
|
if (row.oper) {
|
|
if (row.oper.avatar) {
|
|
htmls += `<img style="width:24px;height:24px;margin-right:10px" src="${Fast.api.cdnurl(row.oper.avatar)}" />`
|
|
}
|
|
if (row.oper.name) {
|
|
htmls += `<div class="ellipsis-item">${row.oper.name}</div>`
|
|
}
|
|
}
|
|
return htmls
|
|
},
|
|
operType: (row) => {
|
|
return row.oper ? row.oper.type : ''
|
|
},
|
|
}
|
|
var userDetail = new Vue({
|
|
el: "#userDetail",
|
|
data() {
|
|
return {
|
|
data: {},
|
|
groupList: [],
|
|
upPassword: '',
|
|
|
|
activeStatus: 'money_log',
|
|
logList: [],
|
|
columns: {
|
|
'money_log': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '交易时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'text',
|
|
field: 'wallet',
|
|
title: '变动余额',
|
|
width: '120px',
|
|
}, {
|
|
type: 'text',
|
|
field: 'before',
|
|
title: '变更前',
|
|
width: '120px',
|
|
}, {
|
|
type: 'text',
|
|
field: 'after',
|
|
title: '剩余余额',
|
|
width: '120px',
|
|
}, {
|
|
type: 'htmls',
|
|
field: 'oper.type',
|
|
title: '操作人类型',
|
|
width: '120px',
|
|
formatter: formatterHtml.operType,
|
|
}, {
|
|
type: 'htmls',
|
|
field: 'oper',
|
|
title: '操作人',
|
|
width: '200px',
|
|
formatter: formatterHtml.operUser,
|
|
}, {
|
|
type: 'text',
|
|
field: 'memo',
|
|
title: '备注',
|
|
width: '400px',
|
|
align: 'left',
|
|
}],
|
|
'score_log': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '交易时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'text',
|
|
field: 'wallet',
|
|
title: '变动积分',
|
|
width: '120px',
|
|
}, {
|
|
type: 'text',
|
|
field: 'before',
|
|
title: '变更前',
|
|
width: '120px',
|
|
}, {
|
|
type: 'text',
|
|
field: 'after',
|
|
title: '剩余积分',
|
|
width: '120px',
|
|
}, {
|
|
type: 'htmls',
|
|
field: 'oper.type',
|
|
title: '操作人类型',
|
|
width: '120px',
|
|
formatter: formatterHtml.operType,
|
|
}, {
|
|
type: 'htmls',
|
|
field: 'oper',
|
|
title: '操作人',
|
|
width: '200px',
|
|
formatter: formatterHtml.operUser,
|
|
}, {
|
|
type: 'text',
|
|
field: 'memo',
|
|
title: '备注',
|
|
width: '400px',
|
|
align: 'left',
|
|
}],
|
|
'order_log': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '下单时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'order',
|
|
field: 'order_sn',
|
|
title: '订单号',
|
|
width: '200px',
|
|
}, {
|
|
type: 'image',
|
|
field: 'platform',
|
|
title: '订单来源',
|
|
width: '100px',
|
|
formatter: formatterHtml.image,
|
|
}, {
|
|
type: 'text',
|
|
field: 'type_text',
|
|
title: '订单类型',
|
|
width: '100px',
|
|
}, {
|
|
type: 'price',
|
|
field: 'total_amount',
|
|
title: '金额小计',
|
|
width: '140px',
|
|
}, {
|
|
type: 'price',
|
|
field: 'discount_fee',
|
|
title: '优惠减免',
|
|
width: '140px',
|
|
}, {
|
|
type: 'price',
|
|
field: 'pay_fee',
|
|
title: '实付金额',
|
|
width: '140px',
|
|
}, {
|
|
type: 'text',
|
|
field: 'status_text',
|
|
title: '订单状态',
|
|
width: '100px',
|
|
}],
|
|
'share_log': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '分享时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'shareUser',
|
|
field: 'person',
|
|
title: '被分享用户',
|
|
width: '160px',
|
|
formatter: formatterHtml.shareUser,
|
|
}, {
|
|
type: 'text',
|
|
field: 'type_text',
|
|
title: '分享类型',
|
|
width: '100px',
|
|
}, {
|
|
type: 'shareMessage',
|
|
field: 'type',
|
|
title: '分享信息',
|
|
width: '300px',
|
|
align: 'left',
|
|
formatter: formatterHtml.shareMessage,
|
|
}, {
|
|
type: 'image',
|
|
field: 'platform',
|
|
title: '平台',
|
|
width: '120px',
|
|
formatter: formatterHtml.image,
|
|
}],
|
|
'goods_favorite': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '收藏时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'goods',
|
|
field: 'goods',
|
|
title: '收藏商品',
|
|
width: '300px',
|
|
align: 'left',
|
|
formatter: formatterHtml.goods,
|
|
}],
|
|
'goods_view': [{
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '查看时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'goods',
|
|
field: 'goods',
|
|
title: '浏览商品',
|
|
width: '300px',
|
|
align: 'left',
|
|
formatter: formatterHtml.goods,
|
|
}],
|
|
'coupon_log': [{
|
|
type: 'htmls',
|
|
field: 'name',
|
|
title: '优惠券名称',
|
|
width: '160px',
|
|
formatter: formatterHtml.coupon,
|
|
}, {
|
|
type: 'htmls',
|
|
field: 'amount',
|
|
title: '优惠券面额',
|
|
width: '160px',
|
|
formatter: formatterHtml.coupon,
|
|
}, {
|
|
type: 'couponStatus',
|
|
field: 'user_order_id',
|
|
title: '优惠券状态',
|
|
width: '100px',
|
|
formatter: formatterHtml.couponStatus,
|
|
}, {
|
|
type: 'time',
|
|
field: 'createtime',
|
|
title: '领取时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}, {
|
|
type: 'time',
|
|
field: 'usetime',
|
|
title: '使用时间',
|
|
width: '160px',
|
|
formatter: formatterHtml.time,
|
|
}],
|
|
},
|
|
|
|
page: 1,
|
|
limit: 10,
|
|
totalPage: 0,
|
|
currentPage: 1,
|
|
// 更换推荐人
|
|
dialogList: [],
|
|
agentDialogVisible: false,
|
|
poffset: 0,
|
|
plimit: 5,
|
|
ptotalPage: 0,
|
|
pcurrentPage: 1,
|
|
parentFilterForm: {
|
|
status: "normal",
|
|
form_1_key: "user_id",
|
|
form_1_value: ""
|
|
},
|
|
parentFilterFormInit: {
|
|
status: "normal",
|
|
form_1_key: "user_id",
|
|
form_1_value: ""
|
|
},
|
|
parentFilterOp: {
|
|
status: "=",
|
|
|
|
user_id: "=",
|
|
nickname: "like",
|
|
mobile: "like",
|
|
},
|
|
selectParentAgentId: null,
|
|
noRecommendationChecked: false
|
|
|
|
}
|
|
},
|
|
created() {
|
|
this.data = JSON.parse(JSON.stringify(Config.row));
|
|
this.groupList = Config.groupList
|
|
this.getListData(this.activeStatus)
|
|
},
|
|
methods: {
|
|
getprofile() {
|
|
let that = this;
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/profile?id=' + Config.row.id,
|
|
loading: true,
|
|
type: 'GET',
|
|
data: {},
|
|
}, function (ret, res) {
|
|
Config.row = res.data;
|
|
that.data = JSON.parse(JSON.stringify(Config.row));
|
|
return false;
|
|
})
|
|
},
|
|
//列表
|
|
radioChange(val) {
|
|
this.logList = [];
|
|
this.activeStatus = val;
|
|
this.page = 1;
|
|
this.limit = 10;
|
|
this.currentPage = 1;
|
|
this.getListData(val)
|
|
},
|
|
getListData(val) {
|
|
let that = this;
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/' + val + '?user_id=' + Config.row.id,
|
|
loading: true,
|
|
type: 'GET',
|
|
data: {
|
|
page: that.page,
|
|
limit: that.limit,
|
|
},
|
|
}, function (ret, res) {
|
|
that.logList = res.data.data;
|
|
that.totalPage = res.data.total;
|
|
return false;
|
|
})
|
|
},
|
|
operation(type, id) {
|
|
let that = this;
|
|
switch (type) {
|
|
case 'avatar':
|
|
parent.Fast.api.open("general/attachment/select?multiple=false", "选择头像", {
|
|
callback: function (data) {
|
|
that.data.avatar = data.url;
|
|
}
|
|
});
|
|
break;
|
|
case 'money':
|
|
Fast.api.open('shopro/user/user/money_recharge?id=' + Config.row.id, '余额充值', {
|
|
callback(data) {
|
|
that.getprofile();
|
|
that.getListData(that.activeStatus);
|
|
}
|
|
})
|
|
break;
|
|
case 'score':
|
|
Fast.api.open('shopro/user/user/score_recharge?id=' + Config.row.id, '积分充值', {
|
|
callback(data) {
|
|
that.getprofile();
|
|
that.getListData(that.activeStatus);
|
|
}
|
|
})
|
|
break;
|
|
case 'reset':
|
|
that.data = JSON.parse(JSON.stringify(Config.row))
|
|
break;
|
|
case 'save':
|
|
subData = JSON.parse(JSON.stringify(that.data))
|
|
if (that.upPassword) {
|
|
subData.password = that.upPassword
|
|
}
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/update',
|
|
loading: true,
|
|
data: {
|
|
data: JSON.stringify(subData)
|
|
}
|
|
}, function (ret, res) {
|
|
Config.row = res.data
|
|
that.upPassword = ''
|
|
})
|
|
break;
|
|
case 'platformname':
|
|
let type = ''
|
|
switch (id) {
|
|
case 'H5':
|
|
type = 'H5'
|
|
break;
|
|
case 'wxOfficialAccount':
|
|
type = '微信公众号'
|
|
break;
|
|
case 'wxMiniProgram':
|
|
type = '微信小程序'
|
|
break;
|
|
case 'App':
|
|
type = 'App'
|
|
break;
|
|
}
|
|
return type
|
|
break;
|
|
case 'order':
|
|
Fast.api.open('shopro/order/order/detail?id=' + id, '查看订单')
|
|
break;
|
|
case 'shareUser':
|
|
Fast.api.open('shopro/user/user/profile?id=' + id, '查看')
|
|
break;
|
|
case 'groupon':
|
|
Fast.api.open(`shopro/activity/groupon/detail/id/${id}`, "查看拼团");
|
|
break;
|
|
case 'goods':
|
|
Fast.api.open(`shopro/goods/goods/edit/ids/${id}?id=${id}&type=edit`, "查看商品");
|
|
break;
|
|
}
|
|
},
|
|
openAgentProfile(agent_id) {
|
|
let that = this;
|
|
Fast.api.open(`shopro/commission/agent/profile?id=${agent_id}`, '详情', {
|
|
callback(data) {
|
|
that.getListData()
|
|
}
|
|
})
|
|
},
|
|
// 更换
|
|
openDialog() {
|
|
this.getAgentIndex();
|
|
},
|
|
closeDialog(opttype) {
|
|
if (opttype == true) {
|
|
this.reqUserChangeParentUser()
|
|
} else {
|
|
this.agentDialogVisible = false
|
|
this.noRecommendationChecked = false
|
|
}
|
|
},
|
|
reqUserChangeParentUser() {
|
|
let that = this;
|
|
if (!that.selectParentAgentId && that.selectParentAgentId != 0) {
|
|
return false
|
|
}
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/changeParentUser?id=' + Config.row.id,
|
|
loading: false,
|
|
type: 'POST',
|
|
data: {
|
|
value: that.selectParentAgentId
|
|
},
|
|
}, function (ret, res) {
|
|
that.selectParentAgentId = null;
|
|
that.agentDialogVisible = false
|
|
that.parentFilterForm.form_1_value = "";
|
|
that.parentFilterForm.form_1_key = "user_id";
|
|
that.noRecommendationChecked = false
|
|
that.getprofile();
|
|
}, function (ret, res) {
|
|
that.selectParentAgentId = null;
|
|
that.agentDialogVisible = false
|
|
that.parentFilterForm.form_1_value = "";
|
|
that.parentFilterForm.form_1_key = "user_id";
|
|
that.noRecommendationChecked = false
|
|
})
|
|
},
|
|
// init推荐人
|
|
initAgentData(id) {
|
|
if (id === true) {
|
|
this.selectParentAgentId = 0;
|
|
} else if (id === false) {
|
|
this.selectParentAgentId = null;
|
|
} else {
|
|
this.selectParentAgentId = id;
|
|
this.noRecommendationChecked = false;
|
|
}
|
|
},
|
|
// 推荐人列表
|
|
getAgentIndex() {
|
|
let that = this;
|
|
let filter = {}
|
|
let op = {}
|
|
for (key in that.parentFilterForm) {
|
|
if (key == 'form_1_value') {
|
|
if (that.parentFilterForm[key] != '') {
|
|
filter[that.parentFilterForm.form_1_key] = that.parentFilterForm[key];
|
|
}
|
|
} else if (key == 'status') {
|
|
if (that.parentFilterForm[key] != '' && that.parentFilterForm[key] != 'all') {
|
|
filter[key] = that.parentFilterForm[key];
|
|
}
|
|
}
|
|
}
|
|
for (key in filter) {
|
|
op[key] = that.parentFilterOp[key]
|
|
}
|
|
Fast.api.ajax({
|
|
url: 'shopro/commission/agent/index',
|
|
loading: false,
|
|
type: 'GET',
|
|
data: {
|
|
offset: that.poffset,
|
|
limit: that.plimit,
|
|
filter: JSON.stringify(filter),
|
|
op: JSON.stringify(op)
|
|
},
|
|
}, function (ret, res) {
|
|
that.dialogList = res.data.rows;
|
|
that.ptotalPage = res.data.total;
|
|
that.agentDialogVisible = true;
|
|
return false;
|
|
})
|
|
},
|
|
parentDebounceFilter: debounce(function () {
|
|
this.getAgentIndex()
|
|
}, 1000),
|
|
phandleCurrentChange(val) {
|
|
this.pcurrentPage = val;
|
|
this.poffset = (val - 1) * this.plimit;
|
|
this.getAgentIndex()
|
|
},
|
|
handleSizeChange(val) {
|
|
this.page = 0
|
|
this.limit = val;
|
|
this.currentPage = 1;
|
|
this.getListData(this.activeStatus)
|
|
},
|
|
handleCurrentChange(val) {
|
|
this.currentPage = val;
|
|
this.page = val;
|
|
this.getListData(this.activeStatus)
|
|
},
|
|
tableRowClassName({
|
|
rowIndex
|
|
}) {
|
|
if (rowIndex % 2 == 1) {
|
|
return 'bg-color';
|
|
}
|
|
return '';
|
|
},
|
|
},
|
|
})
|
|
},
|
|
select: function () {
|
|
// 初始化表格参数配置
|
|
Table.api.init({
|
|
extend: {
|
|
index_url: 'shopro/goods/goods/index?page_type=select',
|
|
}
|
|
});
|
|
|
|
var idArr = [];
|
|
var selectArr = [];
|
|
var table = $("#table");
|
|
|
|
table.on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function (e, row) {
|
|
if (e.type == 'check' || e.type == 'uncheck') {
|
|
row = [row];
|
|
} else {
|
|
idArr = [];
|
|
selectArr = []
|
|
}
|
|
$.each(row, function (i, j) {
|
|
if (e.type.indexOf("uncheck") > -1) {
|
|
var index = idArr.indexOf(j.id);
|
|
var indexall = idArr.indexOf(j);
|
|
if (index > -1) {
|
|
idArr.splice(index, 1);
|
|
}
|
|
if (indexall > -1) {
|
|
selectArr.splice(index, 1);
|
|
}
|
|
} else {
|
|
idArr.indexOf(j.id) == -1 && idArr.push(j.id);
|
|
selectArr.indexOf(j) == -1 && selectArr.push(j);
|
|
}
|
|
});
|
|
});
|
|
// 初始化表格
|
|
table.bootstrapTable({
|
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
|
sortName: 'id',
|
|
showToggle: false,
|
|
showExport: false,
|
|
columns: [
|
|
[{
|
|
field: 'state',
|
|
checkbox: true,
|
|
},
|
|
{
|
|
field: 'title',
|
|
title: __('Title'),
|
|
align: 'left'
|
|
},
|
|
{
|
|
field: 'image',
|
|
title: __('Image'),
|
|
operate: false,
|
|
events: Table.api.events.image,
|
|
formatter: Table.api.formatter.image
|
|
},
|
|
{
|
|
field: 'status_text',
|
|
title: __('Status'),
|
|
// formatter: Table.api.formatter.status,
|
|
},
|
|
{
|
|
field: 'createtime',
|
|
title: __('Createtime'),
|
|
formatter: Table.api.formatter.datetime,
|
|
operate: 'RANGE',
|
|
addclass: 'datetimerange',
|
|
sortable: true
|
|
},
|
|
{
|
|
field: 'operate',
|
|
title: __('Operate'),
|
|
events: {
|
|
'click .btn-chooseone': function (e, value, row, index) {
|
|
var multiple = Backend.api.query('multiple');
|
|
multiple = multiple == 'true' ? true : false;
|
|
row.ids = row.id.toString()
|
|
Fast.api.close({
|
|
data: row,
|
|
multiple: multiple
|
|
});
|
|
},
|
|
},
|
|
formatter: function () {
|
|
return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
|
|
}
|
|
}
|
|
]
|
|
]
|
|
});
|
|
|
|
// 选中多个
|
|
$(document).on("click", ".btn-choose-multi", function () {
|
|
if (Backend.api.query('type') == 'activity') {
|
|
var multiple = Backend.api.query('multiple');
|
|
multiple = multiple == 'true' ? true : false;
|
|
Fast.api.close({
|
|
data: selectArr,
|
|
multiple: multiple
|
|
});
|
|
} else {
|
|
let row = {}
|
|
var multiple = Backend.api.query('multiple');
|
|
multiple = multiple == 'true' ? true : false;
|
|
row.ids = idArr.join(",")
|
|
Fast.api.close({
|
|
data: row,
|
|
multiple: multiple
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
// 为表格绑定事件
|
|
Table.api.bindevent(table);
|
|
//绑定TAB事件
|
|
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
|
// var options = table.bootstrapTable(tableOptions);
|
|
var typeStr = $(this).attr("href").replace('#', '');
|
|
var options = table.bootstrapTable('getOptions');
|
|
options.pageNumber = 1;
|
|
options.queryParams = function (params) {
|
|
// params.filter = JSON.stringify({type: typeStr});
|
|
params.type = typeStr;
|
|
params.status = typeStr.replace('t-', '');
|
|
return params;
|
|
};
|
|
table.bootstrapTable('refresh', {});
|
|
return false;
|
|
|
|
});
|
|
require(['upload'], function (Upload) {
|
|
Upload.api.plupload($("#toolbar .plupload"), function () {
|
|
$(".btn-refresh").trigger("click");
|
|
});
|
|
});
|
|
|
|
},
|
|
money_recharge: function () {
|
|
Controller.rechangeInit('money')
|
|
},
|
|
score_recharge: function () {
|
|
Controller.rechangeInit('score')
|
|
},
|
|
rechangeInit: function (type) {
|
|
function urlParmas(par) {
|
|
let value = ""
|
|
window.location.search.replace("?", '').split("&").forEach(i => {
|
|
if (i.split('=')[0] == par) {
|
|
value = JSON.parse(decodeURI(i.split('=')[1]))
|
|
}
|
|
})
|
|
return value
|
|
}
|
|
var recharge = new Vue({
|
|
el: "#recharge",
|
|
data() {
|
|
return {
|
|
rechargeType: type,
|
|
rechargeForm: {
|
|
user_id: urlParmas('id'),
|
|
money: '',
|
|
score: '',
|
|
remarks: '',
|
|
},
|
|
rechargeFormInit: {
|
|
user_id: urlParmas('id'),
|
|
money: '',
|
|
score: '',
|
|
remarks: '',
|
|
},
|
|
rules: {
|
|
money: [{
|
|
required: true,
|
|
message: '请输入充值余额',
|
|
trigger: 'blur'
|
|
},],
|
|
score: [{
|
|
required: true,
|
|
message: '请输入充值积分',
|
|
trigger: 'blur'
|
|
},],
|
|
}
|
|
}
|
|
},
|
|
mounted() { },
|
|
methods: {
|
|
submitForm(type, check) {
|
|
let that = this;
|
|
if (type == 'yes') {
|
|
that.$refs[check].validate((valid) => {
|
|
if (valid) {
|
|
let subData = JSON.parse(JSON.stringify(that.rechargeForm));
|
|
if (that.rechargeType != 'money') {
|
|
delete subData.money
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/score_recharge',
|
|
loading: true,
|
|
data: subData
|
|
}, function (ret, res) {
|
|
that.rechargeType = null;
|
|
that.rechargeForm = JSON.parse(JSON.stringify(that.rechargeFormInit))
|
|
Fast.api.close();
|
|
})
|
|
} else {
|
|
delete subData.score
|
|
Fast.api.ajax({
|
|
url: 'shopro/user/user/money_recharge',
|
|
loading: true,
|
|
type: "POST",
|
|
data: subData
|
|
}, function (ret, res) {
|
|
that.rechargeType = null;
|
|
that.rechargeForm = JSON.parse(JSON.stringify(that.rechargeFormInit));
|
|
Fast.api.close();
|
|
})
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
});
|
|
} else {
|
|
that.rechargeForm = JSON.parse(JSON.stringify(that.rechargeFormInit))
|
|
that.rechargeType = null;
|
|
}
|
|
},
|
|
}
|
|
})
|
|
},
|
|
api: {
|
|
bindevent: function () {
|
|
Form.api.bindevent($("form[role=form]"));
|
|
}
|
|
},
|
|
|
|
};
|
|
return Controller;
|
|
}); |