device-param-100606.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. function PackageComponent(option) {
  2. var _el = option.el;
  3. var _package = option.package;
  4. this.app = new Vue({
  5. el: _el,
  6. template: `
  7. <div>
  8. <h5 class="mui-content-padded">刷卡投币收费模式</h5>
  9. <div class="mui-input-group">
  10. <div class="mui-table-view-cell" v-for="(obj,index) in info['package']">
  11. <span>开始时间:{{obj.startTime}}</span>
  12. <span>单价:{{obj.unitPrice}}</span>
  13. <span>停车费:{{obj.parkingFee}}</span>
  14. <span>服务费:{{obj.serviceFee}}</span>
  15. <span class="mui-pull-right">
  16. <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
  17. <em v-on:click="deletePackageRule(obj,index)" class="padding-t-b-10"><i
  18. class="iconfont icon-delete c-red"></i>删除</em></span>
  19. </div>
  20. <div class="mui-table-view-cell"
  21. v-on:click="addPackageRule()"><span><i class="iconfont icon-add c-success font-18"></i>添加</span></div>
  22. </div>
  23. <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
  24. <div class="edit-content">
  25. <div class="edit-box">
  26. <div class="mui-input-row">
  27. <label>开始时间</label>
  28. <div class="mui-pull-right edit-row">
  29. <input type="time" step="1" v-model="info.dialogData.startTime"
  30. />
  31. </div>
  32. </div>
  33. <div class="mui-input-row">
  34. <label>单价</label>
  35. <div class="mui-pull-right edit-row">
  36. <input type="number" min="0.00" step="0.01" maxlength="9" v-model="info.dialogData.unitPrice"
  37. />
  38. <span>元</span>
  39. </div>
  40. </div>
  41. <div class="mui-input-row">
  42. <label>停车费</label>
  43. <div class="mui-pull-right edit-row">
  44. <input type="number" min="0.00" step="0.01" maxlength="9" v-model="info.dialogData.parkingFee"
  45. />
  46. <span>元</span>
  47. </div>
  48. </div>
  49. <div class="mui-input-row">
  50. <label>服务费</label>
  51. <div class="mui-pull-right edit-row">
  52. <input type="number" min="0.00" step="0.01" maxlength="9" v-model="info.dialogData.serviceFee"
  53. />
  54. <span>元</span>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="mui-popup-buttons ">
  59. <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
  60. <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. `
  66. ,
  67. data: {
  68. info: {
  69. dialogIndex: 0,
  70. dialogOpen: false,
  71. dialogData: {},
  72. package: [],
  73. },
  74. },
  75. mounted: function () {
  76. var that = this
  77. that.initPackages();
  78. },
  79. computed: {},
  80. filters: {},
  81. methods: {
  82. initPackages: function () {
  83. this.info.package = _package;
  84. },
  85. editPackageRule: function (obj, index) {
  86. this.info.dialogIndex = index;
  87. this.info.dialogOpen = true;
  88. this.info.dialogData = $.extend(true, {}, obj);
  89. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  90. },
  91. deletePackageRule: function (obj, index) {
  92. var that = this;
  93. var info = that.info
  94. info['package'].splice(index, 1);
  95. },
  96. closeRulePanel: function () {
  97. this.info.dialogOpen = false;
  98. $("body").removeClass("over-hide");//恢复body滚动
  99. },
  100. savePackageRule: function () {
  101. var that = this;
  102. var info = that.info
  103. var dialogData = info.dialogData;
  104. var packages = info['package']
  105. if (!dialogData.startTime) {
  106. mui.toast("开始时间不能为空");
  107. return;
  108. }
  109. if (!isMoney(dialogData.unitPrice)) {
  110. mui.toast("单价不能为空");
  111. return;
  112. }
  113. if (!isMoney(dialogData.parkingFee)) {
  114. mui.toast("停车费不能为空");
  115. return;
  116. }
  117. if (!isMoney(dialogData.serviceFee)) {
  118. mui.toast("服务费不能为空");
  119. return;
  120. }
  121. packages[info.dialogIndex] = $.extend(true, {}, info.dialogData);
  122. info.dialogOpen = false;
  123. $("body").removeClass("over-hide");//恢复body滚动
  124. },
  125. addPackageRule: function () {
  126. var that = this;
  127. var info = that.info
  128. var packages = info['package']
  129. info.dialogIndex = packages.length;
  130. info.dialogOpen = true;
  131. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  132. info.dialogData = {
  133. startTime: "",
  134. unitPrice: "",
  135. parkingFee: "",
  136. serviceFee: "",
  137. };
  138. },
  139. }
  140. });
  141. }
  142. PackageComponent.prototype.getPackage = function () {
  143. return this.app.info.package;
  144. };