UNPKG

zj-scroll-list

Version:

基于Swiper开发的列表滚动组件——Жидзин(Zidjin)系列组件库。

541 lines (338 loc) 15.7 kB
## 开发指南 ### 安装 推荐使用 npm 的方式安装。 ```shell npm install zj-scroll-list ``` ### 引入 全局引入,在 main.js 中写入以下内容: ```js import Vue from 'vue'; import App from './App.vue'; import ZjScrollList from "zj-scroll-list"; Vue.use(ZjScrollList); new Vue({ el: '#app', render: h => h(App) }); ``` 局部引入,在 vue页面文件中写入以下内容 ```js import ZjScrollList from 'zj-scroll-list'; import {ZjScrollTree, ZjScrollItem, ZjSelector} from 'zj-scroll-list'; export default { components: { ZjScrollList, // 滚动列表 ZjScrollTree, // 树列表 ZjScrollItem, // 单行 ZjSelector, // 选择组件 }, }; ``` ## 组件 ### Zj-Scroll-List 滚动列表 基于Swiper开发的列表滚动组件——Жидзин(Zidjin)系列组件库。 #### 安装 推荐使用 npm 的方式安装。 ```shell npm install zj-scroll-list ``` #### 引入 全局引入,在 main.js 中写入以下内容: ```js import Vue from 'vue'; import App from './App.vue'; import ZjScrollList from "zj-scroll-list"; Vue.use(ZjScrollList); new Vue({ el: '#app', render: h => h(App) }); ``` 局部引入,在 vue页面文件中写入以下内容 ```js import ZjScrollList from 'zj-scroll-list'; export default { components: { ZjScrollList, // 滚动列表 }, }; ``` #### 基本用法 初始化滚动列表。 [^图像示例]: 注:图像示例统一800×300像素,特殊除外。 ```vue <zj-scroll-list :data-list="dataList"> </zj-scroll-list> <script> export default { components: { ZjScrollList : () => import('zj-scroll-list'), }, data: () => ({ dataList: [ { row: [ { text: "名称", }, ], }, ] }) }; </script> ``` #### Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :---------: | :----------: | :-----------: | :----: | :----: | | title-list | 标题列表 | Array<object> | - | - | | data-list | 数据列表 | Array<object> | - | - | | selectable | 是否可选择 | Boolean | true | false | | limit | 限制行数 | Number | - | 6 | | height | 高度 | Number | - | -1 | | item-height | 行高 | Number | - | 30 | | loop | 是否启用滚动 | Boolean | false | true | | delay | 滚动延时 | Number | - | 1000 | | | | | | | #### TitleList Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :---: | :----: | :----: | :----: | :----: | | flex | 比例 | Number | - | - | | title | 列标题 | String | - | - | #### DataList Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :--------: | :--------: | :-----------: | :----: | :----: | | key | 行ID | String | - | - | | row | 行配置 | Array<boject> | - | - | | selectable | 显示选择框 | Boolean | false | true | | selected | 已选择 | Boolean | false | true | #### Row of DataList Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :--------: | :----------------------: | :-----------: | :--------------------------------------------------------: | :----: | | icon | 图标 | String<url> | - | - | | icon_color | 图标颜色 | String | none, red, orange, yellow, green, blue, black, white, gray | - | | text | 文本 | String | | | | text_color | 文本颜色 | String | red, orange, yellow, green, blue, black, white, gray | - | | list | 子分组列表,与父配置相同 | Arrar<Object> | | | | emit | 信号名称 | String | | | #### 版本说明 V1.0.0.20211121-release 第一代稳定版本,经过多次内测。下一步文档的补完,多选功能的更灵活配置。 ### Zj-Scroll-Tree 树列表 基于原生开发的列表滚动组件——Жидзин(Zidjin)系列组件库。 #### 安装 推荐使用 npm 的方式安装。 ```shell npm install zj-scroll-list ``` #### 引入 先添加天地图API,在/public/index.html中写入以 ```html <div class="zj-scroll-tree" > <el-tree :data="dataTree" :props="elTreeProps" node-key="key" show-checkbox @check="handleClick"> <span class="custom-tree-node" slot-scope="{ node, data }"> <zj-scroll-item :itemInfo="data" /> </span> </div> ``` 全局引入,在 main.js 中写入以下内容: ```js import Swiper from 'swiper'; // import 'swiper/dist/css/swiper.css'; import 'swiper/swiper-bundle.css'; import ZjScrollItem from '../../components/zj-scroll-item/zj-scroll-item.vue' name: 'ZjScrollList', components:{ ZjScrollItem, }, ``` 局部引入,在 vue页面文件中写入以下内容 ```js export default { name: 'ZjScrollList', components:{shrinkIcon ZjScrollItem,String }, } ``` #### 基本用法 初始化滚动列表、缩放比例和图标 ```vue export default{ components:{ ZjScrollList:()=>import('zj-scroll-list'), }, data:()=>({ dataList: [ { key: "key1", row: [ }, ] selectable: true, selected: true, }) } ``` #### 调用子主键 ``` data(){ return { mySwiper: '', elTreeProps: { children: 'children', label: 'label', text: 'label', } } } ``` #### 方法逻辑 ``` methods:{ handleClick(node, tree){ let list = []; for(const it of tree.checkedNodes){ if(it.children === undefined){ list.push(it) } } this.$emit('select', list) }, } } ``` #### ZjScrollTree Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | ----------- | -------- | ------------- | ------ | ------------------------------------------ | | identity | 身份 | String | - | ZjScrollList | | selectable | 可选的 | Boolean | true | false | | extensible | 可扩展 | Boolean | false | true | | extend-icon | 扩展图标 | String | - | - | | shrink-icon | 收缩图标 | String | - | - | | scrollable | 可滚动 | Boolean | false | true | | limit | 限度 | Number | - | 6 | | loop | 环形 | Boolean | false | true | | delay | 延迟 | Number | - | 1000 | | item-height | 项目高度 | Number | - | 30 | | data-tree | 数据树 | Array<object> | - | key:1<br />item_bar:<br />children:子主键 | #### DataTree Attributes (一级) | 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------- | ------ | ------------- | ---------- | ------------------------------------------------------------ | | key | 组键名 | Number | 4,5,6,.... | 1,2, | | item_bar | 项目栏 | Array<Object> | - | icon:require("url")<br />icon_color:blue<br />text:杭州市<br />text_color:blue | | children | 子主键 | Array<Object> | - | key:1-1<br />item_bar:项目栏<br />children:子主键 | #### ItemBar Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---------- | ------------ | ------ | --------------------------------------------------- | -------------- | | icon | 图片路径 | String | String<utl> | require("url") | | icon_color | 图片颜色 | color | Red ,yellow ,blue ,green, red ,orange ,purple | blue | | text | 标题 | String | - | 杭州市 | | text_color | 标题字体颜色 | color | Red ,yellow ,blue ,green, red ,orange ,purple | blue | #### Children Attributes (二级) | 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------- | ------ | ------------- | ------------ | ------------------------------------------------------------ | | key | 组键名 | Number | 2-1,2-2,.... | 1-1, | | item_bar | 项目栏 | Array<Object> | - | icon:require("url")<br />icon_color:blue<br />text:二级部门<br />text_color:blue | | children | 子主键 | Array<Object> | - | key:组键名<br />item_bar:项目栏<br />children:子主键 | #### ItemBar Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---------- | ------------ | ------ | --------------------------------------------------- | -------------- | | icon | 图片路径 | String | String<utl> | require("url") | | icon_color | 图片颜色 | color | Red ,yellow ,blue ,green, red ,orange ,purple | blue | | text | 标题 | String | - | 二级部门 | | text_color | 标题字体颜色 | color | Red ,yellow ,blue ,green, red ,orange ,purple | blue | #### Children Attributes (三级) | 参数 | 说明 | 类型 | 可选值 | 默认值 | | -------- | ------ | ------------- | ---------------- | ----------------------------------------------------- | | key | 组键名 | Number | 2-1-2,2-2-3,.... | 1-1-1, | | item_bar | 项目栏 | Array<Object> | - | text:张三,<br />text:秘书<br />text_color:gray | | children | 子主键 | Array<Object> | - | key:组键名<br />item_bar:项目栏<br />children:子主键 | #### ItemBar Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | ---------- | ------------ | ------ | --------------------------------------------------- | ------ | | text | 姓名 | String | 张三,李四<utl> | 张三 | | text | 职务 | String | - | 秘书 | | text_color | 职务字体颜色 | color | Red ,yellow ,blue ,green, red ,orange ,purple | gray | ### ZjScrollItem 滚动列表 基于Swiper开发的列表滚动组件——Жидзин(Zidjin)系列组件库。 #### 安装 推荐使用 npm 的方式安装。 ```shell npm install zj-scroll-list -S ``` #### 引入 先添加天地图API,在/public/index.html中写入以下内容: ```html <zj-scroll-item :data-list="dataitem"></zj-scroll-item> ``` 全局引入,在 main.js 中写入以下内容: ```js import Vue from 'vue'; import App from './App.vue'; import ZjScrollItem from "Zj-Scroll-item"; Vue.use(ZjScrollItem); new Vue({ el: '#app', render: h => h(App) }); ``` 局部引入,在 vue页面文件中写入以下内容 ```js export default { components: { ZjScrollItem: () => import('Zj-Scroll-item'), }, }; ``` #### 基本用法 初始化滚动列表。 ```vue <Zj-Scroll-item :data-list="dataList"> </Zj-Scroll-item> <script> export default { components: { ZjScrollItem : () => import('Zj-Scroll-item'), }, data: () => ({ dataList: [ { key: "key1", row: [ { text: "名称", }, ], }, ] }) }; </script> ``` #### ZjScrollItem Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :-------: | :------: | :----: | :---------: | :----: | | height | 行高 | Number | - | 30 | | header | 头部 | Array | - | - | | item-info | 信息 | Object | - | - | | sytle | 窗口样式 | string | dark/bright | bright | #### Item-Info Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :--------: | :--------: | :-----------: | :----: | :----: | | key | 组件名 | Atring | | | | row | 行配置 | Array<Object> | | | | selectable | 是否可选择 | True | | | | selected | 是否已选择 | True | | | #### Row of Item-Info Attributes | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :--------: | :------: | :-----------: | :----: | :---------------------------------------------------: | | icon | 图片 | String | - | require | | icon_color | 图片颜色 | Color | - | blue | | text | 字体 | String | - | 标题 | | text_color | 字体颜色 | Color | - | blue#EEE<br/> "#EEE", | | emit | 透明度 | String | - | onThisClick<br />delete | | list | 列表 | Array<object> | - | - | ### **依赖** "swiper": "^6.4.5", "vue-awesome-swiper": "^4.1.1", ### 贡献 赵向明 [ian@pku.edu.cn](mailto:ian@pku.edu.cn) ### 版本说明 V1.0.0.20211121-release 第一代稳定版本,经过多次内测。下一步文档的补完,多选功能的更灵活配置。