15090180611 a9a4ebe154 退款流程: 后台最终处理挂起订单流程,
售后单超时自动挂起
售后同意结算单收益释放(余留未退金额情况下
后台帮商户售后功能
后台帮用户取消和申请售后功能
后台用户维度查看提现,结算,订单记录
结算单,活动单,活动,提现记录增加 万以上数据导出excel
2025-04-16 18:02:31 +08:00

370 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

define(['jquery', 'bootstrap', 'backend', 'csmtable', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'school/activity/activity/index' + location.search,
add_url: 'school/activity/activity/add'+ location.search,
edit_url: 'school/activity/activity/edit'+ location.search,
copy_url: 'school/activity/activity/copy'+ location.search,
del_url: 'school/activity/activity/del',
cancel_url: 'school/activity/activity/cancel',
multi_url: 'school/activity/activity/multi',
import_url: 'school/activity/activity/import',
lookminiqrcode_url: 'school/activity/activity/lookminiqrcode',
miniqrcode_url: 'school/activity/activity/miniqrcode',
table: 'school_activity',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'weigh',
fixedColumns: true,
fixedRightNumber: 2,
asyndownload: true,
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'user_id', title: __('User_id')},
{field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
{field: 'feel', title: __('Feel'), searchList: {"0":__('Feel 0'),"1":__('Feel 1')}, formatter: Table.api.formatter.normal},
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2'),"3":__('Status 3'),"4":__('Status 4'),"5":__('Status 5'),"-1":__('Status -1')}, formatter: Table.api.formatter.status},
{field: 'auth_status', title: __('Auth_status'), searchList: {"0":__('Auth_status 0'),"1":__('Auth_status 1'),"2":__('Auth_status 2')}, formatter: Table.api.formatter.status},
{field: 'reason', title: __('Reason'), operate: 'LIKE'},
// {field: 'address_city', title: __('Address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
// {field: 'cate_ids', title: __('Cate_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
{field: 'cate_ids', title: __('Cate_ids'), searchList: cateListJson, formatter: Table.api.formatter.flag},
// {field: 'province', title: __('Province')},
// {field: 'city', title: __('City')},
// {field: 'district', title: __('District')},
{field: 'address', title: __('Address'), operate: 'LIKE'},
{field: 'address_detail', title: __('Address_detail'), operate: 'LIKE'},
{field: 'longitude', title: __('Longitude'), operate: 'LIKE'},
{field: 'latitude', title: __('Latitude'), operate: 'LIKE'},
{field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'sign_start_time', title: __('Sign_start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'sign_end_time', title: __('Sign_end_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'price', title: __('Price'), operate:'BETWEEN'},
{field: 'stock', title: __('Stock')},
{field: 'cancel_type', title: __('Cancel_type'), searchList: {"1":__('Cancel_type 1'),"2":__('Cancel_type 2')}, formatter: Table.api.formatter.normal},
{field: 'weigh', title: __('Weigh'), operate: false},
{field: 'recommend', title: __('Recommend'), searchList: {"0":__('Recommend 0'),"1":__('Recommend 1')}, formatter: Table.api.formatter.normal},
{field: 'hot', title: __('Hot'), searchList: {"0":__('Hot 0'),"1":__('Hot 1')}, formatter: Table.api.formatter.normal},
{field: 'new', title: __('New'), searchList: {"0":__('New 0'),"1":__('New 1')}, formatter: Table.api.formatter.normal},
{field: 'sale', title: __('Sale')},
{field: 'views', title: __('Views')},
{field: 'add_type', title: __('Add_type'), searchList: {"1":__('Add_type 1'),"2":__('Add_type 2')}, formatter: Table.api.formatter.normal},
{field: 'add_id', title: __('Add_id')},
{field: 'sign_num', title: __('Sign_num')},
{field: 'verification_num', title: __('Verification_num')},
{field: 'collect', title: __('Collect')},
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'admin_id', title: __('Admin_id')},
{field: 'auth_time', title: __('Auth_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'canceltime', title: __('Canceltime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
{field: 'admin.avatar', title: __('Admin.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
{field: 'miniqrcode_link', title: __('微信小程序端展示'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table , buttons: [
{name: 'cancel',
text: '取消活动',
icon: 'fa fa-user-times',
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
url: $.fn.bootstrapTable.defaults.extend.cancel_url,
confirm: '确认取消活动',
success: function (data, ret) {
Layer.alert(ret.msg );
$(".btn-refresh").trigger("click");
},
error: function (data, ret) {
Layer.alert(ret.msg);
return false;
},
visible: function (row) {
//非免费订单只有未支付可取消
if(row.status == '1' || row.status == '2' || row.status == '3' || row.status == '4' ){
return true;
}
return false;
}},
{
name: 'copy',
text: __('复制并创建活动'),
title: __('复制活动信息并创建成新活动'),
classname: 'btn btn-dialog',
icon: 'fa fa-files-o',
dropdown : '更多',
url: $.fn.bootstrapTable.defaults.extend.copy_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
{
name: 'activity_order',
text: __('参与的活动订单'),
title: __('参与的活动订单'),
classname: 'btn btn-dialog',
icon: 'fa fa-cart-arrow-down',
dropdown : '更多',
url: activity_order_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
{
name: 'user',
text: __('发布用户查看'),
title: __('发布用户查看'),
classname: 'btn btn-dialog',
icon: 'fa fa-cart-arrow-down',
dropdown : '更多',
url: user_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
{
name: 'settle_log',
text: __('活动生成的结算日志'),
title: __('活动生成的结算日志'),
classname: 'btn btn-dialog',
icon: 'fa fa-cart-arrow-down',
dropdown : '更多',
url: settle_log_url,
callback: function (data) {
},
// visible: function (row) {
// return row.status == '2'||row.status == '3';
// }
},
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
//自定义Tab筛选条件
$('.panel-heading .nav-custom-condition a[data-toggle="tab"]', table.closest(".panel-intro")).on('shown.bs.tab', function (e) {
var value = $(this).data("value");
var options = table.bootstrapTable('getOptions');
var queryParams = options.queryParams;
options.pageNumber = 1;
options.queryParams = function (params) {
//这一行必须要存在,否则在点击下一页时会丢失搜索栏数据
params = queryParams(params);
//如果希望追加搜索条件,可使用
var filter = params.filter ? JSON.parse(params.filter) : {};
var op = params.op ? JSON.parse(params.op) : {};
if (value!=="") {
//这里可以自定义多个筛选条件
filter.auth_status = value;
op.auth_status = '=';
}else{
//console.log("111111111111111111");
//选全部时要移除相应的条件
delete filter.auth_status;
delete op.auth_status;
}
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
//如果希望忽略搜索栏搜索条件,可使用
//params.filter = JSON.stringify(value?{admin_id: value}:{});
//params.op = JSON.stringify(value?{admin_id: '='}:{});
return params;
};
table.trigger("uncheckbox");
table.bootstrapTable('refresh', {pageNumber: 1});
return false;
});
},
recyclebin: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
'dragsort_url': ''
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: 'school/activity/activity/recyclebin' + location.search,
pk: 'id',
sortName: 'id',
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'title', title: __('Title'), align: 'left'},
{
field: 'deletetime',
title: __('Deletetime'),
operate: 'RANGE',
addclass: 'datetimerange',
formatter: Table.api.formatter.datetime
},
{
field: 'operate',
width: '140px',
title: __('Operate'),
table: table,
events: Table.api.events.operate,
buttons: [
{
name: 'Restore',
text: __('Restore'),
classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
icon: 'fa fa-rotate-left',
url: 'school/activity/activity/restore',
refresh: true
},
{
name: 'Destroy',
text: __('Destroy'),
classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
icon: 'fa fa-times',
url: 'school/activity/activity/destroy',
refresh: true
}
],
formatter: Table.api.formatter.operate
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
copy: function () {
Controller.api.bindevent();
},
api: {
bindevent: function () {
$(document).on("dp.change", "#add-form .datetimerange", function () {
$(this).parent().prev().find("input").trigger("change");
});
$(document).on("dp.change", "#add-form .datetimepicker", function () {
$(this).parent().prev().find("input").trigger("change");
});
$(document).on("dp.change", "#edit-form .datetimerange", function () {
$(this).parent().prev().find("input").trigger("change");
});
$(document).on("dp.change", "#edit-form .datetimepicker", function () {
$(this).parent().prev().find("input").trigger("change");
});
$(document).on('click', '.btn-changeuser', function (event) {
var url = $(this).attr('data-url');
if(!url) return false;
var title = $(this).attr('title');
var width = $(this).attr('data-width');
var height = $(this).attr('data-height');
// var ids = $(this).attr('data-id');
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
var options = {
shadeClose: false,
shade: [0.3, '#393D49'],
area: area,
callback:function(ret){//回调方法需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
Fast.api.close(ret);
}
};
Fast.api.open(url,title,options);
});
Form.api.bindevent($("form[role=form]"));
}
}
};
var activity_order_url = function (row,dom) {
return 'school/activity/order/order/index?activity_id='+row.id;
}
var user_url = function (row,dom) {
return 'user/user/index?id='+row.user_id;
}
var settle_log_url = function (row,dom) {
return 'school/activity/order/settle_log/index?activity_id='+row.id;
}
return Controller;
});