feat(查询组件): 查询组件 placeholder 内容支持设置 #11881

This commit is contained in:
dataeaseShu 2024-10-08 10:16:05 +08:00
parent 0eb78ab7ad
commit 09050c2958
6 changed files with 53 additions and 21 deletions

View File

@ -65,7 +65,6 @@ const canEdit = ref(false)
const queryConfig = ref() const queryConfig = ref()
const defaultStyle = { const defaultStyle = {
border: '', border: '',
placeholder: '请选择',
placeholderSize: 14, placeholderSize: 14,
placeholderShow: true, placeholderShow: true,
background: '', background: '',
@ -168,7 +167,6 @@ const setCustomStyle = val => {
queryConditionSpacing, queryConditionSpacing,
labelColorBtn, labelColorBtn,
btnColor, btnColor,
placeholder,
placeholderSize, placeholderSize,
placeholderShow, placeholderShow,
labelShow labelShow
@ -185,7 +183,6 @@ const setCustomStyle = val => {
`${customStyle.placeholderSize + 18}px` `${customStyle.placeholderSize + 18}px`
) )
}) })
customStyle.placeholder = placeholder ?? '请选择'
customStyle.titleShow = titleShow customStyle.titleShow = titleShow
customStyle.titleColor = titleColor customStyle.titleColor = titleColor
customStyle.labelColor = labelShow ? labelColor || '' : '' customStyle.labelColor = labelShow ? labelColor || '' : ''
@ -310,7 +307,6 @@ const getCascadeList = () => {
const getPlaceholder = computed(() => { const getPlaceholder = computed(() => {
return { return {
placeholder: customStyle.placeholder,
placeholderShow: customStyle.placeholderShow placeholderShow: customStyle.placeholderShow
} }
}) })

View File

@ -25,6 +25,7 @@ interface SelectConfig {
displayType: string displayType: string
showEmpty: boolean showEmpty: boolean
id: string id: string
placeholder: string
resultMode: number resultMode: number
displayId: string displayId: string
sort: string sort: string
@ -83,7 +84,7 @@ const setCascadeDefault = inject('set-cascade-default', Function, true)
const placeholderText = computed(() => { const placeholderText = computed(() => {
if (placeholder.value.placeholderShow) { if (placeholder.value.placeholderShow) {
return placeholder.value.placeholder return props.config.placeholder
} }
return ' ' return ' '
}) })

View File

@ -25,6 +25,7 @@ interface SelectConfig {
timeGranularity: DatePickType timeGranularity: DatePickType
timeGranularityMultiple: DatePickType timeGranularityMultiple: DatePickType
timeRange: TimeRange timeRange: TimeRange
placeholder: string
setTimeRange: boolean setTimeRange: boolean
} }
@ -65,7 +66,7 @@ const props = defineProps({
const placeholder: Ref = inject('placeholder') const placeholder: Ref = inject('placeholder')
const placeholderText = computed(() => { const placeholderText = computed(() => {
if (placeholder.value.placeholderShow) { if (placeholder.value.placeholderShow) {
return placeholder.value.placeholder return props.config.placeholder
} }
return ' ' return ' '
}) })

View File

@ -21,6 +21,7 @@ interface SelectConfig {
checkedFieldsMap: object checkedFieldsMap: object
displayType: string displayType: string
id: string id: string
placeholder: string
checkedFields: string[] checkedFields: string[]
treeFieldList: Array<any> treeFieldList: Array<any>
dataset: { dataset: {
@ -58,7 +59,7 @@ const props = defineProps({
const placeholder: Ref = inject('placeholder') const placeholder: Ref = inject('placeholder')
const placeholderText = computed(() => { const placeholderText = computed(() => {
if (placeholder.value.placeholderShow) { if (placeholder.value.placeholderShow) {
return placeholder.value.placeholder return props.config.placeholder
} }
return ' ' return ' '
}) })

View File

@ -482,7 +482,6 @@ export const dvMainStore = defineStore('dataVisualization', {
fontStyleBtn: '', fontStyleBtn: '',
queryConditionWidth: 227, queryConditionWidth: 227,
nameboxSpacing: 8, nameboxSpacing: 8,
placeholder: '请选择',
placeholderShow: true, placeholderShow: true,
placeholderSize: 14, placeholderSize: 14,
queryConditionSpacing: 16, queryConditionSpacing: 16,

View File

@ -61,6 +61,23 @@ watch(
} }
) )
const currentPlaceholder = ref()
const currentSearch = ref({
placeholder: ''
})
const handleCurrentPlaceholder = val => {
const obj = props.element.propValue.find(ele => {
return ele.id === val
}) || {
placeholder: ''
}
if (obj.placeholder === undefined) {
obj.placeholder = ''
}
currentSearch.value = obj
}
const init = () => { const init = () => {
state.commonBackground = cloneDeep(props.commonBackgroundPop) state.commonBackground = cloneDeep(props.commonBackgroundPop)
if (state.commonBackground['outerImage']) { if (state.commonBackground['outerImage']) {
@ -142,10 +159,13 @@ if (!chart.value.customStyle.component.hasOwnProperty('placeholderShow')) {
chart.value.customStyle.component = { chart.value.customStyle.component = {
...chart.value.customStyle.component, ...chart.value.customStyle.component,
placeholderShow: true, placeholderShow: true,
placeholder: '请选择',
placeholderSize: 14 placeholderSize: 14
} }
} }
if (props.element.propValue.length) {
handleCurrentPlaceholder(props.element.propValue[0].id)
}
</script> </script>
<template> <template>
@ -337,18 +357,6 @@ if (!chart.value.customStyle.component.hasOwnProperty('placeholderShow')) {
提示词 提示词
</el-checkbox> </el-checkbox>
</el-form-item> </el-form-item>
<el-form-item
label="提示词"
class="form-item"
style="padding-left: 20px"
:class="'form-item-' + themes"
>
<el-input
:effect="themes"
:disabled="!chart.customStyle.component.placeholderShow"
v-model.lazy="chart.customStyle.component.placeholder"
/>
</el-form-item>
<el-form-item <el-form-item
label="文本" label="文本"
class="form-item" class="form-item"
@ -374,6 +382,32 @@ if (!chart.value.customStyle.component.hasOwnProperty('placeholderShow')) {
controls-position="right" controls-position="right"
/> />
</div> </div>
<div style="display: flex; align-items: center; width: 100%; margin-top: 8px">
<el-select
v-model="currentPlaceholder"
@change="handleCurrentPlaceholder"
style="width: 100%"
>
<el-option
v-for="item in element.propValue.filter(ele => ele.displayType !== '8')"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</div>
</el-form-item>
<el-form-item
label="提示词"
class="form-item"
style="padding-left: 20px"
:class="'form-item-' + themes"
>
<el-input
:effect="themes"
:disabled="!chart.customStyle.component.placeholderShow || !currentPlaceholder"
v-model.lazy="currentSearch.placeholder"
/>
</el-form-item> </el-form-item>
<el-form-item class="form-item margin-bottom-8" :class="'form-item-' + themes"> <el-form-item class="form-item margin-bottom-8" :class="'form-item-' + themes">
<el-checkbox <el-checkbox