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: `
`
,
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;
};