function PackageComponent(option) { var _el = option.el; var _package_elec = option.package_elec; var _package_time = option.package_time; var _package_power = option.package_power; var _chrmt = option.chrmt; var app = this.app = new Vue({ el: _el, template: `
计费参数设置
编辑 删除
添加
取消 确认
` , data: { info: { chrmt: 'time', dialogIndex: 0, dialogOpen: false, dialogData: {}, package_time: [], package_elec: [], package_power: [] }, }, mounted: function () { var that = this that.initPackages(); }, computed: {}, filters: {}, methods: { initPackages: function () { this.info.package_time = _package_time; this.info.package_elec = _package_elec; this.info.package_power = _package_power; this.info.chrmt = _chrmt; }, editPackageRule: function (obj, index) { this.info.dialogIndex = index; this.info.dialogOpen = true; this.info.dialogData = $.extend(true, {}, obj); $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动 }, deletePackageRule: function (obj, index) { var that = this; var info = that.info var key = 'package_' + info.chrmt.toLowerCase() var packages = info[key] if (key === 'package_elec') { if (packages.length <= 1) { mui.toast("必须有一条配置"); return } } info['package_' + info.chrmt.toLowerCase()].splice(index, 1); }, closeRulePanel: function () { this.info.dialogOpen = false; $("body").removeClass("over-hide");//恢复body滚动 }, savePackageRule: function () { var that = this; var info = that.info var dialogData = info.dialogData; var packages = info['package_' + info.chrmt.toLowerCase()] if (info.chrmt === 'TIME') { if ($.trim(dialogData.power) == '') { mui.toast("功率不能为空"); return; } if (!dialogData.time) { mui.toast("时间不能为空"); return; } } if (info.chrmt === 'POWER') { if ($.trim(dialogData.power) == '') { mui.toast("功率不能为空"); return; } if (!dialogData.price) { mui.toast("价格不能为空"); return; } } if (info.chrmt === 'ELEC') { if (!dialogData.elec) { mui.toast("电量不能为空"); return; } } packages[info.dialogIndex] = $.extend(true, {}, info.dialogData); info.dialogOpen = false; $("body").removeClass("over-hide");//恢复body滚动 }, addPackageRule: function () { var that = this; var info = that.info var key = 'package_' + info.chrmt.toLowerCase() var packages = info[key] if (key === 'package_elec') { if (packages.length >= 1) { mui.toast("只能有一条配置"); return } } info.dialogIndex = packages.length; info.dialogOpen = true; $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动 if (info.chrmt === 'TIME') { info.dialogData = { power: "", time: "", }; } if (info.chrmt === 'ELEC') { info.dialogData = { price: "1", elec: "", }; } if (info.chrmt === 'POWER') { info.dialogData = { power: "", time: "", }; } }, } }); } PackageComponent.prototype.getPackagesForTime = function () { return this.app.info.package_time; }; PackageComponent.prototype.getPackagesForElec = function () { return this.app.info.package_elec; }; PackageComponent.prototype.getPackagesForPower = function () { return this.app.info.package_power; }; PackageComponent.prototype.getChrmt = function () { return this.app.info.chrmt; }; function VolumeComponent(option) { var _el = option.el; var _packages = option.packages; var _volume = option.volume; var app = this.app = new Vue({ el: _el, template: `
时间{{obj.start}}-{{obj.end}}, 音量{{obj.volume}} 编辑 删除
添加
取消 确认
` , data: { info: { dialogIndex: 0, dialogOpen: false, dialogData: {}, volume: 1, packages: [] }, }, mounted: function () { var that = this that.initPackages(); }, computed: {}, filters: {}, methods: { initPackages: function () { this.info.packages = _packages; this.info.volume = _volume; }, editPackageRule: function (obj, index) { this.info.dialogIndex = index; this.info.dialogOpen = true; this.info.dialogData = $.extend(true, {}, obj); $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动 }, deletePackageRule: function (obj, index) { var that = this; 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 ($.trim(dialogData.start) == '') { mui.toast("开始时间不能为空"); return; } if ($.trim(dialogData.end) == '') { mui.toast("结束时间不能为空"); return; } if (!dialogData.volume) { mui.toast("音量不能为空"); return; } this.info.packages[this.info.dialogIndex] = $.extend(true, {}, this.info.dialogData); this.info.dialogOpen = false; $("body").removeClass("over-hide");//恢复body滚动 }, addPackageRule: function () { this.info.dialogIndex = this.info.packages.length; this.info.dialogOpen = true; $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动 this.info.dialogData = { start: "", end: "", volume: "", }; }, } }); } VolumeComponent.prototype.getVolumeList = function () { return this.app.info.packages; }; VolumeComponent.prototype.getDefaultVolume = function () { return this.app.info.volume; };