Skip to content

Commit bb02444

Browse files
committed
new: 【商城装修】导航栏中的搜索框添加更多功能属性
1 parent f5feea6 commit bb02444

File tree

3 files changed

+42
-3
lines changed

3 files changed

+42
-3
lines changed

src/components/DiyEditor/components/mobile/NavigationBar/components/CellProperty.vue

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<template v-for="(cell, cellIndex) in cellList" :key="cellIndex">
1414
<template v-if="selectedHotAreaIndex === cellIndex">
1515
<el-form-item :prop="`cell[${cellIndex}].type`" label="类型">
16-
<el-radio-group v-model="cell.type">
16+
<el-radio-group v-model="cell.type" @change="handleHotAreaSelected(cell, cellIndex)">
1717
<el-radio value="text">文字</el-radio>
1818
<el-radio value="image">图片</el-radio>
1919
<el-radio value="search">搜索框</el-radio>
@@ -44,9 +44,32 @@
4444
</template>
4545
<!-- 3. 搜索框 -->
4646
<template v-else>
47+
<el-form-item label="框体颜色" prop="backgroundColor">
48+
<ColorInput v-model="cell.backgroundColor" />
49+
</el-form-item>
50+
<el-form-item class="lef" label="文本颜色" prop="textColor">
51+
<ColorInput v-model="cell.textColor" />
52+
</el-form-item>
4753
<el-form-item :prop="`cell[${cellIndex}].placeholder`" label="提示文字">
4854
<el-input v-model="cell.placeholder" maxlength="10" show-word-limit />
4955
</el-form-item>
56+
<el-form-item label="文本位置" prop="placeholderPosition">
57+
<el-radio-group v-model="cell!.placeholderPosition">
58+
<el-tooltip content="居左" placement="top">
59+
<el-radio-button value="left">
60+
<Icon icon="ant-design:align-left-outlined" />
61+
</el-radio-button>
62+
</el-tooltip>
63+
<el-tooltip content="居中" placement="top">
64+
<el-radio-button value="center">
65+
<Icon icon="ant-design:align-center-outlined" />
66+
</el-radio-button>
67+
</el-tooltip>
68+
</el-radio-group>
69+
</el-form-item>
70+
<el-form-item label="扫一扫" prop="showScan">
71+
<el-switch v-model="cell!.showScan" />
72+
</el-form-item>
5073
<el-form-item :prop="`cell[${cellIndex}].borderRadius`" label="圆角">
5174
<el-slider
5275
v-model="cell.borderRadius"
@@ -88,10 +111,17 @@ const cellCount = computed(() => (props.isMp ? 6 : 8))
88111
const selectedHotAreaIndex = ref(0)
89112
const handleHotAreaSelected = (cellValue: NavigationBarCellProperty, index: number) => {
90113
selectedHotAreaIndex.value = index
114+
// 默认设置为选中文字,并设置属性
91115
if (!cellValue.type) {
92116
cellValue.type = 'text'
93117
cellValue.textColor = '#111111'
94118
}
119+
// 如果点击的是搜索框,则初始化搜索框的属性
120+
if (cellValue.type === 'search') {
121+
cellValue.placeholderPosition = 'left'
122+
cellValue.backgroundColor = '#EEEEEE'
123+
cellValue.textColor = '#969799'
124+
}
95125
}
96126
</script>
97127

src/components/DiyEditor/components/mobile/NavigationBar/config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,14 @@ export interface NavigationBarCellProperty {
4545
imgUrl: string
4646
// 图片链接
4747
url: string
48+
// 搜索框:框体颜色
49+
backgroundColor: string
4850
// 搜索框:提示文字
4951
placeholder: string
52+
// 搜索框:提示文字位置
53+
placeholderPosition: string
54+
// 搜索框:是否显示扫一扫
55+
showScan: boolean
5056
// 搜索框:边框圆角半径
5157
borderRadius: number
5258
}

src/components/DiyEditor/components/mobile/NavigationBar/index.vue

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,12 @@ const getCellStyle = (cell: NavigationBarCellProperty) => {
5454
const getSearchProp = computed(() => (cell: NavigationBarCellProperty) => {
5555
return {
5656
height: 30,
57-
showScan: false,
57+
backgroundColor: cell.backgroundColor,
58+
showScan: cell.showScan,
5859
placeholder: cell.placeholder,
59-
borderRadius: cell.borderRadius
60+
borderRadius: cell.borderRadius,
61+
textColor: cell.textColor,
62+
placeholderPosition: cell.placeholderPosition
6063
} as SearchProperty
6164
})
6265
</script>

0 commit comments

Comments
 (0)