From a118738d0f9e8e466aa2b908ca139372eead5194 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期二, 05 一月 2021 16:13:22 +0800 Subject: [PATCH] 单图上传组件添加移除 --- ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm | 12 ++++++------ ruoyi-ui/src/views/tool/gen/editTable.vue | 2 +- ruoyi-generator/src/main/resources/vm/vue/index.vue.vm | 12 ++++++------ ruoyi-ui/src/components/ImageUpload/index.vue | 34 ++++++++++++++++++++++++++++++++-- 4 files changed, 45 insertions(+), 15 deletions(-) diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index f12eb2f..d9b6f4d 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -153,9 +153,9 @@ <el-form-item label="${comment}" prop="${field}"> <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" /> </el-form-item> -#elseif($column.htmlType == "uploadImage") +#elseif($column.htmlType == "imageUpload") <el-form-item label="${comment}"> - <uploadImage v-model="form.${field}"/> + <imageUpload v-model="form.${field}"/> </el-form-item> #elseif($column.htmlType == "editor") <el-form-item label="${comment}"> @@ -244,8 +244,8 @@ 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 == "uploadImage") -import UploadImage from '@/components/UploadImage'; +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") +import ImageUpload from '@/components/ImageUpload'; #break #end #end @@ -260,8 +260,8 @@ name: "${BusinessName}", components: { #foreach($column in $columns) -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage") - UploadImage, +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") + ImageUpload, #break #end #end diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm index 534012c..ded7e2d 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -185,9 +185,9 @@ <el-form-item label="${comment}" prop="${field}"> <el-input v-model="form.${field}" placeholder="璇疯緭鍏�${comment}" /> </el-form-item> -#elseif($column.htmlType == "uploadImage") +#elseif($column.htmlType == "imageUpload") <el-form-item label="${comment}"> - <uploadImage v-model="form.${field}"/> + <imageUpload v-model="form.${field}"/> </el-form-item> #elseif($column.htmlType == "editor") <el-form-item label="${comment}"> @@ -274,8 +274,8 @@ <script> import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; #foreach($column in $columns) -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage") -import UploadImage from '@/components/UploadImage'; +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") +import ImageUpload from '@/components/ImageUpload'; #break #end #end @@ -290,8 +290,8 @@ name: "${BusinessName}", components: { #foreach($column in $columns) -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "uploadImage") - UploadImage, +#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") + ImageUpload, #break #end #end diff --git a/ruoyi-ui/src/components/UploadImage/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue similarity index 64% rename from ruoyi-ui/src/components/UploadImage/index.vue rename to ruoyi-ui/src/components/ImageUpload/index.vue index 3941006..89f0b40 100644 --- a/ruoyi-ui/src/components/UploadImage/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -11,8 +11,21 @@ :headers="headers" style="display: inline-block; vertical-align: top" > - <img v-if="value" :src="value" class="avatar" /> - <i v-else class="el-icon-plus avatar-uploader-icon"></i> + <el-image v-if="!value" :src="value"> + <div slot="error" class="image-slot"> + <i class="el-icon-plus" /> + </div> + </el-image> + <div v-else class="image"> + <el-image :src="value" /> + <div class="mask"> + <div class="actions"> + <span title="绉婚櫎" @click.stop="removeImage"> + <i class="el-icon-delete" /> + </span> + </div> + </div> + </div> </el-upload> </div> </template> @@ -37,6 +50,9 @@ }, }, methods: { + removeImage() { + this.$emit("input", ""); + }, handleUploadSuccess(res) { this.$emit("input", res.url); this.loading.close(); @@ -65,4 +81,18 @@ width: 100%; height: 100%; } +.image { + position: relative; + .mask { + opacity: 0; + position: absolute; + top: 0; + width: 100%; + background-color: rgba(0, 0, 0, 0.5); + transition: all 0.3s; + } + &:hover .mask { + opacity: 1; + } +} </style> \ No newline at end of file diff --git a/ruoyi-ui/src/views/tool/gen/editTable.vue b/ruoyi-ui/src/views/tool/gen/editTable.vue index fea958e..a9ad5a0 100644 --- a/ruoyi-ui/src/views/tool/gen/editTable.vue +++ b/ruoyi-ui/src/views/tool/gen/editTable.vue @@ -90,7 +90,7 @@ <el-option label="鍗曢�夋" value="radio" /> <el-option label="澶嶉�夋" value="checkbox" /> <el-option label="鏃ユ湡鎺т欢" value="datetime" /> - <el-option label="涓婁紶鎺т欢" value="uploadImage" /> + <el-option label="鍗曞浘涓婁紶" value="imageUpload" /> <el-option label="瀵屾枃鏈帶浠�" value="editor" /> </el-select> </template> -- Gitblit v1.9.3