device-param-100291.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. // 源: 100262
  2. function PowerPackageComponent(option) {
  3. var _el = option.el;
  4. var _packages = option.packages;
  5. this.app = new Vue({
  6. el: _el,
  7. template: `
  8. <div class="power-package-component">
  9. <div class="mui-input-group">
  10. <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
  11. <span>功率:{{obj.power}}W,</span>
  12. <span >{{obj.price}}分/{{obj.time}}分钟</span>
  13. <span class="mui-pull-right">
  14. <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
  15. <em v-on:click="deletePackageRule(obj,index)" class="padding-t-b-10" ><i
  16. class="iconfont icon-delete c-red"></i>删除</em></span>
  17. </div>
  18. <div class="mui-table-view-cell" v-if="info.packages && info.packages.length<5"
  19. v-on:click="addPackageRule()"><span><i class="iconfont icon-add c-success font-18"></i>添加</span></div>
  20. </div>
  21. <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
  22. <div class="edit-content">
  23. <div class="edit-box ">
  24. <div class="mui-input-row">
  25. <label>功率</label>
  26. <div class="mui-pull-right edit-row">
  27. <input type="number" maxlength="5" v-model="info.dialogData.power"/>
  28. <span>W</span>
  29. </div>
  30. </div>
  31. <div class="mui-input-row">
  32. <label>价格</label>
  33. <div class="mui-pull-right edit-row">
  34. <input type="number" maxlength="5" v-model="info.dialogData.price"
  35. />
  36. <span>分</span>
  37. </div>
  38. </div>
  39. <div class="mui-input-row ">
  40. <label>时间</label>
  41. <div class="mui-pull-right edit-row">
  42. <input type="number" maxlength="5" v-model="info.dialogData.time"
  43. />
  44. <span>分钟</span>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="mui-popup-buttons ">
  49. <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
  50. <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. `
  56. ,
  57. data: {
  58. info: {
  59. dialogIndex: 0,
  60. dialogOpen: false,
  61. dialogData: {},
  62. packages: []
  63. },
  64. },
  65. mounted: function () {
  66. var that = this
  67. that.initPackages();
  68. },
  69. computed: {},
  70. filters: {},
  71. methods: {
  72. initPackages: function () {
  73. this.info.packages = _packages;
  74. },
  75. editPackageRule: function (obj, index) {
  76. this.info.dialogIndex = index;
  77. this.info.dialogOpen = true;
  78. this.info.dialogData = $.extend(true, {}, obj);
  79. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  80. },
  81. deletePackageRule: function (obj, index) {
  82. var that = this;
  83. var tnArray = ['取消', '确认'];
  84. mui.confirm('确定要删除该套餐?', '温馨提示', tnArray, function (e) {
  85. if (e.index == 0) {
  86. } else {
  87. //点击确认业务
  88. that.info.packages.splice(index, 1);
  89. }
  90. });
  91. },
  92. closeRulePanel: function () {
  93. this.info.dialogOpen = false;
  94. $("body").removeClass("over-hide");//恢复body滚动
  95. },
  96. savePackageRule: function () {
  97. var dialogData = this.info.dialogData;
  98. if ($.trim(dialogData.power) == '') {
  99. mui.toast("功率不能为空");
  100. return;
  101. }
  102. if ($.trim(dialogData.price) === '') {
  103. mui.toast("价格不能为空");
  104. return;
  105. }
  106. if (!dialogData.time) {
  107. mui.toast("时间不能为空");
  108. return;
  109. }
  110. this.info.packages[this.info.dialogIndex] = $.extend(true, {}, this.info.dialogData);
  111. this.info.dialogOpen = false;
  112. $("body").removeClass("over-hide");//恢复body滚动
  113. },
  114. addPackageRule: function () {
  115. this.info.dialogIndex = this.info.packages.length;
  116. this.info.dialogOpen = true;
  117. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  118. this.info.dialogData = {
  119. };
  120. },
  121. }
  122. });
  123. }
  124. PowerPackageComponent.prototype.getPackages = function () {
  125. return this.app.info.packages;
  126. };