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;
};