FormConfig.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <!--
  2. * @Author: WangJiaCheng
  3. * @Date: 2021-05-11 17:37:33
  4. * @LastEditors: WangJiaCheng
  5. * @LastEditTime: 2021-07-27 17:21:19
  6. * @Description: 表单配置
  7. -->
  8. <template>
  9. <div class="form-config">
  10. <el-form
  11. ref="form"
  12. :model="formData"
  13. label-width="100px"
  14. >
  15. <el-form-item label="表单模型" prop="formModel">
  16. <el-select v-model="formData.formModel" placeholder="请选择">
  17. <el-option
  18. v-for="item in options"
  19. :key="item.label"
  20. :label="item.label"
  21. :value="item.value"
  22. />
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item label="表单模型预览">
  26. 123
  27. </el-form-item>
  28. <el-form-item label="查询接口" prop="searchApi">
  29. <el-input v-model="formData.searchApi" />
  30. </el-form-item>
  31. <el-form-item label="请求方式" prop="apiMethod">
  32. <el-input v-model="formData.searchApi" />
  33. </el-form-item>
  34. <el-form-item>
  35. <el-button type="primary" @click="next">下一步</el-button>
  36. <el-button type="primary" @click="previewCode">预览代码</el-button>
  37. </el-form-item>
  38. </el-form>
  39. </div>
  40. </template>
  41. <script>
  42. import { mapMutations } from 'vuex'
  43. export default {
  44. name: 'FormConfig',
  45. components: {
  46. },
  47. data() {
  48. return {
  49. formData: {},
  50. options: []
  51. }
  52. },
  53. mounted() {
  54. const formModel = localStorage.getItem('formModel')
  55. if (formModel) {
  56. this.options.push({
  57. value: JSON.parse(formModel),
  58. label: '表单模型1'
  59. })
  60. }
  61. },
  62. methods: {
  63. ...mapMutations('page', ['setFormConfig', 'setActiveTab']),
  64. next() {
  65. this.$refs.form.validate(valid => {
  66. if (valid) {
  67. this.setFormConfig(this.formData)
  68. this.setActiveTab('list')
  69. }
  70. })
  71. },
  72. previewCode() {
  73. this.$emit('preview', { ...this.formData, list: this.tableData }, 'form')
  74. }
  75. }
  76. }
  77. </script>
  78. <style lang="less">
  79. </style>