From 3b03f87a02458f719e2eb4bf112a13441b427d14 Mon Sep 17 00:00:00 2001
From: ‘chensiAb’ <‘chenchenco03@163.com’>
Date: Tue, 25 Mar 2025 13:54:34 +0800
Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components

---
 _cursor.ai/plugins.doc/filter.doc/CFilter.doc.md |  132 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 132 insertions(+), 0 deletions(-)

diff --git a/_cursor.ai/plugins.doc/filter.doc/CFilter.doc.md b/_cursor.ai/plugins.doc/filter.doc/CFilter.doc.md
new file mode 100644
index 0000000..f2c67ad
--- /dev/null
+++ b/_cursor.ai/plugins.doc/filter.doc/CFilter.doc.md
@@ -0,0 +1,132 @@
+# CFilter 筛选组件
+
+## 功能说明
+
+该组件用于实现页面筛选功能,包含顶部筛选条和展开的更多筛选抽屉,支持多种筛选控件类型,包括选择器、日期范围、单选和输入框等。
+
+## 引用方式
+
+```js
+import { CFilter } from '@components/plugins/filter';
+```
+
+## 组件参数
+
+- `filterData` (Object,默认值:{}):筛选数据对象
+- `bar` (Object,默认值:{}):筛选横条项目配置
+  - `type` (String):控件类型,可选值有 'select'、'dateRange'、'input'
+  - `label` (String):显示的标签
+  - `name` (String):字段名称
+  - `cancelable` (Boolean):是否可取消选择,仅对select类型有效
+- `items` (Array,默认值:[]):筛选展开层项目列表配置
+  - 每项格式同bar,但type可选值多一个'radio'
+- `selectOptions` (Object,默认值:{}):各个项目的选项列表
+  - 格式为 `{ 字段名: [{label: '显示文本', value: '值'}] }`
+- `onChange` (Function,必填):筛选变化时的回调函数
+  - 参数:`filterData` (Object) 变更后的筛选数据对象
+
+## 实例方法
+
+组件没有对外暴露的实例方法
+
+## 使用示例
+
+### 基础用法
+
+```html
+<template>
+  <view class="page">
+    <CFilter
+      :filterData="filterData"
+      :bar="barConfig"
+      :items="itemsConfig"
+      :selectOptions="selectOptions"
+      :onChange="handleFilterChange"
+    />
+    
+    <!-- 列表内容 -->
+    <view class="list">
+      <!-- 根据筛选结果显示内容 -->
+    </view>
+  </view>
+</template>
+
+<script>
+import { CFilter } from '@components/plugins/filter';
+
+export default {
+  components: {
+    CFilter
+  },
+  data() {
+    return {
+      // 筛选数据
+      filterData: {
+        status: 1,
+        memberType: '',
+        dateRange: '',
+        keyword: ''
+      },
+      // 顶部筛选条配置
+      barConfig: {
+        type: 'select',
+        label: '状态',
+        name: 'status',
+        cancelable: false
+      },
+      // 更多筛选项配置
+      itemsConfig: [
+        {
+          type: 'select',
+          label: '会员类型',
+          name: 'memberType'
+        },
+        {
+          type: 'dateRange',
+          label: '创建日期',
+          name: 'dateRange'
+        },
+        {
+          type: 'input',
+          label: '关键字',
+          name: 'keyword'
+        }
+      ],
+      // 选项数据
+      selectOptions: {
+        status: [
+          { label: '全部', value: '' },
+          { label: '正常', value: 1 },
+          { label: '停用', value: 0 }
+        ],
+        memberType: [
+          { label: '全部', value: '' },
+          { label: '普通会员', value: 'normal' },
+          { label: 'VIP会员', value: 'vip' }
+        ]
+      }
+    }
+  },
+  methods: {
+    // 筛选变化回调
+    handleFilterChange(filterData) {
+      console.log('筛选条件变化:', filterData);
+      // 根据筛选条件获取数据
+      this.getListData(filterData);
+    },
+    
+    // 获取列表数据
+    getListData(params) {
+      // 请求数据
+    }
+  }
+}
+</script>
+```
+
+## 注意事项
+
+- 筛选条(bar)只能配置一个筛选项
+- 抽屉式筛选(items)可以配置多个筛选项
+- 每个筛选项的类型(type)必须与组件类型匹配
+- select和radio类型的选项必须在selectOptions中配置对应的选项数据 
\ No newline at end of file

--
Gitblit v1.9.1