function PackageComponent(option) {
var _el = option.el;
function getCommonPackagesRenderTemp() {
return `
刷卡套餐配置
`
}
function getCommonPackageEditDialogTemp() {
return `
`
}
var vueConfig = ({
el: _el,
template: `
${getCommonPackagesRenderTemp()}
${getCommonPackageEditDialogTemp()}
`,
data: {
unitMap: {
time: "分钟",
second: "秒",
litre: "0.1升",
},
info: {
unit: "second",
packages: [],
dialogIndex: 0,
dialogOpen: false,
dialogData: {},
cardFee: "",
},
},
mounted: function () {
this.initPackages();
},
methods: {
getBaseConfig() {
var info = this.info
var reObj = {
cardFee: info.cardFee
};
return reObj
},
adapterPackagesData: function (opt) {
var packages = opt.packages || this.info.packages
for (var index in packages) {
var item = packages[index]
if (!item.unit) {
item.unit = this.info.unit
}
if (item.switch === null || item.switch === undefined) {
item.switch = false
}
}
this.info.packages = packages
},
tapSubSwitch: function ($evt, obj) {
if (obj.switch) {
mui.toast("已经启用");
}
$evt && $evt.stopPropagation();
this.info.packages.forEach(item => {
item.switch = false;
})
obj.switch = true;
},
initPackages: function () {
//初始化先适配数据,主要是为了适配单位、还有默认开关
this.adapterPackagesData(option);
},
getDefaultPackageItem() {
let obj = {
switch: true,
name: "",
cardFee: "",
unit: this.info.unit,
cardMin: '',
};
return obj
},
addPackageRule: function () {
this.info.dialogIndex = this.info.packages.length;
this.info.dialogOpen = true;
$("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
this.info.dialogData = this.getDefaultPackageItem();
},
editPackageRule: function (obj, index) {
this.info.dialogIndex = index;
this.info.dialogOpen = true;
this.info.dialogData = $.extend(true, this.getDefaultPackageItem(), obj)
$("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
},
deletePackageRule: function (obj, index) {
var that = this;
var tnArray = ['取消', '确认'];
mui.confirm('确定要删除该套餐?', '温馨提示', tnArray, function (e) {
if (e.index == 0) {
} else {
//点击确认业务
that.info.packages.splice(index, 1);
}
});
},
closeRulePanel: function () {
this.info.dialogOpen = false;
$("body").removeClass("over-hide");//恢复body滚动
},
savePackageRule: function () {
var dialogData = this.info.dialogData;
if (!this.checkName()) {
return;
}
if (!isMoney(dialogData.cardFee)) {
mui.toast("支付价格填写不正确");
return;
}
if (dialogData.cardMin === "" || dialogData.cardMin == null || dialogData.cardMin <= 0) {
mui.toast(`"获得"不正确,必须为大于0的数字`);
return;
}
if (!dialogData.unit) {
mui.toast("请选择单位");
return;
}
this.info.unit = dialogData.unit;
let list = this.info.packages;
let index = this.info.dialogIndex;
let newRow = $.extend(true, {}, this.info.dialogData);
list.splice(index, 1, newRow);
this.tapSubSwitch(null, newRow);// 编辑的最后一个为启用
this.info.dialogOpen = false;
$("body").removeClass("over-hide");//恢复body滚动
},
checkName() {
let dialogData = this.info.dialogData;
if (!dialogData.name) {
mui.toast("名称不能为空");
return false;
}
return true
},
}
});
this.app = new Vue(vueConfig);
}
PackageComponent.prototype.getPackages = function () {
return this.app.info.packages;
};
PackageComponent.prototype.getBaseConfig = function () {
if (this.app.getBaseConfig) {
return this.app.getBaseConfig();
}
return {}
};
/******************************************分割线**************************************************************/
function PackageComponent2(option) {
var _el = option.el;
function getCommonPackagesRenderTemp() {
return `
投币套餐配置
`
}
function getCommonPackageEditDialogTemp() {
return `
`
}
var vueConfig = ({
el: _el,
template: `
${getCommonPackagesRenderTemp()}
${getCommonPackageEditDialogTemp()}
`,
data: {
unitMap: {
time: "分钟",
second: "秒",
litre: "0.1升",
},
info: {
unit: "second",
packages: [],
dialogIndex: 0,
dialogOpen: false,
dialogData: {},
cardFee: "",
},
},
mounted: function () {
this.initPackages();
},
methods: {
adapterPackagesData: function (opt) {
var packages = opt.packages || this.info.packages
for (var index in packages) {
var item = packages[index]
if (!item.unit) {
item.unit = this.info.unit
}
if (item.switch === null || item.switch === undefined) {
item.switch = false
}
}
this.info.packages = packages
},
tapSubSwitch: function ($evt, obj) {
if (obj.switch) {
mui.toast("已经启用");
}
$evt && $evt.stopPropagation();
this.info.packages.forEach(item => {
item.switch = false;
})
obj.switch = true;
},
initPackages: function () {
//初始化先适配数据,主要是为了适配单位、还有默认开关
this.adapterPackagesData(option);
},
getDefaultPackageItem() {
let obj = {
switch: true,
name: "",
unit: this.info.unit,
cardMin: '',
};
return obj
},
addPackageRule: function () {
this.info.dialogIndex = this.info.packages.length;
this.info.dialogOpen = true;
$("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
this.info.dialogData = this.getDefaultPackageItem();
},
editPackageRule: function (obj, index) {
this.info.dialogIndex = index;
this.info.dialogOpen = true;
this.info.dialogData = $.extend(true, this.getDefaultPackageItem(), obj)
$("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
},
deletePackageRule: function (obj, index) {
var that = this;
var tnArray = ['取消', '确认'];
mui.confirm('确定要删除该套餐?', '温馨提示', tnArray, function (e) {
if (e.index == 0) {
} else {
//点击确认业务
that.info.packages.splice(index, 1);
}
});
},
closeRulePanel: function () {
this.info.dialogOpen = false;
$("body").removeClass("over-hide");//恢复body滚动
},
savePackageRule: function () {
var dialogData = this.info.dialogData;
let flag = this.$refs.form.reportValidity()
if (!flag) {
return
}
this.info.unit = dialogData.unit;
let list = this.info.packages;
let index = this.info.dialogIndex;
let newRow = $.extend(true, {}, this.info.dialogData);
list.splice(index, 1, newRow);
this.tapSubSwitch(null, newRow);// 编辑的最后一个为启用
this.info.dialogOpen = false;
$("body").removeClass("over-hide");//恢复body滚动
},
}
});
this.app = new Vue(vueConfig);
}
PackageComponent2.prototype.getPackages = function () {
return this.app.info.packages;
};