EditFillPane.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <div class="edit-fill-pane ">
  3. <el-form
  4. ref="modalFormComp"
  5. :model="modalForm"
  6. :rules="rules"
  7. :key="modalForm.id"
  8. label-width="120px"
  9. >
  10. <el-form-item prop="paneCount" label="方格数量:">
  11. <el-input-number
  12. style="width:125px;"
  13. v-model.number="modalForm.paneCount"
  14. :min="1"
  15. :max="100"
  16. :step="1"
  17. step-strictly
  18. :controls="false"
  19. ></el-input-number>
  20. </el-form-item>
  21. <el-form-item prop="paneGap" label="方格间距:">
  22. <el-input-number
  23. style="width:125px;"
  24. v-model="modalForm.paneGap"
  25. :min="1"
  26. :max="100"
  27. :step="1"
  28. step-strictly
  29. :controls="false"
  30. ></el-input-number>
  31. </el-form-item>
  32. <el-form-item prop="paneWidth" label="方格宽度:">
  33. <el-input-number
  34. style="width:125px;"
  35. v-model="modalForm.paneWidth"
  36. :min="1"
  37. :max="100"
  38. :step="1"
  39. step-strictly
  40. :controls="false"
  41. ></el-input-number>
  42. </el-form-item>
  43. <el-form-item prop="paneHeight" label="方格高度:">
  44. <el-input-number
  45. style="width:125px;"
  46. v-model="modalForm.paneHeight"
  47. :min="1"
  48. :max="100"
  49. :step="1"
  50. step-strictly
  51. :controls="false"
  52. ></el-input-number>
  53. </el-form-item>
  54. <el-form-item label="方格边框形状:">
  55. <line-style-select v-model="modalForm.borderStyle"></line-style-select>
  56. </el-form-item>
  57. </el-form>
  58. </div>
  59. </template>
  60. <script>
  61. import { deepCopy } from "../../plugins/utils";
  62. import LineStyleSelect from "../../components/common/LineStyleSelect";
  63. const initModalForm = {
  64. id: "",
  65. paneGap: 6,
  66. paneCount: 9,
  67. paneWidth: 30,
  68. paneHeight: 30,
  69. borderStyle: "solid"
  70. };
  71. export default {
  72. name: "edit-fill-pane",
  73. components: { LineStyleSelect },
  74. props: {
  75. instance: {
  76. type: Object,
  77. default() {
  78. return {};
  79. }
  80. }
  81. },
  82. data() {
  83. return {
  84. modalForm: { ...initModalForm },
  85. rules: {
  86. paneGap: [
  87. {
  88. required: true,
  89. type: "number",
  90. message: "请输入方格间距",
  91. trigger: "change"
  92. }
  93. ],
  94. paneCount: [
  95. {
  96. required: true,
  97. type: "number",
  98. message: "请输入方格数量",
  99. trigger: "change"
  100. }
  101. ],
  102. paneWidth: [
  103. {
  104. required: true,
  105. type: "number",
  106. message: "请输入方格宽度",
  107. trigger: "change"
  108. }
  109. ],
  110. paneHeight: [
  111. {
  112. required: true,
  113. type: "number",
  114. message: "请输入方格高度",
  115. trigger: "change"
  116. }
  117. ]
  118. }
  119. };
  120. },
  121. mounted() {
  122. this.initData(this.instance);
  123. },
  124. methods: {
  125. initData(val) {
  126. this.modalForm = deepCopy(val);
  127. },
  128. async submit() {
  129. const valid = await this.$refs.modalFormComp.validate().catch(() => {});
  130. if (!valid) return;
  131. this.$emit("modified", this.modalForm);
  132. }
  133. }
  134. };
  135. </script>