|
|
@@ -110,10 +110,18 @@ func MysqlToVueApi() {
|
|
|
func CreateVue() {
|
|
|
//sql表格名
|
|
|
for _, gTable := range GTables {
|
|
|
+ //跳过 一些表
|
|
|
+ if gTable.GenTable.Name == "DictData" ||
|
|
|
+ gTable.GenTable.Name == "DictType" ||
|
|
|
+ gTable.GenTable.Name == "GenTableColumn" ||
|
|
|
+ gTable.GenTable.Name == "GenTable" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
view := MysqlToVueView(gTable, gTable.GenTableColumn)
|
|
|
- WriteFile("E:\\project\\kkc\\go-xorm-create\\file\\"+gTable.GenTable.Name+"View.vue", view)
|
|
|
+ WriteFile(ProjectGoCreateUrl+"file\\"+gTable.GenTable.Name+"View.vue", view)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
func MysqlToVueView(table GTable, columns []GenTableColumn) string {
|
|
|
vueContent := "<template>" +
|
|
|
"\n <div class=\"back-form-container\">" +
|
|
|
@@ -157,7 +165,7 @@ func MysqlToVueView(table GTable, columns []GenTableColumn) string {
|
|
|
//========================================表格部分内容
|
|
|
{
|
|
|
vueContent += "\n <div class=\"back-table\">" +
|
|
|
- "\n <el-table v-loading=\"listLoading\" :data=\"list\" @selection-change=\"selected\" border>" +
|
|
|
+ "\n <el-table v-loading=\"listLoading\" :data=\"list\" @selection-change=\"selected\" border :key=\"ListKey\">" +
|
|
|
"\n <el-table-column type=\"selection\" width=\"40\" align=\"center\"/>"
|
|
|
//数组排序
|
|
|
sort.SliceStable(columns, func(i, j int) bool {
|
|
|
@@ -247,6 +255,7 @@ func MysqlToVueView(table GTable, columns []GenTableColumn) string {
|
|
|
"\nlet pageSize = ref(10)" +
|
|
|
"\n" +
|
|
|
"\nlet list = ref<" + table.GenTable.Name + "[]>([])" +
|
|
|
+ "\nlet ListKey = ref(0)" +
|
|
|
"\n//搜索用" +
|
|
|
"\nlet search = ref<" + table.GenTable.Name + ">(" + table.GenTable.Name + ".Create())" +
|
|
|
"\n//修改,添加用" +
|
|
|
@@ -296,6 +305,7 @@ func MysqlToVueView(table GTable, columns []GenTableColumn) string {
|
|
|
"\n let data = response.data" +
|
|
|
"\n total.value = data.total" +
|
|
|
"\n list.value = response.data.list" +
|
|
|
+ "\n ListKey.value++" +
|
|
|
"\n listLoading.value = false" +
|
|
|
"\n })" +
|
|
|
"\n}" +
|
|
|
@@ -343,7 +353,8 @@ func MysqlToVueView(table GTable, columns []GenTableColumn) string {
|
|
|
// 文件上传 File
|
|
|
// 富文本 Editor
|
|
|
func elTableColumn(name, value, typeName string, dictType string) string {
|
|
|
- if typeName == "input" || typeName == "textarea" || typeName == "select" || typeName == "radio" || typeName == "checkbox" || typeName == "time" {
|
|
|
+ if typeName == "input" || typeName == "textarea" || typeName == "select" || typeName == "radio" ||
|
|
|
+ typeName == "checkbox" || typeName == "time" || typeName == "text" {
|
|
|
if dictType == "" {
|
|
|
return "\n <el-table-column label=\"" + name + "\" align=\"center\" prop=\"" + value + "\"/>"
|
|
|
} else {
|
|
|
@@ -357,11 +368,11 @@ func elTableColumn(name, value, typeName string, dictType string) string {
|
|
|
if typeName == "image" {
|
|
|
return "\n <el-table-column label=\"" + name + "\" align=\"center\" prop=\"" + value + "\">" +
|
|
|
"\n <template #default=\"scope\">" +
|
|
|
- "\n <el-image src=" + value + "></el-image>" +
|
|
|
+ "\n <el-image :src=\"scope.row." + value + "\"></el-image>" +
|
|
|
"\n </template>" +
|
|
|
"\n </el-table-column>"
|
|
|
}
|
|
|
- return ""
|
|
|
+ return "\n <el-table-column label=\"" + name + "\" align=\"center\" prop=\"" + value + "\"/>"
|
|
|
}
|
|
|
|
|
|
func elDialog(name, value, typeName, dictType string) string {
|
|
|
@@ -379,8 +390,7 @@ func elDialog(name, value, typeName, dictType string) string {
|
|
|
"\n <el-input v-model=\"dialogForm." + value + "\" placeholder=\"请输入" + name + "\" type=\"textarea\"/>" +
|
|
|
"\n </el-form-item>"
|
|
|
} else if typeName == "select" {
|
|
|
- return "" +
|
|
|
- "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
+ return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
"\n <el-select v-model=\"dialogForm." + value + "\" placeholder=\"请选择" + name + "\">" +
|
|
|
"\n <el-option" +
|
|
|
"\n v-for=\"item in store.state.dicts.get('" + dictType + "')\"" +
|
|
|
@@ -421,7 +431,7 @@ func elDialog(name, value, typeName, dictType string) string {
|
|
|
"\n </el-form-item>"
|
|
|
} else if typeName == "time" {
|
|
|
return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
- " <el-date-picker v-model=\"dialogForm." + value + "\" type=\"datetime\" placeholder=\"请选择时间\"\n/>" +
|
|
|
+ " <el-date-picker v-model=\"dialogForm." + value + "\" type=\"datetime\" placeholder=\"请选择时间\" value-format=\"YYYY-MM-DD hh:mm:ss\"/>" +
|
|
|
"\n </el-form-item>"
|
|
|
} else if typeName == "image" {
|
|
|
return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
@@ -434,7 +444,13 @@ func elDialog(name, value, typeName, dictType string) string {
|
|
|
return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
" <EditorComponent v-model:htmlString=\"dialogForm." + value + "\"/>" +
|
|
|
"\n </el-form-item>"
|
|
|
-
|
|
|
+ } else if typeName == "text" {
|
|
|
+ return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
+ " <el-text class=\"mx-1\">{{dialogForm." + value + "}}</el-text>" +
|
|
|
+ "\n </el-form-item>"
|
|
|
}
|
|
|
- return ""
|
|
|
+ //默认的就显示文本
|
|
|
+ return "\n <el-form-item label=\"" + name + "\" prop=\"" + value + "\">" +
|
|
|
+ " <el-text class=\"mx-1\">{{dialogForm." + value + "}}</el-text>" +
|
|
|
+ "\n </el-form-item>"
|
|
|
}
|