diff --git a/README.md b/README.md index bbc8da20..e5d94723 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ import '@wocwin/t-ui-plus/lib/style.css' | TCheckbox | [多选组件](https://wocwin.github.io/t-ui-plus/components/TCheckbox/base.html?_blank) | | TChart | [图表组件](https://wocwin.github.io/t-ui-plus/components/TChart/base.html?_blank) | | TTabs | [标签页组件](https://wocwin.github.io/t-ui-plus/components/TTabs/base.html?_blank) | +| TSelectIcon | [图标选择组件](https://wocwin.github.io/t-ui-plus/components/TSelectIcon/base.html?_blank) | ## Use CDN in Project(暂不支持) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 8dcd4beb..9e77bdc0 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -48,7 +48,8 @@ export default defineConfig({ { text: "多选框组组件", link: "/components/TCheckbox/base.md" }, { text: "日期组件", link: "/components/TDatePicker/base.md" }, { text: "Tabs组件", link: "/components/TTabs/base.md" }, - { text: "步骤组件", link: "/components/TStepWizard/base.md" } + { text: "步骤组件", link: "/components/TStepWizard/base.md" }, + { text: "图标选择组件", link: "/components/TSelectIcon/base.md" }, ] }, { diff --git a/docs/components/TForm/base.md b/docs/components/TForm/base.md index 070e4385..341263d0 100644 --- a/docs/components/TForm/base.md +++ b/docs/components/TForm/base.md @@ -94,44 +94,44 @@ TForm/isHideItem ### 2. 配置参数 -| 参数 | 说明 | 类型 | 默认值 | -| :------------------ | :--------------------------------------------------------------------------------------------------------------- | :---------------- | :----- | -| className | 自定义类名 | String | - | -| labelPosition | 改变表单项 label 与输入框的布局方式(`right,left,top`) | String | '' | -| widthSize | 每行显示几个输入项(默认两项) 最大值 6 | Number | 2 | -| isTrim | 全局是否开启清除前后空格(comp 为 el-input 且 type 不等于'password') | Boolean | true | -| formOpts | 表单配置项 | Object | - | -| ---ref | 当前TForm实例 | Object | - | -| ---labelPosition | 改变表单项 label 与输入框的布局方式(默认:right) /top (优先展示组件`labelPosition`) | String | right | -| ---listTypeInfo | 下拉选择数据源(type:'select'有效) | Object | - | -| ---fieldList | form 表单每项 list | Array | - | -| ------isHideItem | 某一项不显示 | Boolean | false | -| ------slotName | 自定义表单某一项输入框 | slot | - | -| ------childSlotName | 自定义表单某一下拉选择项子组件插槽(el-option) | slot | - | -| ------comp | 表单每一项组件名称(可使用第三方 UI 如 el-select/el-input 也可以使用自定义组件) | String/components | - | -| ------bind | 继承第三方 UI 的 Attributes,function 传出 formData | Object/funnction | - | -| ------isSelfCom | 是否使用自己封装的组件(即不需要嵌套 el-option 等) | Boolean | false | -| ------isTrim | 是否不清除前后空格(comp 为 el-input 且 type 不等于'password') | Boolean | false | -| ------type | 某一项类型(目前只有checkbox/radio/select-arr/select-obj)此值只有组件内嵌组件才设置(如:el-select内嵌el-option) | String | - | -| ------widthSize | form 表单某一项所占比例(如果占一整行则设置 1) | Number | - | -| ------width | form 表单某一项所占实际宽度 | String | - | -| ------arrLabel | type=select-arr 时,每个下拉显示的中文 | String | label | -| ------arrKey | type=select-arr 时,每个下拉显示的中文传后台的数字 | String | key | -| ------label | form 表单每一项 title | String | - | -| ------labelRender | 自定义某一项 title | function | - | -| ------labelSlotName | 自定义某一项 title(插槽名:就是 labelSlotName 值 | slot | - | -| ------value | form 表单每一项传给后台的参数 | String | - | -| ------rules | 每一项输入框的表单校验规则(可参考 element-plus el-form-item方式配置) | Object/Array | - | -| ------list | 下拉选择数据源(仅仅对 type:'select'有效) | String | - | -| ------event | 表单每一项事件标志(即是:handleEvent 事件第一个参数值) | String | - | -| ------eventHandle | 继承 comp 组件的事件 | Object | - | -| ------ref | 当前使用组件的 ref 标识(可以通过 getRefs 事件返回) | String | - | -| ---formData | 表单提交数据(对应 fieldList 每一项的 value 值) | Object | - | -| ---labelWidth | label 宽度 | String | 120px | -| ---rules | 校验规则(可参考 element-plus el-form 方式配置) | Object/Array | - | -| ---operatorList | 操作按钮 list | Array | - | -| -------bind | 继承 el-button 所有 Attributes(默认值{ type:'primary',size:'small',}) | Object | - | -| -------fun | 事件名 | function | - | +| 参数 | 说明 | 类型 | 默认值 | +| :------------------ | :--------------------------------------------------------------------------------------------------------------------------- | :---------------- | :----- | +| className | 自定义类名 | String | - | +| labelPosition | 改变表单项 label 与输入框的布局方式(`right,left,top`) | String | '' | +| widthSize | 每行显示几个输入项(默认两项) 最大值 6 | Number | 2 | +| isTrim | 全局是否开启清除前后空格(comp 为 el-input 且 type 不等于'password') | Boolean | true | +| formOpts | 表单配置项 | Object | - | +| ---ref | 当前TForm实例 | Object | - | +| ---labelPosition | 改变表单项 label 与输入框的布局方式(默认:right) /top (优先展示组件`labelPosition`) | String | right | +| ---listTypeInfo | 下拉选择数据源(type:'select'有效) | Object | - | +| ---fieldList | form 表单每项 list | Array | - | +| ------isHideItem | 某一项不显示 | Boolean | false | +| ------slotName | 自定义表单某一项输入框 | slot | - | +| ------childSlotName | 自定义表单某一下拉选择项子组件插槽(el-option) | slot | - | +| ------comp | 表单每一项组件名称(可使用第三方 UI 如 el-select/el-input 也可以使用自定义组件) | String/components | - | +| ------bind | 继承第三方 UI 的 Attributes,function 传出 formData | Object/funnction | - | +| ------isSelfCom | 是否使用自己封装的组件(即不需要嵌套 el-option 等) | Boolean | false | +| ------isTrim | 是否不清除前后空格(comp 为 el-input 且 type 不等于'password') | Boolean | false | +| ------type | 某一项类型(目前只有checkbox/radio/select-arr/select-obj/inputNumber)此值只有组件内嵌组件才设置(如:el-select内嵌el-option) | String | - | +| ------widthSize | form 表单某一项所占比例(如果占一整行则设置 1) | Number | - | +| ------width | form 表单某一项所占实际宽度 | String | - | +| ------arrLabel | type=select-arr 时,每个下拉显示的中文 | String | label | +| ------arrKey | type=select-arr 时,每个下拉显示的中文传后台的数字 | String | key | +| ------label | form 表单每一项 title | String | - | +| ------labelRender | 自定义某一项 title | function | - | +| ------labelSlotName | 自定义某一项 title(插槽名:就是 labelSlotName 值 | slot | - | +| ------value | form 表单每一项传给后台的参数 | String | - | +| ------rules | 每一项输入框的表单校验规则(可参考 element-plus el-form-item方式配置) | Object/Array | - | +| ------list | 下拉选择数据源(仅仅对 type:'select'有效) | String | - | +| ------event | 表单每一项事件标志(即是:handleEvent 事件第一个参数值) | String | - | +| ------eventHandle | 继承 comp 组件的事件 | Object | - | +| ------ref | 当前使用组件的 ref 标识(可以通过 getRefs 事件返回) | String | - | +| ---formData | 表单提交数据(对应 fieldList 每一项的 value 值) | Object | - | +| ---labelWidth | label 宽度 | String | 120px | +| ---rules | 校验规则(可参考 element-plus el-form 方式配置) | Object/Array | - | +| ---operatorList | 操作按钮 list | Array | - | +| -------bind | 继承 el-button 所有 Attributes(默认值{ type:'primary',size:'small',}) | Object | - | +| -------fun | 事件名 | function | - | ### 3. events 继承 element-plus el-form 的 events diff --git a/docs/components/TSelectIcon/base.md b/docs/components/TSelectIcon/base.md new file mode 100644 index 00000000..c3244069 --- /dev/null +++ b/docs/components/TSelectIcon/base.md @@ -0,0 +1,51 @@ +# TSelectIcon elemnt-plus图标选择组件 + +### 基本使用 + +:::demo +TSelectIcon/base +::: + +### 是否显示弹窗搜索框 + +:::demo +TSelectIcon/isShowSearch +::: + +### 是否显示选中后的图标 + +:::demo +TSelectIcon/isShowIcon +::: + +### selectBind属性配置 + +:::demo +TSelectIcon/selectBind +::: + +### TSelectIcon Attributes + +--- + +### 1、代码示例 + +```html + +``` + +### 2、配置参数(Attributes)继承 el-input Attributes + +| 参数 | 说明 | 类型 | 默认值 | +| :----------- | :------------------- | :--------- | :----------------------------------------------------------------------------------------------------------------- | +| v-model | 绑定值 | string | - | +| prefixIcon | 输入框前缀icon | string | Search | +| isShowSearch | 是否显示搜索图标 | Boolean | true | +| isShowIcon | 是否显示选中后的图标 | Boolean | true | +| selectBind | Attributes | selectBind | `"prefix-icon": props.prefixIcon, placeholder: "请选择图标",dialogTitle:'请选择图标',clearable: true,width: "50%"` | + +### 3、事件(events)继承 el-input 属事件 + +| 事件名 | 说明 | 回调参数 | +| :----- | :--------- | :----------------- | +| select | 选择完图标 | 返回选中的图标name | diff --git a/docs/components/index.md b/docs/components/index.md index 11a5230a..b0d9d0f0 100644 --- a/docs/components/index.md +++ b/docs/components/index.md @@ -74,6 +74,7 @@ import '@wocwin/t-ui-plus/lib/style.css' | TCheckbox | [多选组件](https://wocwin.github.io/t-ui-plus/components/TCheckbox/base.html?_blank) | | TChart | [图表组件](https://wocwin.github.io/t-ui-plus/components/TChart/base.html?_blank) | | TTabs | [标签页组件](https://wocwin.github.io/t-ui-plus/components/TTabs/base.html?_blank) | +| TSelectIcon | [图标选择组件](https://wocwin.github.io/t-ui-plus/components/TSelectIcon/base.html?_blank) | ### T-ui-plus 组件 Volar 类型提示 diff --git a/docs/examples/TSelectIcon/base.vue b/docs/examples/TSelectIcon/base.vue new file mode 100644 index 00000000..9dcf4193 --- /dev/null +++ b/docs/examples/TSelectIcon/base.vue @@ -0,0 +1,14 @@ + + diff --git a/docs/examples/TSelectIcon/isShowIcon.vue b/docs/examples/TSelectIcon/isShowIcon.vue new file mode 100644 index 00000000..1e226162 --- /dev/null +++ b/docs/examples/TSelectIcon/isShowIcon.vue @@ -0,0 +1,14 @@ + + diff --git a/docs/examples/TSelectIcon/isShowSearch.vue b/docs/examples/TSelectIcon/isShowSearch.vue new file mode 100644 index 00000000..7fe70fa3 --- /dev/null +++ b/docs/examples/TSelectIcon/isShowSearch.vue @@ -0,0 +1,14 @@ + + diff --git a/docs/examples/TSelectIcon/selectBind.vue b/docs/examples/TSelectIcon/selectBind.vue new file mode 100644 index 00000000..9527be3b --- /dev/null +++ b/docs/examples/TSelectIcon/selectBind.vue @@ -0,0 +1,22 @@ + + diff --git a/packages/index.ts b/packages/index.ts index 0c29545e..380d7a74 100644 --- a/packages/index.ts +++ b/packages/index.ts @@ -21,6 +21,7 @@ import TRadio from "./radio" import TCheckbox from "./checkbox" import TChart from "./chart" import TTabs from "./tabs" +import TSelectIcon from "./select-icon" // 存储组件列表 const components: { @@ -43,7 +44,8 @@ const components: { TRadio, TCheckbox, TChart, - TTabs + TTabs, + TSelectIcon } // 插件声明:声明所有插件 // 插件注册:在 Vue 项目的入口文件中,通过 ( app.use(插件) ) 进行注册 @@ -91,7 +93,8 @@ export { TRadio, TCheckbox, TChart, - TTabs + TTabs, + TSelectIcon } /** * @description 公共方法 diff --git a/packages/select-icon/index.ts b/packages/select-icon/index.ts new file mode 100644 index 00000000..a7d2b5e9 --- /dev/null +++ b/packages/select-icon/index.ts @@ -0,0 +1,5 @@ +import SelectIcon from "./src/index.vue" +import { withInstall } from "../withInstall" + +const TSelectIcon = withInstall(SelectIcon) +export default TSelectIcon diff --git a/packages/select-icon/src/index.vue b/packages/select-icon/src/index.vue new file mode 100644 index 00000000..c0cda98f --- /dev/null +++ b/packages/select-icon/src/index.vue @@ -0,0 +1,176 @@ + + + + +