function ChargeTypeComponent(option) { var _el = option.el; var _chargeType = option.chargeType; var _powerPackage = option.powerPackage; var _powerPrice = option.powerDefaultPrice; var _elecPrice = option.elecPrice; var app = this.app = new Vue({ el: _el, template: `
计费模式设置
编辑
编辑 删除
添加
取消 确认
取消 确认
` , data: { info: { chargeType: 'power', dialogIndex: 0, dialogOpen: false, dialogData: {}, powerPackage: [], powerPrice: 0, elecPrice: 0, _tempValue: 0 }, }, mounted: function () { var that = this; that.initPackages(); }, computed: {}, filters: {}, methods: { initPackages: function () { this.info.chargeType = _chargeType; this.info.powerPackage = _powerPackage; this.info.powerPrice = _powerPrice; this.info.elecPrice = _elecPrice; }, editPrice: function() { var key = this.info.chargeType + "Price"; this.info._tempValue = this.info[key]; $("#editPrice").removeClass("mui-hidden") }, closePrice: function() { $("#editPrice").addClass("mui-hidden") }, savePrice: function() { var key = this.info.chargeType + "Price"; this.info[key] = this.info._tempValue; $("#editPrice").addClass("mui-hidden") }, 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 = info.chargeType + 'Package'; info[key].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[info.chargeType + 'Package']; if (info.chargeType === 'elec') { if (!dialogData.price) { mui.toast("电量计费价格不能为空"); return; } } if (info.chargeType === 'power') { if (dialogData.min === "") { mui.toast("功率范围下限不能为空"); return; } if (dialogData.max === "") { mui.toast("功率范围上限不能为空"); return; } if (!dialogData.price) { mui.toast("价格不能为空"); return; } if (dialogData.min * 1 > dialogData.max * 1) { 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 = info.chargeType + 'Package'; var packages = info[key]; info.dialogIndex = packages.length; info.dialogOpen = true; $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动 // 只有功率的会存在多档的情况 其余的暂时不考虑 if (info.chargeType === "power") { info.dialogData = {max: "", min: "", price: ""} } }, } }); } // 获取获取功率计费 ChargeTypeComponent.prototype.getPowerPackage = function () { return this.app.info.powerPackage; }; // 获取功率计费默认价格 ChargeTypeComponent.prototype.getPowerDefaultPrice = function() { return this.app.info.powerPrice; }; // 获取电量单价 ChargeTypeComponent.prototype.getElecPrice = function () { return this.app.info.elecPrice; }; // 获取计费方式 ChargeTypeComponent.prototype.getChargeType = function () { return this.app.info.chargeType; };