|
|
@@ -1,4 +1,12 @@
|
|
|
<template>
|
|
|
+ <!-- 搜索框入口 -->
|
|
|
+ <wd-search
|
|
|
+ :placeholder="searchPlaceholder"
|
|
|
+ :hide-cancel="true"
|
|
|
+ disabled
|
|
|
+ @click="visible = true"
|
|
|
+ />
|
|
|
+
|
|
|
<wd-popup
|
|
|
v-model="visible"
|
|
|
position="top"
|
|
|
@@ -62,7 +70,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { computed, reactive, watch } from 'vue'
|
|
|
+import { computed, reactive, ref, watch } from 'vue'
|
|
|
|
|
|
/** 搜索表单数据 */
|
|
|
export interface SearchFormData {
|
|
|
@@ -72,19 +80,30 @@ export interface SearchFormData {
|
|
|
}
|
|
|
|
|
|
const props = defineProps<{
|
|
|
- modelValue: boolean
|
|
|
searchParams?: Partial<SearchFormData> // 初始搜索参数
|
|
|
}>()
|
|
|
|
|
|
const emit = defineEmits<{
|
|
|
- 'update:modelValue': [value: boolean]
|
|
|
'search': [data: SearchFormData]
|
|
|
'reset': []
|
|
|
}>()
|
|
|
|
|
|
-const visible = computed({
|
|
|
- get: () => props.modelValue,
|
|
|
- set: (val: boolean) => emit('update:modelValue', val),
|
|
|
+const visible = ref(false)
|
|
|
+
|
|
|
+/** 搜索条件 placeholder 拼接 */
|
|
|
+const searchPlaceholder = computed(() => {
|
|
|
+ const conditions: string[] = []
|
|
|
+ if (props.searchParams?.userId) {
|
|
|
+ conditions.push(`用户编号:${props.searchParams.userId}`)
|
|
|
+ }
|
|
|
+ if (props.searchParams?.applicationName) {
|
|
|
+ conditions.push(`应用名:${props.searchParams.applicationName}`)
|
|
|
+ }
|
|
|
+ if (props.searchParams?.processStatus !== undefined && props.searchParams?.processStatus !== -1) {
|
|
|
+ const statusMap: Record<number, string> = { 0: '未处理', 1: '已处理', 2: '已忽略' }
|
|
|
+ conditions.push(`状态:${statusMap[props.searchParams.processStatus]}`)
|
|
|
+ }
|
|
|
+ return conditions.length > 0 ? conditions.join(' | ') : '搜索日志'
|
|
|
})
|
|
|
|
|
|
const formData = reactive<SearchFormData>({
|
|
|
@@ -94,7 +113,7 @@ const formData = reactive<SearchFormData>({
|
|
|
})
|
|
|
|
|
|
/** 监听弹窗打开,同步外部参数 */
|
|
|
-watch(() => props.modelValue, (val) => {
|
|
|
+watch(visible, (val) => {
|
|
|
if (val && props.searchParams) {
|
|
|
formData.userId = props.searchParams.userId
|
|
|
formData.applicationName = props.searchParams.applicationName
|