function PowerRateComponent(option) {
var _el = option.el;
var _packages = option.packages;
var app = this.app = new Vue({
el: _el,
template: `
`
,
data: {
info: {
dialogIndex: 0,
dialogOpen: false,
dialogData: {},
packages: []
},
},
mounted: function () {
var that = this
that.initPackages();
},
computed: {},
filters: {},
methods: {
initPackages: function () {
this.info.packages = _packages;
},
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 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;
var packages = this.info.packages
if ($.trim(dialogData.max) === '') {
mui.toast("最大功率不能为空");
return;
}
var dialogIndex = this.info.dialogIndex;
if (dialogIndex >= 1) {
var prvItem = packages[dialogIndex - 1];
if (parseInt(dialogData.max) < parseInt(prvItem.max)) {
mui.toast("最大功率必须大于上一个配置的最大功率");
return;
}
}
if (dialogIndex < (packages.length - 1)) {
var lastItem = packages[dialogIndex + 1];
if (parseInt(dialogData.max) > parseInt(lastItem.max)) {
mui.toast("最大功率必须小于下一个配置的最大功率");
return;
}
}
if (dialogData.rate == '') {
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 = {};
},
}
});
}
PowerRateComponent.prototype.getPackages = function () {
return this.app.info.packages;
};
function PackageComponent(option) {
var _el = option.el;
var _package_elec = option.package_elec;
var _package_time = option.package_time;
var _chrmt = option.chrmt;
var _chrmtEnum = option.chrmtEnum || {TIME: true, ELEC: true};
var app = this.app = new Vue({
el: _el,
template: `
`
,
data: {
info: {
chrmt: '',
chrmtEnum: _chrmtEnum,
dialogIndex: 0,
dialogOpen: false,
dialogData: {},
package_time: [],
package_elec: []
},
},
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.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
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 ($.trim(dialogData.price) == '') {
mui.toast("价格不能为空");
return;
}
if (!dialogData.time) {
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 packages = info['package_' + info.chrmt.toLowerCase()]
info.dialogIndex = packages.length;
info.dialogOpen = true;
$("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
info.dialogData = {
price: "",
time: "",
};
},
}
});
}
PackageComponent.prototype.getPackagesForTime = function () {
return this.app.info.package_time;
};
PackageComponent.prototype.getPackagesForElec = function () {
return this.app.info.package_elec;
};
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: `
`
,
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;
};