|
@@ -7,15 +7,15 @@
|
|
|
list-type="picture-card"
|
|
list-type="picture-card"
|
|
|
:on-preview="preview"
|
|
:on-preview="preview"
|
|
|
:on-remove="remove"
|
|
:on-remove="remove"
|
|
|
- :data="{ type, userId: 0, location: '' }"
|
|
|
|
|
|
|
+ :data="params"
|
|
|
:on-success="uploadSuccess"
|
|
:on-success="uploadSuccess"
|
|
|
:file-list="fileList"
|
|
:file-list="fileList"
|
|
|
:disabled="disabled"
|
|
:disabled="disabled"
|
|
|
|
|
+ :on-exceed="onExceed"
|
|
|
|
|
+ :limit="limit"
|
|
|
>
|
|
>
|
|
|
- <div :class="['upload-plus-icon', `${disabled ? 'dn' : ''}`]">+</div>
|
|
|
|
|
- <div :class="['upload-text', `${disabled ? 'dn' : ''}`]">
|
|
|
|
|
- 拖拽或点击上传
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div :class="['upload-plus-icon']">+</div>
|
|
|
|
|
+ <div :class="['upload-text']">拖拽或点击上传</div>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
<el-dialog v-model="dialogVisible" title="图片预览" width="30%">
|
|
<el-dialog v-model="dialogVisible" title="图片预览" width="30%">
|
|
|
<el-image
|
|
<el-image
|
|
@@ -25,11 +25,20 @@
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
</template>
|
|
</template>
|
|
|
<script>
|
|
<script>
|
|
|
-import { defineComponent, computed, ref, onMounted } from "vue";
|
|
|
|
|
|
|
+import { defineComponent, computed, ref, onMounted, watch } from "vue";
|
|
|
|
|
+import {
|
|
|
|
|
+ ElMessage,
|
|
|
|
|
+ ElNotification,
|
|
|
|
|
+} from "_element-plus@1.1.0-beta.24@element-plus";
|
|
|
import store from "../store/index";
|
|
import store from "../store/index";
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
|
props: {
|
|
props: {
|
|
|
|
|
+ limit: {
|
|
|
|
|
+ type: Number,
|
|
|
|
|
+ default: 100,
|
|
|
|
|
+ },
|
|
|
|
|
+ params: Object,
|
|
|
actionUrl: {
|
|
actionUrl: {
|
|
|
type: String,
|
|
type: String,
|
|
|
default: store.state.uploadUrl,
|
|
default: store.state.uploadUrl,
|
|
@@ -38,7 +47,6 @@ export default defineComponent({
|
|
|
type: String,
|
|
type: String,
|
|
|
default: "上传文件",
|
|
default: "上传文件",
|
|
|
},
|
|
},
|
|
|
- type: String,
|
|
|
|
|
disabled: Boolean,
|
|
disabled: Boolean,
|
|
|
fileList: Array,
|
|
fileList: Array,
|
|
|
},
|
|
},
|
|
@@ -56,7 +64,31 @@ export default defineComponent({
|
|
|
function uploadSuccess(res, file, list) {
|
|
function uploadSuccess(res, file, list) {
|
|
|
emit("onSendFileList", list);
|
|
emit("onSendFileList", list);
|
|
|
}
|
|
}
|
|
|
- onMounted(() => {});
|
|
|
|
|
|
|
+ function onExceed(files, fileList) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: `超出文件数量限制 (最大数量:${props.limit})`,
|
|
|
|
|
+ type: "warning",
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ watch(
|
|
|
|
|
+ () => props.disabled,
|
|
|
|
|
+ (a, b) => {
|
|
|
|
|
+ changeDragVisable(!a);
|
|
|
|
|
+ }
|
|
|
|
|
+ );
|
|
|
|
|
+ function changeDragVisable(boo) {
|
|
|
|
|
+ let a = document.getElementsByClassName("el-upload-dragger");
|
|
|
|
|
+ let b = document.getElementsByClassName("el-upload--picture-card");
|
|
|
|
|
+ for (let i of a) {
|
|
|
|
|
+ i.style.display = boo ? "inline-block" : "none";
|
|
|
|
|
+ }
|
|
|
|
|
+ for (let i of b) {
|
|
|
|
|
+ i.style.display = boo ? "inline-block" : "none";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ onMounted(() => {
|
|
|
|
|
+ changeDragVisable(false);
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
preview,
|
|
preview,
|
|
@@ -65,6 +97,7 @@ export default defineComponent({
|
|
|
dialogVisible,
|
|
dialogVisible,
|
|
|
dialogImageUrl,
|
|
dialogImageUrl,
|
|
|
preview,
|
|
preview,
|
|
|
|
|
+ onExceed,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
@@ -85,4 +118,7 @@ export default defineComponent({
|
|
|
.dn {
|
|
.dn {
|
|
|
display: none;
|
|
display: none;
|
|
|
}
|
|
}
|
|
|
|
|
+:deep().el-upload-dragger {
|
|
|
|
|
+ height: 148px !important;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|