device-param-100292.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. function PortConfigComponent(option) {
  2. var _el = option.el;
  3. var _packages = option.packages;
  4. if ($.isEmptyObject(_packages)) {
  5. _packages = {};
  6. for (var index = 1; index <= 12; index++) {
  7. _packages['port' + index] = {
  8. max_max_power: "",
  9. max_current: "",
  10. }
  11. }
  12. }
  13. this.app = new Vue({
  14. el: _el,
  15. template: `
  16. <div class="power-package-component">
  17. <div class="mui-input-group">
  18. <div class="mui-table-view-cell" v-for="(obj,index) in info.packages">
  19. <span>端口{{index}},</span>
  20. <span>最大功率:{{obj.max_max_power}}瓦,</span>
  21. <span>最大电流:{{obj.max_current}}安</span>
  22. <span class="mui-pull-right">
  23. <em v-on:click="editPackageRule(obj,index)" class="padding-t-b-10"><i class="iconfont icon-edit c-primary"></i>编辑</em>
  24. </span>
  25. </div>
  26. </div>
  27. <div class="edit-back packageDialog" v-bind:class="{ hidden: !info.dialogOpen }">
  28. <div class="edit-content">
  29. <div class="edit-box ">
  30. <div class="mui-input-row">
  31. <label>最大充电功率</label>
  32. <div class="mui-pull-right edit-row">
  33. <input type="number" inputmode="decimal" step="0.01" v-model="info.dialogData.max_max_power"/>
  34. <span>瓦</span>
  35. </div>
  36. </div>
  37. <div class="mui-input-row">
  38. <label>最大充电电流</label>
  39. <div class="mui-pull-right edit-row">
  40. <input type="number" inputmode="decimal" step="0.01" v-model="info.dialogData.max_current"/>
  41. <span>安</span>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="mui-popup-buttons ">
  46. <span class="mui-popup-button" v-on:click="closeRulePanel()">取消</span>
  47. <span class="mui-popup-button mui-popup-button-bold" v-on:click="savePackageRule()">确认</span>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. `
  53. ,
  54. data: {
  55. info: {
  56. dialogIndex: 0,
  57. dialogOpen: false,
  58. dialogData: {},
  59. packages: {}
  60. },
  61. },
  62. mounted: function () {
  63. var that = this
  64. that.initPackages();
  65. },
  66. computed: {},
  67. filters: {},
  68. methods: {
  69. initPackages: function () {
  70. this.info.packages = _packages;
  71. },
  72. editPackageRule: function (obj, index) {
  73. this.info.dialogIndex = index;
  74. this.info.dialogOpen = true;
  75. this.info.dialogData = $.extend(true, {}, obj);
  76. $("body").addClass("over-hide");//避免滚动穿透,直接禁止body滚动
  77. },
  78. closeRulePanel: function () {
  79. this.info.dialogOpen = false;
  80. $("body").removeClass("over-hide");
  81. },
  82. savePackageRule: function () {
  83. var dialogData = this.info.dialogData;
  84. if ($.trim(dialogData.max_max_power) == '') {
  85. mui.toast("最大充电功率不能为空");
  86. return;
  87. }
  88. if ($.trim(dialogData.max_current) === '') {
  89. mui.toast("最大充电电流不能为空");
  90. return;
  91. }
  92. dialogData.max_max_power = parseFloat(parseFloat(dialogData.max_max_power).toFixed(2))
  93. dialogData.max_current = parseFloat(parseFloat(dialogData.max_current).toFixed(2))
  94. this.info.packages[this.info.dialogIndex] = $.extend(true, {}, this.info.dialogData);
  95. this.info.dialogOpen = false;
  96. $("body").removeClass("over-hide");
  97. },
  98. }
  99. });
  100. }
  101. PortConfigComponent.prototype.getPackages = function () {
  102. return this.app.info.packages;
  103. };