formModel.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <template>
  2. <ele-form-dialog
  3. v-bind="formConfig"
  4. v-model="formFieldsData"
  5. v-dialogDrag
  6. :title="title"
  7. :request-fn="handleFormSubmit"
  8. :visible.sync="DialogVisible"
  9. width="450px"
  10. custom-class="abow_dialog"
  11. label-width="100px"
  12. label-position="left"
  13. :dialogAttrs="{ 'close-on-click-modal': false,'top':'8vh'}"
  14. />
  15. </template>
  16. <script>
  17. export default {
  18. props: ["formModelVisible", "title"],
  19. data() {
  20. var validateMaxPressure = (rule, value, callback) => {
  21. if ( (value !== '') && (this.formFieldsData.min_pressure !=='')) {
  22. var min_pressure = this.formFieldsData.min_pressure - 0;
  23. var max_pressure = value - 0;
  24. if (min_pressure > max_pressure) {
  25. callback(new Error('不能小于最小压力'))
  26. } else {
  27. callback()
  28. }
  29. } else {
  30. callback()
  31. }
  32. };
  33. var validateMinPressure = (rule, value, callback) => {
  34. if ( (value !== '') && (this.formFieldsData.max_pressure !=='')) {
  35. var max_pressure = this.formFieldsData.max_pressure - 0;
  36. var min_pressure = value - 0;
  37. if (min_pressure > max_pressure) {
  38. callback(new Error('不能大于最大压力'))
  39. } else {
  40. callback()
  41. }
  42. } else {
  43. callback()
  44. }
  45. };
  46. return {
  47. formData: {},
  48. deviceTypes:[],
  49. formFieldsData: {
  50. department_id: "",
  51. number: "",
  52. name: "",
  53. model: "",
  54. brand:"",
  55. supplier:"",
  56. max_pressure:"",
  57. min_pressure:"",
  58. out_date:"",
  59. remark: ""
  60. },
  61. url: "hydraulic",
  62. formConfig: {
  63. formDesc: {
  64. department_id: {
  65. type: "cascader",
  66. label: "所属部门",
  67. isOptions: true,
  68. options: [],
  69. required: true,
  70. attrs: {
  71. props: {
  72. label: "department_name",
  73. value: "id",
  74. emitPath: false,
  75. checkStrictly: true
  76. }
  77. }
  78. },
  79. number: {
  80. type: "input",
  81. label: "编号",
  82. required:true,
  83. },
  84. name: {
  85. type: "input",
  86. label: "名称",
  87. required:true
  88. },
  89. model: {
  90. type: "select",
  91. label: "型号",
  92. required:true,
  93. options: [],
  94. },
  95. brand: {
  96. type: "input",
  97. label: "品牌"
  98. },
  99. supplier: {
  100. type: "input",
  101. label: "供应商"
  102. },
  103. max_pressure: {
  104. type: "input",
  105. label: "最大压力"
  106. },
  107. min_pressure: {
  108. type: "input",
  109. label: "最小压力"
  110. },
  111. out_date: {
  112. type: "date",
  113. label: "出厂日期"
  114. },
  115. remark: {
  116. type: "textarea",
  117. label: "显示信息"
  118. }
  119. },
  120. rules: {
  121. max_pressure: { validator: validateMaxPressure, trigger: 'blur' } ,
  122. min_pressure: { validator: validateMinPressure, trigger: 'blur' } ,
  123. },
  124. order: ["department_id","number", "name", "model","brand","supplier","min_pressure","max_pressure","out_date","remark"]
  125. }
  126. };
  127. },
  128. created() {
  129. this.$http.get("departments").then(response => {
  130. this.formConfig.formDesc.department_id.options = response.data;
  131. });
  132. // 0-液压泵
  133. this.$http.get("get_device_mold",{ params: {type:0} }).then(resp => {
  134. this.formConfig.formDesc.model.options = resp.data
  135. });
  136. },
  137. methods: {
  138. handleFormSubmit(data) {
  139. this.$parent.handleSubmit();
  140. },
  141. handleRequest(data) {
  142. return Promise.resolve();
  143. },
  144. handleRequestSuccess() {
  145. this.$message.success("发送成功");
  146. }
  147. },
  148. computed: {
  149. DialogVisible: {
  150. set(val) {
  151. this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
  152. },
  153. get() {
  154. return this.formModelVisible; // 表示获取父组件的值
  155. }
  156. }
  157. }
  158. };
  159. </script>