function PackageComponent(option) { var _el = option.el; function getCommonPackagesRenderTemp() { return `
刷卡套餐配置
{{obj.name}} {{obj.cardFee}}分 {{obj.cardMin}}{{unitMap[obj.unit] ? unitMap[obj.unit] : ""}}
{{obj.switch ? '套餐已启用' : '套餐未启用'}}
` } function getCommonPackageEditDialogTemp() { return `
{{unitMap[info.dialogData.unit] ? unitMap[info.dialogData.unit] : ""}}
分钟 0.1升
取消 确认
` } var vueConfig = ({ el: _el, template: `
`, 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 `
投币套餐配置
{{obj.name}} 单位{{unitMap[obj.unit]}}
{{obj.switch ? '套餐已启用' : '套餐未启用'}}
` } function getCommonPackageEditDialogTemp() { return `
分钟 0.1升
取消 确认
` } var vueConfig = ({ el: _el, template: `
`, 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; };