From f88e7a620e88939022c83e3ed7cf5374bac35e69 Mon Sep 17 00:00:00 2001 From: kadycui Date: Sun, 24 Sep 2023 10:50:41 +0800 Subject: [PATCH] =?UTF-8?q?ADD:=20=E8=BD=AE=E6=92=AD=E5=9B=BE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChooseImage.vue | 23 +++++++++++++++++++---- src/components/ImageMain.vue | 11 +++++++---- src/pages/goods/banners.vue | 2 +- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/components/ChooseImage.vue b/src/components/ChooseImage.vue index fec56b8..aa71e4d 100644 --- a/src/components/ChooseImage.vue +++ b/src/components/ChooseImage.vue @@ -31,7 +31,7 @@ - + @@ -49,6 +49,7 @@ import { ref } from "vue" import ImageAside from '@/components/ImageAside.vue' import ImageMain from '@/components/ImageMain.vue' +import { toast } from '@/composables/util' const dialogVisible = ref(false) @@ -68,7 +69,12 @@ const handleOpenUpdate = () => ImageMainRef.value.openUpdateFile() const props = defineProps({ - modelValue: [String, Array] + modelValue: [String, Array], + limit:{ + type:Number, + default:1 + } + }) const emit = defineEmits(["update:modelValue"]) @@ -81,8 +87,17 @@ const handleChoose = (e) => { const submit = () => { - if (urls.length) { - emit("update:modelValue", urls[0]) + let value = [] + if(props.limit == 1){ + value = urls[0] + } else{ + value = [...props.modelValue, ...urls] + if(value.length > props.limit){ + return toast("最多还能选择" + (props.limit - props.modelValue.length) + "张") + } + } + if (value.length) { + emit("update:modelValue", value) } close() } diff --git a/src/components/ImageMain.vue b/src/components/ImageMain.vue index 2741f6f..a5e500c 100644 --- a/src/components/ImageMain.vue +++ b/src/components/ImageMain.vue @@ -22,7 +22,6 @@ 删除 - @@ -142,10 +141,14 @@ const handleDelete = (id) => { const handleUploadSuccess = ()=>getData(1) -defineProps({ +const props = defineProps({ openChoose:{ type:Boolean, default:false + }, + limit:{ + type:Number, + default:1 } }) @@ -155,9 +158,9 @@ const emit = defineEmits(["choose"]) const checkedImage = computed(()=>list.value.filter(o=>o.checked)) const handleChooseChange = (item) =>{ - if(item.checked && checkedImage.value.length > 1){ + if(item.checked && checkedImage.value.length > props.limit){ item.checked = false - return toast('最多只能选中一张', 'error') + return toast(`最多只能选中${props.limit}张`, 'error') } emit("choose",checkedImage.value) diff --git a/src/pages/goods/banners.vue b/src/pages/goods/banners.vue index 608c3fc..424ba4a 100644 --- a/src/pages/goods/banners.vue +++ b/src/pages/goods/banners.vue @@ -4,7 +4,7 @@ - + 提交 -- GitLab