From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/components/DiyEditor/components/mobile/SearchBar/property.vue | 87 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 87 insertions(+), 0 deletions(-)
diff --git a/src/components/DiyEditor/components/mobile/SearchBar/property.vue b/src/components/DiyEditor/components/mobile/SearchBar/property.vue
new file mode 100644
index 0000000..73aeeef
--- /dev/null
+++ b/src/components/DiyEditor/components/mobile/SearchBar/property.vue
@@ -0,0 +1,87 @@
+<template>
+ <ComponentContainerProperty v-model="formData.style">
+ <!-- 琛ㄥ崟 -->
+ <el-form label-width="80px" :model="formData" class="m-t-8px">
+ <el-card header="鎼滅储鐑瘝" class="property-group" shadow="never">
+ <Draggable v-model="formData.hotKeywords" :empty-item="''" :min="0">
+ <template #default="{ index }">
+ <el-input v-model="formData.hotKeywords[index]" placeholder="璇疯緭鍏ョ儹璇�" />
+ </template>
+ </Draggable>
+ </el-card>
+ <el-card header="鎼滅储鏍峰紡" class="property-group" shadow="never">
+ <el-form-item label="妗嗕綋鏍峰紡">
+ <el-radio-group v-model="formData!.borderRadius">
+ <el-tooltip content="鏂瑰舰" placement="top">
+ <el-radio-button :value="0">
+ <Icon icon="tabler:input-search" />
+ </el-radio-button>
+ </el-tooltip>
+ <el-tooltip content="鍦嗗舰" placement="top">
+ <el-radio-button :value="10">
+ <Icon icon="iconoir:input-search" />
+ </el-radio-button>
+ </el-tooltip>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鎻愮ず鏂囧瓧" prop="placeholder">
+ <el-input v-model="formData.placeholder" />
+ </el-form-item>
+ <el-form-item label="鏂囨湰浣嶇疆" prop="placeholderPosition">
+ <el-radio-group v-model="formData!.placeholderPosition">
+ <el-tooltip content="灞呭乏" placement="top">
+ <el-radio-button value="left">
+ <Icon icon="ant-design:align-left-outlined" />
+ </el-radio-button>
+ </el-tooltip>
+ <el-tooltip content="灞呬腑" placement="top">
+ <el-radio-button value="center">
+ <Icon icon="ant-design:align-center-outlined" />
+ </el-radio-button>
+ </el-tooltip>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鎵竴鎵�" prop="showScan">
+ <el-switch v-model="formData!.showScan" />
+ </el-form-item>
+ <el-form-item label="妗嗕綋楂樺害" prop="height">
+ <el-slider v-model="formData!.height" :max="50" :min="28" show-input input-size="small" />
+ </el-form-item>
+ <el-form-item label="妗嗕綋棰滆壊" prop="backgroundColor">
+ <ColorInput v-model="formData.backgroundColor" />
+ </el-form-item>
+ <el-form-item class="lef" label="鏂囨湰棰滆壊" prop="textColor">
+ <ColorInput v-model="formData.textColor" />
+ </el-form-item>
+ </el-card>
+ </el-form>
+ </ComponentContainerProperty>
+</template>
+
+<script setup lang="ts">
+import { useVModel } from '@vueuse/core'
+import { SearchProperty } from '@/components/DiyEditor/components/mobile/SearchBar/config'
+import { isString } from '@/utils/is'
+
+/** 鎼滅储妗嗗睘鎬ч潰鏉� */
+defineOptions({ name: 'SearchProperty' })
+
+const props = defineProps<{ modelValue: SearchProperty }>()
+const emit = defineEmits(['update:modelValue'])
+const formData = useVModel(props, 'modelValue', emit)
+
+// 鐩戝惉鐑瘝鏁扮粍鍙樺寲
+watch(
+ () => formData.value.hotKeywords,
+ (newVal) => {
+ // 鎵惧埌闈炲瓧绗︿覆椤圭殑绱㈠紩
+ const nonStringIndex = newVal.findIndex((item) => !isString(item))
+ if (nonStringIndex !== -1) {
+ formData.value.hotKeywords[nonStringIndex] = ''
+ }
+ },
+ { deep: true, flush: 'post' }
+)
+</script>
+
+<style scoped lang="scss"></style>
--
Gitblit v1.8.0