|
23 | 23 | </template>
|
24 | 24 | </CrudTable>
|
25 | 25 | <el-dialog v-if="visible" ref="dialog" fullscreen class="dialog" :visible.sync="visible" append-to-body>
|
26 |
| - <FormDesigner ref="formDesigner" :getFormKey="getFormKey" :allTables="allTables"> |
| 26 | + <FormDesigner ref="formDesigner" :dictType="dictType" :getFormKey="getFormKey" :allTables="allTables"> |
27 | 27 | <template #custom-btn>
|
28 | 28 | <el-button type="normal" size="small" @click="btnSaveOnClick" :loading="btnSaveIsLoading">保存</el-button>
|
29 | 29 | </template>
|
@@ -54,90 +54,98 @@ export default class FormDesignerModule extends Vue {
|
54 | 54 |
|
55 | 55 | formValues = {};
|
56 | 56 |
|
57 |
| - created() { |
58 |
| - getTables().then((res) => { |
59 |
| - this.allTables = res.data.map(item => ({ |
60 |
| - label: item.TABLE_NAME, |
61 |
| - value: item.TABLE_NAME, |
62 |
| - })); |
63 |
| - }); |
64 |
| - } |
| 57 | +dictType = []; |
65 | 58 |
|
66 |
| - getFormKey(tablename) { |
67 |
| - return getFormKey(tablename); |
68 |
| - } |
| 59 | +created() { |
| 60 | + crud(DML.SELECT, 'ad_codelist_type').then((res) => { |
| 61 | + this.dictType = res.data.list.map(item => ({ |
| 62 | + label: item.typeName, |
| 63 | + value: item.id, |
| 64 | + })); |
| 65 | + }); |
| 66 | + getTables().then((res) => { |
| 67 | + this.allTables = res.data.map(item => ({ |
| 68 | + label: item.TABLE_NAME, |
| 69 | + value: item.TABLE_NAME, |
| 70 | + })); |
| 71 | + }); |
| 72 | +} |
69 | 73 |
|
70 |
| - // 添加按钮点击事件 |
71 |
| - btnAddOnClick() { |
72 |
| - this.formValues = {}; |
73 |
| - this.visible = true; |
74 |
| - } |
| 74 | +getFormKey(tablename) { |
| 75 | + return getFormKey(tablename); |
| 76 | +} |
75 | 77 |
|
76 |
| - // 编辑按钮点击事件 |
77 |
| - btnEditOnClick(row) { |
78 |
| - this.formValues = { ...row }; |
79 |
| - this.visible = true; |
80 |
| - this.$nextTick(() => { |
81 |
| - this.$refs.formDesigner.setJSON(JSON.parse(row.formJson)); |
| 78 | +// 添加按钮点击事件 |
| 79 | +btnAddOnClick() { |
| 80 | + this.formValues = {}; |
| 81 | + this.visible = true; |
| 82 | +} |
| 83 | +
|
| 84 | +// 编辑按钮点击事件 |
| 85 | +btnEditOnClick(row) { |
| 86 | + this.formValues = { ...row }; |
| 87 | + this.visible = true; |
| 88 | + this.$nextTick(() => { |
| 89 | + this.$refs.formDesigner.setJSON(JSON.parse(row.formJson)); |
| 90 | + }); |
| 91 | +} |
| 92 | +
|
| 93 | +// 复制表单设计json |
| 94 | +btnCopyOnClick(row) { |
| 95 | + const r = { ...row }; |
| 96 | + r.tableName += '_复制'; |
| 97 | + delete r.id; |
| 98 | + crud(DML.INSERT, 'form', r).then((res) => { |
| 99 | + if (res.code !== 200) { |
| 100 | + this.$message({ |
| 101 | + type: 'error', |
| 102 | + message: `保存失败,原因:${res.message}`, |
| 103 | + }); |
| 104 | + return; |
| 105 | + } |
| 106 | + this.$message({ |
| 107 | + type: 'success', |
| 108 | + message: '复制成功', |
82 | 109 | });
|
83 |
| - } |
| 110 | + this.$refs.table.tableReload(); |
| 111 | + }); |
| 112 | +} |
84 | 113 |
|
85 |
| - // 复制表单设计json |
86 |
| - btnCopyOnClick(row) { |
87 |
| - const r = { ...row }; |
88 |
| - r.tableName += '_复制'; |
89 |
| - delete r.id; |
90 |
| - crud(DML.INSERT, 'form', r).then((res) => { |
91 |
| - if (res.code !== 200) { |
92 |
| - this.$message({ |
93 |
| - type: 'error', |
94 |
| - message: `保存失败,原因:${res.message}`, |
95 |
| - }); |
96 |
| - return; |
97 |
| - } |
| 114 | +// 保存设计 |
| 115 | +btnSaveOnClick() { |
| 116 | + const formValues = this.$refs.formDesigner.getData(); |
| 117 | + this.btnSaveIsLoading = true; |
| 118 | + // 调用此方法验证表单数据和获取表单数据 |
| 119 | + let type; |
| 120 | + let msg; |
| 121 | + // 根据对话框状态判断保存或编辑 |
| 122 | + if (this.dialogStatus === STATUS.CREATE) { |
| 123 | + type = DML.INSERT; |
| 124 | + msg = '添加成功'; |
| 125 | + } else { |
| 126 | + type = DML.UPDATE; |
| 127 | + msg = '编辑成功'; |
| 128 | + } |
| 129 | + // 如果有代理的保存方法 |
| 130 | + crud(type, 'form', { |
| 131 | + ...this.formValues, |
| 132 | + formJson: JSON.stringify(formValues), |
| 133 | + tableName: formValues.config.name, |
| 134 | + position: formValues.config.position, |
| 135 | + }) |
| 136 | + .then(() => { |
| 137 | + this.btnSaveIsLoading = false; |
98 | 138 | this.$message({
|
99 | 139 | type: 'success',
|
100 |
| - message: '复制成功', |
| 140 | + message: msg, |
101 | 141 | });
|
| 142 | + this.visible = false; |
102 | 143 | this.$refs.table.tableReload();
|
103 |
| - }); |
104 |
| - } |
105 |
| -
|
106 |
| - // 保存设计 |
107 |
| - btnSaveOnClick() { |
108 |
| - const formValues = this.$refs.formDesigner.getData(); |
109 |
| - this.btnSaveIsLoading = true; |
110 |
| - // 调用此方法验证表单数据和获取表单数据 |
111 |
| - let type; |
112 |
| - let msg; |
113 |
| - // 根据对话框状态判断保存或编辑 |
114 |
| - if (this.dialogStatus === STATUS.CREATE) { |
115 |
| - type = DML.INSERT; |
116 |
| - msg = '添加成功'; |
117 |
| - } else { |
118 |
| - type = DML.UPDATE; |
119 |
| - msg = '编辑成功'; |
120 |
| - } |
121 |
| - // 如果有代理的保存方法 |
122 |
| - crud(type, 'form', { |
123 |
| - ...this.formValues, |
124 |
| - formJson: JSON.stringify(formValues), |
125 |
| - tableName: formValues.config.name, |
126 |
| - position: formValues.config.position, |
127 | 144 | })
|
128 |
| - .then(() => { |
129 |
| - this.btnSaveIsLoading = false; |
130 |
| - this.$message({ |
131 |
| - type: 'success', |
132 |
| - message: msg, |
133 |
| - }); |
134 |
| - this.visible = false; |
135 |
| - this.$refs.table.tableReload(); |
136 |
| - }) |
137 |
| - .catch(() => { |
138 |
| - this.btnSaveIsLoading = false; |
139 |
| - }); |
140 |
| - } |
| 145 | + .catch(() => { |
| 146 | + this.btnSaveIsLoading = false; |
| 147 | + }); |
| 148 | +} |
141 | 149 | }
|
142 | 150 | </script>
|
143 | 151 | <style lang="scss" scoped>
|
|
0 commit comments