device-param-100127.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. function WaterLevelsComponent(option) {
  2. var _el = option.el;
  3. var _packages = option.packages;
  4. var app = this.app = new Vue({
  5. el: _el,
  6. template: `
  7. <div >
  8. <div class="mui-input-group">
  9. <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
  10. <span>刻度{{15-index}}:刻度值为 {{obj}}HZ</span>
  11. <span class="mui-pull-right">
  12. <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em></span>
  13. </div>
  14. </div>
  15. <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
  16. <div class="edit-content">
  17. <div class="edit-box ">
  18. <div class="mui-input-row ">
  19. <label>水位刻度值</label>
  20. <div class="mui-pull-right edit-row">
  21. <input type="number" min=0 v-model="info.dialogData.value"/>
  22. <span class="font-b-12">HZ</span>
  23. </div>
  24. </div>
  25. </div>
  26. <div class="mui-popup-buttons ">
  27. <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
  28. <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. `
  34. ,
  35. data: {
  36. info: {
  37. dialogIndex: 0,
  38. dialogOpen: false,
  39. dialogData: {},
  40. packages: []
  41. },
  42. },
  43. mounted: function () {
  44. var that = this
  45. that.initPackages();
  46. },
  47. methods: {
  48. initPackages: function () {
  49. this.info.packages = _packages;
  50. },
  51. editPackageRule: function (value, index) {
  52. this.info.dialogIndex = index;
  53. this.info.dialogOpen = true;
  54. this.info.dialogData = {value: value};
  55. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  56. },
  57. closeRulePanel: function () {
  58. this.info.dialogOpen = false;
  59. $("body").removeClass("over-hide");//恢复body滚动
  60. },
  61. savePackageRule: function () {
  62. var dialogData = this.info.dialogData;
  63. if (isNaN(dialogData.value) || !dialogData.value) {
  64. mui.toast("请填写正确的水位刻度");
  65. return;
  66. }
  67. this.info.packages[this.info.dialogIndex] = parseInt(dialogData.value)
  68. this.info.dialogOpen = false;
  69. $("body").removeClass("over-hide");//恢复body滚动
  70. },
  71. }
  72. });
  73. }
  74. WaterLevelsComponent.prototype.getWaterLevels = function () {
  75. return this.app.info.packages;
  76. };
  77. function PackageWorkConfComponent(option) {
  78. var _el = option.el;
  79. var _packages = option.packages;
  80. var app = this.app = new Vue({
  81. el: _el,
  82. template: `
  83. <div >
  84. <div class="mui-input-group">
  85. <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
  86. <span>{{obj.name}},投币:{{obj.coins}},水位:{{obj.waterlevel}},时间:{{obj.needTime}}分钟</span>
  87. <span class="mui-pull-right">
  88. <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
  89. </span>
  90. </div>
  91. </div>
  92. <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
  93. <div class="edit-content">
  94. <div class="edit-box ">
  95. <div class="mui-input-row ">
  96. <label>套餐名称</label>
  97. <div class="mui-pull-right edit-row">
  98. <input type="text" disabled v-model="info.dialogData.name"/>
  99. </div>
  100. </div>
  101. <div class="mui-input-row ">
  102. <label>投币数目</label>
  103. <div class="mui-pull-right edit-row">
  104. <input type="number" min=1 max=99999 v-model="info.dialogData.coins"/>
  105. </div>
  106. </div>
  107. <div class="mui-input-row ">
  108. <label>工作水位刻度</label>
  109. <div class="mui-pull-right edit-row">
  110. <input type="number" min=1 max=15 v-model="info.dialogData.waterlevel"/>
  111. </div>
  112. </div>
  113. <div class="mui-input-row ">
  114. <label>工作时间</label>
  115. <div class="mui-pull-right edit-row">
  116. <input type="number" min=1 max=99999 v-model="info.dialogData.needTime"/>
  117. <span class="font-b-12">分钟</span>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="mui-popup-buttons ">
  122. <span class="mui-popup-button" v-on:click="closeRulePanel($event)">取消</span>
  123. <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. `
  129. ,
  130. data: {
  131. info: {
  132. dialogIndex: 0,
  133. dialogOpen: false,
  134. dialogData: {},
  135. packages: []
  136. },
  137. },
  138. mounted: function () {
  139. var that = this
  140. that.initPackages();
  141. },
  142. methods: {
  143. initPackages: function () {
  144. this.info.packages = _packages;
  145. },
  146. editPackageRule: function (obj, index) {
  147. this.info.dialogIndex = index;
  148. this.info.dialogOpen = true;
  149. this.info.dialogData = $.extend(true, {}, obj);
  150. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  151. },
  152. closeRulePanel: function ($event) {
  153. this.info.dialogOpen = false;
  154. $("body").removeClass("over-hide");//恢复body滚动
  155. },
  156. savePackageRule: function () {
  157. var dialogData = this.info.dialogData;
  158. if (isNaN(dialogData.coins) || !dialogData.coins) {
  159. mui.toast("请填写正确的投币数目");
  160. return;
  161. }
  162. if (isNaN(dialogData.waterlevel) || !dialogData.waterlevel) {
  163. mui.toast("请填写正确的工作水位");
  164. return;
  165. }
  166. if (dialogData.waterlevel < 1 || dialogData.waterlevel > 15) {
  167. mui.toast("工作水位必须是1-15之间");
  168. return;
  169. }
  170. if (isNaN(dialogData.needTime) || !dialogData.needTime) {
  171. mui.toast("请填写正确的工作时间");
  172. return;
  173. }
  174. console.log(dialogData)
  175. this.info.packages[this.info.dialogIndex] = {
  176. coins: parseInt(dialogData.coins),
  177. waterlevel: parseInt(dialogData.waterlevel),
  178. needTime: parseInt(dialogData.needTime),
  179. }
  180. this.info.dialogOpen = false;
  181. $("body").removeClass("over-hide");//恢复body滚动
  182. },
  183. }
  184. });
  185. }
  186. PackageWorkConfComponent.prototype.getPackageWorkConf = function () {
  187. return this.app.info.packages;
  188. };