|
@@ -1,28 +1,34 @@
|
|
|
<template>
|
|
|
- <el-upload class="hc-upload-table-form" :disabled="isLoading" :placeholder="placeholder" :keyname="isKeyName" :headers="getTokenHeader()" :action="action" :accept="accept" :show-file-list="false"
|
|
|
- :on-progress="uploadprogress" @exceed="formUploadExceed" :on-error="formUploadError" @success="formUploadSuccess" v-loading="isLoading" element-loading-text="上传中...">
|
|
|
- <img v-if="isSrc" :src="isSrc" class="hc-table-form-img" alt="">
|
|
|
- <div class="hc-table-form-icon" v-else>点此选择文件并上传</div>
|
|
|
+ <el-upload v-loading="isLoading" :accept="accept" :action="action" :class="isFocus?'is-focus':''"
|
|
|
+ :disabled="isLoading" :headers="getTokenHeader()" :keyname="isKeyName"
|
|
|
+ :on-error="formUploadError"
|
|
|
+ :on-progress="uploadprogress" :placeholder="placeholder" :show-file-list="false"
|
|
|
+ class="hc-upload-table-form"
|
|
|
+ element-loading-text="上传中..." @exceed="formUploadExceed" @success="formUploadSuccess">
|
|
|
+ <img v-if="isSrc" :src="isSrc" alt="" class="hc-table-form-img">
|
|
|
+ <div v-else class="hc-table-form-icon">点此选择文件并上传</div>
|
|
|
<div v-if="isSrc" class="hc-table-form-del">
|
|
|
- <el-button type="danger" plain @click.stop="delTableFormFile">删除当前文件</el-button>
|
|
|
+ <el-button plain type="danger" @click.stop="delTableFormFile">删除当前文件</el-button>
|
|
|
</div>
|
|
|
+ <input :id="isKeyName" v-model="isSrc" class="hc-upload-input-src" @blur="handleBlur" @focus="handleFocus"/>
|
|
|
</el-upload>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref, watch } from 'vue'
|
|
|
+import {ref, watch} from 'vue'
|
|
|
import {getTokenHeader} from '~src/api/request/header';
|
|
|
+
|
|
|
const props = defineProps({
|
|
|
src: {
|
|
|
- type: [Number,String],
|
|
|
+ type: [Number, String],
|
|
|
default: ''
|
|
|
},
|
|
|
keyname: {
|
|
|
- type: [Number,String],
|
|
|
+ type: [Number, String],
|
|
|
default: ''
|
|
|
},
|
|
|
placeholder: {
|
|
|
- type: [Number,String],
|
|
|
+ type: [Number, String],
|
|
|
default: '相片'
|
|
|
},
|
|
|
})
|
|
@@ -79,8 +85,30 @@ const formUploadExceed = () => {
|
|
|
const delTableFormFile = () => {
|
|
|
emit('del', isKeyName.value)
|
|
|
}
|
|
|
+
|
|
|
+const isFocus = ref(false)
|
|
|
+
|
|
|
+//获得焦点
|
|
|
+const handleFocus = () => {
|
|
|
+ isFocus.value = true
|
|
|
+}
|
|
|
+
|
|
|
+//失去焦点
|
|
|
+const handleBlur = () => {
|
|
|
+ isFocus.value = false
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-
|
|
|
+.hc-upload-table-form {
|
|
|
+ border-radius: 3px;
|
|
|
+ transition: box-shadow 0.3s, background-color 0.3s;
|
|
|
+ &.is-focus, &:hover {
|
|
|
+ background-color: #eddac4;
|
|
|
+ box-shadow: 0 0 0 1.5px var(--el-color-primary) inset;
|
|
|
+ }
|
|
|
+ .hc-upload-input-src {
|
|
|
+ z-index: -1;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|