From 22210f95f3bbe588bd7e1bcff7de34aaf150aa1c Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期三, 06 一月 2021 10:59:34 +0800 Subject: [PATCH] 代码生成支持文件上传组件 --- src/main/resources/vm/vue/index-tree.vue.vm | 191 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 153 insertions(+), 38 deletions(-) diff --git a/src/main/resources/vm/vue/index-tree.vue.vm b/src/main/resources/vm/vue/index-tree.vue.vm index fb10ed6..501de87 100644 --- a/src/main/resources/vm/vue/index-tree.vue.vm +++ b/src/main/resources/vm/vue/index-tree.vue.vm @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> #foreach($column in $columns) #if($column.query) #set($dictType=$column.dictType) @@ -38,36 +38,50 @@ <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" /> </el-select> </el-form-item> -#elseif($column.htmlType == "datetime") +#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN") <el-form-item label="${comment}" prop="${column.javaField}"> - <el-date-picker clearable size="small" style="width: 200px" + <el-date-picker clearable size="small" v-model="queryParams.${column.javaField}" type="date" value-format="yyyy-MM-dd" placeholder="閫夋嫨${comment}"> </el-date-picker> </el-form-item> +#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") + <el-form-item label="${comment}"> + <el-date-picker + v-model="daterange${AttrName}" + size="small" + style="width: 240px" + value-format="yyyy-MM-dd" + type="daterange" + range-separator="-" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + ></el-date-picker> + </el-form-item> #end #end #end <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> <el-button - class="filter-item" type="primary" - icon="el-icon-search" - size="mini" - @click="handleQuery" - >鎼滅储</el-button> - <el-button - class="filter-item" - type="primary" + plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['${moduleName}:${businessName}:add']" >鏂板</el-button> - </el-form-item> - </el-form> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> <el-table v-loading="loading" @@ -139,8 +153,20 @@ <el-form-item label="${comment}" prop="${field}"> <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" /> </el-form-item> -#elseif($column.htmlType == "select" && "" != $dictType) +#elseif($column.htmlType == "imageUpload") <el-form-item label="${comment}"> + <imageUpload v-model="form.${field}"/> + </el-form-item> +#elseif($column.htmlType == "fileUpload") + <el-form-item label="${comment}"> + <fileUpload v-model="form.${field}"/> + </el-form-item> +#elseif($column.htmlType == "editor") + <el-form-item label="${comment}"> + <editor v-model="form.${field}" :min-height="192"/> + </el-form-item> +#elseif($column.htmlType == "select" && "" != $dictType) + <el-form-item label="${comment}" prop="${field}"> <el-select v-model="form.${field}" placeholder="璇烽�夋嫨${comment}"> <el-option v-for="dict in ${field}Options" @@ -152,10 +178,27 @@ </el-select> </el-form-item> #elseif($column.htmlType == "select" && $dictType) - <el-form-item label="${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> +#elseif($column.htmlType == "checkbox" && "" != $dictType) + <el-form-item label="${comment}"> + <el-checkbox-group v-model="form.${field}"> + <el-checkbox + v-for="dict in ${field}Options" + :key="dict.dictValue" + :label="dict.dictValue"> + {{dict.dictLabel}} + </el-checkbox> + </el-checkbox-group> + </el-form-item> +#elseif($column.htmlType == "checkbox" && $dictType) + <el-form-item label="${comment}"> + <el-checkbox-group v-model="form.${field}"> + <el-checkbox>璇烽�夋嫨瀛楀吀鐢熸垚</el-checkbox> + </el-checkbox-group> </el-form-item> #elseif($column.htmlType == "radio" && "" != $dictType) <el-form-item label="${comment}"> @@ -176,7 +219,7 @@ </el-form-item> #elseif($column.htmlType == "datetime") <el-form-item label="${comment}" prop="${field}"> - <el-date-picker clearable size="small" style="width: 200px" + <el-date-picker clearable size="small" v-model="form.${field}" type="date" value-format="yyyy-MM-dd" @@ -204,14 +247,53 @@ import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") +import ImageUpload from '@/components/ImageUpload'; +#break +#end +#end +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") +import FileUpload from '@/components/FileUpload'; +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") +import Editor from '@/components/Editor'; +#break +#end +#end export default { name: "${BusinessName}", - components: { Treeselect }, + components: { +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") + ImageUpload, +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") + FileUpload, +#break +#end +#end +#foreach($column in $columns) +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") + Editor, +#break +#end +#end + Treeselect + }, data() { return { // 閬僵灞� loading: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, // ${functionName}琛ㄦ牸鏁版嵁 ${businessName}List: [], // ${functionName}鏍戦�夐」 @@ -230,13 +312,17 @@ #if(${column.dictType} != '') // $comment瀛楀吀 ${column.javaField}Options: [], +#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + // $comment鏃堕棿鑼冨洿 + daterange${AttrName}: [], #end #end // 鏌ヨ鍙傛暟 queryParams: { #foreach ($column in $columns) #if($column.query) - $column.javaField: undefined#if($velocityCount != $columns.size()),#end + $column.javaField: null#if($velocityCount != $columns.size()),#end #end #end @@ -253,9 +339,8 @@ #else #set($comment=$column.columnComment) #end -#set($comment=$column.columnComment) $column.javaField: [ - { required: true, message: "$comment涓嶈兘涓虹┖", trigger: "blur" } + { required: true, message: "$comment涓嶈兘涓虹┖", trigger: #if($column.htmlType == "select")"change"#else"blur"#end } ]#if($velocityCount != $columns.size()),#end #end @@ -277,6 +362,21 @@ /** 鏌ヨ${functionName}鍒楄〃 */ getList() { this.loading = true; +#foreach ($column in $columns) +#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") + this.queryParams.params = {}; +#break +#end +#end +#foreach ($column in $columns) +#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) { + this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]; + this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1]; + } +#end +#end list${BusinessName}(this.queryParams).then(response => { this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}"); this.loading = false; @@ -312,7 +412,7 @@ #end // $comment瀛楀吀缈昏瘧 ${column.javaField}Format(row, column) { - return this.selectDictLabel(this.${column.javaField}Options, row.${column.javaField}); + return this.selectDictLabel#if($column.htmlType == "checkbox")s#end(this.${column.javaField}Options, row.${column.javaField}); }, #end #end @@ -326,10 +426,13 @@ this.form = { #foreach ($column in $columns) #if($column.htmlType == "radio") - $column.javaField: "0"#if($velocityCount != $columns.size()),#end + $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0#else"0"#end#if($velocityCount != $columns.size()),#end + +#elseif($column.htmlType == "checkbox") + $column.javaField: []#if($velocityCount != $columns.size()),#end #else - $column.javaField: undefined#if($velocityCount != $columns.size()),#end + $column.javaField: null#if($velocityCount != $columns.size()),#end #end #end @@ -342,6 +445,12 @@ }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { +#foreach ($column in $columns) +#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) + this.daterange${AttrName} = []; +#end +#end this.resetForm("queryForm"); this.handleQuery(); }, @@ -356,34 +465,40 @@ handleUpdate(row) { this.reset(); this.getTreeselect(); - if (row != undefined) { + if (row != null) { this.form.${treeParentCode} = row.${treeCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { this.form = response.data; +#foreach ($column in $columns) +#if($column.htmlType == "checkbox") + this.form.$column.javaField = this.form.${column.javaField}.split(","); +#end +#end this.open = true; this.title = "淇敼${functionName}"; }); }, /** 鎻愪氦鎸夐挳 */ - submitForm: function() { + submitForm() { this.#[[$]]#refs["form"].validate(valid => { if (valid) { - if (this.form.${pkColumn.javaField} != undefined) { +#foreach ($column in $columns) +#if($column.htmlType == "checkbox") + this.form.$column.javaField = this.form.${column.javaField}.join(","); +#end +#end + if (this.form.${pkColumn.javaField} != null) { update${BusinessName}(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - } + this.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); }); } else { add${BusinessName}(this.form).then(response => { - if (response.code === 200) { - this.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - } + this.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); }); } } @@ -400,8 +515,8 @@ }).then(() => { this.getList(); this.msgSuccess("鍒犻櫎鎴愬姛"); - }).catch(function() {}); + }) } } }; -</script> \ No newline at end of file +</script> -- Gitblit v1.9.3