车辆管理系统-后台管理系统web
liding
3 天以前 e4b773b5936ec1fa3747fd3d35b85799773d5f39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<template>
  <div>
    <el-form ref="selfForm" :model="selfForm" :label-width="labelWidth">
      <el-form-item
        label="排序"
        prop="sort"
        :rules="[
          {
            required: true,
            message: '排序不能为空',
            trigger: ['blur', 'change'],
          },
        ]"
      >
        <el-input-number v-model="selfForm.sort" />
      </el-form-item>
      <el-form-item
        label="状态"
        prop="status"
        :rules="[
          { required: true, message: '正确操作状态', trigger: ['change'] },
        ]"
      >
        <el-switch v-model="selfForm.status" />
      </el-form-item>
    </el-form>
    <parser
      v-if="formConf.fields.length > 0"
      :is-edit="isCreate === 1"
      :form-conf="formConf"
      :form-edit-data="editData"
      :label-width="labelWidth"
      @submit="handlerSubmit"
    />
    <!--      {{ editData }}-->
  </div>
</template>
 
<script>
import parser from "@/components/FormGenerator/components/parser/Parser";
import * as systemGroupDataApi from "@/api/systemGroupData.js";
import * as systemFormConfigApi from "@/api/systemFormConfig.js";
import { Debounce } from "@/utils/validate";
export default {
  // name: "combineEdit"
  components: { parser },
  props: {
    formData: {
      type: Object,
      required: true,
    },
    isCreate: {
      type: Number,
      default: 0, // 0=create 1=edit
    },
    editData: {
      type: Object,
    },
  },
  data() {
    return {
      formConf: { fields: [] },
      selfForm: {
        sort: 0,
        status: 0,
      },
      labelWidth: "100px",
    };
  },
  mounted() {
    this.handlerGetFormConfig();
    this.handlerInitEditData();
  },
  methods: {
    handlerInitEditData() {
      const { sort, status } = this.editData;
      this.selfForm.sort = sort;
      this.selfForm.status = status;
    },
    handlerGetFormConfig() {
      // 获取表单配置后生成table列
      const _pram = { id: this.formData.formId };
      systemFormConfigApi.getFormConfigInfo(_pram).then((data) => {
        this.formConf = JSON.parse(data.content);
        if (this.formConf.fields[0].__config__.labelWidth) {
          this.labelWidth = `${this.formConf.fields[0].__config__.labelWidth}px`;
        }
 
        console.log("xxxxx", this.labelWidth);
      });
    },
    handlerSubmit: Debounce(function (formValue) {
      this.isCreate === 0
        ? this.handlerSave(formValue)
        : this.handlerEdit(formValue);
    }),
    handlerSave(formValue) {
      const _pram = this.buildFormPram(formValue);
      systemGroupDataApi.groupDataSave(_pram).then((data) => {
        this.$message.success("添加数据成功");
        this.$emit("hideDialog");
      });
    },
    handlerEdit(formValue) {
      const _pram = this.buildFormPram(formValue);
      systemGroupDataApi.groupDataEdit(_pram, this.editData.id).then((data) => {
        this.$message.success("编辑数据成功");
        this.$emit("hideDialog");
      });
    },
    buildFormPram(formValue) {
      const _pram = {
        gid: this.formData.id,
        form: {
          fields: [],
          id: this.formData.formId,
          sort: this.selfForm.sort,
          status: this.selfForm.status,
        },
      };
      const _fields = [];
      Object.keys(formValue).forEach((key) => {
        _fields.push({
          name: key,
          title: key,
          value: formValue[key],
        });
      });
      _pram.form.fields = _fields;
      return _pram;
    },
  },
};
</script>
 
<style scoped></style>