+
+
visible = true">选择图标
@@ -91,7 +93,9 @@
const currentIcon = ref()
const props = defineProps({
- modelValue: { type: String }
+ modelValue: { type: String },
+ type: { type: String, default: 'select' },
+ preview: { type: Boolean, default: true },
})
const emit = defineEmits(['update:modelValue'])
diff --git a/src/components/ma-resource/button.vue b/src/components/ma-resource/button.vue
index a978fec43b3db2a9743502d5a876e1ca750cee5e..73edccf3ff5c996523ed9d27cf30745cdce62da7 100644
--- a/src/components/ma-resource/button.vue
+++ b/src/components/ma-resource/button.vue
@@ -30,7 +30,7 @@
资源选择器
-
+
@@ -48,7 +48,7 @@
const props = defineProps({
modelValue: { type: [ String, Array ] },
multiple: { type: Boolean, default: true },
- onlyUrl: { type: Boolean, default: true },
+ onlyData: { type: Boolean, default: true },
width: { type: Number, default: 1080 },
})
diff --git a/src/components/ma-resource/index.vue b/src/components/ma-resource/index.vue
index cc19b9dd414a0a6d5941f0361cbea8f5fd7edafc..28a1ed0ab3ccef98d6d58b302d4ebe887446e60c 100644
--- a/src/components/ma-resource/index.vue
+++ b/src/components/ma-resource/index.vue
@@ -117,7 +117,8 @@
const props = defineProps({
modelValue: { type: [ String, Array ] },
multiple: { type: Boolean, default: true },
- onlyUrl: { type: Boolean, default: true }
+ onlyData: { type: Boolean, default: true },
+ returnType: { type: String, default: 'url'},
})
onMounted(async () => {
@@ -165,8 +166,8 @@
const selectFile = (item, index) => {
if ( ! props.multiple && selecteds.value ) {
- if (props.onlyUrl && item.url != selecteds.value) return
- if (! props.onlyUrl && item.id != selecteds.value.id) return
+ if (props.onlyData && item.url != selecteds.value) return
+ if (! props.onlyData && item.id != selecteds.value.id) return
}
const children = rl.value.children
@@ -178,8 +179,8 @@
children[index].className = className
if (props.multiple) {
selecteds.value.map((file, idx) => {
- if (props.onlyUrl && file == item.url) selecteds.value.splice(idx, 1)
- if (! props.onlyUrl && file.id == item.id) selecteds.value.splice(idx, 1)
+ if (props.onlyData && file == item.url) selecteds.value.splice(idx, 1)
+ if (! props.onlyData && file.id == item.id) selecteds.value.splice(idx, 1)
})
} else {
selecteds.value = ''
@@ -187,9 +188,9 @@
} else {
children[index].className = className + ' active'
if (props.multiple) {
- selecteds.value.push(props.onlyUrl ? item?.url : item)
+ selecteds.value.push(props.onlyData ? item[props.returnType] : item)
} else {
- selecteds.value = props.onlyUrl ? item?.url : item
+ selecteds.value = props.onlyData ? item[props.returnType] : item
}
}
}
diff --git a/src/components/ma-upload/index.vue b/src/components/ma-upload/index.vue
index 16493f4f4d2ed4da6155d7b416c52cd3c94e69b3..e4858325cb9fd3f7b5dde3917e915a28342fa6b9 100644
--- a/src/components/ma-upload/index.vue
+++ b/src/components/ma-upload/index.vue
@@ -225,7 +225,8 @@ const props = defineProps({
tip: { type: String, default: undefined },
type: { type: String, default: 'image' },
accept: { type: String, default: '*' },
- onlyUrl: { type: Boolean, default: true },
+ onlyData: { type: Boolean, default: true },
+ returnType: { type: String, default: 'url' },
fileType: { type: String, default: 'button' },
showList: { type: Boolean, default: true },
})
@@ -319,7 +320,7 @@ const uploadImageHandler = async (options) => {
if (result) {
result.url = tool.attachUrl(result.url, storageMode[result.storage_mode])
if (! props.multiple) {
- fileList.value = props.onlyUrl ? result.url : result
+ fileList.value = props.onlyData ? result[props.returnType] : result
emit('update:modelValue', fileList.value)
currentItem.value.percent = 99
setTimeout(() => {
@@ -338,7 +339,7 @@ const uploadImageHandler = async (options) => {
}, 1200)
let files = []
fileList.value.map(item => {
- files.push(props.onlyUrl ? item.url : item)
+ files.push(props.onlyData ? item[props.returnType] : item)
})
emit('update:modelValue', files)
}
@@ -360,12 +361,12 @@ const uploadFileHandler = async (options) => {
let files = []
fileList.value.push(res)
fileList.value.map(item => {
- files.push(props.onlyUrl && item.url ? item.url : item)
+ files.push(props.onlyData && item[props.returnType] ? item[props.returnType] : item)
})
emit('update:modelValue', files)
} else {
fileList.value = res
- emit('update:modelValue', props.onlyUrl && res.url ? res.url : res)
+ emit('update:modelValue', props.onlyData && res[props.returnType] ? res[props.returnType] : res)
}
})
}
@@ -410,12 +411,12 @@ const chunkUpload = async (options) => {
fileList.value[idx].res = res.data
const files = []
fileList.value.map(item => {
- item.percent === 1 && files.push(props.onlyUrl ? item.res.url : item.res)
+ item.percent === 1 && files.push(props.onlyData ? item.res[props.returnType] : item.res)
})
emit('update:modelValue', files)
} else {
fileList.value.percent = 1
- emit('update:modelValue', props.onlyUrl ? res.data.url : res.data)
+ emit('update:modelValue', props.onlyData ? res.data[props.returnType] : res.data)
}
return
}
@@ -469,7 +470,7 @@ const removeChunkFile = (file = null) => {
if (file.uid === item.uid) {
fileList.value.splice(idx, 1)
} else if (item.res) {
- files.push(props.onlyUrl ? item.res.url : item.res)
+ files.push(props.onlyData ? item.res[props.returnType] : item.res)
}
})
emit('update:modelValue', files)
@@ -487,7 +488,7 @@ const removeFile = async (fileItem) => {
if (item.uid === fileItem.uid) fileList.value.splice(idx, 1)
})
fileList.value.map( item => {
- files.push(props.onlyUrl && item.url ? item.url : item)
+ files.push(props.onlyData && item[props.returnType] ? item[props.returnType] : item)
})
emit('update:modelValue', files)
return true
diff --git a/src/components/ma-verifyCode/index.vue b/src/components/ma-verifyCode/index.vue
index b18208f4af17cdd45d8fed8cf39b06e6253a1107..7cbf559ceb119af2004ad7f91b924eb29b860eef 100644
--- a/src/components/ma-verifyCode/index.vue
+++ b/src/components/ma-verifyCode/index.vue
@@ -8,7 +8,7 @@
- @Link https://gitee.com/xmo/mineadmin-vue
-->
+
+
\ No newline at end of file
diff --git a/src/layout/components/components/message-notification.vue b/src/layout/components/components/message-notification.vue
index 9f0983ecbc73b594e47bec619a20c7dce3dc1f53..9184304b90172b3be1d0c1c37eadf2e720430b79 100644
--- a/src/layout/components/components/message-notification.vue
+++ b/src/layout/components/components/message-notification.vue
@@ -71,7 +71,7 @@ const viewMessage = async (record) => {
row.value = record
await queueMessage.updateReadStatus({ ids: [record.id] })
messageStore.messageList.find( (item, idx) => {
- if (record.id == item.id) messageStore.messageList.splice(idx, 1)
+ if (item && record.id == item.id) messageStore.messageList.splice(idx, 1)
})
detailVisible.value = true
}
diff --git a/src/layout/components/components/sub-menu.vue b/src/layout/components/components/sub-menu.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b78dd11545d19a05a65eab67877e5fcf5e752dad
--- /dev/null
+++ b/src/layout/components/components/sub-menu.vue
@@ -0,0 +1,57 @@
+
+