|
|
@@ -1,3 +1,8 @@
|
|
|
+{%- if table.pk_column %}
|
|
|
+{%- set pk_field = table.pk_column.java_field %}
|
|
|
+{%- else %}
|
|
|
+{%- set pk_field = 'id' %}
|
|
|
+{%- endif %}
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
@@ -96,7 +101,7 @@
|
|
|
v-if="refreshTable"
|
|
|
:loading="loading"
|
|
|
:data="{{ table.business_name }}List"
|
|
|
- row-key="{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %}"
|
|
|
+ row-key="{{ pk_field }}"
|
|
|
:default-expand-all="isExpandAll"
|
|
|
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
|
|
>
|
|
|
@@ -126,7 +131,7 @@
|
|
|
{%- elif column.is_list and column.list_index is not none and column.html_type == 'fileUpload' %}
|
|
|
<el-table-column label="{{ comment }}" align="center" v-if="columns[{{ column.list_index }}].visible" prop="{{ java_field }}" width="100">
|
|
|
<template slot-scope="scope">
|
|
|
- <div v-if="scope.row.{{ underscore(java_field) }}">
|
|
|
+ <div v-if="scope.row.{{ java_field }}">
|
|
|
<el-tooltip placement="top" effect="light">
|
|
|
<div slot="content">
|
|
|
<div v-for="(file,index) in scope.row.{{ java_field }}.split(',')"
|
|
|
@@ -211,29 +216,29 @@
|
|
|
{%- endif %}
|
|
|
{%- endif %}
|
|
|
{%- set dict_type = column.dict_type if column.dict_type else '' %}
|
|
|
- {%- if table.tree_parent_code and (underscore(column.java_field) == underscore(table.tree_parent_code) or column.java_field == table.tree_parent_code) %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(table.tree_parent_code) }}">
|
|
|
- <treeselect v-model="form.{{ underscore(table.tree_parent_code) }}" :options="{{ table.business_name }}Options" :normalizer="normalizer" placeholder="请选择{{ comment }}" />
|
|
|
+ {%- if column.java_field == tree_parent_field %}
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ tree_parent_field }}">
|
|
|
+ <treeselect v-model="form.{{ tree_parent_field }}" :options="{{ table.business_name }}Options" :normalizer="normalizer" placeholder="请选择{{ comment }}" />
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'input' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-input v-model="form.{{ underscore(field) }}" placeholder="请输入{{ comment }}" />
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-input v-model="form.{{ field }}" placeholder="请输入{{ comment }}" />
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'imageUpload' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <image-upload v-model="form.{{ underscore(field) }}"/>
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <image-upload v-model="form.{{ field }}"/>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'fileUpload' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <file-upload v-model="form.{{ underscore(field) }}"/>
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <file-upload v-model="form.{{ field }}"/>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'editor' %}
|
|
|
<el-form-item label="{{ comment }}">
|
|
|
- <editor v-model="form.{{ underscore(field) }}" :min-height="192"/>
|
|
|
+ <editor v-model="form.{{ field }}" :min-height="192"/>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'select' and dict_type != '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-select v-model="form.{{ underscore(field) }}" placeholder="请选择{{ comment }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-select v-model="form.{{ field }}" placeholder="请选择{{ comment }}">
|
|
|
<el-option
|
|
|
v-for="dict in dict.type.{{ dict_type }}"
|
|
|
:key="dict.value"
|
|
|
@@ -247,14 +252,14 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'select' and dict_type == '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-select v-model="form.{{ underscore(field) }}" placeholder="请选择{{ comment }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-select v-model="form.{{ field }}" placeholder="请选择{{ comment }}">
|
|
|
<el-option label="请选择字典生成" value="" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'checkbox' and dict_type != '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-checkbox-group v-model="form.{{ underscore(field) }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-checkbox-group v-model="form.{{ field }}">
|
|
|
<el-checkbox
|
|
|
v-for="dict in dict.type.{{ dict_type }}"
|
|
|
:key="dict.value"
|
|
|
@@ -264,14 +269,14 @@
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'checkbox' and dict_type == '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-checkbox-group v-model="form.{{ underscore(field) }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-checkbox-group v-model="form.{{ field }}">
|
|
|
<el-checkbox>请选择字典生成</el-checkbox>
|
|
|
</el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'radio' and dict_type != '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-radio-group v-model="form.{{ underscore(field) }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-radio-group v-model="form.{{ field }}">
|
|
|
<el-radio
|
|
|
v-for="dict in dict.type.{{ dict_type }}"
|
|
|
:key="dict.value"
|
|
|
@@ -284,23 +289,23 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'radio' and dict_type == '' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-radio-group v-model="form.{{ underscore(field) }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-radio-group v-model="form.{{ field }}">
|
|
|
<el-radio label="1">请选择字典生成</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'datetime' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
<el-date-picker clearable
|
|
|
- v-model="form.{{ underscore(field) }}"
|
|
|
+ v-model="form.{{ field }}"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
placeholder="选择{{ comment }}">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
{%- elif column.html_type == 'textarea' %}
|
|
|
- <el-form-item label="{{ comment }}" prop="{{ underscore(field) }}">
|
|
|
- <el-input v-model="form.{{ underscore(field) }}" type="textarea" placeholder="请输入内容" />
|
|
|
+ <el-form-item label="{{ comment }}" prop="{{ field }}">
|
|
|
+ <el-input v-model="form.{{ field }}" type="textarea" placeholder="请输入内容" />
|
|
|
</el-form-item>
|
|
|
{%- endif %}
|
|
|
{%- endif %}
|
|
|
@@ -315,23 +320,19 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-{# 使用后端工具函数生成接口前缀:
|
|
|
- - apiName : scheduleInfo
|
|
|
- - ApiName : ScheduleInfo(listScheduleInfo / getScheduleInfo 等) #}
|
|
|
{% set apiName = to_camel_case(table.class_name, False) %}
|
|
|
{% set ApiName = capitalize_first(apiName) %}
|
|
|
import { list{{ ApiName }}, get{{ ApiName }}, del{{ ApiName }}, add{{ ApiName }}, update{{ ApiName }} } from "@/api/{{ table.module_name }}/{{ table.business_name }}";
|
|
|
import Treeselect from "@riophae/vue-treeselect";
|
|
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
|
|
-{%- set has_file_upload = false %}
|
|
|
-{%- for column in table.columns %}
|
|
|
-{%- if column.is_list and column.html_type == 'fileUpload' %}
|
|
|
-{%- set has_file_upload = true %}
|
|
|
-{%- endif %}
|
|
|
-{%- endfor %}
|
|
|
-{%- if has_file_upload %}
|
|
|
+{%- set raw_tree_code = table.tree_code if table.tree_code else 'id' %}
|
|
|
+{%- set raw_tree_parent = table.tree_parent_code if table.tree_parent_code else 'parent_id' %}
|
|
|
+{%- set raw_tree_name = table.tree_name if table.tree_name else 'name' %}
|
|
|
+{%- set tree_code_field = to_camel_case(raw_tree_code, False) %}
|
|
|
+{%- set tree_parent_field = to_camel_case(raw_tree_parent, False) %}
|
|
|
+{%- set tree_name_field = to_camel_case(raw_tree_name, False) %}
|
|
|
import { getFileName, getFilePath } from '@/utils/ruoyi'
|
|
|
-{%- endif %}
|
|
|
+
|
|
|
export default {
|
|
|
name: "{{ table.class_name }}",
|
|
|
{%- set dicts_list = [] %}
|
|
|
@@ -459,7 +460,7 @@ export default {
|
|
|
{%- endfor %}
|
|
|
list{{ ApiName }}(this.queryParams).then(response => {
|
|
|
const list = Array.isArray(response && response.data) ? response.data : (Array.isArray(response && response.rows) ? response.rows : []);
|
|
|
- this.{{ table.business_name }}List = this.handleTree(list, "{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %}", "{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parent_id{% endif %}");
|
|
|
+ this.{{ table.business_name }}List = this.handleTree(list, "{{ tree_code_field }}", "{{ tree_parent_field }}");
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
@@ -473,8 +474,8 @@ export default {
|
|
|
delete node.children;
|
|
|
}
|
|
|
return {
|
|
|
- id: node.{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %},
|
|
|
- label: node.{% if table.tree_name %}{{ table.tree_name }}{% else %}name{% endif %},
|
|
|
+ id: node.{{ tree_code_field }},
|
|
|
+ label: node.{{ tree_name_field }},
|
|
|
children: node.children
|
|
|
};
|
|
|
},
|
|
|
@@ -482,9 +483,9 @@ export default {
|
|
|
getTreeselect() {
|
|
|
list{{ ApiName }}().then(response => {
|
|
|
this.{{ table.business_name }}Options = [];
|
|
|
- const data = { {% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %}: 0, {% if table.tree_name %}{{ table.tree_name }}{% else %}name{% endif %}: '顶级节点', children: [] };
|
|
|
+ const data = { {{ tree_code_field }}: 0, {{ tree_name_field }}: '顶级节点', children: [] };
|
|
|
const list = Array.isArray(response && response.data) ? response.data : (Array.isArray(response && response.rows) ? response.rows : []);
|
|
|
- data.children = this.handleTree(list, "{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %}", "{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parent_id{% endif %}");
|
|
|
+ data.children = this.handleTree(list, "{{ tree_code_field }}", "{{ tree_parent_field }}");
|
|
|
this.{{ table.business_name }}Options.push(data);
|
|
|
});
|
|
|
},
|
|
|
@@ -525,10 +526,10 @@ export default {
|
|
|
handleAdd(row) {
|
|
|
this.reset();
|
|
|
this.getTreeselect();
|
|
|
- if (row != null && row.{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %}) {
|
|
|
- this.form.{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parentId{% endif %} = row.{% if table.tree_code %}{{ table.tree_code }}{% else %}id{% endif %};
|
|
|
+ if (row != null && row.{{ tree_code_field }}) {
|
|
|
+ this.form.{{ tree_parent_field }} = row.{{ tree_code_field }};
|
|
|
} else {
|
|
|
- this.form.{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parentId{% endif %} = 0;
|
|
|
+ this.form.{{ tree_parent_field }} = 0;
|
|
|
}
|
|
|
this.open = true;
|
|
|
this.title = "添加{{ table.function_name }}";
|
|
|
@@ -546,16 +547,16 @@ export default {
|
|
|
this.reset();
|
|
|
this.getTreeselect();
|
|
|
if (row != null) {
|
|
|
- this.form.{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parentId{% endif %} = row.{% if table.tree_parent_code %}{{ table.tree_parent_code }}{% else %}parentId{% endif %};
|
|
|
+ this.form.{{ tree_parent_field }} = row.{{ tree_parent_field }};
|
|
|
}
|
|
|
- get{{ ApiName }}(row.{% if table.pk_column %}{{ underscore(table.pk_column.java_field) }}{% else %}id{% endif %}).then(response => {
|
|
|
+ get{{ ApiName }}(row.{{ pk_field }}).then(response => {
|
|
|
this.form = response.data;
|
|
|
{%- for column in table.columns %}
|
|
|
{%- if column.html_type == 'checkbox' %}
|
|
|
- if (this.form.{{ underscore(column.java_field) }}) {
|
|
|
- this.form.{{ underscore(column.java_field) }} = this.form.{{ underscore(column.java_field) }}.split(",");
|
|
|
+ if (this.form.{{ column.java_field }}) {
|
|
|
+ this.form.{{ column.java_field }} = this.form.{{ column.java_field }}.split(",");
|
|
|
} else {
|
|
|
- this.form.{{ underscore(column.java_field) }} = [];
|
|
|
+ this.form.{{ column.java_field }} = [];
|
|
|
}
|
|
|
{%- endif %}
|
|
|
{%- endfor %}
|
|
|
@@ -568,7 +569,7 @@ export default {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
const submitData = this.buildSubmitData();
|
|
|
- if (submitData.{% if table.pk_column %}{{ underscore(table.pk_column.java_field) }}{% else %}id{% endif %} != null) {
|
|
|
+ if (submitData.{{ pk_field }} != null) {
|
|
|
update{{ ApiName }}(submitData).then(response => {
|
|
|
this.$modal.msgSuccess("修改成功");
|
|
|
this.open = false;
|
|
|
@@ -588,23 +589,23 @@ export default {
|
|
|
const data = { ...this.form };
|
|
|
{%- for column in table.columns %}
|
|
|
{%- if column.html_type == 'checkbox' %}
|
|
|
- if (Array.isArray(data.{{ underscore(column.java_field) }})) {
|
|
|
- data.{{ underscore(column.java_field) }} = data.{{ underscore(column.java_field) }}.join(",");
|
|
|
- } else if (data.{{ underscore(column.java_field) }}) {
|
|
|
- data.{{ underscore(column.java_field) }} = String(data.{{ underscore(column.java_field) }});
|
|
|
+ if (Array.isArray(data.{{ column.java_field }})) {
|
|
|
+ data.{{ column.java_field }} = data.{{ column.java_field }}.join(",");
|
|
|
+ } else if (data.{{ column.java_field }}) {
|
|
|
+ data.{{ column.java_field }} = String(data.{{ column.java_field }});
|
|
|
}
|
|
|
{%- endif %}
|
|
|
{%- if column.java_type in ['Integer', 'Long', 'Short'] %}
|
|
|
- if (data.{{ underscore(column.java_field) }} !== null && data.{{ underscore(column.java_field) }} !== undefined && data.{{ underscore(column.java_field) }} !== "") {
|
|
|
- data.{{ underscore(column.java_field) }} = parseInt(data.{{ underscore(column.java_field) }}, 10);
|
|
|
+ if (data.{{ column.java_field }} !== null && data.{{ column.java_field }} !== undefined && data.{{ column.java_field }} !== "") {
|
|
|
+ data.{{ column.java_field }} = parseInt(data.{{ column.java_field }}, 10);
|
|
|
} else {
|
|
|
- data.{{ underscore(column.java_field) }} = null;
|
|
|
+ data.{{ column.java_field }} = null;
|
|
|
}
|
|
|
{%- elif column.java_type in ['Float', 'Double', 'BigDecimal', 'Decimal'] %}
|
|
|
- if (data.{{ underscore(column.java_field) }} !== null && data.{{ underscore(column.java_field) }} !== undefined && data.{{ underscore(column.java_field) }} !== "") {
|
|
|
- data.{{ underscore(column.java_field) }} = parseFloat(data.{{ underscore(column.java_field) }});
|
|
|
+ if (data.{{ column.java_field }} !== null && data.{{ column.java_field }} !== undefined && data.{{ column.java_field }} !== "") {
|
|
|
+ data.{{ column.java_field }} = parseFloat(data.{{ column.java_field }});
|
|
|
} else {
|
|
|
- data.{{ underscore(column.java_field) }} = null;
|
|
|
+ data.{{ column.java_field }} = null;
|
|
|
}
|
|
|
{%- endif %}
|
|
|
{%- endfor %}
|
|
|
@@ -612,8 +613,8 @@ export default {
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
- this.$modal.confirm('是否确认删除{{ table.function_name }}编号为"' + row.{% if table.pk_column %}{{ underscore(table.pk_column.java_field) }}{% else %}id{% endif %} + '"的数据项?').then(function() {
|
|
|
- return del{{ ApiName }}(row.{% if table.pk_column %}{{ underscore(table.pk_column.java_field) }}{% else %}id{% endif %});
|
|
|
+ this.$modal.confirm('是否确认删除{{ table.function_name }}编号为"' + row.{{ pk_field }} + '"的数据项?').then(function() {
|
|
|
+ return del{{ ApiName }}(row.{{ pk_field }});
|
|
|
}).then(() => {
|
|
|
this.getList();
|
|
|
this.$modal.msgSuccess("删除成功");
|