123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- function PowerPackageComponent(option) {
- var _el = option.el;
- var _packages = option.packages;
- var _price = option.price;
- var app = this.app = new Vue({
- el: _el,
- template: `
- <div class="power-package-component">
- <div class="mui-input-group">
- <div class="mui-input-row">
- <label class="">默认价格</label>
- <input type="number" inputmode="decimal" class="mui-text-right font-b-10" v-model.number="info.price" style="padding-right:58px "/>
- <span class="font-b-12" style="position: absolute;right: 15px;top: 12px;">元/小时</span>
- </div>
-
- <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
- <span>功率范围:{{obj.min}}W-{{obj.max}}W,</span>
- <span >{{obj.price}}元/小时</span>
- <span class="mui-pull-right">
- <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
- <em v-on:click="deletePackageRule(obj,index)" class="padding-t-b-10" ><i
- class="iconfont icon-delete c-red"></i>删除</em></span>
- </div>
- <div class="mui-table-view-cell"
- v-on:click="addPackageRule()"><span><i class="iconfont icon-add c-success font-18"></i>添加</span></div>
- </div>
- <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
- <div class="edit-content">
- <div class="edit-box ">
- <div class="mui-input-row">
- <label>最小功率</label>
- <div class="mui-pull-right edit-row">
- <input type="number" inputmode="decimal" maxlength="5" v-model.number="info.dialogData.min"/>
- <span>W</span>
- </div>
- </div>
- <div class="mui-input-row">
- <label>最大功率</label>
- <div class="mui-pull-right edit-row">
- <input type="number" inputmode="decimal" maxlength="5" v-model.number="info.dialogData.max"/>
- <span>W</span>
- </div>
- </div>
- <div class="mui-input-row">
- <label>价格</label>
- <div class="mui-pull-right edit-row">
- <input type="number" inputmode="decimal" maxlength="5" v-model.number="info.dialogData.price"
- />
- <span>元/小时</span>
- </div>
- </div>
- </div>
- <div class="mui-popup-buttons ">
- <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
- <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
- </div>
- </div>
- </div>
- </div>
- `
- ,
- data: {
- info: {
- dialogIndex: 0,
- dialogOpen: false,
- dialogData: {},
- price: 1,
- packages: []
- },
- },
- mounted: function () {
- var that = this
- that.initPackages();
- },
- computed: {},
- filters: {},
- methods: {
- initPackages: function () {
- this.info.packages = _packages;
- this.info.price = _price;
- },
- 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.min) == '') {
- mui.toast("最小功率不能为空");
- return;
- }
- if ($.trim(dialogData.max) == '') {
- mui.toast("最大功率不能为空");
- return;
- }
- var dialogIndex = this.info.dialogIndex;
- if (dialogIndex >= 1) {
- var prvItem = packages[dialogIndex-1];
- if (dialogData.min < prvItem.max) {
- mui.toast("最小功率必须大于上一个配置的最大功率");
- return;
- }
- }
- if (dialogIndex < (packages.length - 1)) {
- var lastItem = packages[dialogIndex + 1];
- if (dialogData.max > lastItem.min) {
- mui.toast("最大功率必须大于上一个配置的最小功率");
- return;
- }
- }
- if (dialogData.min >= dialogData.max) {
- mui.toast("最大功率必须大于最小功率");
- return;
- }
- if ($.trim(dialogData.price) == '') {
- 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 = {
- };
- },
- }
- });
- }
- PowerPackageComponent.prototype.getPackages = function () {
- return this.app.info.packages;
- };
- PowerPackageComponent.prototype.getPrice = function () {
- return this.app.info.price;
- };
- function PowerPackageComponent2(option) {
- var _el = option.el;
- var _packages = option.packages;
- var _price = option.price;
- var app = this.app = new Vue({
- el: _el,
- template: `
- <div class="power-package-component">
-
- <div class="mui-input-group">
- <div class="mui-input-row">
- <label class="">默认价格</label>
- <input type="number" class="mui-text-right font-b-10" v-model="info.price" style="padding-right:58px "/>
- <span class="font-b-12" style="position: absolute;right: 15px;top: 12px;">元/小时</span>
- </div>
-
- <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
- <span>时段:{{obj.min}} -{{obj.max}},</span>
- <span >{{obj.price}}元/小时</span>
- <span class="mui-pull-right">
- <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
- <em v-on:click="deletePackageRule(obj,index)" class="padding-t-b-10" ><i
- class="iconfont icon-delete c-red"></i>删除</em></span>
- </div>
- <div class="mui-table-view-cell"
- v-on:click="addPackageRule()"><span><i class="iconfont icon-add c-success font-18"></i>添加</span></div>
- </div>
- <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
- <div class="edit-content">
- <div class="edit-box ">
- <div class="mui-input-row">
- <label>起始时间(0-24)</label>
- <div class="mui-pull-right edit-row">
- <input type="number" step="1" min="0" max="24" v-model="info.dialogData.min"/>
- </div>
- </div>
- <div class="mui-input-row">
- <label>结束时间(0-24)</label>
- <div class="mui-pull-right edit-row">
- <input type="number" step="1" min="0" max="24" v-model="info.dialogData.max"/>
- </div>
- </div>
- <div class="mui-input-row">
- <label>价格</label>
- <div class="mui-pull-right edit-row">
- <input type="number" maxlength="5" v-model="info.dialogData.price"
- />
- <span>元/小时</span>
- </div>
- </div>
- </div>
- <div class="mui-popup-buttons ">
- <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
- <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
- </div>
- </div>
- </div>
- </div>
- `
- ,
- data: {
- info: {
- dialogIndex: 0,
- dialogOpen: false,
- dialogData: {},
- price: 1,
- packages: []
- },
- },
- mounted: function () {
- var that = this
- that.initPackages();
- },
- computed: {},
- filters: {},
- methods: {
- initPackages: function () {
- this.info.packages = _packages;
- this.info.price = _price;
- },
- 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;
- if ($.trim(dialogData.max) == '') {
- mui.toast("起始时间不能为空");
- return;
- }
- if ($.trim(dialogData.min) == '') {
- mui.toast("结束不能为空");
- return;
- }
- if ($.trim(dialogData.price) == '') {
- 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 = {
- };
- },
- }
- });
- }
- PowerPackageComponent2.prototype.getPackages = function () {
- return this.app.info.packages;
- };
- PowerPackageComponent2.prototype.getPrice = function () {
- return this.app.info.price;
- };
|