diff --git a/frontend/src/components/widget/deWidget/DeSelectGrid.vue b/frontend/src/components/widget/deWidget/DeSelectGrid.vue index 7faf24fba5..5fa5cd6bc8 100644 --- a/frontend/src/components/widget/deWidget/DeSelectGrid.vue +++ b/frontend/src/components/widget/deWidget/DeSelectGrid.vue @@ -71,7 +71,7 @@ import { linkMultFieldValues, multFieldValues } from '@/api/dataset/dataset' import { getLinkToken, getToken } from '@/utils/auth' import bus from '@/utils/bus' -import { isSameVueObj } from '@/utils' +import { isSameVueObj, mergeCustomSortOption } from '@/utils' import { attrsMap, styleAttrs, textSelectGridWidget } from '@/components/widget/deWidget/serviceNameFn.js' export default { @@ -142,6 +142,9 @@ export default { cssArr() { const { brColor, wordColor, innerBgColor } = this.element.style return { brColor, wordColor, innerBgColor } + }, + isCustomSortWidget() { + return this.element.serviceName === 'textSelectGridWidget' } }, watch: { @@ -354,7 +357,11 @@ export default { }, optionData(data) { if (!data) return null - return data.filter(item => !!item).map(item => { + let tempData = data.filter(item => !!item) + if (this.isCustomSortWidget && this.element.options.attrs?.sort?.sort === 'custom') { + tempData = mergeCustomSortOption(this.element.options.attrs.sort.list, tempData) + } + return tempData.map(item => { return { id: item, text: item diff --git a/frontend/src/components/widget/serviceImpl/TextSelectGridServiceImpl.js b/frontend/src/components/widget/serviceImpl/TextSelectGridServiceImpl.js index 1014d2b17d..2a04dbc96b 100644 --- a/frontend/src/components/widget/serviceImpl/TextSelectGridServiceImpl.js +++ b/frontend/src/components/widget/serviceImpl/TextSelectGridServiceImpl.js @@ -96,6 +96,9 @@ class TextSelectGridServiceImpl extends WidgetService { isSortWidget() { return true } + isCustomSortWidget() { + return true + } fillValueDerfault(element) { const defaultV = element.options.value === null ? '' : element.options.value.toString() if (element.options.attrs.multiple) {