Commit 86160f40defa30e919b9ac164fd9baaf773e3d2a

Authored by puhui999
1 parent 3d2022e3

代码生成:重构 vue2 代码生成模版,使用 async await 优化代码层次

yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_erp.vue.vm
@@ -145,19 +145,17 @@ @@ -145,19 +145,17 @@
145 }, 145 },
146 methods: { 146 methods: {
147 /** 打开弹窗 */ 147 /** 打开弹窗 */
148 - open(id, ${subJoinColumn.javaField}) { 148 + async open(id, ${subJoinColumn.javaField}) {
149 this.dialogVisible = true; 149 this.dialogVisible = true;
150 this.reset(); 150 this.reset();
151 - const that = this;  
152 this.formData.${subJoinColumn.javaField} = ${subJoinColumn.javaField}; 151 this.formData.${subJoinColumn.javaField} = ${subJoinColumn.javaField};
153 // 修改时,设置数据 152 // 修改时,设置数据
154 if (id) { 153 if (id) {
155 this.formLoading = true; 154 this.formLoading = true;
156 try { 155 try {
157 - ${simpleClassName}Api.get${subSimpleClassName}(id).then(res=>{  
158 - that.formData = res.data;  
159 - that.dialogTitle = "修改${subTable.classComment}";  
160 - }) 156 + const res = await ${simpleClassName}Api.get${subSimpleClassName}(id);
  157 + this.formData = res.data;
  158 + this.dialogTitle = "修改${subTable.classComment}";
161 } finally { 159 } finally {
162 this.formLoading = false; 160 this.formLoading = false;
163 } 161 }
@@ -165,32 +163,26 @@ @@ -165,32 +163,26 @@
165 this.dialogTitle = "新增${subTable.classComment}"; 163 this.dialogTitle = "新增${subTable.classComment}";
166 }, 164 },
167 /** 提交按钮 */ 165 /** 提交按钮 */
168 - submitForm() { 166 + async submitForm() {
  167 + await this.#[[$]]#refs["formRef"].validate();
169 this.formLoading = true; 168 this.formLoading = true;
170 try { 169 try {
171 - let data = this.formData;  
172 - this.#[[$]]#refs["formRef"].validate(valid => {  
173 - if (!valid) {  
174 - return;  
175 - } 170 + const data = this.formData;
176 // 修改的提交 171 // 修改的提交
177 if (data.${primaryColumn.javaField}) { 172 if (data.${primaryColumn.javaField}) {
178 - ${simpleClassName}Api.update${subSimpleClassName}(data).then(response => {  
179 - this.#[[$modal]]#.msgSuccess("修改成功");  
180 - this.dialogVisible = false;  
181 - this.#[[$]]#emit('success');  
182 - }); 173 + await ${simpleClassName}Api.update${subSimpleClassName}(data);
  174 + this.#[[$modal]]#.msgSuccess("修改成功");
  175 + this.dialogVisible = false;
  176 + this.#[[$]]#emit('success');
183 return; 177 return;
184 } 178 }
185 // 添加的提交 179 // 添加的提交
186 - ${simpleClassName}Api.create${subSimpleClassName}(data).then(response => { 180 + await ${simpleClassName}Api.create${subSimpleClassName}(data);
187 this.#[[$modal]]#.msgSuccess("新增成功"); 181 this.#[[$modal]]#.msgSuccess("新增成功");
188 this.dialogVisible = false; 182 this.dialogVisible = false;
189 this.#[[$]]#emit('success'); 183 this.#[[$]]#emit('success');
190 - });  
191 - });  
192 }finally { 184 }finally {
193 - this.formLoading = false 185 + this.formLoading = false;
194 } 186 }
195 }, 187 },
196 /** 表单重置 */ 188 /** 表单重置 */
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/form_sub_normal.vue.vm
@@ -289,13 +289,14 @@ @@ -289,13 +289,14 @@
289 } 289 }
290 try { 290 try {
291 this.formLoading = true; 291 this.formLoading = true;
  292 + // 这里还是需要获取一下 this 的不然取不到 formData
292 const that = this; 293 const that = this;
293 #if ( $subTable.subJoinMany ) 294 #if ( $subTable.subJoinMany )
294 - ${simpleClassName}Api.get${subSimpleClassName}ListBy${SubJoinColumnName}(val).then(res=>{ 295 + ${simpleClassName}Api.get${subSimpleClassName}ListBy${SubJoinColumnName}(val).then(function (res){
295 that.formData = res.data; 296 that.formData = res.data;
296 }) 297 })
297 #else 298 #else
298 - ${simpleClassName}Api.get${subSimpleClassName}By${SubJoinColumnName}(val).then(res=>{ 299 + ${simpleClassName}Api.get${subSimpleClassName}By${SubJoinColumnName}(val).then(function (res){
299 const data = res.data; 300 const data = res.data;
300 if (!data) { 301 if (!data) {
301 return 302 return
@@ -325,21 +326,21 @@ @@ -325,21 +326,21 @@
325 #end 326 #end
326 #end 327 #end
327 } 328 }
328 - row.${subJoinColumn.javaField} = this.${subJoinColumn.javaField}  
329 - this.formData.push(row) 329 + row.${subJoinColumn.javaField} = this.${subJoinColumn.javaField};
  330 + this.formData.push(row);
330 }, 331 },
331 /** 删除按钮操作 */ 332 /** 删除按钮操作 */
332 handleDelete(index) { 333 handleDelete(index) {
333 - this.formData.splice(index, 1) 334 + this.formData.splice(index, 1);
334 }, 335 },
335 #end 336 #end
336 /** 表单校验 */ 337 /** 表单校验 */
337 validate(){ 338 validate(){
338 - return this.#[[$]]#refs["formRef"].validate() 339 + return this.#[[$]]#refs["formRef"].validate();
339 }, 340 },
340 /** 表单值 */ 341 /** 表单值 */
341 getData(){ 342 getData(){
342 - return this.formData 343 + return this.formData;
343 } 344 }
344 } 345 }
345 }; 346 };
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/components/list_sub_erp.vue.vm
@@ -111,28 +111,24 @@ @@ -111,28 +111,24 @@
111 }, 111 },
112 methods: { 112 methods: {
113 /** 查询列表 */ 113 /** 查询列表 */
114 - getList() { 114 + async getList() {
115 try { 115 try {
116 this.loading = true; 116 this.loading = true;
117 - const that = this;  
118 #if ($table.templateType == 11) 117 #if ($table.templateType == 11)
119 - ${simpleClassName}Api.get${subSimpleClassName}Page(this.queryParams).then(response => {  
120 - that.list = response.data.list;  
121 - that.total = response.data.total;  
122 - }); 118 + const res = await ${simpleClassName}Api.get${subSimpleClassName}Page(this.queryParams);
  119 + this.list = res.data.list;
  120 + this.total = res.data.total;
123 #else 121 #else
124 #if ( $subTable.subJoinMany ) 122 #if ( $subTable.subJoinMany )
125 - ${simpleClassName}Api.get${subSimpleClassName}ListBy${SubJoinColumnName}(this.${subJoinColumn.javaField}).then(response=>{  
126 - that.list = response.data;  
127 - }) 123 + const res = await ${simpleClassName}Api.get${subSimpleClassName}ListBy${SubJoinColumnName}(this.${subJoinColumn.javaField});
  124 + this.list = res.data;
128 #else 125 #else
129 - ${simpleClassName}Api.get${subSimpleClassName}By${SubJoinColumnName}(this.${subJoinColumn.javaField}).then(response=>{  
130 - const data = response.data;  
131 - if (!data) {  
132 - return  
133 - }  
134 - that.list.push(data)  
135 - }) 126 + const res = await ${simpleClassName}Api.get${subSimpleClassName}By${SubJoinColumnName}(this.${subJoinColumn.javaField});
  127 + const data = res.data;
  128 + if (!data) {
  129 + return;
  130 + }
  131 + this.list.push(data);
136 #end 132 #end
137 #end 133 #end
138 } finally { 134 } finally {
@@ -148,22 +144,19 @@ @@ -148,22 +144,19 @@
148 /** 添加/修改操作 */ 144 /** 添加/修改操作 */
149 openForm(id) { 145 openForm(id) {
150 if (!this.${subJoinColumn.javaField}) { 146 if (!this.${subJoinColumn.javaField}) {
151 - that.#[[$modal]]#.msgError('请选择一个${table.classComment}'); 147 + this.#[[$modal]]#.msgError('请选择一个${table.classComment}');
152 return; 148 return;
153 } 149 }
154 this.#[[$]]#refs["formRef"].open(id, this.${subJoinColumn.javaField}); 150 this.#[[$]]#refs["formRef"].open(id, this.${subJoinColumn.javaField});
155 }, 151 },
156 /** 删除按钮操作 */ 152 /** 删除按钮操作 */
157 - handleDelete(row) {  
158 - const that = this; 153 + async handleDelete(row) {
  154 + const ${primaryColumn.javaField} = row.${primaryColumn.javaField};
  155 + await this.#[[$modal]]#.confirm('是否确认删除${table.classComment}编号为"' + ${primaryColumn.javaField} + '"的数据项?');
159 try { 156 try {
160 - const ${primaryColumn.javaField} = row.${primaryColumn.javaField};  
161 - this.#[[$modal]]#.confirm('是否确认删除${table.classComment}编号为"' + ${primaryColumn.javaField} + '"的数据项?').then(()=>{  
162 - return ${simpleClassName}Api.delete${subSimpleClassName}(${primaryColumn.javaField});  
163 - }).then(() => {  
164 - that.getList();  
165 - that.#[[$modal]]#.msgSuccess("删除成功");  
166 - }).catch(() => {}); 157 + await ${simpleClassName}Api.delete${subSimpleClassName}(${primaryColumn.javaField});
  158 + await this.getList();
  159 + this.#[[$modal]]#.msgSuccess("删除成功");
167 } catch {} 160 } catch {}
168 }, 161 },
169 #end 162 #end
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/form.vue.vm
@@ -195,18 +195,16 @@ @@ -195,18 +195,16 @@
195 }, 195 },
196 methods: { 196 methods: {
197 /** 打开弹窗 */ 197 /** 打开弹窗 */
198 - open(id) { 198 + async open(id) {
199 this.dialogVisible = true; 199 this.dialogVisible = true;
200 this.reset(); 200 this.reset();
201 - const that = this;  
202 // 修改时,设置数据 201 // 修改时,设置数据
203 if (id) { 202 if (id) {
204 this.formLoading = true; 203 this.formLoading = true;
205 try { 204 try {
206 - ${simpleClassName}Api.get${simpleClassName}(id).then(res=>{  
207 - that.formData = res.data;  
208 - that.title = "修改${table.classComment}";  
209 - }) 205 + const res = await ${simpleClassName}Api.get${simpleClassName}(id);
  206 + this.formData = res.data;
  207 + this.title = "修改${table.classComment}";
210 } finally { 208 } finally {
211 this.formLoading = false; 209 this.formLoading = false;
212 } 210 }
@@ -218,111 +216,66 @@ @@ -218,111 +216,66 @@
218 #end 216 #end
219 }, 217 },
220 /** 提交按钮 */ 218 /** 提交按钮 */
221 - submitForm() { 219 + async submitForm() {
  220 + // 校验主表
  221 + await this.$refs["formRef"].validate();
  222 + ## 特殊:主子表专属逻辑
  223 + #if ( $table.templateType == 10 || $table.templateType == 12 )
  224 + #if ( $subTables && $subTables.size() > 0 )
  225 + // 校验子表
  226 + #foreach ($subTable in $subTables)
  227 + #set ($index = $foreach.count - 1)
  228 + #set ($subClassNameVar = $subClassNameVars.get($index))
  229 + try {
  230 + ## 代码生成后会替换为正确的 refs
  231 + await this.refs['${subClassNameVar}FormRef'].validate();
  232 + } catch (e) {
  233 + this.subTabsName = '${subClassNameVar}';
  234 + return;
  235 + }
  236 + #end
  237 + #end
  238 + #end
222 this.formLoading = true; 239 this.formLoading = true;
223 try { 240 try {
224 - const that = this;  
225 - let data = this.formData;  
226 - let validate = false;  
227 - // 校验主表  
228 - this.getRef("formRef").validate(valid => {  
229 - validate = valid;  
230 - }); 241 + const data = this.formData;
231 ## 特殊:主子表专属逻辑 242 ## 特殊:主子表专属逻辑
232 #if ( $table.templateType == 10 || $table.templateType == 12 ) 243 #if ( $table.templateType == 10 || $table.templateType == 12 )
233 #if ( $subTables && $subTables.size() > 0 ) 244 #if ( $subTables && $subTables.size() > 0 )
234 - // 校验子表  
235 - this.validateSubFrom01().then(() => {  
236 - // 全部校验通过-拼接子表的数据  
237 // 拼接子表的数据 245 // 拼接子表的数据
238 - #foreach ($subTable in $subTables)  
239 - #set ($index = $foreach.count - 1)  
240 - #set ($subClassNameVar = $subClassNameVars.get($index))  
241 - data.${subClassNameVar}#if ( $subTable.subJoinMany)s#end = that.getRef('${subClassNameVar}FormRef').getData();  
242 - #end  
243 - }).catch((err) => {  
244 - validate = false;  
245 - that.subTabsName = err.replace("FormRef", ""); // 定位到没有校验通过的子表单  
246 - }) 246 + #foreach ($subTable in $subTables)
  247 + #set ($index = $foreach.count - 1)
  248 + #set ($subClassNameVar = $subClassNameVars.get($index))
  249 + data.${subClassNameVar}#if ( $subTable.subJoinMany)s#end = this.refs['${subClassNameVar}FormRef'].getData();
  250 + #end
247 #end 251 #end
248 #end 252 #end
249 - // 所有表单校验通过后方可提交  
250 - if (!validate) {  
251 - return;  
252 - }  
253 // 修改的提交 253 // 修改的提交
254 if (data.${primaryColumn.javaField}) { 254 if (data.${primaryColumn.javaField}) {
255 - ${simpleClassName}Api.update${simpleClassName}(data).then(response => {  
256 - that.#[[$modal]]#.msgSuccess("修改成功");  
257 - that.dialogVisible = false;  
258 - that.#[[$]]#emit('success');  
259 - }); 255 + await ${simpleClassName}Api.update${simpleClassName}(data);
  256 + this.#[[$modal]]#.msgSuccess("修改成功");
  257 + this.dialogVisible = false;
  258 + this.#[[$]]#emit('success');
260 return; 259 return;
261 } 260 }
262 // 添加的提交 261 // 添加的提交
263 - ${simpleClassName}Api.create${simpleClassName}(data).then(response => {  
264 - that.#[[$modal]]#.msgSuccess("新增成功");  
265 - that.dialogVisible = false;  
266 - that.#[[$]]#emit('success');  
267 - }); 262 + await ${simpleClassName}Api.create${simpleClassName}(data);
  263 + this.#[[$modal]]#.msgSuccess("新增成功");
  264 + this.dialogVisible = false;
  265 + this.#[[$]]#emit('success');
268 }finally { 266 }finally {
269 this.formLoading = false; 267 this.formLoading = false;
270 } 268 }
271 }, 269 },
272 - getRef(refName){  
273 - return this.#[[$]]#refs[refName];  
274 - },  
275 -## 特殊:主子表专属逻辑  
276 -#if ( $table.templateType == 10 || $table.templateType == 12 )  
277 -#if ( $subTables && $subTables.size() > 0 )  
278 - /** 校验子表单 */  
279 - validateSubFrom(item) {  
280 - return new Promise((resolve, reject) => {  
281 - this.getRef(item).validate()  
282 - .then(() => {  
283 - resolve();  
284 - })  
285 - .catch(() => {  
286 - reject(item);  
287 - })  
288 - })  
289 - },  
290 - /** 校验所有子表单 */  
291 - validateSubFrom01() {  
292 - // 需要校验的表单 ref  
293 - const validFormRefArr = [  
294 - #foreach ($subTable in $subTables)  
295 - #set ($index = $foreach.count - 1)  
296 - #set ($subClassNameVar = $subClassNameVars.get($index))  
297 - "${subClassNameVar}FormRef",  
298 - #end  
299 - ];  
300 - const validArr = []; // 校验  
301 - for (const item of validFormRefArr) {  
302 - validArr.push(this.validateSubFrom(item));  
303 - }  
304 - return new Promise((resolve, reject) => {  
305 - // 校验所有  
306 - Promise.all(validArr).then(() => {  
307 - resolve();  
308 - }).catch((err) => {  
309 - reject(err);  
310 - })  
311 - })  
312 - },  
313 -#end  
314 -#end  
315 ## 特殊:树表专属逻辑 270 ## 特殊:树表专属逻辑
316 #if ( $table.templateType == 2 ) 271 #if ( $table.templateType == 2 )
317 /** 获得${table.classComment}树 */ 272 /** 获得${table.classComment}树 */
318 - get${simpleClassName}Tree() {  
319 - const that = this;  
320 - that.${classNameVar}Tree = [];  
321 - ${simpleClassName}Api.get${simpleClassName}List().then(res=>{  
322 - const root = { id: 0, name: '顶级${table.classComment}', children: [] };  
323 - root.children = this.handleTree(res.data, 'id', '${treeParentColumn.javaField}')  
324 - that.${classNameVar}Tree.push(root)  
325 - }); 273 + async get${simpleClassName}Tree() {
  274 + this.${classNameVar}Tree = [];
  275 + const res = await ${simpleClassName}Api.get${simpleClassName}List();
  276 + const root = { id: 0, name: '顶级${table.classComment}', children: [] };
  277 + root.children = this.handleTree(res.data, 'id', '${treeParentColumn.javaField}')
  278 + this.${classNameVar}Tree.push(root)
326 }, 279 },
327 #end 280 #end
328 ## 特殊:树表专属逻辑 281 ## 特殊:树表专属逻辑
@@ -361,7 +314,7 @@ @@ -361,7 +314,7 @@
361 #end 314 #end
362 }; 315 };
363 this.resetForm("formRef"); 316 this.resetForm("formRef");
364 - }, 317 + }
365 } 318 }
366 }; 319 };
367 </script> 320 </script>
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue/views/index.vue.vm
@@ -262,19 +262,17 @@ export default { @@ -262,19 +262,17 @@ export default {
262 }, 262 },
263 methods: { 263 methods: {
264 /** 查询列表 */ 264 /** 查询列表 */
265 - getList() { 265 + async getList() {
266 try { 266 try {
267 this.loading = true; 267 this.loading = true;
268 ## 特殊:树表专属逻辑(树不需要分页接口) 268 ## 特殊:树表专属逻辑(树不需要分页接口)
269 #if ( $table.templateType == 2 ) 269 #if ( $table.templateType == 2 )
270 - ${simpleClassName}Api.get${simpleClassName}List(this.queryParams).then(response => {  
271 - this.list = this.handleTree(response.data, 'id', '${treeParentColumn.javaField}');  
272 - }) 270 + const res = await ${simpleClassName}Api.get${simpleClassName}List(this.queryParams);
  271 + this.list = this.handleTree(res.data, 'id', '${treeParentColumn.javaField}');
273 #else 272 #else
274 - ${simpleClassName}Api.get${simpleClassName}Page(this.queryParams).then(response => {  
275 - this.list = response.data.list;  
276 - this.total = response.data.total;  
277 - }); 273 + const res = await ${simpleClassName}Api.get${simpleClassName}Page(this.queryParams);
  274 + this.list = res.data.list;
  275 + this.total = res.data.total;
278 #end 276 #end
279 } finally { 277 } finally {
280 this.loading = false; 278 this.loading = false;
@@ -295,31 +293,25 @@ export default { @@ -295,31 +293,25 @@ export default {
295 this.#[[$]]#refs["formRef"].open(id); 293 this.#[[$]]#refs["formRef"].open(id);
296 }, 294 },
297 /** 删除按钮操作 */ 295 /** 删除按钮操作 */
298 - handleDelete(row) {  
299 - const that = this;  
300 - try { 296 + async handleDelete(row) {
301 const ${primaryColumn.javaField} = row.${primaryColumn.javaField}; 297 const ${primaryColumn.javaField} = row.${primaryColumn.javaField};
302 - this.#[[$modal]]#.confirm('是否确认删除${table.classComment}编号为"' + ${primaryColumn.javaField} + '"的数据项?').then(()=>{  
303 - return ${simpleClassName}Api.delete${simpleClassName}(${primaryColumn.javaField});  
304 - }).then(() => {  
305 - that.getList();  
306 - that.#[[$modal]]#.msgSuccess("删除成功");  
307 - }).catch(() => {}); 298 + await this.#[[$modal]]#.confirm('是否确认删除${table.classComment}编号为"' + ${primaryColumn.javaField} + '"的数据项?')
  299 + try {
  300 + await ${simpleClassName}Api.delete${simpleClassName}(${primaryColumn.javaField});
  301 + this.getList();
  302 + this.#[[$modal]]#.msgSuccess("删除成功");
308 } catch {} 303 } catch {}
309 }, 304 },
310 /** 导出按钮操作 */ 305 /** 导出按钮操作 */
311 - handleExport() {  
312 - const that = this; 306 + async handleExport() {
  307 + await this.#[[$modal]]#.confirm('是否确认导出所有${table.classComment}数据项?');
313 try { 308 try {
314 - this.#[[$modal]]#.confirm('是否确认导出所有${table.classComment}数据项?').then(() => {  
315 - that.exportLoading = true;  
316 - return ${simpleClassName}Api.export${simpleClassName}Excel(params);  
317 - }).then(response => {  
318 - that.#[[$]]#download.excel(response, '${table.classComment}.xls');  
319 - }); 309 + this.exportLoading = true;
  310 + const res = await ${simpleClassName}Api.export${simpleClassName}Excel(this.queryParams);
  311 + this.#[[$]]#download.excel(res.data, '${table.classComment}.xls');
320 } catch { 312 } catch {
321 } finally { 313 } finally {
322 - that.exportLoading = false; 314 + this.exportLoading = false;
323 } 315 }
324 }, 316 },
325 ## 特殊:主子表专属逻辑 317 ## 特殊:主子表专属逻辑