├── .gitignore ├── static ├── logo.png └── svg │ ├── left.png │ ├── plus.svg │ ├── checked.svg │ ├── delete.svg │ ├── unchecked.svg │ ├── folder.svg │ └── file.svg ├── components ├── uni-icons │ ├── uni.ttf │ ├── icons.js │ └── uni-icons.vue ├── uni-list-chat │ ├── uni-list-chat.scss │ └── uni-list-chat.vue ├── u-footer │ └── u-footer.vue ├── uni-list │ ├── uni-refresh.vue │ ├── uni-list.vue │ └── uni-refresh.wxs ├── uni-list-ad │ └── uni-list-ad.vue ├── uni-drawer │ └── uni-drawer.vue ├── uni-badge │ └── uni-badge.vue ├── page-header │ └── page-header.vue └── uni-list-item │ └── uni-list-item.vue ├── main.js ├── App.vue ├── pages ├── detail │ └── detail.vue ├── index │ └── index.vue └── directory │ └── directory.vue ├── README.md ├── pages.json ├── LICENSE ├── uni.scss └── manifest.json /.gitignore: -------------------------------------------------------------------------------- 1 | unpackage 2 | -------------------------------------------------------------------------------- /static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eveveen/uni-app-file-manager/HEAD/static/logo.png -------------------------------------------------------------------------------- /static/svg/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eveveen/uni-app-file-manager/HEAD/static/svg/left.png -------------------------------------------------------------------------------- /components/uni-icons/uni.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eveveen/uni-app-file-manager/HEAD/components/uni-icons/uni.ttf -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App' 3 | 4 | Vue.config.productionTip = false 5 | 6 | App.mpType = 'app' 7 | 8 | const app = new Vue({ 9 | ...App 10 | }) 11 | app.$mount() 12 | -------------------------------------------------------------------------------- /App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /pages/detail/detail.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /static/svg/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # uni-app-file-manager 2 | uni-app实现文件管理器,在app内部扫描本地根目录下的所有文件及文件夹,选择文件(支持多选)添加到文件列表页展示,点击文件列表页的文件,可以解析其内容,再次选择添加问价,会默认打开上次打开的文件夹。 3 | 4 | - 提示: 5 | > 1. 仅适用于安卓 6 | > 2. 若文件较多,打开会很慢,可以自行优化 7 | 8 | - 功能: 9 | > 1. 文件列表页(/pages/index/index) - 展示从已选择添加的文件 10 | > 2. 添加文件页(/pages/directory/directory) - 点击文件列表页右上角 +, 进入该页面,扫描本地根目录所有文件 11 | > 3. 选择文件功能(/pages/directory/directory) - 用户可以选择多个文件,点击确定,确认添加文件,返回文件列表页 12 | > 4. 记住上次打开目录功能(/pages/directory/directory) - 当用户在添加文件页点击了确定之后,同时会记住当前目录的路径 13 | > 5. 解析文件内容并展示(/pages/detail/detail) -------------------------------------------------------------------------------- /static/svg/checked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages 3 | { 4 | "path": "pages/index/index", 5 | "style": { 6 | "navigationStyle": "custom" 7 | } 8 | }, { 9 | "path": "pages/directory/directory", 10 | "style": { 11 | "navigationStyle": "custom", 12 | "navigationBarTitleText": "目录", 13 | "enablePullDownRefresh": false 14 | } 15 | 16 | }, { 17 | "path": "pages/detail/detail", 18 | "style": { 19 | "navigationBarTitleText": "文件内容", 20 | "enablePullDownRefresh": false 21 | } 22 | 23 | } 24 | ], 25 | "globalStyle": { 26 | "navigationBarTextStyle": "white", 27 | "navigationBarTitleText": "uni-app", 28 | "navigationBarBackgroundColor": "#297cf6", 29 | "backgroundColor": "#F8F8F8" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /static/svg/delete.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/svg/unchecked.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Eveveen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /static/svg/folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/uni-list-chat/uni-list-chat.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 这里是 uni-list 组件内置的常用样式变量 3 | * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 4 | * 5 | */ 6 | 7 | // 背景色 8 | $background-color : #fff; 9 | // 分割线颜色 10 | $divide-line-color : #e5e5e5; 11 | 12 | // 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 13 | // nvue 页面不支持修改头像大小 14 | $avatar-width : 45px ; 15 | 16 | // 头像边框 17 | $avatar-border-radius: 5px; 18 | $avatar-border-color: #eee; 19 | $avatar-border-width: 1px; 20 | 21 | // 标题文字样式 22 | $title-size : 16px; 23 | $title-color : #3b4144; 24 | $title-weight : normal; 25 | 26 | // 描述文字样式 27 | $note-size : 12px; 28 | $note-color : #999; 29 | $note-weight : normal; 30 | 31 | // 右侧额外内容默认样式 32 | $right-text-size : 12px; 33 | $right-text-color : #999; 34 | $right-text-weight : normal; 35 | 36 | // 角标样式 37 | // nvue 页面不支持修改圆点位置以及大小 38 | // 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 39 | $badge-left: 0px; 40 | $badge-top: 0px; 41 | 42 | // 显示圆点时,圆点大小 43 | $dot-width: 10px; 44 | $dot-height: 10px; 45 | 46 | // 显示角标时,角标大小和字体大小 47 | $badge-size : 18px; 48 | $badge-font : 12px; 49 | // 显示角标时,角标前景色 50 | $badge-color : #fff; 51 | // 显示角标时,角标背景色 52 | $badge-background-color : #ff5a5f; 53 | // 显示角标时,角标左右间距 54 | $badge-space : 6px; 55 | 56 | // 状态样式 57 | // 选中颜色 58 | $hover : #f5f5f5; 59 | -------------------------------------------------------------------------------- /static/svg/file.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/u-footer/u-footer.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 50 | 51 | 89 | -------------------------------------------------------------------------------- /components/uni-list/uni-refresh.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 59 | 60 | 66 | -------------------------------------------------------------------------------- /uni.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 这里是uni-app内置的常用样式变量 3 | * 4 | * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 5 | * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App 6 | * 7 | */ 8 | 9 | /** 10 | * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 11 | * 12 | * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 13 | */ 14 | 15 | /* 颜色变量 */ 16 | 17 | /* 行为相关颜色 */ 18 | $uni-color-primary: #007aff; 19 | $uni-color-success: #4cd964; 20 | $uni-color-warning: #f0ad4e; 21 | $uni-color-error: #dd524d; 22 | 23 | /* 文字基本颜色 */ 24 | $uni-text-color:#333;//基本色 25 | $uni-text-color-inverse:#fff;//反色 26 | $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 27 | $uni-text-color-placeholder: #808080; 28 | $uni-text-color-disable:#c0c0c0; 29 | 30 | /* 背景颜色 */ 31 | $uni-bg-color:#ffffff; 32 | $uni-bg-color-grey:#f8f8f8; 33 | $uni-bg-color-hover:#f1f1f1;//点击状态颜色 34 | $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 35 | $bar-color:#218de5; // 导航栏颜色 36 | 37 | /* 边框颜色 */ 38 | $uni-border-color:#c8c7cc; 39 | 40 | /* 尺寸变量 */ 41 | 42 | /* 文字尺寸 */ 43 | $uni-font-size-sm:24rpx; 44 | $uni-font-size-base:28rpx; 45 | $uni-font-size-lg:32rpx; 46 | 47 | /* 图片尺寸 */ 48 | $uni-img-size-sm:40rpx; 49 | $uni-img-size-base:52rpx; 50 | $uni-img-size-lg:80rpx; 51 | 52 | /* Border Radius */ 53 | $uni-border-radius-sm: 4rpx; 54 | $uni-border-radius-base: 6rpx; 55 | $uni-border-radius-lg: 12rpx; 56 | $uni-border-radius-circle: 50%; 57 | 58 | /* 水平间距 */ 59 | $uni-spacing-row-sm: 10px; 60 | $uni-spacing-row-base: 20rpx; 61 | $uni-spacing-row-lg: 30rpx; 62 | 63 | /* 垂直间距 */ 64 | $uni-spacing-col-sm: 8rpx; 65 | $uni-spacing-col-base: 16rpx; 66 | $uni-spacing-col-lg: 24rpx; 67 | 68 | /* 透明度 */ 69 | $uni-opacity-disabled: 0.3; // 组件禁用态的透明度 70 | 71 | /* 文章场景相关 */ 72 | $uni-color-title: #2C405A; // 文章标题颜色 73 | $uni-font-size-title:40rpx; 74 | $uni-color-subtitle: #555555; // 二级标题颜色 75 | $uni-font-size-subtitle:36rpx; 76 | $uni-color-paragraph: #3F536E; // 文章段落颜色 77 | $uni-font-size-paragraph:30rpx; -------------------------------------------------------------------------------- /components/uni-list/uni-list.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 57 | 107 | -------------------------------------------------------------------------------- /components/uni-list/uni-refresh.wxs: -------------------------------------------------------------------------------- 1 | var pullDown = { 2 | threshold: 95, 3 | maxHeight: 200, 4 | callRefresh: 'onrefresh', 5 | callPullingDown: 'onpullingdown', 6 | refreshSelector: '.uni-refresh' 7 | }; 8 | 9 | function ready(newValue, oldValue, ownerInstance, instance) { 10 | var state = instance.getState() 11 | state.canPullDown = newValue; 12 | // console.log(newValue); 13 | } 14 | 15 | function touchStart(e, instance) { 16 | var state = instance.getState(); 17 | state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); 18 | state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); 19 | if (!state.canPullDown) { 20 | return 21 | } 22 | 23 | // console.log("touchStart"); 24 | 25 | state.height = 0; 26 | state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; 27 | state.refreshInstance.setStyle({ 28 | 'height': 0 29 | }); 30 | state.refreshInstance.callMethod("onchange", true); 31 | } 32 | 33 | function touchMove(e, ownerInstance) { 34 | var instance = e.instance; 35 | var state = instance.getState(); 36 | if (!state.canPullDown) { 37 | return 38 | } 39 | 40 | var oldHeight = state.height; 41 | var endY = e.touches[0].pageY || e.changedTouches[0].pageY; 42 | var height = endY - state.touchStartY; 43 | if (height > pullDown.maxHeight) { 44 | return; 45 | } 46 | 47 | var refreshInstance = state.refreshInstance; 48 | refreshInstance.setStyle({ 49 | 'height': height + 'px' 50 | }); 51 | 52 | height = height < pullDown.maxHeight ? height : pullDown.maxHeight; 53 | state.height = height; 54 | refreshInstance.callMethod(pullDown.callPullingDown, { 55 | height: height 56 | }); 57 | } 58 | 59 | function touchEnd(e, ownerInstance) { 60 | var state = e.instance.getState(); 61 | if (!state.canPullDown) { 62 | return 63 | } 64 | 65 | state.refreshInstance.callMethod("onchange", false); 66 | 67 | var refreshInstance = state.refreshInstance; 68 | if (state.height > pullDown.threshold) { 69 | refreshInstance.callMethod(pullDown.callRefresh); 70 | return; 71 | } 72 | 73 | refreshInstance.setStyle({ 74 | 'height': 0 75 | }); 76 | } 77 | 78 | function propObserver(newValue, oldValue, instance) { 79 | pullDown = newValue; 80 | } 81 | 82 | module.exports = { 83 | touchmove: touchMove, 84 | touchstart: touchStart, 85 | touchend: touchEnd, 86 | propObserver: propObserver 87 | } 88 | -------------------------------------------------------------------------------- /components/uni-list-ad/uni-list-ad.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 71 | 72 | 108 | -------------------------------------------------------------------------------- /pages/index/index.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 75 | 76 | 114 | -------------------------------------------------------------------------------- /components/uni-drawer/uni-drawer.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 91 | 92 | -------------------------------------------------------------------------------- /components/uni-icons/icons.js: -------------------------------------------------------------------------------- 1 | export default { 2 | "pulldown": "\ue588", 3 | "refreshempty": "\ue461", 4 | "back": "\ue471", 5 | "forward": "\ue470", 6 | "more": "\ue507", 7 | "more-filled": "\ue537", 8 | "scan": "\ue612", 9 | "qq": "\ue264", 10 | "weibo": "\ue260", 11 | "weixin": "\ue261", 12 | "pengyouquan": "\ue262", 13 | "loop": "\ue565", 14 | "refresh": "\ue407", 15 | "refresh-filled": "\ue437", 16 | "arrowthindown": "\ue585", 17 | "arrowthinleft": "\ue586", 18 | "arrowthinright": "\ue587", 19 | "arrowthinup": "\ue584", 20 | "undo-filled": "\ue7d6", 21 | "undo": "\ue406", 22 | "redo": "\ue405", 23 | "redo-filled": "\ue7d9", 24 | "bars": "\ue563", 25 | "chatboxes": "\ue203", 26 | "camera": "\ue301", 27 | "chatboxes-filled": "\ue233", 28 | "camera-filled": "\ue7ef", 29 | "cart-filled": "\ue7f4", 30 | "cart": "\ue7f5", 31 | "checkbox-filled": "\ue442", 32 | "checkbox": "\ue7fa", 33 | "arrowleft": "\ue582", 34 | "arrowdown": "\ue581", 35 | "arrowright": "\ue583", 36 | "smallcircle-filled": "\ue801", 37 | "arrowup": "\ue580", 38 | "circle": "\ue411", 39 | "eye-filled": "\ue568", 40 | "eye-slash-filled": "\ue822", 41 | "eye-slash": "\ue823", 42 | "eye": "\ue824", 43 | "flag-filled": "\ue825", 44 | "flag": "\ue508", 45 | "gear-filled": "\ue532", 46 | "reload": "\ue462", 47 | "gear": "\ue502", 48 | "hand-thumbsdown-filled": "\ue83b", 49 | "hand-thumbsdown": "\ue83c", 50 | "hand-thumbsup-filled": "\ue83d", 51 | "heart-filled": "\ue83e", 52 | "hand-thumbsup": "\ue83f", 53 | "heart": "\ue840", 54 | "home": "\ue500", 55 | "info": "\ue504", 56 | "home-filled": "\ue530", 57 | "info-filled": "\ue534", 58 | "circle-filled": "\ue441", 59 | "chat-filled": "\ue847", 60 | "chat": "\ue263", 61 | "mail-open-filled": "\ue84d", 62 | "email-filled": "\ue231", 63 | "mail-open": "\ue84e", 64 | "email": "\ue201", 65 | "checkmarkempty": "\ue472", 66 | "list": "\ue562", 67 | "locked-filled": "\ue856", 68 | "locked": "\ue506", 69 | "map-filled": "\ue85c", 70 | "map-pin": "\ue85e", 71 | "map-pin-ellipse": "\ue864", 72 | "map": "\ue364", 73 | "minus-filled": "\ue440", 74 | "mic-filled": "\ue332", 75 | "minus": "\ue410", 76 | "micoff": "\ue360", 77 | "mic": "\ue302", 78 | "clear": "\ue434", 79 | "smallcircle": "\ue868", 80 | "close": "\ue404", 81 | "closeempty": "\ue460", 82 | "paperclip": "\ue567", 83 | "paperplane": "\ue503", 84 | "paperplane-filled": "\ue86e", 85 | "person-filled": "\ue131", 86 | "contact-filled": "\ue130", 87 | "person": "\ue101", 88 | "contact": "\ue100", 89 | "images-filled": "\ue87a", 90 | "phone": "\ue200", 91 | "images": "\ue87b", 92 | "image": "\ue363", 93 | "image-filled": "\ue877", 94 | "location-filled": "\ue333", 95 | "location": "\ue303", 96 | "plus-filled": "\ue439", 97 | "plus": "\ue409", 98 | "plusempty": "\ue468", 99 | "help-filled": "\ue535", 100 | "help": "\ue505", 101 | "navigate-filled": "\ue884", 102 | "navigate": "\ue501", 103 | "mic-slash-filled": "\ue892", 104 | "search": "\ue466", 105 | "settings": "\ue560", 106 | "sound": "\ue590", 107 | "sound-filled": "\ue8a1", 108 | "spinner-cycle": "\ue465", 109 | "download-filled": "\ue8a4", 110 | "personadd-filled": "\ue132", 111 | "videocam-filled": "\ue8af", 112 | "personadd": "\ue102", 113 | "upload": "\ue402", 114 | "upload-filled": "\ue8b1", 115 | "starhalf": "\ue463", 116 | "star-filled": "\ue438", 117 | "star": "\ue408", 118 | "trash": "\ue401", 119 | "phone-filled": "\ue230", 120 | "compose": "\ue400", 121 | "videocam": "\ue300", 122 | "trash-filled": "\ue8dc", 123 | "download": "\ue403", 124 | "chatbubble-filled": "\ue232", 125 | "chatbubble": "\ue202", 126 | "cloud-download": "\ue8e4", 127 | "cloud-upload-filled": "\ue8e5", 128 | "cloud-upload": "\ue8e6", 129 | "cloud-download-filled": "\ue8e9", 130 | "headphones":"\ue8bf", 131 | "shop":"\ue609" 132 | } 133 | -------------------------------------------------------------------------------- /components/uni-badge/uni-badge.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 68 | 69 | 154 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "file-manager", 3 | "appid" : "__UNI__7C979C0", 4 | "description" : "", 5 | "versionName" : "1.0.0", 6 | "versionCode" : "100", 7 | "transformPx" : false, 8 | /* 5+App特有相关 */ 9 | "app-plus" : { 10 | "usingComponents" : true, 11 | "nvueCompiler" : "uni-app", 12 | "compilerVersion" : 3, 13 | "splashscreen" : { 14 | "alwaysShowBeforeRender" : true, 15 | "waiting" : true, 16 | "autoclose" : true, 17 | "delay" : 0 18 | }, 19 | /* 模块配置 */ 20 | "modules" : {}, 21 | /* 应用发布信息 */ 22 | "distribute" : { 23 | /* android打包配置 */ 24 | "android" : { 25 | "permissions" : [ 26 | "", 27 | "", 28 | "", 29 | "", 30 | "", 31 | "", 32 | "", 33 | "", 34 | "", 35 | "", 36 | "", 37 | "", 38 | "", 39 | "", 40 | "", 41 | "", 42 | "", 43 | "", 44 | "", 45 | "", 46 | "", 47 | "" 48 | ], 49 | "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ] 50 | }, 51 | /* ios打包配置 */ 52 | "ios" : {}, 53 | /* SDK配置 */ 54 | "sdkConfigs" : { 55 | "ad" : {} 56 | } 57 | }, 58 | "nativePlugins" : {}, 59 | "uniStatistics" : { 60 | "enable" : false 61 | } 62 | }, 63 | /* 快应用特有相关 */ 64 | "quickapp" : {}, 65 | /* 小程序特有相关 */ 66 | "mp-weixin" : { 67 | "appid" : "", 68 | "setting" : { 69 | "urlCheck" : false 70 | }, 71 | "usingComponents" : true, 72 | "uniStatistics" : { 73 | "enable" : false 74 | } 75 | }, 76 | "mp-alipay" : { 77 | "usingComponents" : true, 78 | "uniStatistics" : { 79 | "enable" : false 80 | } 81 | }, 82 | "mp-baidu" : { 83 | "usingComponents" : true, 84 | "uniStatistics" : { 85 | "enable" : false 86 | } 87 | }, 88 | "mp-toutiao" : { 89 | "usingComponents" : true, 90 | "uniStatistics" : { 91 | "enable" : false 92 | } 93 | }, 94 | "uniStatistics" : { 95 | "enable" : false 96 | }, 97 | "h5" : { 98 | "uniStatistics" : { 99 | "enable" : false 100 | } 101 | }, 102 | "mp-qq" : { 103 | "uniStatistics" : { 104 | "enable" : false 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /components/page-header/page-header.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 129 | 130 | 221 | -------------------------------------------------------------------------------- /pages/directory/directory.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 205 | 206 | 281 | -------------------------------------------------------------------------------- /components/uni-list-item/uni-list-item.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | 245 | 246 | 444 | -------------------------------------------------------------------------------- /components/uni-list-chat/uni-list-chat.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 218 | 219 | 534 | -------------------------------------------------------------------------------- /components/uni-icons/uni-icons.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 56 | 57 | 72 | --------------------------------------------------------------------------------