formModel.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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="550px"
  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 v-slot:number_rules="{ }" >
  16. <el-input class="form-item1" v-model="rule_data.number_first" placeholder="机位号前缀"></el-input>
  17. <el-input class="form-item1" v-model="rule_data.start_number" placeholder="起始编号"></el-input>
  18. <el-input class="form-item1" v-model="rule_data.number_last" placeholder="机位号后缀"></el-input>
  19. <el-input class="form-item1" v-model="rule_data.number_length" placeholder="生成数量"></el-input>
  20. <!-- <el-switch
  21. v-model="zero_fill"
  22. active-text="补零"
  23. inactive-text="不补零">
  24. </el-switch> -->
  25. <el-checkbox class="form-item1" label="中间是否补零" v-model="rule_data.zero_fill"></el-checkbox>
  26. <el-input class="form-item1" v-if="rule_data.zero_fill" v-model="rule_data.zero_length" placeholder="补零长度"></el-input>
  27. </template>
  28. </ele-form-dialog>
  29. </template>
  30. <script>
  31. export default {
  32. props: ["formModelVisible", "title"],
  33. data() {
  34. return {
  35. url: "fan",
  36. formData: {},
  37. rule_data:{
  38. start_number:'',
  39. number_first:'',
  40. number_length:'',
  41. number_last:'',
  42. zero_fill:'',
  43. zero_length:'',
  44. },
  45. deviceTypes:[],
  46. formFieldsData: {
  47. wind_id: "",
  48. number_rules: "",
  49. fan_model:"",
  50. supplier:"",
  51. out_date:"",
  52. address:"",
  53. info: "",
  54. mul_number:'',
  55. },
  56. formConfig: {
  57. formDesc: {
  58. wind_id: {
  59. type: "select",
  60. label: "所属风场",
  61. isOptions: true,
  62. options: [],
  63. required: true,
  64. prop: {
  65. text: 'name',
  66. value: 'id'
  67. }
  68. },
  69. supplier: {
  70. type: "input",
  71. label: "供应商",
  72. required: true,
  73. },
  74. out_date: {
  75. type: "date",
  76. label: "出厂日期",
  77. required: true,
  78. },
  79. address: {
  80. type: "input",
  81. label: "地址",
  82. },
  83. fan_model: {
  84. type: "select",
  85. label: "型号",
  86. required:true,
  87. options: [],
  88. },
  89. number_rules: {
  90. label: "机位号规则",
  91. },
  92. mul_number: {
  93. type: "textarea",
  94. label: "机位号",
  95. attrs: {
  96. placeholder: '请输入机位号,多个机位号用英文逗号(,)相隔'
  97. }
  98. },
  99. info: {
  100. type: "textarea",
  101. label: "备注",
  102. },
  103. },
  104. order: ["wind_id","fan_model","supplier","out_date","address", "number_rules","mul_number","info"]
  105. }
  106. };
  107. },
  108. created() {
  109. this.$http.get("wind").then(response => {
  110. this.formConfig.formDesc.wind_id.options = response.data;
  111. });
  112. // 4-风机
  113. this.$http.get("get_device_mold",{ params: {type:4} }).then(resp => {
  114. this.formConfig.formDesc.fan_model.options = resp.data
  115. });
  116. },
  117. methods: {
  118. handleFormSubmit(data) {
  119. // console.log(this.rule_data)
  120. // console.log(this.formFieldsData)
  121. this.formFieldsData.rule_data=this.rule_data
  122. this.$parent.handleAddSubmit();
  123. },
  124. handleRequest(data) {
  125. return Promise.resolve();
  126. },
  127. handleRequestSuccess() {
  128. this.$message.success("发送成功");
  129. }
  130. },
  131. computed: {
  132. DialogVisible: {
  133. set(val) {
  134. this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
  135. },
  136. get() {
  137. console.log(this.formFieldsData)
  138. return this.formModelVisible; // 表示获取父组件的值
  139. }
  140. }
  141. }
  142. };
  143. </script>
  144. <style lang="scss" scoped>
  145. .form-item1{
  146. width:110px;
  147. margin-right: 5px;
  148. margin-bottom: 5px;
  149. }
  150. </style>