diff --git a/.DS_Store b/.DS_Store
index 9575a79..87b135d 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 29f81d8..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/README.md b/README.md
deleted file mode 100644
index c560b2e..0000000
--- a/README.md
+++ /dev/null
@@ -1,192 +0,0 @@
-
-
-
-
-
-Tuniao UI
-提供丰富组件和炫酷页面的UI框架
-
-
-
-
-
-
-
-
-
-
-
-
-
-## 说明
-
-**图鸟UI**,是基于uni-app进行开发的UI框架,提供丰富的组件进行快速开发,已经支持`H5`和`微信小程序`,包含常用表单组件、信息展示组件等,并提供`丰富的酷炫页面模板`。
-
-
-
-### 开源版本中所使用到的图片均做了防盗链,只能在调试中使用,不保证在生产环境中可以使用。
-
-### 图片资源以上传到[图鸟社区](https://www.yuque.com/tuniao)。
-
-
-
-## 特点
-
-- 包含基础常用的布局元素,flex、grid、浮动
-- 完整一体的配色体系,包含4种色深模式,同时包含4套渐变配色
-- 300+风格统一的图标icon,后续可继续增加
-- 30+精选组件,让开发者可以快速进行开发
-- 酷炫常用的页面模板,更有让你眼前一亮的界面效果
-- 图片素材语雀便捷下载,图鸟社区共同成长
-- 使用文档详尽说明,让你一文读懂图鸟UI
-
-
-
-## 链接
-
-- [图鸟社区](https://www.yuque.com/tuniao)
-- [使用手册](https://tuniaoui.tuniaokj.com/components/introduce.html)
-
-
-
-## 安装
-
-下载地址 ------> [图鸟UI - DCloud 插件市场](https://ext.dcloud.net.cn/plugin?id=7088)
-
-
-
-## 快速上手
-
-#### 1.复制文件到项目的根目录
-
- - ##### 必要文件夹
-
- - 复制tuniao-ui文件夹
- - 复制store文件夹
-
-- ##### 如果使用了模板页面则需要复制以下文件夹
-
- - 复制libs文件夹
- - 复制static文件夹
-
-
-
-#### 2.引入TuniaoUI主JS库
-
-在项目根目录中的`main.js`中,引入并使用TuniaoUI的JS库,注意这两行配置代码要放在import Vue之后。
-
-```javascript
-// 引入全局TuniaoUI
-import TuniaoUI from 'tuniao-ui'
-Vue.use(TuniaoUI)
-```
-
-
-
-#### 3.引入TuniaoUI提供的vuex
-在项目根目录的`main.js`中引入store
-```js
-// 引入store
-import store from './store'
-...
-const app = new Vue({
- store,
- ...App
-})
-```
-
-在项目根目录中的`main.js`中,引入并使用TuniaoUI的vuex,注意这两行配置代码要放在import Vue之后。
-
-```js
-// 引入TuniaoUI提供的vuex简写方法
-let vuexStore = require('@/store/$t.mixin.js')
-Vue.mixin(vuexStore)
-```
-
-
-
-#### 4.引入TuniaoUI的全局SCSS主题文件
-
-在项目根目录的`uni.scss`中引入此文件。
-
-```scss
-@import 'tuniao-ui/theme.scss';
-```
-
-
-
-#### 5.引入TuniaoUI基础样式和图标文件
-
-::: danger 注意
-在`App.vue`中`style标签`首行的位置引入,注意给style标签加入lang="scss"属性
-:::
-
-```scss
-
-```
-
-
-
-#### 6.配置easycom组件模式
-
-此配置需要在根目录的`page.json`中进行。
-
-::: tip 温馨提示
-
- 1. uni-app为了调试性能的原因,修改`easycom`规则不会实时生效,配置完后,您需要重启HBuilderX或者重新编译项目才能正常使用TuniaoUI的功能。
- 2. 请确保您的`pages.json`中只有一个`easycom`字段,否则请自行合并多个引入规则。
- :::
-
-```
-// pages.json
-{
- "easycom": {
- "^tn-(.*)": "@/tuniao-ui/components/tn-$1/tn-$1.vue"
- },
- "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
- {
- // ......
- }
- ]
- // ......
-}
-```
-
-
-
-## UI截图
-
-
-
-
-
-
-
-
-
-
-
-
-## 联系作者
-
-
-
-
-
-
-### 微信群聊二维码
-
-
-
-
-
-
-
-
-## 版权信息
-
-`TuniaoUI开源版`遵循`Apache`协议,意味着您无需支付任何费用,也无需授权,即可将TuniaoUI开源版应用到您的产品中,但是需要保留TuniaoUI的信息。
diff --git a/basicPage/icon/icon.vue b/basicPage/icon/icon.vue
index b85e665..d2a898a 100644
--- a/basicPage/icon/icon.vue
+++ b/basicPage/icon/icon.vue
@@ -1,169 +1,231 @@
-
-
-
-
- 图标
-
-
-
-
-
-
-
+
+
+
+
+ 图标
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+ {{ icons_item.icon }}
+
+
+
+
+
+
+
+
+
+ icon目前700+,支持
+ 中文、英文
+ 搜索
-
-
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
- icon目前400+,里面缺少你想要的吗?
- UI期待你的需求留言
- 后续图标多了,加上分类
-
-
-
-
-
-
-
-
+
+
+ 里面缺少你想要的吗?UI期待你的需求
+ 留言
+
+
+
+
+
+
+
+
+
+
+ .search-fixed {
+ position: fixed;
+ width: 100%;
+ transition: all 0.25s ease-out;
+ z-index: 1;
+ }
+
+ /* 搜索框 start */
+ .search-content {
+ padding-top: 16rpx;
+ margin: 40rpx 40rpx;
+
+ &__input {
+ caret-color: $tn-main-color;
+ width: 100%;
+ height: 70rpx;
+ line-height: 60rpx;
+ border-radius: 100rpx;
+ text-align: center;
+ margin: 0 auto;
+ background-color: #FFFFFF;
+ color: #080808;
+ box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.05);
+ }
+
+ &__input-placeholder {
+ font-size: 24rpx;
+ }
+ }
+
+ /* 搜索框 end */
+
+ /* 图标容器 start */
+ .icon-shadow {
+ box-shadow: 0rpx 0rpx 80rpx 0rpx rgba(0, 0, 0, 0.06);
+ }
+
+ .icon {
+ &__container {
+ margin-bottom: 30rpx;
+ }
+
+ &__item {
+ width: 30.4%;
+ background-color: #FFFFFF;
+ border-radius: 10rpx;
+ padding: 30rpx;
+ margin: 20rpx 10rpx;
+ margin-top: 0;
+ transform: scale(1);
+ transition: transform 0.2s linear;
+ transform-origin: center center;
+
+ &--active {
+ transform: scale(0.95);
+ box-shadow:
+ inset 10rpx 10rpx 18rpx rgba(0, 0, 120, 0.04),
+ inset -8rpx -8rpx 20rpx rgba(0, 0, 120, 0.03);
+ }
+
+ &--icon {
+ width: 80rpx;
+ height: 80rpx;
+ font-size: 60rpx;
+ border-radius: 50%;
+ margin-bottom: 18rpx;
+ position: relative;
+ z-index: 1;
+
+ &::after {
+ content: " ";
+ position: absolute;
+ z-index: -1;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ bottom: 0;
+ border-radius: inherit;
+ opacity: 1;
+ transform: scale(1, 1);
+ background-size: 100% 100%;
+ background-image: url(https://tnuiimage.tnkjapp.com/cool_bg_image/icon_bg.png);
+ }
+ }
+
+ &--title {
+ width: 100%;
+ text-align: center;
+ }
+ }
+ }
+
+ /* 图标容器 end */
+
diff --git a/basicPage/icon/iconfont.js b/basicPage/icon/iconfont.js
index 21f3b60..2d31fdf 100644
--- a/basicPage/icon/iconfont.js
+++ b/basicPage/icon/iconfont.js
@@ -1,3 +1,3 @@
export default {
- data: [{name: "font"}, {name: "chemistry"}, {name: "biology"}, {name: "level"}, {name: "level-fill"}, {name: "deploy"}, {name: "deploy-fill"}, {name: "server"}, {name: "server-fill"}, {name: "cube"}, {name: "cube-fill"}, {name: "organizatio"}, {name: "organizatio-fill"}, {name: "company"}, {name: "company-fill"}, {name: "pharmacy"}, {name: "medical"}, {name: "wheelchair"}, {name: "my-add"}, {name: "my"}, {name: "my-fill"}, {name: "trust"}, {name: "trust-fill"}, {name: "moon"}, {name: "moon-fill"}, {name: "funds"}, {name: "funds-fill"}, {name: "signpost"}, {name: "signpost-fill"}, {name: "vip-text"}, {name: "vip"}, {name: "vip-fill"}, {name: "hardware"}, {name: "hardware-fill"}, {name: "honor"}, {name: "honor-fill"}, {name: "count"}, {name: "count-fill"}, {name: "discover-planet"}, {name: "discover-planet-fill"}, {name: "discover"}, {name: "discover-fill"}, {name: "home"}, {name: "home-fill"}, {name: "home-vertical"}, {name: "home-vertical-fill"}, {name: "home-smile"}, {name: "home-smile-fill"}, {name: "home-capsule"}, {name: "home-capsule-fill"}, {name: "cross-fill"}, {name: "focus"}, {name: "all"}, {name: "expand"}, {name: "assort"}, {name: "assort-fill"}, {name: "menu-list"}, {name: "menu-list-fill"}, {name: "menu-sorts"}, {name: "menu-sorts-fill"}, {name: "menu-sort"}, {name: "menu-sort-fill"}, {name: "menu-more"}, {name: "menu-more-fill"}, {name: "menu"}, {name: "menu-fill"}, {name: "menu-circle"}, {name: "menu-circle-fill"}, {name: "search-menu"}, {name: "search-menu-fill"}, {name: "search-list"}, {name: "search-list-fill"}, {name: "search"}, {name: "brand"}, {name: "link"}, {name: "bug"}, {name: "bug-fill"}, {name: "code"}, {name: "mouse"}, {name: "notebook"}, {name: "notebook-fill"}, {name: "platform"}, {name: "platform-fill"}, {name: "computer"}, {name: "computer-fill"}, {name: "ipad"}, {name: "ipad-fill"}, {name: "phone"}, {name: "phone-fill"}, {name: "tel"}, {name: "tel-circle"}, {name: "tel-circle-fill"}, {name: "bluetooth"}, {name: "headset"}, {name: "shears"}, {name: "watercup"}, {name: "gloves"}, {name: "gloves-fill"}, {name: "covid-19"}, {name: "clip"}, {name: "science"}, {name: "science-fill"}, {name: "sport-jog"}, {name: "sport-run"}, {name: "sport-swim"}, {name: "sport-cycle"}, {name: "airplane"}, {name: "train"}, {name: "steamship"}, {name: "bus"}, {name: "balancecar"}, {name: "electromobile"}, {name: "constellation"}, {name: "con-aquarius"}, {name: "con-pisces"}, {name: "con-aries"}, {name: "con-taurus"}, {name: "con-gemini"}, {name: "con-cancer"}, {name: "con-leo"}, {name: "con-virgo"}, {name: "con-libra"}, {name: "con-scorpio"}, {name: "con-sagittarius"}, {name: "con-apricorn"}, {name: "zodiac-shu"}, {name: "zodiac-niu"}, {name: "zodiac-hu"}, {name: "zodiac-tu"}, {name: "zodiac-long"}, {name: "zodiac-she"}, {name: "zodiac-ma"}, {name: "zodiac-yang"}, {name: "zodiac-hou"}, {name: "zodiac-ji"}, {name: "zodiac-gou"}, {name: "zodiac-zhu"}, {name: "panda"}, {name: "lucky-money"}, {name: "lucky-money-fill"}, {name: "prize"}, {name: "gift"}, {name: "pay"}, {name: "refund"}, {name: "money"}, {name: "power"}, {name: "battery-empty"}, {name: "battery-low"}, {name: "battery-mid"}, {name: "battery-high"}, {name: "battery-full"}, {name: "fingerprint"}, {name: "qr-beibei"}, {name: "qr-code"}, {name: "qr-barcode"}, {name: "scan"}, {name: "revoke"}, {name: "filter"}, {name: "upload"}, {name: "download"}, {name: "fork"}, {name: "relation"}, {name: "master"}, {name: "facebook"}, {name: "google"}, {name: "linkedin"}, {name: "twitter"}, {name: "logo-tuniao"}, {name: "logo-shangpu"}, {name: "sina"}, {name: "taobao"}, {name: "gitee"}, {name: "github"}, {name: "dingtalk"}, {name: "alipay"}, {name: "qq"}, {name: "moments"}, {name: "wechat"}, {name: "wechat-fill"}, {name: "service"}, {name: "service-fill"}, {name: "team"}, {name: "team-fill"}, {name: "emoji-sad"}, {name: "emoji-sad-fill"}, {name: "emoji-general"}, {name: "emoji-general-fill"}, {name: "emoji-good"}, {name: "emoji-good-fill"}, {name: "clock"}, {name: "clock-fill"}, {name: "time"}, {name: "time-fill"}, {name: "footprint"}, {name: "delete"}, {name: "delete-fill"}, {name: "clear"}, {name: "set"}, {name: "set-fill"}, {name: "keyboard-circle"}, {name: "keyboard"}, {name: "wifi-no"}, {name: "wifi"}, {name: "creative-stop"}, {name: "creative-stop-fill"}, {name: "creative"}, {name: "creative-fill"}, {name: "trophy"}, {name: "trophy-fill"}, {name: "game"}, {name: "game-fill"}, {name: "tag"}, {name: "tag-fill"}, {name: "logistics"}, {name: "taxi"}, {name: "taxi-fill"}, {name: "delivery"}, {name: "delivery-fill"}, {name: "errands"}, {name: "errands-fill"}, {name: "flag"}, {name: "flag-fill"}, {name: "baby"}, {name: "baby-fill"}, {name: "shop"}, {name: "shop-fill"}, {name: "commissary"}, {name: "coupon"}, {name: "coupon-fill"}, {name: "shopbag"}, {name: "shopbag-fill"}, {name: "basket"}, {name: "basket-fill"}, {name: "cart"}, {name: "cart-fill"}, {name: "ticket"}, {name: "ticket-fill"}, {name: "receipt"}, {name: "receipt-fill"}, {name: "cardbag"}, {name: "cardbag-fill"}, {name: "bankcard"}, {name: "bankcard-fill"}, {name: "identity"}, {name: "identity-fill"}, {name: "calendar"}, {name: "calendar-fill"}, {name: "order"}, {name: "order-fill"}, {name: "image"}, {name: "image-fill"}, {name: "image-text"}, {name: "image-text-fill"}, {name: "data"}, {name: "data-fill"}, {name: "statistics"}, {name: "statistics-fill"}, {name: "trusty"}, {name: "trusty-fill"}, {name: "safe"}, {name: "safe-fill"}, {name: "edit"}, {name: "edit-form"}, {name: "edit-write"}, {name: "edit-write-fill"}, {name: "write"}, {name: "write-fill"}, {name: "eye-hide"}, {name: "eye-close"}, {name: "eye"}, {name: "eye-fill"}, {name: "unlock"}, {name: "lock"}, {name: "sex"}, {name: "sex-female"}, {name: "sex-male"}, {name: "circle-lack"}, {name: "circle-arrow"}, {name: "circle"}, {name: "circle-fill"}, {name: "copy"}, {name: "copy-fill"}, {name: "square"}, {name: "open"}, {name: "group-double"}, {name: "group-square"}, {name: "group-triangle"}, {name: "group-circle"}, {name: "group-null"}, {name: "share-triangle"}, {name: "share-square"}, {name: "share-circle"}, {name: "share"}, {name: "send"}, {name: "send-fill"}, {name: "light"}, {name: "light-fill"}, {name: "praise"}, {name: "praise-fill"}, {name: "star"}, {name: "star-fill"}, {name: "caring"}, {name: "caring-fill"}, {name: "fire"}, {name: "fire-fill"}, {name: "topic"}, {name: "topics"}, {name: "topics-fill"}, {name: "like-break"}, {name: "like-lack"}, {name: "like"}, {name: "like-fill"}, {name: "reply"}, {name: "reply-fill"}, {name: "notice-no"}, {name: "notice"}, {name: "notice-fill"}, {name: "comment"}, {name: "comment-fill"}, {name: "message"}, {name: "message-fill"}, {name: "flower"}, {name: "flower-fill"}, {name: "location"}, {name: "location-fill"}, {name: "map"}, {name: "map-fill"}, {name: "camera"}, {name: "camera-fill"}, {name: "live-stream"}, {name: "live-stream-fill"}, {name: "sing"}, {name: "music-fill"}, {name: "music-stop"}, {name: "video"}, {name: "video-fill"}, {name: "voice"}, {name: "voice-fill"}, {name: "previous-fill"}, {name: "next-fill"}, {name: "play-fill"}, {name: "stop"}, {name: "backspace"}, {name: "backspace-fill"}, {name: "sound-close"}, {name: "sound-close-fill"}, {name: "sound"}, {name: "sound-fill"}, {name: "sound-reduce"}, {name: "sound-reduce-fill"}, {name: "sound-add"}, {name: "sound-add-fill"}, {name: "sequence-vertical"}, {name: "sequence"}, {name: "align-center"}, {name: "align-right"}, {name: "align-left"}, {name: "align"}, {name: "title"}, {name: "sort"}, {name: "more-vertical"}, {name: "more-horizontal"}, {name: "more-circle"}, {name: "more-circle-fill"}, {name: "warning"}, {name: "warning-fill"}, {name: "zoom-out"}, {name: "zoom-out-fill"}, {name: "zoom-in"}, {name: "zoom-in-fill"}, {name: "success-square"}, {name: "success-square-fill"}, {name: "success-circle"}, {name: "success-circle-fill"}, {name: "success"}, {name: "close"}, {name: "close-circle"}, {name: "close-fill"}, {name: "help"}, {name: "help-fill"}, {name: "tips"}, {name: "tip-fill"}, {name: "left"}, {name: "left-triangle"}, {name: "left-double"}, {name: "left-circle"}, {name: "left-fill"}, {name: "left-arrow"}, {name: "down"}, {name: "down-arrow"}, {name: "down-double"}, {name: "down-circle"}, {name: "down-fill"}, {name: "down-triangle"}, {name: "right"}, {name: "right-triangle"}, {name: "right-arrow"}, {name: "right-double"}, {name: "right-circle"}, {name: "right-fill"}, {name: "up"}, {name: "up-arrow"}, {name: "up-double"}, {name: "up-triangle"}, {name: "up-circle"}, {name: "up-fill"}, {name: "add"}, {name: "add-circle"}, {name: "add-fill"}, {name: "reduce"}, {name: "reduce-square"}, {name: "reduce-square-fill"}, {name: "reduce-circle"}, {name: "reduce-circle-fill"}, {name: "job"}, {name: "rocket"}, {name: "sword"}, {name: "empty-comment"}, {name: "empty-data"}, {name: "empty-list"}, {name: "empty-message"}, {name: "empty-history"}, {name: "empty-permission"}, {name: "empty-favor"}, {name: "empty-coupon"}, {name: "empty-search"}, {name: "empty-address"}, {name: "empty-cart"}, {name: "empty-page"}, {name: "empty-network"}, {name: "empty-order"}, {name: "wea-cloud"}, {name: "wea-cloud-more"}, {name: "wea-cloud-sun"}, {name: "wea-rain"}, {name: "wea-rain-middle"}, {name: "wea-rain-heavy"}, {name: "wea-snow"}, {name: "wea-sun"}, {name: "wea-wind"}]
-}
\ No newline at end of file
+ data: [{"id":26,"name":"basics","title":"基础图标","icons":[{"id":97,"icon":"font","name":"字体文字"},{"id":153,"icon":"search","name":"搜索"},{"id":204,"icon":"scan","name":"扫描扫码扫一扫"},{"id":202,"icon":"qr-code","name":"二维码扫码"},{"id":621,"icon":"qr-code-circle","name":"小程序码扫码"},{"id":203,"icon":"qr-barcode","name":"条形码条码扫码"},{"id":201,"icon":"qr-beibei","name":"微信码扫码北北"},{"id":709,"icon":"totop-simple","name":"返回顶部"},{"id":319,"icon":"circle-lack","name":"刷新加载圆"},{"id":320,"icon":"circle-arrow","name":"刷新箭头圆"},{"id":712,"icon":"refresh-simple","name":"刷新箭头圆"},{"id":608,"icon":"refresh","name":"刷新圆加载"},{"id":609,"icon":"refresh-square","name":"刷新方加载"},{"id":490,"icon":"loading","name":"加载"},{"id":703,"icon":"history","name":"历史记录"},{"id":398,"icon":"title","name":"标题竖线"},{"id":399,"icon":"sort","name":"排序排列"},{"id":206,"icon":"filter","name":"筛选过滤"},{"id":392,"icon":"sequence-vertical","name":"排序排列纵向"},{"id":393,"icon":"sequence","name":"排序排列横向"},{"id":207,"icon":"upload","name":"云上传"},{"id":208,"icon":"download","name":"云下载"},{"id":644,"icon":"upload-simple","name":"上传"},{"id":643,"icon":"download-simple","name":"下载"},{"id":109,"icon":"my-add","name":"人员增加添加"},{"id":553,"icon":"my-reduce","name":"人员减少删除"},{"id":316,"icon":"sex","name":"性别两性男女"},{"id":317,"icon":"sex-female","name":"女性"},{"id":318,"icon":"sex-male","name":"男性"},{"id":322,"icon":"circle","name":"圆形单选"},{"id":321,"icon":"circle-fill","name":"圆形单选选中"},{"id":325,"icon":"square","name":"方形多选"},{"id":555,"icon":"square-fill","name":"方形多选选中"},{"id":467,"icon":"install","name":"安装设置"},{"id":466,"icon":"install-fill","name":"安装设置"},{"id":337,"icon":"send","name":"发送分享转发"},{"id":336,"icon":"send-fill","name":"发送分享转发"},{"id":332,"icon":"share-triangle","name":"发送分享转发"},{"id":335,"icon":"share","name":"发送分享转发"},{"id":334,"icon":"share-circle","name":"发送分享转发"},{"id":333,"icon":"share-square","name":"发送分享转发"},{"id":142,"icon":"all","name":"全部"}]},{"id":10,"name":"internet","title":"社交电商","icons":[{"id":225,"icon":"wechat","name":"微信"},{"id":226,"icon":"wechat-fill","name":"微信"},{"id":606,"icon":"bookmark","name":"书签标签"},{"id":607,"icon":"bookmark-fill","name":"书签标签"},{"id":343,"icon":"star","name":"星星收藏"},{"id":342,"icon":"star-fill","name":"星星收藏"},{"id":711,"icon":"praise-simple","name":"点赞赞扬认可"},{"id":705,"icon":"praise-simple-fill","name":"点赞赞扬认可"},{"id":713,"icon":"tread-simple","name":"踩不认可"},{"id":715,"icon":"tread-simple-fill","name":"踩不认可"},{"id":341,"icon":"praise","name":"点赞赞扬认可"},{"id":340,"icon":"praise-fill","name":"点赞赞扬认可"},{"id":612,"icon":"tread","name":"踩不认可"},{"id":610,"icon":"tread-fill","name":"踩不认可"},{"id":351,"icon":"like-break","name":"心碎不喜欢"},{"id":352,"icon":"like-lack","name":"爱心喜欢心动"},{"id":353,"icon":"like","name":"爱心喜欢心动"},{"id":354,"icon":"like-fill","name":"爱心喜欢心动凶姐"},{"id":362,"icon":"flower","name":"花朵美好赞美"},{"id":361,"icon":"flower-fill","name":"花朵美好赞美"},{"id":697,"icon":"floral","name":"花朵美好赞美"},{"id":700,"icon":"floral-fill","name":"花朵美好赞美"},{"id":293,"icon":"image","name":"图片照片"},{"id":294,"icon":"image-fill","name":"图片照片"},{"id":500,"icon":"theme","name":"主题色板"},{"id":642,"icon":"theme-fill","name":"主题色板"},{"id":224,"icon":"moments","name":"时刻朋友圈"},{"id":270,"icon":"commissary","name":"杂货店小卖部商店"},{"id":551,"icon":"commissary-fill","name":"杂货店小卖部商店"},{"id":268,"icon":"shop","name":"商店商城商铺"},{"id":269,"icon":"shop-fill","name":"商店商城商铺"},{"id":521,"icon":"paperbag","name":"购物袋购买买买"},{"id":522,"icon":"paperbag-fill","name":"购物袋购买买买"},{"id":274,"icon":"shopbag","name":"购物袋购买买买"},{"id":273,"icon":"shopbag-fill","name":"购物袋购买买买"},{"id":559,"icon":"buy","name":"购物袋购买买买"},{"id":560,"icon":"buy-fill","name":"购物袋购买买买"},{"id":276,"icon":"basket","name":"购物车购买买买"},{"id":275,"icon":"basket-fill","name":"购物车购买买买"},{"id":278,"icon":"cart","name":"购物车购买买买"},{"id":277,"icon":"cart-fill","name":"购物车购买买买"},{"id":272,"icon":"coupon","name":"优惠券折扣"},{"id":271,"icon":"coupon-fill","name":"优惠券折扣"},{"id":260,"icon":"tag","name":"标签折扣"},{"id":259,"icon":"tag-fill","name":"标签折扣"},{"id":192,"icon":"lucky-money","name":"红包福利"},{"id":193,"icon":"lucky-money-fill","name":"红包福利"},{"id":279,"icon":"ticket","name":"票据小票"},{"id":280,"icon":"ticket-fill","name":"票据小票"},{"id":281,"icon":"receipt","name":"收据回执"},{"id":282,"icon":"receipt-fill","name":"收据回执"},{"id":619,"icon":"inventory","name":"库存清单"},{"id":616,"icon":"inventory-fill","name":"库存清单"},{"id":470,"icon":"first","name":"排名第一"},{"id":472,"icon":"second","name":"排名第二"},{"id":471,"icon":"third","name":"排名第三"},{"id":256,"icon":"trophy","name":"奖杯奖项"},{"id":255,"icon":"trophy-fill","name":"奖杯奖项"},{"id":154,"icon":"brand","name":"品牌商标"},{"id":461,"icon":"brand-fill","name":"品牌商标"},{"id":93,"icon":"sword","name":"剑战斗"},{"id":7,"icon":"sword-fill","name":"剑战斗"},{"id":346,"icon":"fire","name":"火热门"},{"id":347,"icon":"fire-fill","name":"火热门"},{"id":120,"icon":"vip","name":"会员"},{"id":121,"icon":"vip-fill","name":"会员"},{"id":266,"icon":"baby","name":"奶瓶娃娃宝宝"},{"id":267,"icon":"baby-fill","name":"奶瓶娃娃宝宝"},{"id":541,"icon":"birthday","name":"生日蛋糕"},{"id":194,"icon":"prize","name":"奖品礼品礼盒"},{"id":195,"icon":"gift","name":"礼物礼品礼盒"},{"id":227,"icon":"service","name":"客服"},{"id":228,"icon":"service-fill","name":"客服"},{"id":633,"icon":"service-simple","name":"客服"},{"id":632,"icon":"service-simple-fill","name":"客服"},{"id":39,"icon":"vip-text","name":"会员"},{"id":556,"icon":"allday","name":"24小时全天"},{"id":2,"icon":"text-zgs","name":"掌柜说"},{"id":626,"icon":"text-xzx","name":"心之选"},{"id":628,"icon":"text-sale","name":"销售促销"},{"id":625,"icon":"text-free","name":"免费"},{"id":624,"icon":"text-best","name":"最好的"},{"id":627,"icon":"text-like","name":"喜欢"},{"id":629,"icon":"text-hot","name":"热门"}]},{"id":25,"name":"safe","title":"账号安全","icons":[{"id":287,"icon":"identity","name":"身份证卡片名片"},{"id":288,"icon":"identity-fill","name":"身份证卡片名片"},{"id":286,"icon":"bankcard","name":"卡片会员卡银行卡"},{"id":285,"icon":"bankcard-fill","name":"卡片会员卡银行卡"},{"id":283,"icon":"cardbag","name":"卡包"},{"id":284,"icon":"cardbag-fill","name":"卡包"},{"id":196,"icon":"pay","name":"钱包支付"},{"id":554,"icon":"pay-fill","name":"钱包支付"},{"id":529,"icon":"payment-wechat","name":"微信支付"},{"id":533,"icon":"payment-alipay","name":"支付宝支付"},{"id":197,"icon":"refund","name":"付款收款退款支付钱包"},{"id":198,"icon":"money","name":"付款收款退款支付钱包"},{"id":506,"icon":"money-fill","name":"付款收款退款支付钱包"},{"id":116,"icon":"funds","name":"资金支付钱包"},{"id":117,"icon":"funds-fill","name":"资金支付钱包"},{"id":302,"icon":"trusty","name":"保证认证"},{"id":301,"icon":"trusty-fill","name":"保证认证"},{"id":304,"icon":"safe","name":"安全防护"},{"id":303,"icon":"safe-fill","name":"安全防护"},{"id":314,"icon":"unlock","name":"安全解锁"},{"id":315,"icon":"lock","name":"安全上锁"},{"id":310,"icon":"eye-hide","name":"闭眼不可见"},{"id":311,"icon":"eye-close","name":"闭眼不可见"},{"id":312,"icon":"eye","name":"眼睛可见"},{"id":313,"icon":"eye-fill","name":"眼睛可见"},{"id":13,"icon":"login","name":"登录登入"},{"id":12,"icon":"logout","name":"退出登出"},{"id":200,"icon":"fingerprint","name":"指纹解锁"},{"id":199,"icon":"power","name":"关机关闭"},{"id":653,"icon":"password","name":"手势密码"}]},{"id":19,"name":"message","title":"消息提示","icons":[{"id":360,"icon":"message","name":"消息评论"},{"id":359,"icon":"message-fill","name":"消息评论"},{"id":358,"icon":"comment","name":"消息评论"},{"id":357,"icon":"comment-fill","name":"消息评论"},{"id":349,"icon":"topics","name":"话题讨论"},{"id":350,"icon":"topics-fill","name":"话题讨论"},{"id":355,"icon":"reply","name":"消息回复"},{"id":356,"icon":"reply-fill","name":"消息回复"},{"id":496,"icon":"email","name":"邮件信息"},{"id":502,"icon":"email-fill","name":"邮件信息"},{"id":96,"icon":"notice","name":"通知提示"},{"id":95,"icon":"notice-fill","name":"通知提示"},{"id":94,"icon":"notice-no","name":"关闭通知提示"},{"id":552,"icon":"notice-no-fill","name":"关闭通知提示"},{"id":254,"icon":"creative","name":"订阅灵感创意"},{"id":253,"icon":"creative-fill","name":"订阅灵感创意"},{"id":251,"icon":"creative-stop","name":"无订阅灵感创意"},{"id":252,"icon":"creative-stop-fill","name":"无订阅灵感创意"},{"id":237,"icon":"clock","name":"闹钟提醒"},{"id":238,"icon":"clock-fill","name":"闹钟提醒"},{"id":240,"icon":"time","name":"时间时钟"},{"id":239,"icon":"time-fill","name":"时间时钟"},{"id":420,"icon":"tips","name":"提示提醒"},{"id":421,"icon":"tip-fill","name":"提示提醒"},{"id":404,"icon":"warning","name":"警告警示"},{"id":405,"icon":"warning-fill","name":"警告警示"},{"id":418,"icon":"help","name":"帮助中心"},{"id":419,"icon":"help-fill","name":"帮助中心"}]},{"id":9,"name":"edit","title":"文档操作","icons":[{"id":586,"icon":"folder","name":"文档文件"},{"id":587,"icon":"folder-fill","name":"文档文件"},{"id":720,"icon":"folder-add","name":"增加文档文件"},{"id":724,"icon":"folder-add-fill","name":"增加文档文件"},{"id":726,"icon":"folder-reduce","name":"减少文档文件"},{"id":725,"icon":"folder-reduce-fill","name":"减少文档文件"},{"id":590,"icon":"folder-upload","name":"文档文件上传"},{"id":592,"icon":"folder-upload-fill","name":"文档文件上传"},{"id":591,"icon":"folder-download","name":"文档文件下载"},{"id":588,"icon":"folder-download-fill","name":"文档文件下载"},{"id":291,"icon":"order","name":"订单列表"},{"id":292,"icon":"order-fill","name":"订单列表"},{"id":289,"icon":"calendar","name":"日历日期日签"},{"id":290,"icon":"calendar-fill","name":"日历日期日签"},{"id":295,"icon":"image-text","name":"图文详情"},{"id":296,"icon":"image-text-fill","name":"图文详情"},{"id":305,"icon":"edit","name":"编辑编写"},{"id":306,"icon":"edit-form","name":"编辑编写"},{"id":307,"icon":"edit-write","name":"编辑编写"},{"id":18,"icon":"edit-write-fill","name":"编辑编写"},{"id":309,"icon":"write","name":"编辑编写"},{"id":308,"icon":"write-fill","name":"编辑编写"},{"id":710,"icon":"pushpin","name":"书签图钉"},{"id":716,"icon":"pushpin-fill","name":"书签图钉"},{"id":45,"icon":"shears","name":"剪刀剪掉"},{"id":578,"icon":"tailor","name":"裁剪剪掉"},{"id":538,"icon":"pin","name":"别针回形针"},{"id":155,"icon":"link","name":"链接跳转"},{"id":573,"icon":"move","name":"移动操作"},{"id":562,"icon":"expend","name":"全屏"},{"id":561,"icon":"compress","name":"全屏"},{"id":526,"icon":"fullscreen","name":"全屏"},{"id":527,"icon":"narrow","name":"全屏"},{"id":563,"icon":"fullscreen-all","name":"全屏"},{"id":572,"icon":"narrow-all","name":"全屏"},{"id":672,"icon":"bigscreen","name":"全屏"},{"id":528,"icon":"smallscreen","name":"全屏"},{"id":324,"icon":"copy","name":"复制粘贴"},{"id":323,"icon":"copy-fill","name":"复制粘贴"},{"id":623,"icon":"task","name":"复制粘贴"},{"id":622,"icon":"task-fill","name":"复制粘贴"},{"id":205,"icon":"revoke","name":"返回取消"},{"id":414,"icon":"success","name":"成功对的"},{"id":416,"icon":"close","name":"关闭错的"},{"id":412,"icon":"success-circle","name":"成功"},{"id":411,"icon":"success-circle-fill","name":"成功"},{"id":417,"icon":"close-circle","name":"关闭"},{"id":415,"icon":"close-fill","name":"关闭"},{"id":410,"icon":"success-square","name":"成功多选"},{"id":413,"icon":"success-square-fill","name":"成功多选"},{"id":549,"icon":"close-square","name":"关闭删除"},{"id":550,"icon":"close-square-fill","name":"关闭删除"},{"id":382,"icon":"backspace","name":"回退删除"},{"id":383,"icon":"backspace-fill","name":"回退删除"},{"id":242,"icon":"delete","name":"删除垃圾桶"},{"id":243,"icon":"delete-fill","name":"删除垃圾桶"},{"id":244,"icon":"clear","name":"清除打扫"},{"id":462,"icon":"clear-fill","name":"清除打扫"},{"id":447,"icon":"add","name":"添加增加"},{"id":449,"icon":"reduce","name":"减少删除"},{"id":446,"icon":"add-circle","name":"添加增加"},{"id":448,"icon":"add-fill","name":"添加增加"},{"id":452,"icon":"reduce-circle","name":"减少删除"},{"id":453,"icon":"reduce-circle-fill","name":"减少删除"},{"id":547,"icon":"add-square","name":"添加增加"},{"id":548,"icon":"add-square-fill","name":"添加增加"},{"id":451,"icon":"reduce-square","name":"减少删除"},{"id":450,"icon":"reduce-square-fill","name":"减少删除"},{"id":605,"icon":"add-rhombus","name":"添加增加"},{"id":604,"icon":"add-rhombus-fill","name":"添加增加"},{"id":676,"icon":"reduce-rhombus","name":"减少删除"},{"id":678,"icon":"reduce-rhombus-fill","name":"减少删除"},{"id":409,"icon":"zoom-in","name":"放大"},{"id":408,"icon":"zoom-in-fill","name":"放大"},{"id":406,"icon":"zoom-out","name":"缩小"},{"id":407,"icon":"zoom-out-fill","name":"缩小"},{"id":688,"icon":"norm","name":"规则规范"},{"id":689,"icon":"norm-fill","name":"规则规范"},{"id":402,"icon":"more-circle","name":"更多"},{"id":403,"icon":"more-circle-fill","name":"更多"},{"id":476,"icon":"circle-more","name":"更多组"},{"id":330,"icon":"group-circle","name":"更多组"},{"id":331,"icon":"group-null","name":"更多组"},{"id":327,"icon":"group-double","name":"更多组"},{"id":328,"icon":"group-square","name":"更多组"},{"id":329,"icon":"group-triangle","name":"更多组"},{"id":401,"icon":"more-horizontal","name":"更多组"},{"id":400,"icon":"more-vertical","name":"更多组"},{"id":396,"icon":"align-left","name":"左对齐"},{"id":394,"icon":"align-center","name":"居中对齐"},{"id":395,"icon":"align-right","name":"右对齐"},{"id":397,"icon":"align","name":"两端对齐"}]},{"id":8,"name":"direction","title":"箭头方向","icons":[{"id":442,"icon":"up-circle","name":"向上往上上面"},{"id":445,"icon":"up-fill","name":"向上往上上面"},{"id":439,"icon":"right-circle","name":"向右往右右边"},{"id":435,"icon":"right-fill","name":"向右往右右边"},{"id":430,"icon":"down-circle","name":"向下往下下面"},{"id":432,"icon":"down-fill","name":"向下往下下面"},{"id":426,"icon":"left-circle","name":"向左往左左边"},{"id":424,"icon":"left-fill","name":"向左往左左边"},{"id":441,"icon":"up-arrow","name":"向上往上上面"},{"id":436,"icon":"right-arrow","name":"向右往右右边"},{"id":429,"icon":"down-arrow","name":"向下往下下面"},{"id":427,"icon":"left-arrow","name":"向左往左左边"},{"id":440,"icon":"up","name":"向上往上上面"},{"id":434,"icon":"right","name":"向右往右右边"},{"id":428,"icon":"down","name":"向下往下下面"},{"id":422,"icon":"left","name":"向左往左左边"},{"id":444,"icon":"up-double","name":"向上往上上面"},{"id":437,"icon":"right-double","name":"向右往右右边"},{"id":431,"icon":"down-double","name":"向下往下下面"},{"id":425,"icon":"left-double","name":"向左往左左边"},{"id":443,"icon":"up-triangle","name":"向上往上上面"},{"id":438,"icon":"right-triangle","name":"向右往右右边"},{"id":433,"icon":"down-triangle","name":"向下往下下面"},{"id":423,"icon":"left-triangle","name":"向左往左左边"},{"id":645,"icon":"on","name":"打开"},{"id":646,"icon":"off","name":"关上关闭"}]},{"id":18,"name":"media","title":"媒体音乐","icons":[{"id":371,"icon":"sing","name":"唱歌音乐"},{"id":372,"icon":"music-fill","name":"播放音乐"},{"id":373,"icon":"music-stop","name":"停止播放音乐"},{"id":377,"icon":"voice","name":"话筒语音"},{"id":376,"icon":"voice-fill","name":"话筒语音"},{"id":375,"icon":"video","name":"视频播放"},{"id":374,"icon":"video-fill","name":"视频播放"},{"id":614,"icon":"video-square","name":"视频播放"},{"id":615,"icon":"video-square-fill","name":"视频播放"},{"id":613,"icon":"play","name":"播放"},{"id":380,"icon":"play-fill","name":"播放"},{"id":381,"icon":"stop","name":"停止播放"},{"id":687,"icon":"previous-song","name":"上一首上一曲"},{"id":691,"icon":"previous-song-fill","name":"上一首上一曲"},{"id":679,"icon":"next-song","name":"下一首下一曲"},{"id":685,"icon":"next-song-fill","name":"下一首下一曲"},{"id":378,"icon":"previous-fill","name":"快退上一首"},{"id":379,"icon":"next-fill","name":"快进下一首"},{"id":390,"icon":"sound-add","name":"音量增加"},{"id":391,"icon":"sound-add-fill","name":"音量增加"},{"id":389,"icon":"sound-reduce","name":"音量减少"},{"id":388,"icon":"sound-reduce-fill","name":"音量减少"},{"id":385,"icon":"sound-close","name":"静音音量"},{"id":384,"icon":"sound-close-fill","name":"静音音量"},{"id":387,"icon":"sound","name":"声音音量"},{"id":386,"icon":"sound-fill","name":"声音音量"},{"id":611,"icon":"audio","name":"音频语音"}]},{"id":5,"name":"electronics","title":"设备程序","icons":[{"id":161,"icon":"phone","name":"手机"},{"id":162,"icon":"phone-fill","name":"手机"},{"id":159,"icon":"ipad","name":"平板"},{"id":160,"icon":"ipad-fill","name":"平板"},{"id":44,"icon":"headset","name":"耳机"},{"id":677,"icon":"headset-fill","name":"耳机"},{"id":42,"icon":"mouse","name":"鼠标"},{"id":463,"icon":"mouse-fill","name":"鼠标"},{"id":46,"icon":"notebook","name":"笔记本"},{"id":43,"icon":"notebook-fill","name":"笔记本"},{"id":28,"icon":"platform","name":"电脑显示屏数据"},{"id":27,"icon":"platform-fill","name":"电脑显示屏数据"},{"id":157,"icon":"computer","name":"电脑显示屏"},{"id":158,"icon":"computer-fill","name":"电脑显示屏"},{"id":258,"icon":"game","name":"游戏机"},{"id":257,"icon":"game-fill","name":"游戏机"},{"id":367,"icon":"camera","name":"相机拍照拍摄"},{"id":368,"icon":"camera-fill","name":"相机拍照拍摄"},{"id":369,"icon":"live-stream","name":"直播录像"},{"id":370,"icon":"live-stream-fill","name":"直播录像"},{"id":544,"icon":"monitor","name":"监控摄像头"},{"id":464,"icon":"monitor-fill","name":"监控摄像头"},{"id":102,"icon":"server","name":"服务器"},{"id":33,"icon":"server-fill","name":"服务器"},{"id":163,"icon":"tel","name":"电话"},{"id":165,"icon":"tel-circle","name":"电话"},{"id":164,"icon":"tel-circle-fill","name":"电话"},{"id":248,"icon":"keyboard","name":"键盘"},{"id":247,"icon":"keyboard-circle","name":"键盘"},{"id":460,"icon":"keyboard-circle-fill","name":"键盘"},{"id":530,"icon":"cursor","name":"鼠标箭头光标"},{"id":531,"icon":"cursor-fill","name":"鼠标箭头光标"},{"id":474,"icon":"program","name":"小程序"},{"id":475,"icon":"program-fill","name":"小程序"},{"id":543,"icon":"iot","name":"物联网"},{"id":545,"icon":"iot-fill","name":"物联网"},{"id":156,"icon":"code","name":"代码编程"},{"id":492,"icon":"bigbug","name":"漏洞虫子爬虫"},{"id":15,"icon":"bug","name":"漏洞"},{"id":16,"icon":"bug-fill","name":"漏洞"},{"id":209,"icon":"fork","name":"分支"},{"id":211,"icon":"master","name":"主分支"},{"id":210,"icon":"relation","name":"关系连接"},{"id":250,"icon":"wifi","name":"有wifi"},{"id":249,"icon":"wifi-no","name":"无wifi"},{"id":52,"icon":"bluetooth","name":"蓝牙"},{"id":593,"icon":"hotspot","name":"热点"},{"id":47,"icon":"battery-empty","name":"没电"},{"id":48,"icon":"battery-low","name":"低电量"},{"id":49,"icon":"battery-mid","name":"电量中"},{"id":50,"icon":"battery-high","name":"电量高"},{"id":51,"icon":"battery-full","name":"满电"}]},{"id":6,"name":"health","title":"运动健康","icons":[{"id":170,"icon":"sport-jog","name":"慢跑"},{"id":171,"icon":"sport-run","name":"跑步"},{"id":172,"icon":"sport-swim","name":"游泳"},{"id":173,"icon":"sport-cycle","name":"骑车"},{"id":520,"icon":"heartbeat","name":"心跳"},{"id":107,"icon":"medical","name":"医疗"},{"id":99,"icon":"biology","name":"生物"},{"id":98,"icon":"chemistry","name":"化学"},{"id":166,"icon":"watercup","name":"水杯"},{"id":106,"icon":"pharmacy","name":"药物"},{"id":495,"icon":"chain","name":"分子"},{"id":494,"icon":"dna","name":"基因"},{"id":489,"icon":"cell","name":"细胞"},{"id":493,"icon":"dinosaur","name":"恐龙"},{"id":169,"icon":"covid-19","name":"病毒"},{"id":465,"icon":"covid-19-fill","name":"病毒"}]},{"id":7,"name":"living","title":"生活居家","icons":[{"id":455,"icon":"bed","name":"床"},{"id":454,"icon":"bed-fill","name":"床"},{"id":574,"icon":"pillow","name":"枕头"},{"id":576,"icon":"pillow-fill","name":"枕头"},{"id":542,"icon":"sofa","name":"沙发"},{"id":525,"icon":"sofa-fill","name":"沙发"},{"id":558,"icon":"bathtub","name":"浴缸"},{"id":557,"icon":"bathtub-fill","name":"浴缸"},{"id":575,"icon":"plant","name":"植物"},{"id":577,"icon":"plant-fill","name":"植物"},{"id":168,"icon":"gloves","name":"手套"},{"id":167,"icon":"gloves-fill","name":"手套"},{"id":594,"icon":"router","name":"路由器"},{"id":595,"icon":"router-fill","name":"路由器"},{"id":727,"icon":"food","name":"食物美食"},{"id":728,"icon":"food-fill","name":"食物美食"},{"id":719,"icon":"eat","name":"吃饭食物美食"},{"id":718,"icon":"eat-fill","name":"吃饭食物美食"},{"id":721,"icon":"eat-west","name":"吃饭食物美食"},{"id":722,"icon":"eat-west-fill","name":"吃饭食物美食"},{"id":717,"icon":"eat-other","name":"吃饭食物美食"},{"id":723,"icon":"eat-other-fill","name":"吃饭食物美食"}]},{"id":12,"name":"travel","title":"交通出行","icons":[{"id":35,"icon":"errands","name":"步行"},{"id":36,"icon":"errands-fill","name":"步行"},{"id":38,"icon":"delivery","name":"骑车"},{"id":37,"icon":"delivery-fill","name":"骑车"},{"id":263,"icon":"taxi","name":"出租车"},{"id":262,"icon":"taxi-fill","name":"出租车"},{"id":261,"icon":"logistics","name":"物流"},{"id":458,"icon":"logistics-fill","name":"物流"},{"id":364,"icon":"location","name":"位置"},{"id":363,"icon":"location-fill","name":"位置"},{"id":366,"icon":"map","name":"地图地点"},{"id":365,"icon":"map-fill","name":"地图地点"},{"id":118,"icon":"signpost","name":"指示牌"},{"id":119,"icon":"signpost-fill","name":"指示牌"},{"id":663,"icon":"route","name":"路线"},{"id":664,"icon":"route-fill","name":"路线"},{"id":583,"icon":"suitcase","name":"行李箱"},{"id":584,"icon":"suitcase-fill","name":"行李箱"},{"id":241,"icon":"footprint","name":"足迹"},{"id":674,"icon":"footprint-fill","name":"足迹"},{"id":178,"icon":"balancecar","name":"平衡车"},{"id":179,"icon":"electromobile","name":"小电瓶"},{"id":177,"icon":"bus","name":"公交车"},{"id":176,"icon":"steamship","name":"轮船"},{"id":175,"icon":"train","name":"train"},{"id":174,"icon":"airplane","name":"飞机"},{"id":658,"icon":"global","name":"地球"},{"id":108,"icon":"wheelchair","name":"轮椅残疾人"},{"id":582,"icon":"escalator","name":"扶梯电梯"},{"id":468,"icon":"restroom-female","name":"女卫生间女洗手间女厕所"},{"id":469,"icon":"restroom-male","name":"男卫生间女洗手间男厕所"}]},{"id":22,"name":"gesture","title":"手势动作","icons":[{"id":566,"icon":"gesture-one","name":"手势一"},{"id":569,"icon":"gesture-two","name":"手势二"},{"id":568,"icon":"gesture-three","name":"手势三"},{"id":567,"icon":"gesture-four","name":"手势四"},{"id":565,"icon":"gesture-five","name":"手势五"},{"id":564,"icon":"gesture-dropdown","name":"手势下滑下拉"},{"id":326,"icon":"open","name":"打开展开"}]},{"id":23,"name":"data","title":"数据图表","icons":[{"id":299,"icon":"statistics","name":"数据统计"},{"id":300,"icon":"statistics-fill","name":"数据统计"},{"id":297,"icon":"data","name":"数据分享"},{"id":298,"icon":"data-fill","name":"数据分享"}]},{"id":20,"name":"menu","title":"菜单分类","icons":[{"id":132,"icon":"home","name":"首页"},{"id":133,"icon":"home-fill","name":"首页"},{"id":134,"icon":"home-vertical","name":"首页"},{"id":135,"icon":"home-vertical-fill","name":"首页"},{"id":136,"icon":"home-smile","name":"首页"},{"id":137,"icon":"home-smile-fill","name":"首页"},{"id":570,"icon":"home-love","name":"首页"},{"id":571,"icon":"home-love-fill","name":"首页"},{"id":486,"icon":"home-in","name":"首页"},{"id":485,"icon":"home-in-fill","name":"首页"},{"id":487,"icon":"home-loading","name":"首页"},{"id":488,"icon":"home-loading-fill","name":"首页"},{"id":516,"icon":"home-totop","name":"首页"},{"id":515,"icon":"home-totop-fill","name":"首页"},{"id":630,"icon":"home-leaf","name":"首页"},{"id":631,"icon":"home-leaf-fill","name":"首页"},{"id":138,"icon":"home-capsule","name":"首页"},{"id":139,"icon":"home-capsule-fill","name":"首页"},{"id":100,"icon":"level","name":"等级列表"},{"id":20,"icon":"level-fill","name":"等级列表"},{"id":101,"icon":"deploy","name":"分类调试"},{"id":23,"icon":"deploy-fill","name":"分类调试"},{"id":512,"icon":"block","name":"分类菜单"},{"id":511,"icon":"block-fill","name":"分类菜单"},{"id":150,"icon":"menu-circle","name":"分类菜单"},{"id":19,"icon":"menu-circle-fill","name":"分类菜单"},{"id":680,"icon":"menu-grille","name":"分类菜单"},{"id":684,"icon":"menu-grille-fill","name":"分类菜单"},{"id":523,"icon":"menu-match","name":"分类菜单"},{"id":524,"icon":"menu-match-fill","name":"分类菜单"},{"id":144,"icon":"assort","name":"分类菜单"},{"id":143,"icon":"assort-fill","name":"分类菜单"},{"id":149,"icon":"menu","name":"分类菜单"},{"id":21,"icon":"menu-fill","name":"分类菜单"},{"id":145,"icon":"menu-list","name":"分类菜单"},{"id":34,"icon":"menu-list-fill","name":"分类菜单"},{"id":146,"icon":"menu-sorts","name":"分类菜单"},{"id":32,"icon":"menu-sorts-fill","name":"分类菜单"},{"id":147,"icon":"menu-sort","name":"分类菜单"},{"id":30,"icon":"menu-sort-fill","name":"分类菜单"},{"id":148,"icon":"menu-more","name":"分类菜单"},{"id":24,"icon":"menu-more-fill","name":"分类菜单"},{"id":457,"icon":"menu-flex","name":"分类菜单"},{"id":456,"icon":"menu-flex-fill","name":"分类菜单"},{"id":513,"icon":"menu-classify","name":"分类菜单"},{"id":514,"icon":"menu-classify-fill","name":"分类菜单"},{"id":507,"icon":"menu-alone","name":"分类菜单"},{"id":508,"icon":"menu-alone-fill","name":"分类菜单"},{"id":596,"icon":"menu-rhombus","name":"分类菜单"},{"id":597,"icon":"menu-rhombus-fill","name":"分类菜单"},{"id":151,"icon":"search-menu","name":"菜单搜索"},{"id":25,"icon":"search-menu-fill","name":"菜单搜索"},{"id":152,"icon":"search-list","name":"搜索列表"},{"id":29,"icon":"search-list-fill","name":"搜索列表"},{"id":599,"icon":"plane","name":"菜单飞机"},{"id":598,"icon":"plane-fill","name":"菜单飞机"},{"id":659,"icon":"reload-home","name":"首页重载"},{"id":661,"icon":"reload-home-fill","name":"首页重载"},{"id":660,"icon":"reload-planet","name":"星球重载"},{"id":662,"icon":"reload-planet-fill","name":"星球重载"},{"id":635,"icon":"meteor","name":"流星"},{"id":634,"icon":"meteor-fill","name":"流星"},{"id":92,"icon":"rocket","name":"火箭"},{"id":9,"icon":"rocket-fill","name":"火箭"},{"id":10,"icon":"totop","name":"火箭返回顶部"},{"id":11,"icon":"totop-fill","name":"火箭返回顶部"},{"id":91,"icon":"job","name":"工作领带"},{"id":8,"icon":"job-fill","name":"工作领带"},{"id":53,"icon":"science","name":"科学"},{"id":22,"icon":"science-fill","name":"科学"},{"id":126,"icon":"count","name":"运算计算"},{"id":127,"icon":"count-fill","name":"运算计算"},{"id":696,"icon":"assign","name":"分配指派"},{"id":698,"icon":"assign-fill","name":"分配指派"},{"id":124,"icon":"honor","name":"荣誉证书"},{"id":125,"icon":"honor-fill","name":"荣誉证书"},{"id":128,"icon":"discover-planet","name":"行星发现"},{"id":129,"icon":"discover-planet-fill","name":"行星发现"},{"id":130,"icon":"discover","name":"发现"},{"id":131,"icon":"discover-fill","name":"发现"},{"id":535,"icon":"module","name":"模块"},{"id":539,"icon":"module-fill","name":"模块"},{"id":344,"icon":"caring","name":"关心"},{"id":345,"icon":"caring-fill","name":"关心"},{"id":682,"icon":"ai","name":"人工智能"},{"id":681,"icon":"ai-fill","name":"人工智能"},{"id":505,"icon":"ghost","name":"幽灵"},{"id":459,"icon":"ghost-fill","name":"幽灵"},{"id":110,"icon":"my","name":"我的个人中心"},{"id":111,"icon":"my-fill","name":"我的个人中心"},{"id":671,"icon":"my-lack","name":"我的个人中心"},{"id":670,"icon":"my-lack-fill","name":"我的个人中心"},{"id":647,"icon":"my-circle","name":"我的个人中心"},{"id":648,"icon":"my-circle-fill","name":"我的个人中心"},{"id":666,"icon":"my-simple","name":"我的个人中心"},{"id":665,"icon":"my-simple-fill","name":"我的个人中心"},{"id":707,"icon":"my-formal","name":"我的个人中心商务"},{"id":706,"icon":"my-formal-fill","name":"我的个人中心商务"},{"id":704,"icon":"my-job","name":"我的个人中心商务"},{"id":708,"icon":"my-job-fill","name":"我的个人中心商务"}]},{"id":14,"name":"system","title":"管理系统","icons":[{"id":702,"icon":"fold","name":"收起折叠"},{"id":714,"icon":"unfold","name":"展开展示"},{"id":534,"icon":"dashboard","name":"仪表盘"},{"id":540,"icon":"dashboard-fill","name":"仪表盘"},{"id":229,"icon":"team","name":"员工团队"},{"id":230,"icon":"team-fill","name":"员工团队"},{"id":104,"icon":"organizatio","name":"组织架构"},{"id":26,"icon":"organizatio-fill","name":"组织架构"},{"id":105,"icon":"company","name":"公司企业"},{"id":17,"icon":"company-fill","name":"公司企业"},{"id":264,"icon":"flag","name":"目标旗帜"},{"id":265,"icon":"flag-fill","name":"目标旗帜"},{"id":122,"icon":"hardware","name":"电子硬件"},{"id":112,"icon":"trust","name":"合作伙伴"},{"id":123,"icon":"hardware-fill","name":"电子硬件"},{"id":113,"icon":"trust-fill","name":"合作伙伴"},{"id":245,"icon":"set","name":"系统设置"},{"id":246,"icon":"set-fill","name":"系统设置"},{"id":14,"icon":"expand","name":"子菜单"}]},{"id":2,"name":"brand","title":"知名品牌","icons":[{"id":1,"icon":"nintendo-switch","name":"任天堂"},{"id":216,"icon":"logo-tuniao","name":"图鸟"},{"id":4,"icon":"huawei","name":"华为"},{"id":5,"icon":"iphone","name":"苹果"},{"id":222,"icon":"alipay","name":"支付宝"},{"id":218,"icon":"taobao","name":"淘宝"},{"id":223,"icon":"qq","name":"企鹅"},{"id":221,"icon":"dingtalk","name":"钉钉"},{"id":217,"icon":"sina","name":"新浪"},{"id":6,"icon":"tiktok","name":"抖音"},{"id":41,"icon":"logo-shangpu","name":"上铺"},{"id":692,"icon":"seafox","name":"海狐"},{"id":580,"icon":"windows","name":"微软"},{"id":219,"icon":"gitee","name":"码云"},{"id":220,"icon":"github","name":"章鱼猫"},{"id":214,"icon":"linkedin","name":"领英"},{"id":215,"icon":"twitter","name":"推特"},{"id":212,"icon":"facebook","name":"脸书"},{"id":213,"icon":"google","name":"谷歌"}]},{"id":24,"name":"idea","title":"创意logo","icons":[{"id":695,"icon":"fish","name":"鱼"},{"id":40,"icon":"panda","name":"熊猫"},{"id":484,"icon":"dragon","name":"龙"},{"id":510,"icon":"rabbit","name":"兔子"},{"id":478,"icon":"mammoth","name":"猛犸象"},{"id":483,"icon":"whale","name":"蓝鲸"},{"id":477,"icon":"windmill","name":"风车"},{"id":509,"icon":"tree","name":"树"},{"id":479,"icon":"alien","name":"外星人"},{"id":491,"icon":"orange","name":"橙子"}]},{"id":27,"name":"symbol","title":"表情符号","icons":[{"id":235,"icon":"emoji-good","name":"微笑好评"},{"id":236,"icon":"emoji-good-fill","name":"微笑好评"},{"id":233,"icon":"emoji-general","name":"平静中评"},{"id":234,"icon":"emoji-general-fill","name":"平静中评"},{"id":231,"icon":"emoji-sad","name":"悲伤差评"},{"id":232,"icon":"emoji-sad-fill","name":"悲伤差评"},{"id":694,"icon":"skull","name":"骨头骷髅"},{"id":693,"icon":"skull-fill","name":"骨头骷髅"},{"id":536,"icon":"at-sign","name":"圈人"},{"id":537,"icon":"copyright","name":"版权"},{"id":579,"icon":"trademark","name":"商标"},{"id":141,"icon":"focus","name":"瞄准"},{"id":618,"icon":"percent","name":"百分比"},{"id":617,"icon":"percent-fill","name":"百分比"},{"id":699,"icon":"equal","name":"等于相等"},{"id":701,"icon":"equal-fill","name":"等于相等"},{"id":348,"icon":"topic","name":"指令话题"},{"id":600,"icon":"spiral","name":"螺旋"},{"id":546,"icon":"cute","name":"可爱"}]},{"id":17,"name":"geometry","title":"抽象几何","icons":[{"id":589,"icon":"pyramid","name":"锥体金字塔"},{"id":504,"icon":"molecule","name":"分子"},{"id":67,"icon":"constellation","name":"星座星系"},{"id":620,"icon":"activity","name":"活动"},{"id":103,"icon":"cube","name":"立方体"},{"id":31,"icon":"cube-fill","name":"立方体"},{"id":668,"icon":"around","name":"围绕"},{"id":667,"icon":"around-fill","name":"围绕"},{"id":656,"icon":"unite","name":"团结"},{"id":657,"icon":"unite-fill","name":"团结"}]},{"id":28,"name":"culture","title":"文化元素","icons":[{"id":481,"icon":"knot","name":"中国结绳结"},{"id":473,"icon":"ninja","name":"忍者"},{"id":601,"icon":"lotus","name":"莲花"},{"id":517,"icon":"petal","name":"花瓣"},{"id":480,"icon":"taichi","name":"太极"},{"id":602,"icon":"koi","name":"锦鲤"},{"id":603,"icon":"koi-fill","name":"锦鲤"},{"id":519,"icon":"clover","name":"幸运草"},{"id":518,"icon":"clover-fill","name":"幸运草"},{"id":690,"icon":"piggy-bank","name":"存钱罐猪"},{"id":686,"icon":"piggy-bank-fill","name":"存钱罐猪"},{"id":641,"icon":"dice-two","name":"色子二"},{"id":637,"icon":"dice-one","name":"色子一"},{"id":638,"icon":"dice-three","name":"色子三"},{"id":640,"icon":"dice-four","name":"色子四"},{"id":636,"icon":"dice-five","name":"色子五"},{"id":639,"icon":"dice-six","name":"色子六"}]},{"id":4,"name":"zodiac","title":"生肖星座","icons":[{"id":191,"icon":"zodiac-shu","name":"生肖鼠"},{"id":190,"icon":"zodiac-niu","name":"生肖牛"},{"id":189,"icon":"zodiac-hu","name":"生肖虎"},{"id":188,"icon":"zodiac-tu","name":"生肖兔"},{"id":186,"icon":"zodiac-she","name":"生肖蛇"},{"id":187,"icon":"zodiac-long","name":"生肖龙"},{"id":185,"icon":"zodiac-ma","name":"生肖马"},{"id":184,"icon":"zodiac-yang","name":"生肖羊"},{"id":183,"icon":"zodiac-hou","name":"生肖猴"},{"id":182,"icon":"zodiac-ji","name":"生肖鸡"},{"id":181,"icon":"zodiac-gou","name":"生肖狗"},{"id":180,"icon":"zodiac-zhu","name":"生肖猪"},{"id":55,"icon":"con-aquarius","name":"星座水瓶座"},{"id":56,"icon":"con-pisces","name":"星座双鱼座"},{"id":57,"icon":"con-aries","name":"星座白羊座"},{"id":58,"icon":"con-taurus","name":"星座金牛座"},{"id":59,"icon":"con-gemini","name":"星座双子座"},{"id":60,"icon":"con-cancer","name":"星座巨蟹座"},{"id":61,"icon":"con-leo","name":"星座狮子座"},{"id":62,"icon":"con-virgo","name":"星座处女座"},{"id":63,"icon":"con-libra","name":"星座天秤座"},{"id":64,"icon":"con-scorpio","name":"星座天蝎座"},{"id":65,"icon":"con-sagittarius","name":"星座射手座"},{"id":66,"icon":"con-apricorn","name":"星座摩羯座"}]},{"id":3,"name":"weather","title":"气象天气","icons":[{"id":655,"icon":"umbrella","name":"雨伞"},{"id":675,"icon":"umbrella-fill","name":"雨伞"},{"id":114,"icon":"moon","name":"月亮黑夜"},{"id":115,"icon":"moon-fill","name":"月亮黑夜"},{"id":339,"icon":"light","name":"闪电雷电"},{"id":338,"icon":"light-fill","name":"闪电雷电"},{"id":482,"icon":"snowflake","name":"雪花"},{"id":69,"icon":"wea-cloud","name":"云"},{"id":68,"icon":"wea-cloud-more","name":"多云"},{"id":70,"icon":"wea-cloud-sun","name":"多云转晴"},{"id":71,"icon":"wea-rain","name":"小雨"},{"id":72,"icon":"wea-rain-middle","name":"中雨"},{"id":73,"icon":"wea-rain-heavy","name":"大雨"},{"id":74,"icon":"wea-snow","name":"下雪"},{"id":75,"icon":"wea-wind","name":"微风吹风"},{"id":76,"icon":"wea-sun","name":"太阳晴天"},{"id":651,"icon":"sunrise","name":"日出"},{"id":652,"icon":"sunset","name":"日落"},{"id":649,"icon":"temperature-f","name":"华氏度温度"},{"id":650,"icon":"temperature-c","name":"摄氏度温度"}]},{"id":13,"name":"blank","title":"空白缺省","icons":[{"id":84,"icon":"empty-search","name":"搜索空白缺省"},{"id":90,"icon":"empty-page","name":"内容空白缺省"},{"id":79,"icon":"empty-cart","name":"购物车空白缺省"},{"id":88,"icon":"empty-address","name":"地址空白缺省"},{"id":89,"icon":"empty-permission","name":"权限空白缺省"},{"id":80,"icon":"empty-history","name":"记录空白缺省"},{"id":78,"icon":"empty-message","name":"消息空白缺省"},{"id":86,"icon":"empty-comment","name":"评论空白缺省"},{"id":77,"icon":"empty-data","name":"数据空白缺省"},{"id":82,"icon":"empty-list","name":"列表空白缺省"},{"id":85,"icon":"empty-order","name":"订单空白缺省"},{"id":87,"icon":"empty-coupon","name":"优惠券空白缺省"},{"id":81,"icon":"empty-favor","name":"收藏空白缺省"},{"id":83,"icon":"empty-network","name":"网络空白缺省断网"}]},{"id":1,"name":"tuniao","title":"其他类别","icons":[{"id":54,"icon":"clip","name":"爱心碰撞"},{"id":501,"icon":"book","name":"书本教育学习"},{"id":497,"icon":"education","name":"教育毕业大学"},{"id":503,"icon":"maths","name":"数学几何"},{"id":498,"icon":"english","name":"英语翻译"},{"id":140,"icon":"cross-fill","name":"交叉"},{"id":499,"icon":"seal","name":"公章盖章印章"},{"id":532,"icon":"check","name":"勾选支付"},{"id":683,"icon":"cargoship","name":"货轮"},{"id":3,"icon":"tabs-smile","name":"微笑选中"}]}]
+};
\ No newline at end of file
diff --git a/componentsPage/keyboard/keyboard.vue b/componentsPage/keyboard/keyboard.vue
index 3ea1a60..0affb93 100644
--- a/componentsPage/keyboard/keyboard.vue
+++ b/componentsPage/keyboard/keyboard.vue
@@ -1,324 +1,317 @@
-
+
-
- keyboard键盘
+
+ keyboard键盘
-
-
-
-
-
-
- 清空
-
-
-
-
-
-
-
- 新能源
-
-
-
- {{ licensePlateValue[index] || '' }}
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+ 清空
+
+
+
+
+
+
+
+ 新能源
+
+
+
+
-
+
+
+ {{ licensePlateValue[index]}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .number-value {
+ display: flex;
+ align-items: center;
+
+ .clear-btn {
+ margin-left: 10rpx;
+ }
+ }
+
+ .car-value {
+ display: flex;
+
+ .car-input {
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 74rpx;
+ width: 64rpx;
+ border: 1px solid $tn-border-solid-color;
+ border-radius: 18rpx;
+ text-align: center;
+ font-size: 38rpx;
+ line-height: 1;
+ margin-left: 10rpx;
+ background-color: #FFFFFF;
+
+ &.new-energy {
+ background: transparent;
+ border-style: dashed;
+ }
+ }
+
+ .car-point {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 74rpx;
+ width: 20rpx;
+ margin-left: 10rpx;
+
+ .point {
+ width: 20rpx;
+ height: 20rpx;
+ background-color: $tn-font-holder-color;
+ border-radius: 50%;
+ }
+ }
+
+ .new-energy-car {
+ display: flex;
+ flex-direction: column;
+ font-size: 16rpx;
+ color: $tn-font-sub-color;
+
+ .icon {
+ margin-bottom: 8rpx;
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/componentsPage/select/select.vue b/componentsPage/select/select.vue
index ee3c4e8..c78512c 100644
--- a/componentsPage/select/select.vue
+++ b/componentsPage/select/select.vue
@@ -64,7 +64,11 @@
{
value: 5,
label: '胖虎'
- }
+ },
+ {
+ value: 6,
+ label: '大星'
+ },
],
maskCloseable: true,
diff --git a/main.js b/main.js
index b236a7b..ded007a 100644
--- a/main.js
+++ b/main.js
@@ -22,4 +22,7 @@ const app = new Vue({
...App
})
+// 引入请求封装
+require('./util/request/index')(app)
+
app.$mount()
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
index 904676f..3fbd98c 100644
--- a/manifest.json
+++ b/manifest.json
@@ -85,7 +85,7 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
- "appid" : "wx97458d91caa76a6a",
+ "appid" : "wxf3d81a452b88ff4b",
"setting" : {
"urlCheck" : false,
"es6" : true,
@@ -119,7 +119,8 @@
"title" : "Tuniao UI",
"template" : "template.h5.html",
"router" : {
- "mode" : "hash"
+ "mode" : "hash",
+ "base" : "./"
},
"sdkConfigs" : {
"maps" : {
diff --git a/mock/template_page.js b/mock/template_page.js
index d4f1c43..b0292be 100644
--- a/mock/template_page.js
+++ b/mock/template_page.js
@@ -237,9 +237,9 @@ export default {
},
{
icon: 'rocket',
- title: '期待你的加入',
- author: '期待你的加入',
- url: '/templatePage/life/candle/candle'
+ title: '微信红包封面',
+ author: '微信红包封面',
+ url: '/templatePage/life/cover/cover'
}
]
}
diff --git a/mock/vip_page.js b/mock/vip_page.js
new file mode 100644
index 0000000..2c5849a
--- /dev/null
+++ b/mock/vip_page.js
@@ -0,0 +1,299 @@
+/**
+ * 页面展示列表数据
+ */
+export default {
+ data: [{
+ title: '圈子博客',
+ backgroundColor: 'tn-cool-bg-color-1',
+ list: [{
+ icon: 'order',
+ title: '操作指引',
+ author: '图鸟科技',
+ url: '/vipPage/life/guide/guide'
+ },{
+ icon: 'order',
+ title: '首次指引',
+ author: '图鸟科技',
+ url: '/vipPage/life/start/start'
+ },
+ {
+ icon: 'order',
+ title: '圈子首页',
+ author: '图鸟科技',
+ url: '/vipPage/blog/blog/blog'
+ },
+ {
+ icon: 'order',
+ title: '社交圈子',
+ author: '图鸟科技',
+ url: '/vipPage/blog/socialize/socialize'
+ },
+ {
+ icon: 'order',
+ title: '简约圈子(旧)',
+ author: '图鸟科技',
+ url: '/vipPage/blog/circle/circle'
+ },
+ {
+ icon: 'order',
+ title: '圈子个人',
+ author: '图鸟科技',
+ url: '/vipPage/blog/myblog/myblog'
+ },
+ {
+ icon: 'order',
+ title: '消息通知',
+ author: '图鸟科技',
+ url: '/vipPage/blog/message/message'
+ },
+ {
+ icon: 'order',
+ title: '商品优选',
+ author: '图鸟科技',
+ url: '/vipPage/blog/prefer/prefer'
+ },
+ {
+ icon: 'order',
+ title: '优选详情',
+ author: '图鸟科技',
+ url: '/vipPage/blog/product/product'
+ },
+ {
+ icon: 'order',
+ title: '博客博主',
+ author: '图鸟科技',
+ url: '/vipPage/blog/blogger/blogger'
+ },
+ {
+ icon: 'order',
+ title: '酷炫功能',
+ author: '图鸟科技',
+ url: '/vipPage/home/cool/cool'
+ },
+ {
+ icon: 'order',
+ title: '友情链接',
+ author: '图鸟科技',
+ url: '/vipPage/home/link/link'
+ },
+ {
+ icon: 'order',
+ title: '祝福页面',
+ author: '图鸟科技',
+ url: '/vipPage/life/bless/bless'
+ }
+ ]
+ },
+ {
+ title: '酷炫首页',
+ backgroundColor: 'tn-cool-bg-color-1',
+ list: [{
+ icon: 'order',
+ title: '图鸟首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/tuniao/tuniao'
+ },
+ {
+ icon: 'order',
+ title: '奶茶首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/tea/tea'
+ },
+ {
+ icon: 'order',
+ title: '阅读首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/read/read'
+ },
+ {
+ icon: 'order',
+ title: '月亮首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/moon/moon'
+ },
+ {
+ icon: 'order',
+ title: '计划首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/plan/plan'
+ },
+ {
+ icon: 'order',
+ title: '新年首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/year/year'
+ },
+ {
+ icon: 'order',
+ title: '电影首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/movie/movie'
+ },
+ {
+ icon: 'order',
+ title: '食物首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/food/food'
+ },
+ {
+ icon: 'order',
+ title: '拟态首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/mimicry/mimicry'
+ },
+ {
+ icon: 'order',
+ title: '充电首页',
+ author: '图鸟科技',
+ url: '/vipPage/life/power/power'
+ },
+ {
+ icon: 'order',
+ title: '卡片首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/card/card'
+ },
+ {
+ icon: 'order',
+ title: '健康首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/health/health'
+ },
+ {
+ icon: 'order',
+ title: '全景首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/panoramic/panoramic'
+ },
+ {
+ icon: 'order',
+ title: 'uCharts首页',
+ author: '图鸟科技',
+ url: '/vipPage/home/ucharts/ucharts'
+ },
+ ]
+ },
+ {
+ title: '商城店铺',
+ backgroundColor: 'tn-cool-bg-color-1',
+ list: [{
+ icon: 'order',
+ title: '店铺商品',
+ author: '图鸟科技',
+ url: '/vipPage/shop/store/store'
+ },
+ {
+ icon: 'order',
+ title: '商品订单',
+ author: '图鸟科技',
+ url: '/vipPage/shop/order/order'
+ },
+ {
+ icon: 'order',
+ title: '商品分类',
+ author: '图鸟科技',
+ url: '/vipPage/shop/classify/classify'
+ },
+ {
+ icon: 'order',
+ title: '积分活动',
+ author: '图鸟科技',
+ url: '/vipPage/shop/money/money'
+ }
+ ]
+ },
+ {
+ title: '会员需求',
+ backgroundColor: 'tn-cool-bg-color-1',
+ list: [{
+ icon: 'order',
+ title: 'Drag长按拖拽随机固定',
+ author: '图鸟科技',
+ url: '/vipPage/components/drag/basic-drag/basic-drag'
+ },
+ {
+ icon: 'order',
+ title: '图片上传长按拖拽',
+ author: '图鸟科技',
+ url: '/vipPage/components/drag/upload-image-drag/upload-image-drag'
+ },
+ {
+ icon: 'order',
+ title: 'Cropper图片裁剪',
+ author: '图鸟科技',
+ url: '/vipPage/components/cropper/cropper'
+ },
+ {
+ icon: 'order',
+ title: 'StackSwiper堆叠轮播',
+ author: '图鸟科技',
+ url: '/vipPage/components/stack-swiper/stack-swiper'
+ },
+ {
+ icon: 'order',
+ title: '重力效果',
+ author: '图鸟科技',
+ url: '/vipPage/home/gravity/page1/page1'
+ },
+ {
+ icon: 'order',
+ title: '下拉刷新',
+ author: '图鸟科技',
+ url: '/vipPage/components/scroll-view/index'
+ },
+ {
+ icon: 'order',
+ title: '级联选择',
+ author: '图鸟科技',
+ url: '/vipPage/components/cascade-selection/cascade-selection'
+ },
+ {
+ icon: 'order',
+ title: '瀑布流',
+ author: '图鸟科技',
+ url: '/vipPage/components/waterfall/waterfall'
+ },
+ {
+ icon: 'order',
+ title: '树形菜单',
+ author: '图鸟科技',
+ url: '/vipPage/components/tree-view/tree-view'
+ },
+ {
+ icon: 'order',
+ title: '表格',
+ author: '图鸟科技',
+ url: '/vipPage/components/table/index'
+ },
+ {
+ icon: 'order',
+ title: '图鸟轮播(实验)',
+ author: '图鸟科技',
+ url: '/vipPage/components/custom-swiper/index'
+ }
+ ]
+ },
+ {
+ title: '生态支持',
+ backgroundColor: 'tn-cool-bg-color-1',
+ list: [{
+ icon: 'order',
+ title: '短视频',
+ author: '图鸟 & 第三方',
+ url: '/thirdPage/short-video/short-video'
+ },{
+ icon: 'order',
+ title: '外卖模板',
+ author: '图鸟 & 第三方',
+ url: '/takeOutPage/walking-route/walking-route'
+ },
+ {
+ icon: 'order',
+ title: '期待你的加入',
+ author: '图鸟 & 第三方',
+ url: '/templatePage/life/candle/candle'
+ }
+ ]
+ }
+ ]
+}
diff --git a/pages.json b/pages.json
index 40d1a99..f08bb52 100644
--- a/pages.json
+++ b/pages.json
@@ -7,6 +7,7 @@
"path": "pages/index/index",
"style": {
"mp-weixin": {
+ "disableScroll": true
},
"app-plus": {
"bounce": "none"
@@ -510,7 +511,8 @@
}, {
"path": "life/share/share",
"style": {
- "navigationBarTitleText": "会员分享",
+ "navigationBarTitleText": "",
+ // 图鸟公众号
"enablePullDownRefresh": false
}
}, {
@@ -519,6 +521,12 @@
"navigationBarTitleText": "敬请期待",
"enablePullDownRefresh": false
}
+ }, {
+ "path": "life/cover/cover",
+ "style": {
+ "navigationBarTitleText": "红包封面",
+ "enablePullDownRefresh": false
+ }
}, {
"path": "time/clock/clock",
"style": {
@@ -616,6 +624,15 @@
"enablePullDownRefresh": false
}
}]
+ }, {
+ "root": "vipPage",
+ "pages": []
+ }, {
+ "root": "thirdPage",
+ "pages": []
+ },{
+ "root":"takeOutPage",
+ "pages": []
}],
"preloadRule": {
"pages/index/index": {
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 133bd51..938f8d8 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,9 +1,31 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 图鸟VUE3
+
+
+
+
+
+
+
+
+
+ 圈子博客
+
+
+
+
+
+
+
+
+
+ 简约商圈
+
+
+
+
+
+
+
+
+
+ 凶姐壁纸
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title | titleFilter}}
+
+
+
+
+
+
+ {{ content_item.title }}
+ {{ content_item.author }}
+
+
+
+
+
+
+
+
+
+ 关于图鸟会员
+
+
+
+
+
+
+
+
+
+
+
diff --git a/takeOutPage/static/images/location.png b/takeOutPage/static/images/location.png
new file mode 100644
index 0000000..338d999
Binary files /dev/null and b/takeOutPage/static/images/location.png differ
diff --git a/takeOutPage/static/images/take_out_car.png b/takeOutPage/static/images/take_out_car.png
new file mode 100644
index 0000000..5ffde39
Binary files /dev/null and b/takeOutPage/static/images/take_out_car.png differ
diff --git a/takeOutPage/walking-route/walking-route.vue b/takeOutPage/walking-route/walking-route.vue
new file mode 100644
index 0000000..d147311
--- /dev/null
+++ b/takeOutPage/walking-route/walking-route.vue
@@ -0,0 +1,226 @@
+
+
+
+
+ 路线轨迹
+
+
+
+
+
+
+
+ 授权使用位置信息
+ 获取定位失败, 请进行设置
+
+ 打开设置
+
+
+
+
+
+
+
+
+
+
diff --git a/templatePage/life/cover/cover.vue b/templatePage/life/cover/cover.vue
new file mode 100644
index 0000000..f92f3dd
--- /dev/null
+++ b/templatePage/life/cover/cover.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-cascade-selection/tn-cascade-selection.vue b/tuniao-ui/components/tn-cascade-selection/tn-cascade-selection.vue
new file mode 100644
index 0000000..042e06f
--- /dev/null
+++ b/tuniao-ui/components/tn-cascade-selection/tn-cascade-selection.vue
@@ -0,0 +1,654 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ subItem.text }}
+
+
+ {{ subItem.subText }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-cropper/index.wxs b/tuniao-ui/components/tn-cropper/index.wxs
new file mode 100644
index 0000000..1b73222
--- /dev/null
+++ b/tuniao-ui/components/tn-cropper/index.wxs
@@ -0,0 +1,332 @@
+var cropper = {
+ // 画布x轴起点
+ cutX: 0,
+ // 画布y轴起点
+ cutY: 0,
+ // 触摸点信息(手指与图片中心点的相对位置)
+ touchRelactive: [{
+ x: 0,
+ y: 0
+ }],
+ // 双指触摸时斜边的长度
+ hypotenuseLength:0,
+ // 是否结束触摸
+ touchEndFlag: false,
+ // 画布宽高
+ canvasWidth: 0,
+ canvasHeight: 0,
+ // 图片宽高
+ imgWidth: 0,
+ imgHeight: 0,
+ // 图片缩放比例
+ scale: 1,
+ // 图片旋转角度
+ angle: 0,
+ // 图片上边距
+ imgTop: 0,
+ // 图片左边距
+ imgLeft: 0,
+ // 窗口宽高
+ windowWidth: 0,
+ windowHeight: 0,
+ init: true
+}
+
+function bool(str) {
+ return str === 'true' || str === true
+}
+
+function propChange(prop, oldProp, ownerInstance, instance) {
+ if (prop && prop !== 'null') {
+ var params = prop.split(',')
+ var type = +params[0]
+ var dataset = instance.getDataset()
+ if (cropper.init || type == 4) {
+ cropper.canvasWidth = +dataset.width
+ cropper.canvasHeight = +dataset.height
+ cropper.imgTop = +dataset.windowheight / 2
+ cropper.imgLeft = +dataset.windowwidth / 2
+ cropper.imgWidth = +dataset.imgwidth
+ cropper.imgHeight = +dataset.imgheight
+ cropper.windowHeight = +dataset.windowheight
+ cropper.windowWidth = +dataset.windowwidth
+ cropper.init = false
+ } else if (type == 2 || type == 3) {
+ cropper.imgWidth = +dataset.imgwidth
+ cropper.imgHeight = +dataset.imgheight
+ }
+ cropper.angle = +dataset.angle
+ if (type == 3) {
+ imgTransform(ownerInstance)
+ }
+ switch(type) {
+ case 1:
+ setCutCenter(ownerInstance)
+ // // 设置裁剪框大小
+ computeCutSize(ownerInstance)
+ // // 检查裁剪框是否在范围内
+ cutDetectionPosition(ownerInstance)
+ break
+ case 2:
+ setCutCenter(ownerInstance)
+ break
+ case 3:
+ imgMarginDetectionScale(ownerInstance)
+ break
+ case 4:
+ imageReset(ownerInstance)
+ break
+ case 5:
+ setCutCenter(ownerInstance)
+ break
+ default:
+ break
+ }
+ }
+}
+
+function touchStart(event, ownerInstance) {
+ var touch = event.touches || event.changedTouches
+ cropper.touchEndFlag = false
+ if (touch.length === 1) {
+ cropper.touchRelactive[0] = {
+ x: touch[0].pageX - cropper.imgLeft,
+ y: touch[0].pageY - cropper.imgTop
+ }
+ } else {
+ var width = Math.abs(touch[0].pageX - touch[1].pageX)
+ var height = Math.abs(touch[0].pageY - touch[1].pageY)
+ cropper.touchRelactive = [{
+ x: touch[0].pageX - cropper.imgLeft,
+ y: touch[0].pageY - cropper.imgTop
+ },{
+ x: touch[1].pageX - cropper.imgLeft,
+ y: touch[1].pageY - cropper.imgTop
+ }]
+ cropper.hypotenuseLength = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2))
+ }
+}
+
+function touchMove(event, ownerInstance) {
+ var touch = event.touches || event.changedTouches
+ if (cropper.touchEndFlag) return
+ moveDuring(ownerInstance)
+ if (event.touches.length === 1) {
+ var left = touch[0].pageX - cropper.touchRelactive[0].x,
+ top = touch[0].pageY - cropper.touchRelactive[0].y;
+ cropper.imgLeft = left
+ cropper.imgTop = top
+ imgTransform(ownerInstance)
+ imgMarginDetectionPosition(ownerInstance)
+ } else {
+ var dataset = event.instance.getDataset()
+ var minScale = +dataset.minscale
+ var maxScale = +dataset.maxscale
+ var width = Math.abs(touch[0].pageX - touch[1].pageX),
+ height = Math.abs(touch[0].pageY - touch[1].pageY),
+ hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)),
+ scale = cropper.scale * (hypotenuse / cropper.hypotenuseLength),
+ current_deg = 0;
+ scale = scale <= minScale ? minScale : scale
+ scale = scale >= maxScale ? maxScale : scale
+ cropper.scale = scale
+ imgMarginDetectionScale(ownerInstance, true)
+ var touchRelative = [{
+ x: touch[0].pageX - cropper.imgLeft,
+ y: touch[0].pageY - cropper.imgTop
+ }, {
+ x: touch[1].pageX - cropper.imgLeft,
+ y: touch[1].pageY - cropper.imgTop
+ }]
+ cropper.touchRelactive = touchRelative
+ cropper.hypotenuseLength = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2))
+ // 更新视图
+ cropper.angle = cropper.angle + current_deg
+ imgTransform(ownerInstance)
+ }
+}
+
+function touchEnd(event, ownerInstance) {
+ cropper.touchEndFlag = true
+ moveStop(ownerInstance)
+ updateData(ownerInstance)
+}
+
+function moveDuring(ownerInstance) {
+ if (!ownerInstance) return
+ ownerInstance.callMethod('moveDuring')
+}
+
+function moveStop(ownerInstance) {
+ if (!ownerInstance) return
+ ownerInstance.callMethod('moveStop')
+}
+
+function setCutCenter(ownerInstance) {
+ var cutX = (cropper.windowWidth - cropper.canvasWidth) * 0.5
+ var cutY = (cropper.windowHeight - cropper.canvasHeight) * 0.5
+
+ cropper.imgTop = cropper.imgTop - cropper.cutY + cutY
+ cropper.cutY = cutY
+ cropper.imgLeft = cropper.imgLeft - cropper.cutX + cutX
+ cropper.cutX = cutX
+ cutDetectionPosition(ownerInstance)
+ imgTransform(ownerInstance)
+ updateData(ownerInstance)
+}
+
+// 检测剪裁框位置是否在允许的范围内(屏幕内)
+function cutDetectionPosition(ownerInstance) {
+ var windowHeight = cropper.windowHeight,
+ windowWidth = cropper.windowWidth;
+
+ // 检测上边距是否在范围内
+ var cutDetectionPositionTop = function() {
+ if (cropper.cutY < 0) {
+ cropper.cutY = 0
+ }
+ if (cropper.cutY > windowHeight - cropper.canvasHeight) {
+ cropper.cutY = windowHeight - cropper.canvasHeight
+ }
+ }
+
+ // 检测左边距是否在范围内
+ var cutDetectionPositionLeft = function() {
+ if (cropper.cutX < 0) {
+ cropper.cutX = 0
+ }
+ if (cropper.cutX > windowWidth - cropper.canvasWidth) {
+ cropper.cutX = windowWidth - cropper.canvasWidth
+ }
+ }
+
+ // 裁剪框坐标处理(如果只写一个参数则另一个默认为0,都不写默认为居中)
+ if (cropper.cutX === null && cropper.cutY === null) {
+ var cutX = (windowWidth - cropper.canvasWidth) * 0.5,
+ cutY = (windowHeight - cropper.canvasHeight) * 0.5;
+ cropper.cutX = cutX
+ cropper.cutY = cutY
+ } else if (cropper.cutX !== null && cropper.cutX !== null) {
+ cutDetectionPositionTop()
+ cutDetectionPositionLeft()
+ } else if (cropper.cutX !== null && cropper.cutY === null) {
+ cutDetectionPositionLeft()
+ cropper.cutY = (windowHeight - cropper.canvasHeight) / 2
+ } else if (cropper.cutX === null && cropper.cutY !== null) {
+ cutDetectionPositionTop()
+ cropper.cutX = (windowWidth - cropper.canvasWidth) / 2
+ }
+}
+
+// 图片边缘检测-缩放
+function imgMarginDetectionScale(ownerInstance, delay) {
+ var scale = cropper.scale,
+ imgWidth = cropper.imgWidth,
+ imgHeight = cropper.imgHeight;
+ if ((cropper.angle / 90) % 2) {
+ imgWidth = cropper.imgHeight
+ imgHeight = cropper.imgWidth
+ }
+ if (imgWidth * scale < cropper.canvasWidth) {
+ scale = cropper.canvasWidth / imgWidth
+ }
+ if (imgHeight * scale < cropper.canvasHeight) {
+ scale = Math.max(scale, cropper.canvasHeight / imgHeight)
+ }
+ imgMarginDetectionPosition(ownerInstance, scale, delay)
+}
+
+// 图片边缘检测-位置
+function imgMarginDetectionPosition(ownerInstance, scale, delay) {
+ var left = cropper.imgLeft,
+ top = cropper.imgTop,
+ imgWidth = cropper.imgWidth,
+ imgHeight = cropper.imgHeight;
+ scale = scale || cropper.scale
+ if ((cropper.angle / 90) % 2) {
+ imgWidth = cropper.imgHeight
+ imgHeight = cropper.imgWidth
+ }
+
+ left = cropper.cutX + (imgWidth * scale) / 2 >= left ? left : cropper.cutX + (imgWidth * scale) / 2
+ left = cropper.cutX + cropper.canvasWidth - (imgWidth * scale) / 2 <= left ? left : cropper.cutX + cropper.canvasWidth - (imgWidth * scale) / 2
+ top = cropper.cutY + (imgHeight * scale) / 2 >= top ? top : cropper.cutY + (imgHeight * scale) / 2
+ top = cropper.cutY + cropper.canvasHeight - (imgHeight * scale) / 2 <= top ? top : cropper.cutY + cropper.canvasHeight - (imgHeight * scale) / 2
+
+ cropper.imgLeft = left
+ cropper.imgTop = top
+ cropper.scale = scale
+ if (!delay || delay === 'null') {
+ imgTransform(ownerInstance)
+ }
+}
+
+// 改变截取值大小
+function computeCutSize(ownerInstance) {
+ if (cropper.canvasWidth > cropper.windowWidth) {
+ cropper.canvasWidth = cropper.windowWidth
+ } else if (cropper.canvasWidth + cropper.cutX > cropper.windowWidth) {
+ cropper.cutX = cropper.windowWidth - cropper.cutX
+ }
+ if (cropper.canvasHeight > cropper.windowHeight) {
+ cropper.canvasHeight = cropper.windowHeight
+ } else if (cropper.canvasHeight + cropper.cutY > cropper.windowHeight) {
+ cropper.cutY = cropper.windowHeight - cropper.cutY
+ }
+}
+
+// 图片动画
+function imgTransform(ownerInstance) {
+ try {
+ var image = ownerInstance.selectComponent('.tn-cropper__image')
+ if (!image) return
+ var x = cropper.imgLeft - cropper.imgWidth / 2,
+ y = cropper.imgTop - cropper.imgHeight / 2;
+ image.setStyle({
+ 'transform': 'translate3d('+ x + 'px,' + y + 'px,0) scale(' + cropper.scale +') rotate(' + cropper.angle + 'deg)'
+ })
+ } catch(e) {
+
+ }
+}
+
+// 图片重置
+function imageReset(ownerInstance) {
+ cropper.scale = 1
+ cropper.angle = 0
+ imgTransform(ownerInstance)
+}
+
+// 高度变化
+function canvasHeight(ownerInstance) {
+ if (!ownerInstance) return
+ computeCutSize(ownerInstance)
+}
+
+// 宽度变化
+function canvasWidth(ownerInstance) {
+ if (!ownerInstance) return
+ computeCutSize(ownerInstance)
+}
+
+// 更新数据
+function updateData(ownerInstance) {
+ if (!ownerInstance) return
+ ownerInstance.callMethod('change', {
+ cutX: cropper.cutX,
+ cutY: cropper.cutY,
+ imgWidth: cropper.imgWidth,
+ imgHeight: cropper.imgHeight,
+ scale: cropper.scale,
+ angle: cropper.angle,
+ imgTop: cropper.imgTop,
+ imgLeft: cropper.imgLeft
+ })
+}
+
+module.exports = {
+ touchStart: touchStart,
+ touchMove: touchMove,
+ touchEnd: touchEnd,
+ propChange: propChange
+}
\ No newline at end of file
diff --git a/tuniao-ui/components/tn-cropper/tn-cropper.vue b/tuniao-ui/components/tn-cropper/tn-cropper.vue
new file mode 100644
index 0000000..7dba709
--- /dev/null
+++ b/tuniao-ui/components/tn-cropper/tn-cropper.vue
@@ -0,0 +1,574 @@
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+ 完成
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-custom-swiper-item/index.wxs b/tuniao-ui/components/tn-custom-swiper-item/index.wxs
new file mode 100644
index 0000000..ecbf07d
--- /dev/null
+++ b/tuniao-ui/components/tn-custom-swiper-item/index.wxs
@@ -0,0 +1,288 @@
+
+function setTimeout(instance, cb, time) {
+ if (time > 0) {
+ var s = getDate().getTime()
+ var fn = function () {
+ if (getDate().getTime() - s > time) {
+ cb && cb()
+ } else
+ instance.requestAnimationFrame(fn)
+ }
+ fn()
+ }
+ else
+ cb && cb()
+}
+
+// 判断触摸的移动方向
+function decideSwiperDirection(startTouches, currentTouches, vertical) {
+ // 震动偏移容差
+ var toleranceShake = 150
+ // 移动容差
+ var toleranceTranslate = 10
+
+ if (!vertical) {
+ // 水平方向移动
+ if (Math.abs(currentTouches.y - startTouches.y) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.x - startTouches.x) > toleranceTranslate) {
+ if (currentTouches.x - startTouches.x > 0) {
+ return 'right'
+ } else if (currentTouches.x - startTouches.x < 0) {
+ return 'left'
+ }
+ }
+ }
+ } else {
+ // 垂直方向移动
+ if (Math.abs(currentTouches.x - startTouches.x) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.y - startTouches.y) > toleranceTranslate) {
+ if (currentTouches.y - startTouches.y > 0) {
+ return 'down'
+ } else if (currentTouches.y - startTouches.y < 0) {
+ return 'up'
+ }
+ }
+ }
+ }
+ return ''
+}
+
+// swiperItem参数数据更新
+var itemDataObserver = function(newVal, oldVal, ownerInstance, instance) {
+ if (!newVal || newVal === 'undefined') return
+ var state = ownerInstance.getState()
+ state.itemData = newVal
+}
+
+// swiperIndex数据更新
+var currentIndexObserver = function(newVal, oldVal, ownerInstance, instance) {
+ if ((!newVal && newVal != 0) || newVal === 'undefined') return
+ var state = ownerInstance.getState()
+ state.currentIndex = newVal
+}
+
+// containerData数据更新
+var containerDataObserver = function(newVal, oldVal, ownerInstance, instance) {
+ if (!newVal || newVal === 'undefined') return
+ var state = ownerInstance.getState()
+ state.containerData = newVal
+}
+
+// 开始触摸
+var touchStart = function(event, ownerInstance) {
+ console.log('touchStart');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ var containerData = state.containerData
+
+ // 由于当前SwiperIndex初始为0,可能会导致swiperIndex数据没有更新
+ if (!state.currentIndex || state.currentIndex === 'undefined') {
+ state.currentIndex = 0
+ }
+
+ if (!containerData || containerData.circular === 'undefined') {
+ containerData.circular = false
+ }
+ state.containerData = containerData
+
+ // 如果当前切换动画还没执行结束,再次触摸会重新加载对应的swiperContainer的信息
+ // console.log(containerData.animationFinish);
+ if (!containerData.animationFinish) {
+ ownerInstance.callMethod('changeParentSwiperContainerStyleStatus',{
+ status: 'reload'
+ })
+ }
+
+ // 判断是否为为当前显示的SwiperItem
+ if (itemData.index != state.currentIndex) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 标记滑动开始时间
+ state.touchStartTime = getDate().getTime()
+
+ // 记录当前滑动开始的x,y坐标
+ state.touchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+ // 记录触摸id,用于处理多指的情况
+ state.touchId = touches.identifier
+
+ // 标记开始触摸
+ state.touching = true
+ ownerInstance.callMethod('updateTouchingStatus', {
+ status: true
+ })
+}
+
+// 正在移动
+var touchMove = function(event, ownerInstance) {
+ console.log('touchMove');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ var containerData = state.containerData
+
+ // 判断是否为为当前显示的SwiperItem
+ if (itemData.index != state.currentIndex) return
+
+ // 判断是否开始触摸
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+ var currentTouchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+
+ // 计算相对位移比例
+ if (containerData.vertical) {
+ var touchDistance = currentTouchRelactive.y - state.touchRelactive.y
+ var itemHeight = itemData.itemHeight
+ var distanceRate = touchDistance / itemHeight
+ // console.log(currentTouchRelactive.y, touchDistance, itemHeight, distanceRate);
+
+ // 判断是否为衔接轮播,如果不是衔接轮播,如果当前为第一个swiperItem并且向下滑、当前为最后一个swiperItem并且向上滑时不进行操作
+ if (!containerData.circular &&
+ ((state.currentIndex === 0 && touchDistance > 0) || (state.currentIndex === containerData.swiperItemLength - 1 && touchDistance < 0))
+ ) {
+ return
+ }
+
+ // 如果超出了距离则不进行操作
+ if((Math.abs(touchDistance) > (itemData.itemTop + itemData.itemHeight))) {
+ ownerInstance.callMethod('updateParentSwiperContainerStyle', {
+ value: distanceRate < 0 ? -1 : 1
+ })
+ return
+ }
+ } else {
+ var touchDistance = currentTouchRelactive.x - state.touchRelactive.x
+ var itemWidth = itemData.itemWidth
+ var distanceRate = touchDistance / itemWidth
+ // console.log(currentTouchRelactive.x, touchDistance, itemWidth, distanceRate);
+
+ // 判断是否为衔接轮播,如果不是衔接轮播,如果当前为第一个swiperItem并且向右滑、当前为最后一个swiperItem并且向左滑时不进行操作
+ if (!containerData.circular &&
+ ((state.currentIndex === 0 && touchDistance > 0) || (state.currentIndex === containerData.swiperItemLength - 1 && touchDistance < 0))
+ ) {
+ return
+ }
+
+ // 如果超出了距离则不进行操作
+ if((Math.abs(touchDistance) > (itemData.itemLeft + itemData.itemWidth))) {
+ ownerInstance.callMethod('updateParentSwiperContainerStyle', {
+ value: distanceRate < 0 ? -1 : 1
+ })
+ return
+ }
+ }
+
+ ownerInstance.callMethod('updateParentSwiperContainerStyle', {
+ value: distanceRate
+ })
+}
+
+// 移动结束
+var touchEnd = function(event, ownerInstance) {
+ console.log('touchEnd');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ var containerData = state.containerData
+
+ // 判断是否为为当前显示的SwiperItem
+ if (itemData.index != state.currentIndex) return
+
+ // 判断是否开始触摸
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+
+ var currentTime = getDate().getTime()
+ var currentTouchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+
+ if (containerData.vertical) {
+ // 判断触摸移动方向
+ var direction = decideSwiperDirection(state.touchRelactive, currentTouchRelactive, true)
+ // 判断是否为衔接轮播,如果不是衔接轮播,如果当前为第一个swiperItem并且向下滑、当前为最后一个swiperItem并且向上滑时不进行操作
+ if (containerData.circular ||
+ !((state.currentIndex === 0 && direction === 'down') || (state.currentIndex === containerData.swiperItemLength - 1 && direction === 'up'))
+ ) {
+ // 判断触摸的时间和移动的距离是否超过了当前itemHeight的一半,如果是则执行切换操作
+ // console.log(currentTime - state.touchStartTime, Math.abs(currentTouchRelactive.y - state.touchRelactive.y));
+ if ((currentTime - state.touchStartTime) > 200 && Math.abs(currentTouchRelactive.y - state.touchRelactive.y) < itemData.itemHeight / 2) {
+ ownerInstance.callMethod('changeParentSwiperContainerStyleStatus',{
+ status: 'reset'
+ })
+ } else {
+ // console.log(direction, state.touchRelactive.y, currentTouchRelactive.y);
+
+ ownerInstance.callMethod('updateParentSwiperContainerStyleWithDirection', {
+ direction: direction
+ })
+ }
+ }
+ } else {
+ // 判断触摸移动方向
+ var direction = decideSwiperDirection(state.touchRelactive, currentTouchRelactive, false)
+ // 判断是否为衔接轮播,如果不是衔接轮播,如果当前为第一个swiperItem并且向右滑、当前为最后一个swiperItem并且向左滑时不进行操作
+ if (containerData.circular ||
+ !((state.currentIndex === 0 && direction === 'right') || (state.currentIndex === containerData.swiperItemLength - 1 && direction === 'left'))
+ ) {
+ // 判断触摸的时间和移动的距离是否超过了当前itemWidth的一半,如果是则执行切换操作
+ // console.log(currentTime - state.touchStartTime, Math.abs(currentTouchRelactive.x - state.touchRelactive.x));
+ if ((currentTime - state.touchStartTime) > 200 && Math.abs(currentTouchRelactive.x - state.touchRelactive.x) < itemData.itemWidth / 2) {
+ ownerInstance.callMethod('changeParentSwiperContainerStyleStatus',{
+ status: 'reset'
+ })
+ } else {
+ // console.log(direction, state.touchRelactive.x, currentTouchRelactive.x);
+
+ ownerInstance.callMethod('updateParentSwiperContainerStyleWithDirection', {
+ direction: direction
+ })
+ }
+ }
+ }
+
+ // 清除标记
+ state.touchId = null
+ state.touchRelactive = null
+ state.touchStartTime = 0
+
+
+ // 标记停止触摸
+ state.touching = true
+ ownerInstance.callMethod('updateTouchingStatus', {
+ status: false
+ })
+}
+
+module.exports = {
+ itemDataObserver: itemDataObserver,
+ currentIndexObserver: currentIndexObserver,
+ containerDataObserver: containerDataObserver,
+ touchStart: touchStart,
+ touchMove: touchMove,
+ touchEnd: touchEnd
+}
\ No newline at end of file
diff --git a/tuniao-ui/components/tn-custom-swiper-item/tn-custom-swiper-item.vue b/tuniao-ui/components/tn-custom-swiper-item/tn-custom-swiper-item.vue
new file mode 100644
index 0000000..88a3451
--- /dev/null
+++ b/tuniao-ui/components/tn-custom-swiper-item/tn-custom-swiper-item.vue
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-custom-swiper/tn-custom-swiper.vue b/tuniao-ui/components/tn-custom-swiper/tn-custom-swiper.vue
new file mode 100644
index 0000000..9efd934
--- /dev/null
+++ b/tuniao-ui/components/tn-custom-swiper/tn-custom-swiper.vue
@@ -0,0 +1,535 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentIndex + 1 }}/{{ children.length }}
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-drag/index.wxs b/tuniao-ui/components/tn-drag/index.wxs
new file mode 100644
index 0000000..8b3d233
--- /dev/null
+++ b/tuniao-ui/components/tn-drag/index.wxs
@@ -0,0 +1,265 @@
+// 判断是否出界
+var isOutRange = function(x1, y1, x2, y2, x3, y3) {
+ return x1 < 0 || x1 >= y1 || x2 < 0 || x2 >= y2 || x3 < 0 || x3 >= y3
+}
+var edit = false
+
+function bool(str) {
+ return str === 'true' || str === true
+}
+/**
+ * 排序核心
+ * @param {Object} startKey 开始时位置
+ * @param {Object} endKey 结束时位置
+ * @param {Object} instance wxs内的局部变量快照
+ */
+var sortCore = function(startKey, endKey, state) {
+ var basedata = state.basedata
+ var excludeFix = function(sortKey, type) {
+ // fixed 元素位置不会变化, 这里直接用 sortKey 获取,更加便捷
+ if (state.list[sortKey].fixed) {
+ var _sortKey = type ? --sortKey : ++sortKey
+ return excludeFix(sortKey, type)
+ }
+ return sortKey
+ }
+
+ // 先获取到 endKey 对应的 realKey, 防止下面排序过程中该 realKey 被修改
+ var endRealKey = -1
+ state.list.forEach(function(item) {
+ if (item.sortKey === endKey) endRealKey = item.realKey
+ })
+
+ return state.list.map(function(item) {
+ if (item.fixed) return item
+ var sortKey = item.sortKey
+ var realKey = item.realKey
+
+ if (startKey < endKey) {
+ // 正序拖动
+ if (sortKey > startKey && sortKey <= endKey) {
+ --realKey
+ sortKey = excludeFix(--sortKey, true)
+ } else if (sortKey === startKey) {
+ realKey = endRealKey
+ sortKey = endKey
+ }
+ } else if (startKey > endKey) {
+ // 倒序拖动
+ if (sortKey >= endKey && sortKey < startKey) {
+ ++realKey
+ sortKey = excludeFix(++sortKey, false)
+ } else if (sortKey === startKey) {
+ realKey = endRealKey
+ sortKey = endKey
+ }
+ }
+
+ if (item.sortKey != sortKey) {
+ item.translateX = (sortKey % basedata.columns) * 100 + '%'
+ item.translateY = Math.floor(sortKey / basedata.columns) * 100 + '%'
+ item.sortKey = sortKey
+ item.realKey = realKey
+ }
+ return item
+ })
+}
+
+var triggerCustomEvent = function(list, type, instance) {
+ if (!instance) return
+ var _list = [],
+ listData = [];
+
+ list.forEach(function(item) {
+ _list[item.sortKey] = item
+ })
+ _list.forEach(function(item) {
+ listData.push(item.data)
+ })
+
+ // 编译到小程序 funcName作为参数传递导致事件不执行
+ switch(type) {
+ case 'change':
+ instance.callMethod('change', {data: listData})
+ break
+ case 'sortEnd':
+ instance.callMethod('sortEnd', {data: listData})
+ break
+ }
+}
+
+var listObserver = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ state.itemsInstance = ownerInstance.selectAllComponents('.tn-drag__item')
+
+ state.list = newVal || []
+
+ state.list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + ',' + item.translateY +', 0)'
+ })
+ if (item.fixed) itemInstance.addClass('tn-drag__fixed')
+ }
+ })
+}
+
+var baseDataObserver = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ state.basedata = newVal
+}
+
+var longPress = function(event, ownerInstance) {
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+
+ edit = bool(dataset.edit)
+ if (!edit) return
+ if (!state.basedata || state.basedata === 'undefined') {
+ state.basedata = JSON.parse(dataset.basedata)
+ }
+ var basedata = state.basedata
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ state.current = +dataset.index
+
+ // 初始项是固定项则返回
+ var item = state.list[state.current]
+ if (item && item.fixed) return
+
+ // 如果已经在 drag 中则返回, 防止多指触发 drag 动作, touchstart 事件中有效果
+ if (state.dragging) return
+
+ ownerInstance.callMethod("drag", {
+ dragging: true
+ })
+
+ // 计算X, Y轴初始位移,使item中心移动到点击处,单列的时候X轴初始不做位移
+ state.translateX = basedata.columns === 1 ? 0 : touches.pageX - (basedata.itemWidth / 2 + basedata.left)
+ state.translateY = touches.pageY - (basedata.itemHeight / 2 + basedata.top)
+ state.touchId = touches.identifier
+
+ instance.setStyle({
+ 'transform': 'translate3d(' + state.translateX + 'px,' + state.translateY +'px, 0)'
+ })
+ state.itemsInstance.forEach(function(item, index) {
+ item.removeClass("tn-drag__transition").removeClass("tn-drag__current")
+ item.addClass(index === state.current ? "tn-drag__current" : "tn-drag__transition")
+ })
+
+ ownerInstance.callMethod("vibrate")
+ state.dragging = true
+}
+
+var touchStart = function(event, ownerInstance) {
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ edit = bool(dataset.edit)
+}
+
+var touchMove = function(event, ownerInstance) {
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var basedata = state.basedata
+
+ if (!state.dragging || !edit) return
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 如果不是同一个触发点则返回
+ if (state.touchId !== touches.identifier) return
+
+ // 计算X,Y轴位移, 单列时候X轴初始不做位移
+ var translateX = basedata.columns === 1 ? 0 : touches.pageX - (basedata.itemWidth / 2 + basedata.left)
+ var translateY = touches.pageY - (basedata.itemHeight / 2 + basedata.top)
+
+ // 到顶到低自动滑动
+ if (touches.clientY > basedata.windowHeight - basedata.itemHeight - basedata.realBottomSize) {
+ // 当前触摸点pageY + item高度 - (屏幕高度 - 底部固定区域高度)
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: touches.pageY + basedata.itemHeight - (basedata.windowHeight - basedata.realBottomSize)
+ })
+ } else if (touches.clientY < basedata.itemHeight + basedata.realTopSize) {
+ // 当前触摸点pageY - item高度 - 顶部固定区域高
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: touches.pageY - basedata.itemHeight - basedata.realTopSize
+ })
+ }
+
+ // 设置当前激活元素的偏移量
+ instance.setStyle({
+ 'transform': 'translate3d('+ translateX + 'px,' + translateY + 'px, 0)'
+ })
+
+ var startKey = state.list[state.current].sortKey
+ var currentX = Math.round(translateX / basedata.itemWidth)
+ var currentY = Math.round(translateY / basedata.itemHeight)
+ var endKey = currentX + basedata.columns * currentY
+
+ // 目标项时固定项则返回
+ var item = state.list[endKey]
+ if (item && item.fixed) return
+
+ // X轴或者Y轴超出范围则返回
+ if (isOutRange(currentX, basedata.columns, currentY, basedata.rows, endKey, state.list.length)) return
+
+ // 防止拖拽过程中发生乱序问题
+ if (startKey === endKey || startKey === state.preStartKey) return
+ state.preStartKey = startKey
+
+ var list = sortCore(startKey, endKey, state)
+ state.itemsInstance.forEach(function(itemInstance, index) {
+ var item = list[index]
+ if (index !== state.current) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + ',' + item.translateY +', 0)'
+ })
+ }
+ })
+
+ // ownerInstance.callMethod('vibrate')
+ ownerInstance.callMethod('listDataChange', {
+ data: list
+ })
+ triggerCustomEvent(list, "change", ownerInstance)
+}
+
+var touchEnd = function(event, ownerInstance) {
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var basedata = state.basedata
+
+ if (!state.dragging || !edit) return
+ triggerCustomEvent(state.list, "sortEnd", ownerInstance)
+
+ instance.addClass('tn-drag__transition')
+ instance.setStyle({
+ 'transform': 'translate3d('+ state.list[state.current].translateX + ',' + state.list[state.current].translateY + ', 0)'
+ })
+ state.itemsInstance.forEach(function(item, index) {
+ item.removeClass('tn-drag__transition')
+ })
+
+ state.preStartKey = -1
+ state.dragging = false
+ ownerInstance.callMethod('drag', {
+ dragging: false
+ })
+ state.current = -1
+ state.translateX = 0
+ state.translateY = 0
+}
+
+module.exports = {
+ longPress: longPress,
+ touchStart: touchStart,
+ touchMove: touchMove,
+ touchEnd: touchEnd,
+ baseDataObserver: baseDataObserver,
+ listObserver: listObserver
+}
\ No newline at end of file
diff --git a/tuniao-ui/components/tn-drag/tn-drag.vue b/tuniao-ui/components/tn-drag/tn-drag.vue
new file mode 100644
index 0000000..359de75
--- /dev/null
+++ b/tuniao-ui/components/tn-drag/tn-drag.vue
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-image-upload-drag/tn-image-upload-drag.vue b/tuniao-ui/components/tn-image-upload-drag/tn-image-upload-drag.vue
new file mode 100644
index 0000000..3a530a4
--- /dev/null
+++ b/tuniao-ui/components/tn-image-upload-drag/tn-image-upload-drag.vue
@@ -0,0 +1,995 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击重试
+
+
+
+
+
+
+
+
+
+
+
+ {{ uploadText }}
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-image-upload/tn-image-upload.vue b/tuniao-ui/components/tn-image-upload/tn-image-upload.vue
index 7a9e9d3..a05cc5a 100644
--- a/tuniao-ui/components/tn-image-upload/tn-image-upload.vue
+++ b/tuniao-ui/components/tn-image-upload/tn-image-upload.vue
@@ -1,5 +1,5 @@
-
+
{
- if (!this.checkFileExt(val)) return
+ if (!this.checkFileExt(val)) return
// 是否超出最大限制数量
if (!multiple && index >= 1) return
@@ -329,7 +333,13 @@
url: val.path,
progress: 0,
error: false,
- file: val
+ file: val,
+ //#ifdef H5
+ extension: val.name.substring(val.name.lastIndexOf(".")) //图片文件后缀名
+ //#endif
+ //#ifndef H5
+ extension: val.path.substring(val.path.lastIndexOf(".")) //图片文件后缀名
+ //#endif
})
}
})
@@ -359,6 +369,7 @@
},
// 上传文件
async uploadFile(index = 0) {
+ var that=this;
if (this.disabled) return
if (this.uploading) return
// 全部上传完成
@@ -395,48 +406,87 @@
}
}
// 检查上传地址
- if (!this.action) {
- this.showToast('请配置上传地址', true)
- return
- }
- this.lists[index].error = false
- this.uploading = true
- // 创建上传对象
- const task = uni.uploadFile({
- url: this.action,
- filePath: this.lists[index].url,
- name: this.name,
- formData: this.formData,
- header: this.header,
- success: res => {
- // 判断啊是否为json字符串,将其转换为json格式
- let data = this.toJson && this.$tn.test.jsonString(res.data) ? JSON.parse(res.data) : res.data
- if (![200, 201, 204].includes(res.statusCode)) {
- this.uploadError(index, data)
- } else {
- this.lists[index].response = data
- this.lists[index].progress = 100
- this.lists[index].error = false
- this.$emit('on-success', data, index, this.lists, this.index)
- }
- },
- fail: err => {
- this.uploadError(index, err)
- },
- complete: res => {
- this.$tn.message.closeLoading()
- this.uploading = false
- this.uploadFile(index + 1)
- this.$emit('on-change', res, index, this.lists, this.index)
- }
- })
- this.lists[index].uploadTask = task
- task.onProgressUpdate(res => {
- if (res.progress > 0) {
- this.lists[index].progress = res.progress
- this.$emit('on-progress', res, index, this.lists, this.index)
- }
- })
+ if(this.isUniCloud){
+ //如果是uinCloud
+ this.lists[index].error = false
+ this.uploading = true
+ // 创建上传对象
+ const task = uniCloud.uploadFile({
+ filePath: that.lists[index].url,
+ cloudPath: that.$tn.uuid() + that.lists[index].extension, //随机文件名+文件后缀
+ onUploadProgress(progressEvent) {
+ if (progressEvent.loaded > 0) {
+ that.lists[index].progress = Math.round(
+ (progressEvent.loaded * 100) / progressEvent.total
+ );
+ that.$emit('on-progress', progressEvent, index, that.lists, that.index)
+ }
+ },
+ success(res) {
+ if (res.success) {
+ that.lists[index].response = res
+ that.lists[index].progress = 100
+ that.lists[index].error = false
+ that.$emit('success', res, index, that.lists, that.index)
+ } else {
+ that.uploadError(index, res)
+ }
+ },
+ fail: (err) => {
+ that.uploadError(index, err)
+ },
+ complete: (res) => {
+ // this.$t.message.closeLoading()
+ that.uploading = false
+ that.uploadFile(index + 1)
+ that.$emit('on-change', res, index, that.lists, that.index)
+ }
+ });
+ that.lists[index].uploadTask = task
+ }else{
+ if (!this.action) {
+ this.showToast('请配置上传地址', true)
+ return
+ }
+ this.lists[index].error = false
+ this.uploading = true
+ // 创建上传对象
+ const task = uni.uploadFile({
+ url: this.action,
+ filePath: this.lists[index].url,
+ name: this.name,
+ formData: this.formData,
+ header: this.header,
+ success: res => {
+ // 判断啊是否为json字符串,将其转换为json格式
+ let data = this.toJson && this.$tn.test.jsonString(res.data) ? JSON.parse(res.data) : res.data
+ if (![200, 201, 204].includes(res.statusCode)) {
+ this.uploadError(index, data)
+ } else {
+ this.lists[index].response = data
+ this.lists[index].progress = 100
+ this.lists[index].error = false
+ this.$emit('on-success', data, index, this.lists, this.index)
+ }
+ },
+ fail: err => {
+ this.uploadError(index, err)
+ },
+ complete: res => {
+ this.$tn.message.closeLoading()
+ this.uploading = false
+ this.uploadFile(index + 1)
+ this.$emit('on-change', res, index, this.lists, this.index)
+ }
+ })
+ this.lists[index].uploadTask = task
+ task.onProgressUpdate(res => {
+ if (res.progress > 0) {
+ this.lists[index].progress = res.progress
+ this.$emit('on-progress', res, index, this.lists, this.index)
+ }
+ })
+ }
},
// 上传失败
uploadError(index, err) {
diff --git a/tuniao-ui/components/tn-rate/tn-rate.vue b/tuniao-ui/components/tn-rate/tn-rate.vue
index 4edc2ba..a4f6991 100644
--- a/tuniao-ui/components/tn-rate/tn-rate.vue
+++ b/tuniao-ui/components/tn-rate/tn-rate.vue
@@ -1,334 +1,325 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ .tn-rate {
+ display: inline-flex;
+ align-items: center;
+ margin: 0;
+ padding: 0;
+
+ &__wrap {
+
+ &__icon {
+ position: relative;
+ box-sizing: border-box;
+
+ &--half {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: inline-block;
+ overflow: hidden;
+ width: 50%;
+ }
+ }
+ }
+ }
+
diff --git a/tuniao-ui/components/tn-scroll-view/tn-scroll-view.vue b/tuniao-ui/components/tn-scroll-view/tn-scroll-view.vue
new file mode 100644
index 0000000..3ed5a8d
--- /dev/null
+++ b/tuniao-ui/components/tn-scroll-view/tn-scroll-view.vue
@@ -0,0 +1,401 @@
+
+
+
+
+
+
+
+
+ {{ refreshStateText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-select/tn-select.vue b/tuniao-ui/components/tn-select/tn-select.vue
index bf238ab..89d1f5f 100644
--- a/tuniao-ui/components/tn-select/tn-select.vue
+++ b/tuniao-ui/components/tn-select/tn-select.vue
@@ -30,7 +30,14 @@
>{{ confirmText }}
+
+
+
+
+
+
+
+
@@ -134,6 +142,16 @@
zIndex: {
type: Number,
default: 0
+ },
+ // 是否开启模糊搜索(只在单列模式生效)
+ searchShow:{
+ type:Boolean,
+ default:true
+ },
+ //搜索框placeholder
+ searchPlaceholder:{
+ type:String,
+ default:'搜索'
}
},
computed: {
@@ -154,7 +172,8 @@
// 上一次改变时的index
lastSelectIndex: [],
// 列数
- columnNum: 0
+ columnNum: 0,
+
}
},
watch: {
@@ -167,6 +186,33 @@
}
},
methods: {
+ //搜索输入监听
+ searchInput(e){
+ console.log(e.detail.value);
+ this.searchResult(e.detail.value)
+ },
+ //搜索完成监听
+ search(e){
+ console.log(e.detail.value)
+ this.searchResult(e.detail.value)
+ },
+ //执行搜索方法
+ searchResult(value) {
+ let result = [];
+ // console.log(this.list)
+ let data = this.list.filter(item => item.label.indexOf(value) > -1);
+ if (data.length > 0) {
+ result.push(data
+ );
+ }
+ // console.log(result)
+ this.columnData = result;
+ this.selectValue=[]
+ if (this.columnData.length>0){
+ this.setSelectValue()
+ }
+ },
+
// 标识滑动开始,只有微信小程序才有这样的事件
pickStart() {
// #ifdef MP-WEIXIN
@@ -248,12 +294,13 @@
if (tmp && tmp.extra) data.extra = tmp.extra
this.selectValue.push(data)
}
+ // console.log("默认",this.selectValue)
},
// 列选项
columnChange(event) {
let index = null
let columnIndex = event.detail.value
-
+
this.selectValue = []
if (this.mode === 'multi-auto') {
// 对比前后两个数组,判断变更的是那一列
@@ -314,12 +361,12 @@
diff --git a/tuniao-ui/components/tn-stack-swiper/index-h5.wxs b/tuniao-ui/components/tn-stack-swiper/index-h5.wxs
new file mode 100644
index 0000000..99affdf
--- /dev/null
+++ b/tuniao-ui/components/tn-stack-swiper/index-h5.wxs
@@ -0,0 +1,657 @@
+
+function setTimeout(instance, cb, time) {
+ if (time > 0) {
+ var s = getDate().getTime()
+ var fn = function () {
+ if (getDate().getTime() - s > time) {
+ cb && cb()
+ } else
+ instance.requestAnimationFrame(fn)
+ }
+ fn()
+ }
+ else
+ cb && cb()
+}
+
+// 判断触摸的移动方向
+function decideSwiperDirection(startTouches, currentTouches, direction) {
+ // 震动偏移容差
+ var toleranceShake = 30
+ // 移动容差
+ var toleranceTranslate = 10
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ if (Math.abs(currentTouches.y - startTouches.y) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.x - startTouches.x) > toleranceTranslate) {
+ if (currentTouches.x - startTouches.x > 0) {
+ return 'right'
+ } else if (currentTouches.x - startTouches.x < 0) {
+ return 'left'
+ }
+ }
+ }
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ if (Math.abs(currentTouches.x - startTouches.x) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.y - startTouches.y) > toleranceTranslate) {
+ if (currentTouches.y - startTouches.y > 0) {
+ return 'down'
+ } else if (currentTouches.y - startTouches.y < 0) {
+ return 'up'
+ }
+ }
+ }
+ }
+ return ''
+}
+
+// 更新轮播样式信息
+function updateSwiperStyle(currentTouches, instance, state) {
+ var itemData = state.itemData
+ var itemsInstance = state.itemsInstance
+ var list = state.list
+ var currentIndex = state.currentIndex
+ var touchRelactive = state.touchRelactive
+ // console.log(itemAnimationWidth);
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向
+ var itemAnimationWidth = state.itemAnimationWidth
+ // 偏移的x轴距离
+ var translateX = currentTouches.x - touchRelactive.x
+ if (currentTouches.x > itemData.windowWidth || currentTouches.x < 0) return
+ // console.log(translateX);
+ // 更新其他轮播样式
+ if (state.direction == 'left') {
+ // 设置当前激活元素的偏移量
+ instance.setStyle({
+ 'transform': 'translate3d('+ translateX + 'px, 0px, 0px)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 移动距离是否超过了指定的容器宽度
+ if (Math.abs(translateX) > itemAnimationWidth) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != currentIndex) {
+ var preIndex = (index == 0) ? list.length - 1 : index - 1
+ var distanceRate = (Math.abs(translateX) - itemAnimationWidth) / (itemData.itemWidth - itemAnimationWidth)
+ var itemTranslateX = list[index].translateX - (list[index].translateX - list[preIndex].translateX) * distanceRate
+ var itemScale = list[index].scale + (list[preIndex].scale - list[index].scale) * distanceRate
+ var itemOpacity = list[index].opacity + (list[preIndex].opacity - list[index].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(list[index]);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log(itemOpacity);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(' + itemTranslateX + 'px, 0px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ } else if (state.direction == 'right') {
+ var preIndex = (currentIndex == 0) ? list.length - 1 : currentIndex - 1
+ // 右滑的时候把最底部的取出,并放到最高层级
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(-' + (itemData.itemWidth - translateX) + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 当前轮播逐渐缩小
+ if (Math.abs(translateX) < itemAnimationWidth) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != preIndex) {
+ var replaceIndex = index == list.length - 1 ? 0 : index + 1
+ var distanceRate = Math.abs(translateX) / itemAnimationWidth
+ var itemTranslateX = list[index].translateX + (list[replaceIndex].translateX - list[index].translateX) * distanceRate
+ var itemScale = list[index].scale - (list[index].scale - list[replaceIndex].scale) * distanceRate
+ var itemOpacity = list[index].opacity - (list[index].opacity - list[replaceIndex].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(index);
+ // console.log(replaceIndex);
+ // console.log(list[index]);
+ // console.log(list[replaceIndex].translateX - list[index].translateX);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(' + itemTranslateX + 'px, 0px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ }
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向
+ var itemAnimationHeight = state.itemAnimationHeight
+ // 偏移的y轴距离
+ var translateY = currentTouches.y - touchRelactive.y
+ if (currentTouches.y > itemData.windowHeight || currentTouches.y < 0) return
+ // console.log(translateX);
+ // 更新其他轮播样式
+ if (state.direction == 'up') {
+ // 设置当前激活元素的偏移量
+ instance.setStyle({
+ 'transform': 'translate3d(0px, '+ translateY + 'px, 0px)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 移动距离是否超过了指定的容器宽度
+ if (Math.abs(translateY) > itemAnimationHeight) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != currentIndex) {
+ var preIndex = (index == 0) ? list.length - 1 : index - 1
+ var distanceRate = (Math.abs(translateY) - itemAnimationHeight) / (itemData.itemHeight - itemAnimationHeight)
+ var itemTranslateY = list[index].translateY - (list[index].translateY - list[preIndex].translateY) * distanceRate
+ var itemScale = list[index].scale + (list[preIndex].scale - list[index].scale) * distanceRate
+ var itemOpacity = list[index].opacity + (list[preIndex].opacity - list[index].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(list[index]);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, ' + itemTranslateY + 'px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+
+ })
+ }
+ })
+ }
+ } else if (state.direction == 'down') {
+ var preIndex = (currentIndex == 0) ? list.length - 1 : currentIndex - 1
+ // 下滑的时候把最底部的取出,并放到最高层级
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(0px, -' + (itemData.itemHeight - translateY) + 'px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 当前轮播逐渐缩小
+ if (Math.abs(translateY) < itemAnimationHeight) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != preIndex) {
+ var replaceIndex = index == list.length - 1 ? 0 : index + 1
+ var distanceRate = Math.abs(translateY) / itemAnimationHeight
+ var itemTranslateY = list[index].translateY + (list[replaceIndex].translateY - list[index].translateY) * distanceRate
+ var itemScale = list[index].scale - (list[index].scale - list[replaceIndex].scale) * distanceRate
+ var itemOpacity = list[index].opacity - (list[index].opacity - list[replaceIndex].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(index);
+ // console.log(replaceIndex);
+ // console.log(list[index]);
+ // console.log(list[replaceIndex].translateX - list[index].translateX);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, ' + itemTranslateY + 'px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ }
+ }
+}
+
+// 更新当前轮播序号
+function updateCurrentSwiperIndex(index, ownerInstance, state) {
+ state.currentIndex = index
+ ownerInstance.callMethod('changeSwiperIndex', {
+ index: index
+ })
+}
+
+// 切换到下一个轮播
+function switchNextSwiper(newIndex, touches, instance, state) {
+ var currentIndex = state.currentIndex
+ var list = state.list
+ var direction = state.itemData.direction
+ var touchRelactive = state.touchRelactive || {x: 0, y: 0}
+
+ // 已经完成轮播切换
+ var currentListItemData = JSON.parse(JSON.stringify(list))
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ var itemWidth = state.itemData.itemWidth
+ // 当前轮播移动到最左边
+ instance.setStyle({
+ 'transform': 'translate3d(-'+ itemWidth + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemWidth - Math.abs(touches.pageX - touchRelactive.x)) / itemWidth * 250)
+
+ setTimeout(instance, function() {
+ for (var i = list.length - 1; i >= 0; i--) {
+ var replaceIndex = i - 1 < 0 ? list.length - 1 : i - 1
+ // console.log(i);
+ // console.log(replaceIndex);
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d('+ currentListItemData[replaceIndex].translateX + 'px, 0px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ var itemHeight = state.itemData.itemHeight
+ // 当前轮播移动到最上边
+ instance.setStyle({
+ 'transform': 'translate3d(0px, -'+ itemHeight + 'px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemHeight - Math.abs(touches.pageY - touchRelactive.y)) / itemHeight * 250)
+
+ setTimeout(instance, function() {
+ for (var i = list.length - 1; i >= 0; i--) {
+ var replaceIndex = i - 1 < 0 ? list.length - 1 : i - 1
+ // console.log(i);
+ // console.log(replaceIndex);
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d(0px, '+ currentListItemData[replaceIndex].translateY + 'px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ }
+}
+
+// 切换到上一个轮播
+function switchPrevSwiper(newIndex, touches, instance, state) {
+ var currentIndex = state.currentIndex
+ var list = state.list
+ var direction = state.itemData.direction
+ var touchRelactive = state.touchRelactive || {x: 0, y: 0}
+
+ var currentListItemData = JSON.parse(JSON.stringify(list))
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ var itemWidth = state.itemData.itemWidth
+ // 当前上一个轮播移动到正常位置
+ state.itemsInstance[newIndex].setStyle({
+ 'transform': 'translate3d(0px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemWidth - Math.abs(touches.pageX - touchRelactive.x)) / itemWidth * 250)
+ // 更新除当前上一个轮播外的其他轮播,向后移动一个层级
+ // 更新列表位置相关数据
+ setTimeout(instance, function() {
+ for (var i = 0; i < list.length; i++) {
+ var replaceIndex = (i + 1 > list.length - 1) ? 0 : i + 1
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d('+ currentListItemData[replaceIndex].translateX + 'px, 0px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ var itemHeight = state.itemData.itemHeight
+ // 当前上一个轮播移动到正常位置
+ state.itemsInstance[newIndex].setStyle({
+ 'transform': 'translate3d(0px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemHeight - Math.abs(touches.pageY - touchRelactive.y)) / itemHeight * 250)
+ // 更新除当前上一个轮播外的其他轮播,向后移动一个层级
+ // 更新列表位置相关数据
+ setTimeout(instance, function() {
+ for (var i = 0; i < list.length; i++) {
+ var replaceIndex = (i + 1 > list.length - 1) ? 0 : i + 1
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d(0px, '+ currentListItemData[replaceIndex].translateY + 'px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ }
+}
+
+// 反转动画
+function toggleSwiperAnimation(state, add) {
+ if (!state.itemsInstance) return
+ if (add === true) {
+ state.itemsInstance.forEach(function(item, index) {
+ if (!item.hasClass('tn-stack-swiper__item__transition')) {
+ item.addClass('tn-stack-swiper__item__transition')
+ }
+ })
+ } else {
+ state.itemsInstance.forEach(function(item, index) {
+ if (item.hasClass('tn-stack-swiper__item__transition')) {
+ item.removeClass('tn-stack-swiper__item__transition')
+ }
+ })
+ }
+}
+
+// 更新数据
+var itemDataObserver = function (newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ state.itemData = newVal
+}
+
+// 列表初始化
+var listObserver = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ state.itemsInstance = ownerInstance.selectAllComponents('.tn-stack-swiper__item')
+
+ state.list = newVal || []
+
+ state.list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ if (itemData.direction === 'horizontal') {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ } else if (itemData.direction === 'vertical') {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ }
+ })
+}
+
+// 切换轮播位置
+var swiperIndexChange = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ // console.log(newVal);
+ // ownerInstance.callMethod('printLog', newVal)
+ // console.log(oldVal);
+ // ownerInstance.callMethod('printLog', oldVal)
+ // 排除第一次初始化和手动切换的情况
+ if (oldVal < 0 || typeof oldVal == 'undefined' || state.currentIndex == newVal) {
+ if (oldVal < 0 || typeof oldVal == 'undefined') {
+ state.currentIndex = 0
+ }
+ return
+ }
+ state.currentIndex = newVal
+ // console.log(state.currentIndex);
+ if (newVal > oldVal || (oldVal == state.list.length - 1 && newVal == 0)) {
+ // console.log("next");
+ // state.itemsInstance.forEach(function(item, index) {
+ // item.addClass("tn-stack-swiper__item__transition")
+ // })
+ switchNextSwiper(newVal, {
+ pageX: 0
+ }, state.itemsInstance[oldVal], state)
+ } else if (newVal < oldVal || (oldVal == 0 && newVal == state.list.length - 1)) {
+ // console.log("prev");
+ }
+}
+
+// 自动轮播切换状态
+var autoplayFlagChange = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+
+ if (newVal === true) {
+ toggleSwiperAnimation(state, true)
+ } else {
+ toggleSwiperAnimation(state, false)
+ }
+}
+
+// 开始触摸
+var touchStart = function (event, ownerInstance) {
+ // console.log('touchStart');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+
+ var itemData = state.itemData
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 记录当前滑动开始的x,y坐标
+ state.touchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+ // 记录触摸id,用于处理多指的情况
+ state.touchId = touches.identifier
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向移动
+ // 设置左右滑动时相对偏移距离
+ state.itemAnimationWidth = itemData.itemWidth * (dataset.switchrate / 100)
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向移动
+ // 设置上下滑动时相对偏移距离
+ state.itemAnimationHeight = itemData.itemHeight * (dataset.switchrate / 100)
+ }
+
+ // 移除运动动画时间
+ toggleSwiperAnimation(state, false)
+
+ // 标记开始触摸
+ state.touching = true
+ ownerInstance.callMethod('changeTouchState', {
+ touching: true
+ })
+ // 停止执行自动轮播
+ ownerInstance.callMethod('clearAutoPlayTimer')
+}
+
+// 开始移动
+var touchMove = function (event, ownerInstance) {
+ // console.log('touchMove');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ // 还没开始触摸直接返回
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+ var currentTouchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+ // 是否已经确定了移动方向
+ if (!state.direction) {
+ state.direction = decideSwiperDirection(state.touchRelactive, currentTouchRelactive, itemData.direction)
+ }
+ // console.log(decideSwiperDirection(state.touchRelactive, currentTouchRelactive));
+ updateSwiperStyle(currentTouchRelactive, instance, state)
+}
+
+// 移动结束
+var touchEnd = function (event, ownerInstance) {
+ // console.log('touchEnd');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ var list = state.list
+ var touchRelactive = state.touchRelactive
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ // 还没开始触摸直接返回
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+ // 添加运动动画时间
+ toggleSwiperAnimation(state, true)
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向移动
+ var itemAnimationWidth = state.itemAnimationWidth
+ // 判断时左滑还是右滑
+ // 判断是否超过自动滚动到下一页还是回滚
+ if (state.direction == 'left') {
+ if (Math.abs(touches.pageX - touchRelactive.x) < itemAnimationWidth) {
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex
+ })
+ }
+ })
+ } else {
+ var newIndex = state.currentIndex + 1 > list.length - 1 ? 0 : state.currentIndex + 1
+ switchNextSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ } else if (state.direction == 'right') {
+ if (Math.abs(touches.pageX - touchRelactive.x) < itemAnimationWidth) {
+ // 滑动显示图片回滚
+ var preIndex = (state.currentIndex == 0) ? list.length - 1 : state.currentIndex - 1
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(-' + itemData.itemWidth + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[state.currentIndex].zIndex + 1,
+ 'opacity': list[state.currentIndex].opacity
+ })
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = (state.currentIndex - 1 < 0) ? list.length - 1 : state.currentIndex - 1
+ switchPrevSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ }
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向移动
+ var itemAnimationHeight = state.itemAnimationHeight
+ // 判断时上滑还是下滑
+ // 判断是否超过自动滚动到下一页还是回滚
+ if (state.direction == 'up') {
+ if (Math.abs(touches.pageY - touchRelactive.y) < itemAnimationHeight) {
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = state.currentIndex + 1 > list.length - 1 ? 0 : state.currentIndex + 1
+ switchNextSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ } else if (state.direction == 'down') {
+ if (Math.abs(touches.pageY - touchRelactive.y) < itemAnimationHeight) {
+ // 滑动显示图片回滚
+ var preIndex = (state.currentIndex == 0) ? list.length - 1 : state.currentIndex - 1
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(0px, -' + itemData.itemHeight + 'px, 0px) scale(1)',
+ 'z-index': list[state.currentIndex].zIndex + 1,
+ 'opacity': list[state.currentIndex].opacity
+ })
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = (state.currentIndex - 1 < 0) ? list.length - 1 : state.currentIndex - 1
+ switchPrevSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ }
+ }
+
+ // 清除对应的标志位
+ state.touchRelactive = null
+ state.touching = false
+ state.direction = null
+ state.touchId = null
+
+ ownerInstance.callMethod('changeTouchState', {
+ touching: false
+ })
+ // 重新开始执行自动轮播
+ ownerInstance.callMethod('setAutoPlay')
+}
+
+module.exports = {
+ itemDataObserver: itemDataObserver,
+ listObserver: listObserver,
+ swiperIndexChange: swiperIndexChange,
+ autoplayFlagChange: autoplayFlagChange,
+ touchStart: touchStart,
+ touchMove: touchMove,
+ touchEnd: touchEnd
+}
\ No newline at end of file
diff --git a/tuniao-ui/components/tn-stack-swiper/index.wxs b/tuniao-ui/components/tn-stack-swiper/index.wxs
new file mode 100644
index 0000000..99affdf
--- /dev/null
+++ b/tuniao-ui/components/tn-stack-swiper/index.wxs
@@ -0,0 +1,657 @@
+
+function setTimeout(instance, cb, time) {
+ if (time > 0) {
+ var s = getDate().getTime()
+ var fn = function () {
+ if (getDate().getTime() - s > time) {
+ cb && cb()
+ } else
+ instance.requestAnimationFrame(fn)
+ }
+ fn()
+ }
+ else
+ cb && cb()
+}
+
+// 判断触摸的移动方向
+function decideSwiperDirection(startTouches, currentTouches, direction) {
+ // 震动偏移容差
+ var toleranceShake = 30
+ // 移动容差
+ var toleranceTranslate = 10
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ if (Math.abs(currentTouches.y - startTouches.y) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.x - startTouches.x) > toleranceTranslate) {
+ if (currentTouches.x - startTouches.x > 0) {
+ return 'right'
+ } else if (currentTouches.x - startTouches.x < 0) {
+ return 'left'
+ }
+ }
+ }
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ if (Math.abs(currentTouches.x - startTouches.x) <= toleranceShake) {
+ // console.log(currentTouches.x, startTouches.x);
+ if (Math.abs(currentTouches.y - startTouches.y) > toleranceTranslate) {
+ if (currentTouches.y - startTouches.y > 0) {
+ return 'down'
+ } else if (currentTouches.y - startTouches.y < 0) {
+ return 'up'
+ }
+ }
+ }
+ }
+ return ''
+}
+
+// 更新轮播样式信息
+function updateSwiperStyle(currentTouches, instance, state) {
+ var itemData = state.itemData
+ var itemsInstance = state.itemsInstance
+ var list = state.list
+ var currentIndex = state.currentIndex
+ var touchRelactive = state.touchRelactive
+ // console.log(itemAnimationWidth);
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向
+ var itemAnimationWidth = state.itemAnimationWidth
+ // 偏移的x轴距离
+ var translateX = currentTouches.x - touchRelactive.x
+ if (currentTouches.x > itemData.windowWidth || currentTouches.x < 0) return
+ // console.log(translateX);
+ // 更新其他轮播样式
+ if (state.direction == 'left') {
+ // 设置当前激活元素的偏移量
+ instance.setStyle({
+ 'transform': 'translate3d('+ translateX + 'px, 0px, 0px)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 移动距离是否超过了指定的容器宽度
+ if (Math.abs(translateX) > itemAnimationWidth) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != currentIndex) {
+ var preIndex = (index == 0) ? list.length - 1 : index - 1
+ var distanceRate = (Math.abs(translateX) - itemAnimationWidth) / (itemData.itemWidth - itemAnimationWidth)
+ var itemTranslateX = list[index].translateX - (list[index].translateX - list[preIndex].translateX) * distanceRate
+ var itemScale = list[index].scale + (list[preIndex].scale - list[index].scale) * distanceRate
+ var itemOpacity = list[index].opacity + (list[preIndex].opacity - list[index].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(list[index]);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log(itemOpacity);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(' + itemTranslateX + 'px, 0px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ } else if (state.direction == 'right') {
+ var preIndex = (currentIndex == 0) ? list.length - 1 : currentIndex - 1
+ // 右滑的时候把最底部的取出,并放到最高层级
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(-' + (itemData.itemWidth - translateX) + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 当前轮播逐渐缩小
+ if (Math.abs(translateX) < itemAnimationWidth) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != preIndex) {
+ var replaceIndex = index == list.length - 1 ? 0 : index + 1
+ var distanceRate = Math.abs(translateX) / itemAnimationWidth
+ var itemTranslateX = list[index].translateX + (list[replaceIndex].translateX - list[index].translateX) * distanceRate
+ var itemScale = list[index].scale - (list[index].scale - list[replaceIndex].scale) * distanceRate
+ var itemOpacity = list[index].opacity - (list[index].opacity - list[replaceIndex].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(index);
+ // console.log(replaceIndex);
+ // console.log(list[index]);
+ // console.log(list[replaceIndex].translateX - list[index].translateX);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(' + itemTranslateX + 'px, 0px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ }
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向
+ var itemAnimationHeight = state.itemAnimationHeight
+ // 偏移的y轴距离
+ var translateY = currentTouches.y - touchRelactive.y
+ if (currentTouches.y > itemData.windowHeight || currentTouches.y < 0) return
+ // console.log(translateX);
+ // 更新其他轮播样式
+ if (state.direction == 'up') {
+ // 设置当前激活元素的偏移量
+ instance.setStyle({
+ 'transform': 'translate3d(0px, '+ translateY + 'px, 0px)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 移动距离是否超过了指定的容器宽度
+ if (Math.abs(translateY) > itemAnimationHeight) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != currentIndex) {
+ var preIndex = (index == 0) ? list.length - 1 : index - 1
+ var distanceRate = (Math.abs(translateY) - itemAnimationHeight) / (itemData.itemHeight - itemAnimationHeight)
+ var itemTranslateY = list[index].translateY - (list[index].translateY - list[preIndex].translateY) * distanceRate
+ var itemScale = list[index].scale + (list[preIndex].scale - list[index].scale) * distanceRate
+ var itemOpacity = list[index].opacity + (list[preIndex].opacity - list[index].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(list[index]);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, ' + itemTranslateY + 'px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+
+ })
+ }
+ })
+ }
+ } else if (state.direction == 'down') {
+ var preIndex = (currentIndex == 0) ? list.length - 1 : currentIndex - 1
+ // 下滑的时候把最底部的取出,并放到最高层级
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(0px, -' + (itemData.itemHeight - translateY) + 'px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 当前轮播逐渐缩小
+ if (Math.abs(translateY) < itemAnimationHeight) {
+ state.itemsInstance.forEach( function(itemInstance, index) {
+ if (index != preIndex) {
+ var replaceIndex = index == list.length - 1 ? 0 : index + 1
+ var distanceRate = Math.abs(translateY) / itemAnimationHeight
+ var itemTranslateY = list[index].translateY + (list[replaceIndex].translateY - list[index].translateY) * distanceRate
+ var itemScale = list[index].scale - (list[index].scale - list[replaceIndex].scale) * distanceRate
+ var itemOpacity = list[index].opacity - (list[index].opacity - list[replaceIndex].opacity) * distanceRate
+ // console.log(preIndex);
+ // console.log(index);
+ // console.log(replaceIndex);
+ // console.log(list[index]);
+ // console.log(list[replaceIndex].translateX - list[index].translateX);
+ // console.log(distanceRate);
+ // console.log(itemTranslateX);
+ // console.log(itemScale);
+ // console.log('-----------------------------------------------------------');
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, ' + itemTranslateY + 'px, 0px) scale(' + itemScale + ')',
+ 'z-index': list[index].zIndex,
+ 'opacity': itemOpacity
+ })
+ }
+ })
+ }
+ }
+ }
+}
+
+// 更新当前轮播序号
+function updateCurrentSwiperIndex(index, ownerInstance, state) {
+ state.currentIndex = index
+ ownerInstance.callMethod('changeSwiperIndex', {
+ index: index
+ })
+}
+
+// 切换到下一个轮播
+function switchNextSwiper(newIndex, touches, instance, state) {
+ var currentIndex = state.currentIndex
+ var list = state.list
+ var direction = state.itemData.direction
+ var touchRelactive = state.touchRelactive || {x: 0, y: 0}
+
+ // 已经完成轮播切换
+ var currentListItemData = JSON.parse(JSON.stringify(list))
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ var itemWidth = state.itemData.itemWidth
+ // 当前轮播移动到最左边
+ instance.setStyle({
+ 'transform': 'translate3d(-'+ itemWidth + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemWidth - Math.abs(touches.pageX - touchRelactive.x)) / itemWidth * 250)
+
+ setTimeout(instance, function() {
+ for (var i = list.length - 1; i >= 0; i--) {
+ var replaceIndex = i - 1 < 0 ? list.length - 1 : i - 1
+ // console.log(i);
+ // console.log(replaceIndex);
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d('+ currentListItemData[replaceIndex].translateX + 'px, 0px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ var itemHeight = state.itemData.itemHeight
+ // 当前轮播移动到最上边
+ instance.setStyle({
+ 'transform': 'translate3d(0px, -'+ itemHeight + 'px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemHeight - Math.abs(touches.pageY - touchRelactive.y)) / itemHeight * 250)
+
+ setTimeout(instance, function() {
+ for (var i = list.length - 1; i >= 0; i--) {
+ var replaceIndex = i - 1 < 0 ? list.length - 1 : i - 1
+ // console.log(i);
+ // console.log(replaceIndex);
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d(0px, '+ currentListItemData[replaceIndex].translateY + 'px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ }
+}
+
+// 切换到上一个轮播
+function switchPrevSwiper(newIndex, touches, instance, state) {
+ var currentIndex = state.currentIndex
+ var list = state.list
+ var direction = state.itemData.direction
+ var touchRelactive = state.touchRelactive || {x: 0, y: 0}
+
+ var currentListItemData = JSON.parse(JSON.stringify(list))
+
+ if (direction === 'horizontal') {
+ // 水平方向移动
+ var itemWidth = state.itemData.itemWidth
+ // 当前上一个轮播移动到正常位置
+ state.itemsInstance[newIndex].setStyle({
+ 'transform': 'translate3d(0px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemWidth - Math.abs(touches.pageX - touchRelactive.x)) / itemWidth * 250)
+ // 更新除当前上一个轮播外的其他轮播,向后移动一个层级
+ // 更新列表位置相关数据
+ setTimeout(instance, function() {
+ for (var i = 0; i < list.length; i++) {
+ var replaceIndex = (i + 1 > list.length - 1) ? 0 : i + 1
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d('+ currentListItemData[replaceIndex].translateX + 'px, 0px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ } else if (direction === 'vertical') {
+ // 垂直方向移动
+ var itemHeight = state.itemData.itemHeight
+ // 当前上一个轮播移动到正常位置
+ state.itemsInstance[newIndex].setStyle({
+ 'transform': 'translate3d(0px, 0px, 0px) scale(1)',
+ 'z-index': list[currentIndex].zIndex + 1,
+ 'opacity': list[currentIndex].opacity
+ })
+ // 计算当前移动需要的剩余时间
+ var time = Math.floor((itemHeight - Math.abs(touches.pageY - touchRelactive.y)) / itemHeight * 250)
+ // 更新除当前上一个轮播外的其他轮播,向后移动一个层级
+ // 更新列表位置相关数据
+ setTimeout(instance, function() {
+ for (var i = 0; i < list.length; i++) {
+ var replaceIndex = (i + 1 > list.length - 1) ? 0 : i + 1
+ state.itemsInstance[i].setStyle({
+ 'transform': 'translate3d(0px, '+ currentListItemData[replaceIndex].translateY + 'px, 0px) scale(' + currentListItemData[replaceIndex].scale + ')',
+ 'z-index': currentListItemData[replaceIndex].zIndex,
+ 'opacity': currentListItemData[replaceIndex].opacity
+ })
+ state.list[i] = currentListItemData[replaceIndex]
+ }
+ }, time)
+ }
+}
+
+// 反转动画
+function toggleSwiperAnimation(state, add) {
+ if (!state.itemsInstance) return
+ if (add === true) {
+ state.itemsInstance.forEach(function(item, index) {
+ if (!item.hasClass('tn-stack-swiper__item__transition')) {
+ item.addClass('tn-stack-swiper__item__transition')
+ }
+ })
+ } else {
+ state.itemsInstance.forEach(function(item, index) {
+ if (item.hasClass('tn-stack-swiper__item__transition')) {
+ item.removeClass('tn-stack-swiper__item__transition')
+ }
+ })
+ }
+}
+
+// 更新数据
+var itemDataObserver = function (newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ state.itemData = newVal
+}
+
+// 列表初始化
+var listObserver = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ state.itemsInstance = ownerInstance.selectAllComponents('.tn-stack-swiper__item')
+
+ state.list = newVal || []
+
+ state.list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ if (itemData.direction === 'horizontal') {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ } else if (itemData.direction === 'vertical') {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ }
+ })
+}
+
+// 切换轮播位置
+var swiperIndexChange = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+ // console.log(newVal);
+ // ownerInstance.callMethod('printLog', newVal)
+ // console.log(oldVal);
+ // ownerInstance.callMethod('printLog', oldVal)
+ // 排除第一次初始化和手动切换的情况
+ if (oldVal < 0 || typeof oldVal == 'undefined' || state.currentIndex == newVal) {
+ if (oldVal < 0 || typeof oldVal == 'undefined') {
+ state.currentIndex = 0
+ }
+ return
+ }
+ state.currentIndex = newVal
+ // console.log(state.currentIndex);
+ if (newVal > oldVal || (oldVal == state.list.length - 1 && newVal == 0)) {
+ // console.log("next");
+ // state.itemsInstance.forEach(function(item, index) {
+ // item.addClass("tn-stack-swiper__item__transition")
+ // })
+ switchNextSwiper(newVal, {
+ pageX: 0
+ }, state.itemsInstance[oldVal], state)
+ } else if (newVal < oldVal || (oldVal == 0 && newVal == state.list.length - 1)) {
+ // console.log("prev");
+ }
+}
+
+// 自动轮播切换状态
+var autoplayFlagChange = function(newVal, oldVal, ownerInstance, instance) {
+ var state = ownerInstance.getState()
+
+ if (newVal === true) {
+ toggleSwiperAnimation(state, true)
+ } else {
+ toggleSwiperAnimation(state, false)
+ }
+}
+
+// 开始触摸
+var touchStart = function (event, ownerInstance) {
+ // console.log('touchStart');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+
+ var itemData = state.itemData
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 记录当前滑动开始的x,y坐标
+ state.touchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+ // 记录触摸id,用于处理多指的情况
+ state.touchId = touches.identifier
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向移动
+ // 设置左右滑动时相对偏移距离
+ state.itemAnimationWidth = itemData.itemWidth * (dataset.switchrate / 100)
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向移动
+ // 设置上下滑动时相对偏移距离
+ state.itemAnimationHeight = itemData.itemHeight * (dataset.switchrate / 100)
+ }
+
+ // 移除运动动画时间
+ toggleSwiperAnimation(state, false)
+
+ // 标记开始触摸
+ state.touching = true
+ ownerInstance.callMethod('changeTouchState', {
+ touching: true
+ })
+ // 停止执行自动轮播
+ ownerInstance.callMethod('clearAutoPlayTimer')
+}
+
+// 开始移动
+var touchMove = function (event, ownerInstance) {
+ // console.log('touchMove');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ // 还没开始触摸直接返回
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+ var currentTouchRelactive = {
+ x: touches.pageX,
+ y: touches.pageY
+ }
+ // 是否已经确定了移动方向
+ if (!state.direction) {
+ state.direction = decideSwiperDirection(state.touchRelactive, currentTouchRelactive, itemData.direction)
+ }
+ // console.log(decideSwiperDirection(state.touchRelactive, currentTouchRelactive));
+ updateSwiperStyle(currentTouchRelactive, instance, state)
+}
+
+// 移动结束
+var touchEnd = function (event, ownerInstance) {
+ // console.log('touchEnd');
+ var instance = event.instance
+ var dataset = instance.getDataset()
+ var state = ownerInstance.getState()
+ var itemData = state.itemData
+ var list = state.list
+ var touchRelactive = state.touchRelactive
+
+ // 判断是否为为当前显示的轮播
+ if (dataset.index != state.currentIndex) return
+
+ // 还没开始触摸直接返回
+ if (!state.touching) return
+
+ var touches = event.changedTouches[0]
+ if (!touches) return
+
+ // 判断是否为同一个触摸点
+ if (state.touchId != touches.identifier) return
+
+ // 添加运动动画时间
+ toggleSwiperAnimation(state, true)
+
+ if (itemData.direction === 'horizontal') {
+ // 水平方向移动
+ var itemAnimationWidth = state.itemAnimationWidth
+ // 判断时左滑还是右滑
+ // 判断是否超过自动滚动到下一页还是回滚
+ if (state.direction == 'left') {
+ if (Math.abs(touches.pageX - touchRelactive.x) < itemAnimationWidth) {
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex
+ })
+ }
+ })
+ } else {
+ var newIndex = state.currentIndex + 1 > list.length - 1 ? 0 : state.currentIndex + 1
+ switchNextSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ } else if (state.direction == 'right') {
+ if (Math.abs(touches.pageX - touchRelactive.x) < itemAnimationWidth) {
+ // 滑动显示图片回滚
+ var preIndex = (state.currentIndex == 0) ? list.length - 1 : state.currentIndex - 1
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(-' + itemData.itemWidth + 'px, 0px, 0px) scale(1)',
+ 'z-index': list[state.currentIndex].zIndex + 1,
+ 'opacity': list[state.currentIndex].opacity
+ })
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d('+ item.translateX + 'px, 0px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = (state.currentIndex - 1 < 0) ? list.length - 1 : state.currentIndex - 1
+ switchPrevSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ }
+ } else if (itemData.direction === 'vertical') {
+ // 垂直方向移动
+ var itemAnimationHeight = state.itemAnimationHeight
+ // 判断时上滑还是下滑
+ // 判断是否超过自动滚动到下一页还是回滚
+ if (state.direction == 'up') {
+ if (Math.abs(touches.pageY - touchRelactive.y) < itemAnimationHeight) {
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = state.currentIndex + 1 > list.length - 1 ? 0 : state.currentIndex + 1
+ switchNextSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ } else if (state.direction == 'down') {
+ if (Math.abs(touches.pageY - touchRelactive.y) < itemAnimationHeight) {
+ // 滑动显示图片回滚
+ var preIndex = (state.currentIndex == 0) ? list.length - 1 : state.currentIndex - 1
+ state.itemsInstance[preIndex].setStyle({
+ 'transform': 'translate3d(0px, -' + itemData.itemHeight + 'px, 0px) scale(1)',
+ 'z-index': list[state.currentIndex].zIndex + 1,
+ 'opacity': list[state.currentIndex].opacity
+ })
+ list.forEach(function(item, index) {
+ var itemInstance = state.itemsInstance[index]
+ if (item && itemInstance) {
+ itemInstance.setStyle({
+ 'transform': 'translate3d(0px, '+ item.translateY + 'px, 0px) scale(' + item.scale + ')',
+ 'z-index': item.zIndex,
+ 'opacity': item.opacity
+ })
+ }
+ })
+ } else {
+ var newIndex = (state.currentIndex - 1 < 0) ? list.length - 1 : state.currentIndex - 1
+ switchPrevSwiper(newIndex, touches, instance, state)
+
+ updateCurrentSwiperIndex(newIndex, ownerInstance, state)
+ }
+ }
+ }
+
+ // 清除对应的标志位
+ state.touchRelactive = null
+ state.touching = false
+ state.direction = null
+ state.touchId = null
+
+ ownerInstance.callMethod('changeTouchState', {
+ touching: false
+ })
+ // 重新开始执行自动轮播
+ ownerInstance.callMethod('setAutoPlay')
+}
+
+module.exports = {
+ itemDataObserver: itemDataObserver,
+ listObserver: listObserver,
+ swiperIndexChange: swiperIndexChange,
+ autoplayFlagChange: autoplayFlagChange,
+ touchStart: touchStart,
+ touchMove: touchMove,
+ touchEnd: touchEnd
+}
\ No newline at end of file
diff --git a/tuniao-ui/components/tn-stack-swiper/tn-stack-swiper.vue b/tuniao-ui/components/tn-stack-swiper/tn-stack-swiper.vue
new file mode 100644
index 0000000..2c0b390
--- /dev/null
+++ b/tuniao-ui/components/tn-stack-swiper/tn-stack-swiper.vue
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-table/tn-table.vue b/tuniao-ui/components/tn-table/tn-table.vue
new file mode 100644
index 0000000..2bd781d
--- /dev/null
+++ b/tuniao-ui/components/tn-table/tn-table.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-td/tn-td.vue b/tuniao-ui/components/tn-td/tn-td.vue
new file mode 100644
index 0000000..90a7ab5
--- /dev/null
+++ b/tuniao-ui/components/tn-td/tn-td.vue
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-tr/tn-tr.vue b/tuniao-ui/components/tn-tr/tn-tr.vue
new file mode 100644
index 0000000..0e55df9
--- /dev/null
+++ b/tuniao-ui/components/tn-tr/tn-tr.vue
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-tree-node/tn-tree-node.vue b/tuniao-ui/components/tn-tree-node/tn-tree-node.vue
new file mode 100644
index 0000000..4d5271e
--- /dev/null
+++ b/tuniao-ui/components/tn-tree-node/tn-tree-node.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ node.text }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-tree-view/tn-tree-view.vue b/tuniao-ui/components/tn-tree-view/tn-tree-view.vue
new file mode 100644
index 0000000..667d977
--- /dev/null
+++ b/tuniao-ui/components/tn-tree-view/tn-tree-view.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/components/tn-waterfall/tn-waterfall.vue b/tuniao-ui/components/tn-waterfall/tn-waterfall.vue
new file mode 100644
index 0000000..7a98d4c
--- /dev/null
+++ b/tuniao-ui/components/tn-waterfall/tn-waterfall.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tuniao-ui/iconfont.css b/tuniao-ui/iconfont.css
index b4db4df..034d4af 100644
--- a/tuniao-ui/iconfont.css
+++ b/tuniao-ui/iconfont.css
@@ -3,19 +3,1176 @@
@font-face {
font-family: "tuniaoFont"; /* Project id 3063751 */
src:
- url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
- url('//at.alicdn.com/t/c/font_3063751_rnx318tis4.woff?t=1662517883527') format('woff'),
- url('//at.alicdn.com/t/c/font_3063751_rnx318tis4.ttf?t=1662517883527') format('truetype');
+ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
+ url('//at.alicdn.com/t/c/font_3063751_p343oyluwh.woff?t=1682316533334') format('woff'),
+ url('//at.alicdn.com/t/c/font_3063751_p343oyluwh.ttf?t=1682316533334') format('truetype');
}
-
+
[class*='tn-icon-'] {
font-family: 'tuniaoFont' !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
text-align: center;
text-decoration: none;
-}
-
+}
+
+
+.tn-icon-eat:before {
+ content: "\e98b";
+}
+
+.tn-icon-eat-fill:before {
+ content: "\e98c";
+}
+
+.tn-icon-eat-west:before {
+ content: "\ea0f";
+}
+
+.tn-icon-eat-west-fill:before {
+ content: "\ea10";
+}
+
+.tn-icon-eat-other:before {
+ content: "\ea11";
+}
+
+.tn-icon-eat-other-fill:before {
+ content: "\ea12";
+}
+
+.tn-icon-food-fill:before {
+ content: "\ea13";
+}
+
+.tn-icon-food:before {
+ content: "\ea14";
+}
+
+.tn-icon-folder-reduce:before {
+ content: "\ea15";
+}
+
+.tn-icon-folder-add-fill:before {
+ content: "\ea16";
+}
+
+.tn-icon-folder-reduce-fill:before {
+ content: "\ea17";
+}
+
+.tn-icon-folder-add:before {
+ content: "\ea18";
+}
+
+.tn-icon-fold:before {
+ content: "\ea0d";
+}
+
+.tn-icon-unfold:before {
+ content: "\ea0e";
+}
+
+.tn-icon-refresh-simple:before {
+ content: "\ea0c";
+}
+
+.tn-icon-assign-fill:before {
+ content: "\ea0a";
+}
+
+.tn-icon-assign:before {
+ content: "\ea0b";
+}
+
+.tn-icon-praise-simple:before {
+ content: "\ea06";
+}
+
+.tn-icon-praise-simple-fill:before {
+ content: "\ea07";
+}
+
+.tn-icon-tread-simple-fill:before {
+ content: "\ea08";
+}
+
+.tn-icon-tread-simple:before {
+ content: "\ea09";
+}
+
+.tn-icon-fish:before {
+ content: "\ea05";
+}
+
+.tn-icon-pushpin-fill:before {
+ content: "\ea03";
+}
+
+.tn-icon-pushpin:before {
+ content: "\ea04";
+}
+
+.tn-icon-equal:before {
+ content: "\ea00";
+}
+
+.tn-icon-equal-fill:before {
+ content: "\ea01";
+}
+
+.tn-icon-totop-simple:before {
+ content: "\ea02";
+}
+
+.tn-icon-floral-fill:before {
+ content: "\e9fe";
+}
+
+.tn-icon-floral:before {
+ content: "\e9ff";
+}
+
+.tn-icon-my-job:before {
+ content: "\e9f9";
+}
+
+.tn-icon-my-job-fill:before {
+ content: "\e9fa";
+}
+
+.tn-icon-my-formal:before {
+ content: "\e9fb";
+}
+
+.tn-icon-my-formal-fill:before {
+ content: "\e9fc";
+}
+
+.tn-icon-history:before {
+ content: "\e9fd";
+}
+
+.tn-icon-seafox:before {
+ content: "\e9f8";
+}
+
+.tn-icon-norm-fill:before {
+ content: "\e9f6";
+}
+
+.tn-icon-norm:before {
+ content: "\e9f7";
+}
+
+.tn-icon-cargoship:before {
+ content: "\e9f5";
+}
+
+.tn-icon-menu-grille-fill:before {
+ content: "\e9f3";
+}
+
+.tn-icon-menu-grille:before {
+ content: "\e9f4";
+}
+
+.tn-icon-piggy-bank:before {
+ content: "\e9ef";
+}
+
+.tn-icon-skull-fill:before {
+ content: "\e9f0";
+}
+
+.tn-icon-skull:before {
+ content: "\e9f1";
+}
+
+.tn-icon-piggy-bank-fill:before {
+ content: "\e9f2";
+}
+
+.tn-icon-next-song:before {
+ content: "\e9eb";
+}
+
+.tn-icon-previous-song:before {
+ content: "\e9ec";
+}
+
+.tn-icon-previous-song-fill:before {
+ content: "\e9ed";
+}
+
+.tn-icon-next-song-fill:before {
+ content: "\e9ee";
+}
+
+.tn-icon-ai:before {
+ content: "\e9e9";
+}
+
+.tn-icon-ai-fill:before {
+ content: "\e9ea";
+}
+
+.tn-icon-headset-fill:before {
+ content: "\e9e8";
+}
+
+.tn-icon-reduce-rhombus-fill:before {
+ content: "\e9e6";
+}
+
+.tn-icon-reduce-rhombus:before {
+ content: "\e9e7";
+}
+
+.tn-icon-umbrella-fill:before {
+ content: "\e9a1";
+}
+
+.tn-icon-footprint-fill:before {
+ content: "\e992";
+}
+
+.tn-icon-folder:before {
+ content: "\e9df";
+}
+
+.tn-icon-folder-fill:before {
+ content: "\e9e0";
+}
+
+.tn-icon-folder-download-fill:before {
+ content: "\e9e1";
+}
+
+.tn-icon-pyramid:before {
+ content: "\e9e2";
+}
+
+.tn-icon-folder-upload:before {
+ content: "\e9e3";
+}
+
+.tn-icon-folder-download:before {
+ content: "\e9e4";
+}
+
+.tn-icon-folder-upload-fill:before {
+ content: "\e9e5";
+}
+
+.tn-icon-hotspot:before {
+ content: "\e9dc";
+}
+
+.tn-icon-router:before {
+ content: "\e9dd";
+}
+
+.tn-icon-router-fill:before {
+ content: "\e9de";
+}
+
+.tn-icon-menu-rhombus:before {
+ content: "\e9da";
+}
+
+.tn-icon-menu-rhombus-fill:before {
+ content: "\e9db";
+}
+
+.tn-icon-plane-fill:before {
+ content: "\e9d8";
+}
+
+.tn-icon-plane:before {
+ content: "\e9d9";
+}
+
+.tn-icon-spiral:before {
+ content: "\e9d2";
+}
+
+.tn-icon-lotus:before {
+ content: "\e9d3";
+}
+
+.tn-icon-koi:before {
+ content: "\e9d4";
+}
+
+.tn-icon-koi-fill:before {
+ content: "\e9d5";
+}
+
+.tn-icon-add-rhombus-fill:before {
+ content: "\e9d6";
+}
+
+.tn-icon-add-rhombus:before {
+ content: "\e9d7";
+}
+
+.tn-icon-bookmark:before {
+ content: "\e9ce";
+}
+
+.tn-icon-bookmark-fill:before {
+ content: "\e9cf";
+}
+
+.tn-icon-refresh:before {
+ content: "\e9d0";
+}
+
+.tn-icon-refresh-square:before {
+ content: "\e9d1";
+}
+
+.tn-icon-tread-fill:before {
+ content: "\e9cb";
+}
+
+.tn-icon-audio:before {
+ content: "\e9cc";
+}
+
+.tn-icon-tread:before {
+ content: "\e9cd";
+}
+
+.tn-icon-play:before {
+ content: "\e9c8";
+}
+
+.tn-icon-video-square:before {
+ content: "\e9c9";
+}
+
+.tn-icon-video-square-fill:before {
+ content: "\e9ca";
+}
+
+.tn-icon-inventory-fill:before {
+ content: "\e9c3";
+}
+
+.tn-icon-percent-fill:before {
+ content: "\e9c4";
+}
+
+.tn-icon-percent:before {
+ content: "\e9c5";
+}
+
+.tn-icon-inventory:before {
+ content: "\e9c6";
+}
+
+.tn-icon-activity:before {
+ content: "\e9c7";
+}
+
+.tn-icon-qr-code-circle:before {
+ content: "\e9c2";
+}
+
+.tn-icon-task-fill:before {
+ content: "\e9c0";
+}
+
+.tn-icon-task:before {
+ content: "\e9c1";
+}
+
+.tn-icon-text-best:before {
+ content: "\e9be";
+}
+
+.tn-icon-text-free:before {
+ content: "\e9bf";
+}
+
+.tn-icon-text-zgs:before {
+ content: "\e8ff";
+}
+
+.tn-icon-text-xzx:before {
+ content: "\e9ba";
+}
+
+.tn-icon-text-like:before {
+ content: "\e9bb";
+}
+
+.tn-icon-text-sale:before {
+ content: "\e9bc";
+}
+
+.tn-icon-text-hot:before {
+ content: "\e9bd";
+}
+
+.tn-icon-home-leaf:before {
+ content: "\e9b8";
+}
+
+.tn-icon-home-leaf-fill:before {
+ content: "\e9b9";
+}
+
+.tn-icon-service-simple-fill:before {
+ content: "\e9b6";
+}
+
+.tn-icon-service-simple:before {
+ content: "\e9b7";
+}
+
+.tn-icon-meteor-fill:before {
+ content: "\e9b4";
+}
+
+.tn-icon-meteor:before {
+ content: "\e9b5";
+}
+
+.tn-icon-dice-five:before {
+ content: "\e9ae";
+}
+
+.tn-icon-dice-one:before {
+ content: "\e9af";
+}
+
+.tn-icon-dice-three:before {
+ content: "\e9b0";
+}
+
+.tn-icon-dice-six:before {
+ content: "\e9b1";
+}
+
+.tn-icon-dice-four:before {
+ content: "\e9b2";
+}
+
+.tn-icon-dice-two:before {
+ content: "\e9b3";
+}
+
+.tn-icon-theme-fill:before {
+ content: "\e938";
+}
+
+.tn-icon-theme:before {
+ content: "\e9ad";
+}
+
+.tn-icon-download-simple:before {
+ content: "\e9ab";
+}
+
+.tn-icon-upload-simple:before {
+ content: "\e9ac";
+}
+
+.tn-icon-on:before {
+ content: "\e9a9";
+}
+
+.tn-icon-off:before {
+ content: "\e9aa";
+}
+
+.tn-icon-my-circle:before {
+ content: "\e9a7";
+}
+
+.tn-icon-my-circle-fill:before {
+ content: "\e9a8";
+}
+
+.tn-icon-temperature-f:before {
+ content: "\e9a5";
+}
+
+.tn-icon-temperature-c:before {
+ content: "\e9a6";
+}
+
+.tn-icon-sunrise:before {
+ content: "\e9a3";
+}
+
+.tn-icon-sunset:before {
+ content: "\e9a4";
+}
+
+.tn-icon-password:before {
+ content: "\e9a0";
+}
+
+.tn-icon-umbrella:before {
+ content: "\e9a2";
+}
+
+.tn-icon-unite:before {
+ content: "\e999";
+}
+
+.tn-icon-unite-fill:before {
+ content: "\e99a";
+}
+
+.tn-icon-global:before {
+ content: "\e99b";
+}
+
+.tn-icon-reload-home:before {
+ content: "\e99c";
+}
+
+.tn-icon-reload-planet:before {
+ content: "\e99d";
+}
+
+.tn-icon-reload-home-fill:before {
+ content: "\e99e";
+}
+
+.tn-icon-reload-planet-fill:before {
+ content: "\e99f";
+}
+
+.tn-icon-route:before {
+ content: "\e997";
+}
+
+.tn-icon-route-fill:before {
+ content: "\e998";
+}
+
+.tn-icon-my-simple-fill:before {
+ content: "\e98e";
+}
+
+.tn-icon-my-simple:before {
+ content: "\e98f";
+}
+
+.tn-icon-around-fill:before {
+ content: "\e990";
+}
+
+.tn-icon-around:before {
+ content: "\e991";
+}
+
+.tn-icon-footprint:before {
+ content: "\e993";
+}
+
+.tn-icon-my-lack-fill:before {
+ content: "\e994";
+}
+
+.tn-icon-my-lack:before {
+ content: "\e995";
+}
+
+.tn-icon-bigscreen:before {
+ content: "\e996";
+}
+
+.tn-icon-escalator:before {
+ content: "\e98d";
+}
+
+.tn-icon-suitcase:before {
+ content: "\e989";
+}
+
+.tn-icon-suitcase-fill:before {
+ content: "\e98a";
+}
+
+.tn-icon-add-square-fill:before {
+ content: "\e904";
+}
+
+.tn-icon-cute:before {
+ content: "\e988";
+}
+
+.tn-icon-compress:before {
+ content: "\e96e";
+}
+
+.tn-icon-expend:before {
+ content: "\e96f";
+}
+
+.tn-icon-windows:before {
+ content: "\e970";
+}
+
+.tn-icon-trademark:before {
+ content: "\e971";
+}
+
+.tn-icon-tailor:before {
+ content: "\e972";
+}
+
+.tn-icon-move:before {
+ content: "\e973";
+}
+
+.tn-icon-pillow:before {
+ content: "\e974";
+}
+
+.tn-icon-bathtub:before {
+ content: "\e975";
+}
+
+.tn-icon-buy:before {
+ content: "\e976";
+}
+
+.tn-icon-buy-fill:before {
+ content: "\e977";
+}
+
+.tn-icon-allday:before {
+ content: "\e978";
+}
+
+.tn-icon-home-love-fill:before {
+ content: "\e979";
+}
+
+.tn-icon-home-love:before {
+ content: "\e97a";
+}
+
+.tn-icon-gesture-two:before {
+ content: "\e97b";
+}
+
+.tn-icon-gesture-four:before {
+ content: "\e97c";
+}
+
+.tn-icon-gesture-five:before {
+ content: "\e97d";
+}
+
+.tn-icon-gesture-one:before {
+ content: "\e97e";
+}
+
+.tn-icon-gesture-three:before {
+ content: "\e97f";
+}
+
+.tn-icon-gesture-dropdown:before {
+ content: "\e980";
+}
+
+.tn-icon-plant-fill:before {
+ content: "\e981";
+}
+
+.tn-icon-plant:before {
+ content: "\e982";
+}
+
+.tn-icon-pillow-fill:before {
+ content: "\e983";
+}
+
+.tn-icon-bathtub-fill:before {
+ content: "\e984";
+}
+
+.tn-icon-wheelchair:before {
+ content: "\e985";
+}
+
+.tn-icon-narrow-all:before {
+ content: "\e986";
+}
+
+.tn-icon-fullscreen-all:before {
+ content: "\e987";
+}
+
+.tn-icon-close-square-fill:before {
+ content: "\e945";
+}
+
+.tn-icon-add-square:before {
+ content: "\e962";
+}
+
+.tn-icon-close-square:before {
+ content: "\e963";
+}
+
+.tn-icon-my-reduce:before {
+ content: "\e964";
+}
+
+.tn-icon-square-fill:before {
+ content: "\e965";
+}
+
+.tn-icon-pay-fill:before {
+ content: "\e966";
+}
+
+.tn-icon-commissary:before {
+ content: "\e967";
+}
+
+.tn-icon-commissary-fill:before {
+ content: "\e968";
+}
+
+.tn-icon-notice-no-fill:before {
+ content: "\e969";
+}
+
+.tn-icon-cross-fill:before {
+ content: "\e96a";
+}
+
+.tn-icon-nintendo-switch:before {
+ content: "\e96b";
+}
+
+.tn-icon-mammoth:before {
+ content: "\e96c";
+}
+
+.tn-icon-open:before {
+ content: "\e96d";
+}
+
+.tn-icon-bed-fill:before {
+ content: "\e916";
+}
+
+.tn-icon-bed:before {
+ content: "\e961";
+}
+
+.tn-icon-menu-flex-fill:before {
+ content: "\e956";
+}
+
+.tn-icon-menu-flex:before {
+ content: "\e957";
+}
+
+.tn-icon-logistics-fill:before {
+ content: "\e958";
+}
+
+.tn-icon-ghost-fill:before {
+ content: "\e959";
+}
+
+.tn-icon-keyboard-circle-fill:before {
+ content: "\e95a";
+}
+
+.tn-icon-brand-fill:before {
+ content: "\e95b";
+}
+
+.tn-icon-clear-fill:before {
+ content: "\e95c";
+}
+
+.tn-icon-mouse-fill:before {
+ content: "\e95d";
+}
+
+.tn-icon-brand:before {
+ content: "\e95e";
+}
+
+.tn-icon-monitor-fill:before {
+ content: "\e95f";
+}
+
+.tn-icon-covid-19-fill:before {
+ content: "\e960";
+}
+
+.tn-icon-install-fill:before {
+ content: "\e936";
+}
+
+.tn-icon-install:before {
+ content: "\e955";
+}
+
+.tn-icon-restroom-female:before {
+ content: "\e953";
+}
+
+.tn-icon-restroom-male:before {
+ content: "\e954";
+}
+
+.tn-icon-first:before {
+ content: "\e950";
+}
+
+.tn-icon-third:before {
+ content: "\e951";
+}
+
+.tn-icon-second:before {
+ content: "\e952";
+}
+
+.tn-icon-ninja:before {
+ content: "\e94b";
+}
+
+.tn-icon-program:before {
+ content: "\e94c";
+}
+
+.tn-icon-program-fill:before {
+ content: "\e94d";
+}
+
+.tn-icon-circle-more:before {
+ content: "\e94e";
+}
+
+.tn-icon-windmill:before {
+ content: "\e94f";
+}
+
+.tn-icon-alien:before {
+ content: "\e946";
+}
+
+.tn-icon-taichi:before {
+ content: "\e947";
+}
+
+.tn-icon-knot:before {
+ content: "\e948";
+}
+
+.tn-icon-snowflake:before {
+ content: "\e949";
+}
+
+.tn-icon-whale:before {
+ content: "\e94a";
+}
+
+.tn-icon-dragon:before {
+ content: "\e944";
+}
+
+.tn-icon-home-in-fill:before {
+ content: "\e942";
+}
+
+.tn-icon-home-in:before {
+ content: "\e943";
+}
+
+.tn-icon-home-loading:before {
+ content: "\e940";
+}
+
+.tn-icon-home-loading-fill:before {
+ content: "\e941";
+}
+
+.tn-icon-cell:before {
+ content: "\e93b";
+}
+
+.tn-icon-loading:before {
+ content: "\e93c";
+}
+
+.tn-icon-orange:before {
+ content: "\e93d";
+}
+
+.tn-icon-bigbug:before {
+ content: "\e93e";
+}
+
+.tn-icon-dinosaur:before {
+ content: "\e93f";
+}
+
+.tn-icon-dna:before {
+ content: "\e931";
+}
+
+.tn-icon-chain:before {
+ content: "\e932";
+}
+
+.tn-icon-email:before {
+ content: "\e933";
+}
+
+.tn-icon-education:before {
+ content: "\e934";
+}
+
+.tn-icon-english:before {
+ content: "\e935";
+}
+
+.tn-icon-seal:before {
+ content: "\e937";
+}
+
+.tn-icon-book:before {
+ content: "\e939";
+}
+
+.tn-icon-email-fill:before {
+ content: "\e93a";
+}
+
+.tn-icon-maths:before {
+ content: "\e92f";
+}
+
+.tn-icon-molecule:before {
+ content: "\e930";
+}
+
+.tn-icon-ghost:before {
+ content: "\e92d";
+}
+
+.tn-icon-money-fill:before {
+ content: "\e92e";
+}
+
+.tn-icon-menu-alone:before {
+ content: "\e929";
+}
+
+.tn-icon-menu-alone-fill:before {
+ content: "\e92a";
+}
+
+.tn-icon-tree:before {
+ content: "\e92b";
+}
+
+.tn-icon-rabbit:before {
+ content: "\e92c";
+}
+
+.tn-icon-block-fill:before {
+ content: "\e925";
+}
+
+.tn-icon-block:before {
+ content: "\e926";
+}
+
+.tn-icon-menu-classify:before {
+ content: "\e927";
+}
+
+.tn-icon-menu-classify-fill:before {
+ content: "\e928";
+}
+
+.tn-icon-home-totop-fill:before {
+ content: "\e923";
+}
+
+.tn-icon-home-totop:before {
+ content: "\e924";
+}
+
+.tn-icon-petal:before {
+ content: "\e920";
+}
+
+.tn-icon-clover-fill:before {
+ content: "\e921";
+}
+
+.tn-icon-clover:before {
+ content: "\e922";
+}
+
+.tn-icon-heartbeat:before {
+ content: "\e917";
+}
+
+.tn-icon-paperbag:before {
+ content: "\e918";
+}
+
+.tn-icon-paperbag-fill:before {
+ content: "\e919";
+}
+
+.tn-icon-menu-match:before {
+ content: "\e91a";
+}
+
+.tn-icon-menu-match-fill:before {
+ content: "\e91b";
+}
+
+.tn-icon-sofa-fill:before {
+ content: "\e91c";
+}
+
+.tn-icon-fullscreen:before {
+ content: "\e91d";
+}
+
+.tn-icon-narrow:before {
+ content: "\e91e";
+}
+
+.tn-icon-smallscreen:before {
+ content: "\e91f";
+}
+
+.tn-icon-payment-wechat:before {
+ content: "\e90a";
+}
+
+.tn-icon-cursor:before {
+ content: "\e912";
+}
+
+.tn-icon-cursor-fill:before {
+ content: "\e913";
+}
+
+.tn-icon-check:before {
+ content: "\e914";
+}
+
+.tn-icon-payment-alipay:before {
+ content: "\e915";
+}
+
+.tn-icon-dashboard:before {
+ content: "\e90b";
+}
+
+.tn-icon-module:before {
+ content: "\e90c";
+}
+
+.tn-icon-at-sign:before {
+ content: "\e90d";
+}
+
+.tn-icon-copyright:before {
+ content: "\e90e";
+}
+
+.tn-icon-pin:before {
+ content: "\e90f";
+}
+
+.tn-icon-module-fill:before {
+ content: "\e910";
+}
+
+.tn-icon-dashboard-fill:before {
+ content: "\e911";
+}
+
+.tn-icon-birthday:before {
+ content: "\e905";
+}
+
+.tn-icon-sofa:before {
+ content: "\e906";
+}
+
+.tn-icon-iot:before {
+ content: "\e907";
+}
+
+.tn-icon-monitor:before {
+ content: "\e908";
+}
+
+.tn-icon-iot-fill:before {
+ content: "\e909";
+}
+
+.tn-icon-tabs-smile:before {
+ content: "\e900";
+}
+
+.tn-icon-huawei:before {
+ content: "\e901";
+}
+
+.tn-icon-iphone:before {
+ content: "\e902";
+}
+
+.tn-icon-tiktok:before {
+ content: "\e903";
+}
+
+.tn-icon-sword-fill:before {
+ content: "\e8fa";
+}
+
+.tn-icon-job-fill:before {
+ content: "\e8fb";
+}
+
+.tn-icon-rocket-fill:before {
+ content: "\e8fc";
+}
+
+.tn-icon-totop:before {
+ content: "\e8fd";
+}
+
+.tn-icon-totop-fill:before {
+ content: "\e8fe";
+}
+
+.tn-icon-logout:before {
+ content: "\e8f8";
+}
+
+.tn-icon-login:before {
+ content: "\e8f9";
+}
+
.tn-icon-expand:before {
content: "\e8f7";
}
@@ -392,10 +1549,6 @@
content: "\e89a";
}
-.tn-icon-wheelchair:before {
- content: "\e899";
-}
-
.tn-icon-my-add:before {
content: "\e898";
}
@@ -520,10 +1673,6 @@
content: "\e87a";
}
-.tn-icon-cross-fill:before {
- content: "\e879";
-}
-
.tn-icon-focus:before {
content: "\e878";
}
@@ -576,10 +1725,6 @@
content: "\e86c";
}
-.tn-icon-brand:before {
- content: "\e86a";
-}
-
.tn-icon-link:before {
content: "\e86b";
}
@@ -924,10 +2069,6 @@
content: "\e7dc";
}
-.tn-icon-footprint:before {
- content: "\e7d8";
-}
-
.tn-icon-delete:before {
content: "\e7d6";
}
@@ -1040,10 +2181,6 @@
content: "\e7ce";
}
-.tn-icon-commissary:before {
- content: "\e7ca";
-}
-
.tn-icon-coupon-fill:before {
content: "\e7c8";
}
@@ -1264,10 +2401,6 @@
content: "\e7a0";
}
-.tn-icon-open:before {
- content: "\e7a5";
-}
-
.tn-icon-group-double:before {
content: "\e79e";
}
@@ -1774,4 +2907,4 @@
.tn-icon-reduce-circle-fill:before {
content: "\e747";
-}
\ No newline at end of file
+}
diff --git a/tuniao-ui/index.js b/tuniao-ui/index.js
index 8b4a222..001b83a 100644
--- a/tuniao-ui/index.js
+++ b/tuniao-ui/index.js
@@ -1,5 +1,7 @@
// 引入全局mixin
import mixin from './libs/mixin/mixin.js'
+// 全局挂载引入http相关请求拦截插件
+import Request from './libs/luch-request'
// 调试输出信息
function wranning(str) {
@@ -39,6 +41,7 @@ import zIndex from './libs/config/zIndex.js'
import colorInfo from './libs/config/color.js'
const $tn = {
+ http: new Request(),
updateCustomBar: updateCustomBarInfo,
color,
message,
diff --git a/tuniao-ui/libs/luch-request/adapters/index.js b/tuniao-ui/libs/luch-request/adapters/index.js
new file mode 100644
index 0000000..5a478b5
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/adapters/index.js
@@ -0,0 +1,99 @@
+import buildURL from '../helpers/buildURL'
+import buildFullPath from '../core/buildFullPath'
+import settle from '../core/settle'
+import { isUndefined } from "../utils"
+
+/**
+ * 返回可选值存在的配置
+ * @param {Array} keys - 可选值数组
+ * @param {Object} config2 - 配置
+ * @return {{}} - 存在的配置项
+ */
+const mergeKeys = (keys, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ return config
+}
+export default (config) => {
+ return new Promise((resolve, reject) => {
+ let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params)
+ const _config = {
+ url: fullPath,
+ header: config.header,
+ complete: (response) => {
+ config.fullPath = fullPath
+ response.config = config
+ try {
+ // 对可能字符串不是json 的情况容错
+ if (typeof response.data === 'string') {
+ response.data = JSON.parse(response.data)
+ }
+ // eslint-disable-next-line no-empty
+ } catch (e) {
+ }
+ settle(resolve, reject, response)
+ }
+ }
+ let requestTask
+ if (config.method === 'UPLOAD') {
+ delete _config.header['content-type']
+ delete _config.header['Content-Type']
+ let otherConfig = {
+ // #ifdef MP-ALIPAY
+ fileType: config.fileType,
+ // #endif
+ filePath: config.filePath,
+ name: config.name
+ }
+ const optionalKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ // #ifdef H5 || APP-PLUS
+ 'timeout',
+ // #endif
+ 'formData'
+ ]
+ requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)})
+ } else if (config.method === 'DOWNLOAD') {
+ // #ifdef H5 || APP-PLUS
+ if (!isUndefined(config['timeout'])) {
+ _config['timeout'] = config['timeout']
+ }
+ // #endif
+ requestTask = uni.downloadFile(_config)
+ } else {
+ const optionalKeys = [
+ 'data',
+ 'method',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ ]
+ requestTask = uni.request({..._config,...mergeKeys(optionalKeys, config)})
+ }
+ if (config.getTask) {
+ config.getTask(requestTask, config)
+ }
+ })
+}
diff --git a/tuniao-ui/libs/luch-request/core/InterceptorManager.js b/tuniao-ui/libs/luch-request/core/InterceptorManager.js
new file mode 100644
index 0000000..3ea0d5e
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/InterceptorManager.js
@@ -0,0 +1,51 @@
+'use strict'
+
+
+function InterceptorManager() {
+ this.handlers = []
+}
+
+/**
+ * Add a new interceptor to the stack
+ *
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
+ *
+ * @return {Number} An ID used to remove interceptor later
+ */
+InterceptorManager.prototype.use = function use(fulfilled, rejected) {
+ this.handlers.push({
+ fulfilled: fulfilled,
+ rejected: rejected
+ })
+ return this.handlers.length - 1
+}
+
+/**
+ * Remove an interceptor from the stack
+ *
+ * @param {Number} id The ID that was returned by `use`
+ */
+InterceptorManager.prototype.eject = function eject(id) {
+ if (this.handlers[id]) {
+ this.handlers[id] = null
+ }
+}
+
+/**
+ * Iterate over all the registered interceptors
+ *
+ * This method is particularly useful for skipping over any
+ * interceptors that may have become `null` calling `eject`.
+ *
+ * @param {Function} fn The function to call for each interceptor
+ */
+InterceptorManager.prototype.forEach = function forEach(fn) {
+ this.handlers.forEach(h => {
+ if (h !== null) {
+ fn(h)
+ }
+ })
+}
+
+export default InterceptorManager
diff --git a/tuniao-ui/libs/luch-request/core/Request.js b/tuniao-ui/libs/luch-request/core/Request.js
new file mode 100644
index 0000000..43bb14c
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/Request.js
@@ -0,0 +1,200 @@
+/**
+ * @Class Request
+ * @description luch-request http请求插件
+ * @version 3.0.7
+ * @Author lu-ch
+ * @Date 2021-09-04
+ * @Email webwork.s@qq.com
+ * 文档: https://www.quanzhan.co/luch-request/
+ * github: https://github.com/lei-mu/luch-request
+ * DCloud: http://ext.dcloud.net.cn/plugin?id=392
+ * HBuilderX: beat-3.0.4 alpha-3.0.4
+ */
+
+
+import dispatchRequest from './dispatchRequest'
+import InterceptorManager from './InterceptorManager'
+import mergeConfig from './mergeConfig'
+import defaults from './defaults'
+import { isPlainObject } from '../utils'
+import clone from '../utils/clone'
+
+export default class Request {
+ /**
+ * @param {Object} arg - 全局配置
+ * @param {String} arg.baseURL - 全局根路径
+ * @param {Object} arg.header - 全局header
+ * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式
+ * @param {String} arg.dataType = [json] - 全局默认的dataType
+ * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持
+ * @param {Object} arg.custom - 全局默认的自定义参数
+ * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序
+ * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+)
+ * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+)
+ * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+)
+ * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300
+ */
+ constructor(arg = {}) {
+ if (!isPlainObject(arg)) {
+ arg = {}
+ console.warn('设置全局参数必须接收一个Object')
+ }
+ this.config = clone({...defaults, ...arg})
+ this.interceptors = {
+ request: new InterceptorManager(),
+ response: new InterceptorManager()
+ }
+ }
+
+ /**
+ * @Function
+ * @param {Request~setConfigCallback} f - 设置全局默认配置
+ */
+ setConfig(f) {
+ this.config = f(this.config)
+ }
+
+ middleware(config) {
+ config = mergeConfig(this.config, config)
+ let chain = [dispatchRequest, undefined]
+ let promise = Promise.resolve(config)
+
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
+ chain.unshift(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
+ chain.push(interceptor.fulfilled, interceptor.rejected)
+ })
+
+ while (chain.length) {
+ promise = promise.then(chain.shift(), chain.shift())
+ }
+
+ return promise
+ }
+
+ /**
+ * @Function
+ * @param {Object} config - 请求配置项
+ * @prop {String} options.url - 请求路径
+ * @prop {Object} options.data - 请求参数
+ * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型
+ * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse
+ * @prop {Object} [options.header = config.header] - 请求header
+ * @prop {Object} [options.method = config.method] - 请求方法
+ * @returns {Promise}
+ */
+ request(config = {}) {
+ return this.middleware(config)
+ }
+
+ get(url, options = {}) {
+ return this.middleware({
+ url,
+ method: 'GET',
+ ...options
+ })
+ }
+
+ post(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'POST',
+ ...options
+ })
+ }
+
+ // #ifndef MP-ALIPAY
+ put(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'PUT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ delete(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'DELETE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ connect(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'CONNECT',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN || MP-BAIDU
+ head(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'HEAD',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU
+ options(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'OPTIONS',
+ ...options
+ })
+ }
+
+ // #endif
+
+ // #ifdef H5 || MP-WEIXIN
+ trace(url, data, options = {}) {
+ return this.middleware({
+ url,
+ data,
+ method: 'TRACE',
+ ...options
+ })
+ }
+
+ // #endif
+
+ upload(url, config = {}) {
+ config.url = url
+ config.method = 'UPLOAD'
+ return this.middleware(config)
+ }
+
+ download(url, config = {}) {
+ config.url = url
+ config.method = 'DOWNLOAD'
+ return this.middleware(config)
+ }
+}
+
+
+/**
+ * setConfig回调
+ * @return {Object} - 返回操作后的config
+ * @callback Request~setConfigCallback
+ * @param {Object} config - 全局默认config
+ */
diff --git a/tuniao-ui/libs/luch-request/core/buildFullPath.js b/tuniao-ui/libs/luch-request/core/buildFullPath.js
new file mode 100644
index 0000000..f2852f4
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/buildFullPath.js
@@ -0,0 +1,20 @@
+'use strict'
+
+import isAbsoluteURL from '../helpers/isAbsoluteURL'
+import combineURLs from '../helpers/combineURLs'
+
+/**
+ * Creates a new URL by combining the baseURL with the requestedURL,
+ * only when the requestedURL is not already an absolute URL.
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} requestedURL Absolute or relative URL to combine
+ * @returns {string} The combined full path
+ */
+export default function buildFullPath(baseURL, requestedURL) {
+ if (baseURL && !isAbsoluteURL(requestedURL)) {
+ return combineURLs(baseURL, requestedURL)
+ }
+ return requestedURL
+}
diff --git a/tuniao-ui/libs/luch-request/core/defaults.js b/tuniao-ui/libs/luch-request/core/defaults.js
new file mode 100644
index 0000000..38afc3a
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/defaults.js
@@ -0,0 +1,30 @@
+/**
+ * 默认的全局配置
+ */
+
+
+export default {
+ baseURL: '',
+ header: {},
+ method: 'GET',
+ dataType: 'json',
+ // #ifndef MP-ALIPAY
+ responseType: 'text',
+ // #endif
+ custom: {},
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ timeout: 60000,
+ // #endif
+ // #ifdef APP-PLUS
+ sslVerify: true,
+ // #endif
+ // #ifdef H5
+ withCredentials: false,
+ // #endif
+ // #ifdef APP-PLUS
+ firstIpv4: false,
+ // #endif
+ validateStatus: function validateStatus(status) {
+ return status >= 200 && status < 300
+ }
+}
diff --git a/tuniao-ui/libs/luch-request/core/dispatchRequest.js b/tuniao-ui/libs/luch-request/core/dispatchRequest.js
new file mode 100644
index 0000000..c5f2c85
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/dispatchRequest.js
@@ -0,0 +1,6 @@
+import adapter from '../adapters/index'
+
+
+export default (config) => {
+ return adapter(config)
+}
diff --git a/tuniao-ui/libs/luch-request/core/mergeConfig.js b/tuniao-ui/libs/luch-request/core/mergeConfig.js
new file mode 100644
index 0000000..a3ccbf7
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/mergeConfig.js
@@ -0,0 +1,103 @@
+import {deepMerge, isUndefined} from '../utils'
+
+/**
+ * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局
+ * @param {Array} keys - 配置项
+ * @param {Object} globalsConfig - 当前的全局配置
+ * @param {Object} config2 - 局部配置
+ * @return {{}}
+ */
+const mergeKeys = (keys, globalsConfig, config2) => {
+ let config = {}
+ keys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ } else if (!isUndefined(globalsConfig[prop])) {
+ config[prop] = globalsConfig[prop]
+ }
+ })
+ return config
+}
+/**
+ *
+ * @param globalsConfig - 当前实例的全局配置
+ * @param config2 - 当前的局部配置
+ * @return - 合并后的配置
+ */
+export default (globalsConfig, config2 = {}) => {
+ const method = config2.method || globalsConfig.method || 'GET'
+ let config = {
+ baseURL: globalsConfig.baseURL || '',
+ method: method,
+ url: config2.url || '',
+ params: config2.params || {},
+ custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})},
+ header: deepMerge(globalsConfig.header || {}, config2.header || {})
+ }
+ const defaultToConfig2Keys = ['getTask', 'validateStatus']
+ config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)}
+
+ // eslint-disable-next-line no-empty
+ if (method === 'DOWNLOAD') {
+ // #ifdef H5 || APP-PLUS
+ if (!isUndefined(config2.timeout)) {
+ config['timeout'] = config2['timeout']
+ } else if (!isUndefined(globalsConfig.timeout)) {
+ config['timeout'] = globalsConfig['timeout']
+ }
+ // #endif
+ } else if (method === 'UPLOAD') {
+ delete config.header['content-type']
+ delete config.header['Content-Type']
+ const uploadKeys = [
+ // #ifdef APP-PLUS || H5
+ 'files',
+ // #endif
+ // #ifdef MP-ALIPAY
+ 'fileType',
+ // #endif
+ // #ifdef H5
+ 'file',
+ // #endif
+ 'filePath',
+ 'name',
+ // #ifdef H5 || APP-PLUS
+ 'timeout',
+ // #endif
+ 'formData',
+ ]
+ uploadKeys.forEach(prop => {
+ if (!isUndefined(config2[prop])) {
+ config[prop] = config2[prop]
+ }
+ })
+ // #ifdef H5 || APP-PLUS
+ if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) {
+ config['timeout'] = globalsConfig['timeout']
+ }
+ // #endif
+ } else {
+ const defaultsKeys = [
+ 'data',
+ // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN
+ 'timeout',
+ // #endif
+ 'dataType',
+ // #ifndef MP-ALIPAY
+ 'responseType',
+ // #endif
+ // #ifdef APP-PLUS
+ 'sslVerify',
+ // #endif
+ // #ifdef H5
+ 'withCredentials',
+ // #endif
+ // #ifdef APP-PLUS
+ 'firstIpv4',
+ // #endif
+ ]
+ config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)}
+ }
+
+ return config
+}
diff --git a/tuniao-ui/libs/luch-request/core/settle.js b/tuniao-ui/libs/luch-request/core/settle.js
new file mode 100644
index 0000000..b2f1659
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/core/settle.js
@@ -0,0 +1,16 @@
+/**
+ * Resolve or reject a Promise based on response status.
+ *
+ * @param {Function} resolve A function that resolves the promise.
+ * @param {Function} reject A function that rejects the promise.
+ * @param {object} response The response.
+ */
+export default function settle(resolve, reject, response) {
+ const validateStatus = response.config.validateStatus
+ const status = response.statusCode
+ if (status && (!validateStatus || validateStatus(status))) {
+ resolve(response)
+ } else {
+ reject(response)
+ }
+}
diff --git a/tuniao-ui/libs/luch-request/helpers/buildURL.js b/tuniao-ui/libs/luch-request/helpers/buildURL.js
new file mode 100644
index 0000000..d26dc30
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/helpers/buildURL.js
@@ -0,0 +1,69 @@
+'use strict'
+
+import * as utils from './../utils'
+
+function encode(val) {
+ return encodeURIComponent(val).
+ replace(/%40/gi, '@').
+ replace(/%3A/gi, ':').
+ replace(/%24/g, '$').
+ replace(/%2C/gi, ',').
+ replace(/%20/g, '+').
+ replace(/%5B/gi, '[').
+ replace(/%5D/gi, ']')
+}
+
+/**
+ * Build a URL by appending params to the end
+ *
+ * @param {string} url The base of the url (e.g., http://www.google.com)
+ * @param {object} [params] The params to be appended
+ * @returns {string} The formatted url
+ */
+export default function buildURL(url, params) {
+ /*eslint no-param-reassign:0*/
+ if (!params) {
+ return url
+ }
+
+ var serializedParams
+ if (utils.isURLSearchParams(params)) {
+ serializedParams = params.toString()
+ } else {
+ var parts = []
+
+ utils.forEach(params, function serialize(val, key) {
+ if (val === null || typeof val === 'undefined') {
+ return
+ }
+
+ if (utils.isArray(val)) {
+ key = key + '[]'
+ } else {
+ val = [val]
+ }
+
+ utils.forEach(val, function parseValue(v) {
+ if (utils.isDate(v)) {
+ v = v.toISOString()
+ } else if (utils.isObject(v)) {
+ v = JSON.stringify(v)
+ }
+ parts.push(encode(key) + '=' + encode(v))
+ })
+ })
+
+ serializedParams = parts.join('&')
+ }
+
+ if (serializedParams) {
+ var hashmarkIndex = url.indexOf('#')
+ if (hashmarkIndex !== -1) {
+ url = url.slice(0, hashmarkIndex)
+ }
+
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams
+ }
+
+ return url
+}
diff --git a/tuniao-ui/libs/luch-request/helpers/combineURLs.js b/tuniao-ui/libs/luch-request/helpers/combineURLs.js
new file mode 100644
index 0000000..7b9d1ef
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/helpers/combineURLs.js
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Creates a new URL by combining the specified URLs
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} relativeURL The relative URL
+ * @returns {string} The combined URL
+ */
+export default function combineURLs(baseURL, relativeURL) {
+ return relativeURL
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+ : baseURL
+}
diff --git a/tuniao-ui/libs/luch-request/helpers/isAbsoluteURL.js b/tuniao-ui/libs/luch-request/helpers/isAbsoluteURL.js
new file mode 100644
index 0000000..2a82517
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/helpers/isAbsoluteURL.js
@@ -0,0 +1,14 @@
+'use strict'
+
+/**
+ * Determines whether the specified URL is absolute
+ *
+ * @param {string} url The URL to test
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
+ */
+export default function isAbsoluteURL(url) {
+ // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL).
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
+ // by any combination of letters, digits, plus, period, or hyphen.
+ return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url)
+}
diff --git a/tuniao-ui/libs/luch-request/index.d.ts b/tuniao-ui/libs/luch-request/index.d.ts
new file mode 100644
index 0000000..e939ce1
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/index.d.ts
@@ -0,0 +1,116 @@
+type AnyObject = Record
+type HttpPromise = Promise>;
+type Tasks = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask
+export interface RequestTask {
+ abort: () => void;
+ offHeadersReceived: () => void;
+ onHeadersReceived: () => void;
+}
+export interface HttpRequestConfig {
+ /** 请求基地址 */
+ baseURL?: string;
+ /** 请求服务器接口地址 */
+ url?: string;
+
+ /** 请求查询参数,自动拼接为查询字符串 */
+ params?: AnyObject;
+ /** 请求体参数 */
+ data?: AnyObject;
+
+ /** 文件对应的 key */
+ name?: string;
+ /** HTTP 请求中其他额外的 form data */
+ formData?: AnyObject;
+ /** 要上传文件资源的路径。 */
+ filePath?: string;
+ /** 需要上传的文件列表。使用 files 时,filePath 和 name 不生效,App、H5( 2.6.15+) */
+ files?: Array<{
+ name?: string;
+ file?: File;
+ uri: string;
+ }>;
+ /** 要上传的文件对象,仅H5(2.6.15+)支持 */
+ file?: File;
+
+ /** 请求头信息 */
+ header?: AnyObject;
+ /** 请求方式 */
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "CONNECT" | "HEAD" | "OPTIONS" | "TRACE" | "UPLOAD" | "DOWNLOAD";
+ /** 如果设为 json,会尝试对返回的数据做一次 JSON.parse */
+ dataType?: string;
+ /** 设置响应的数据类型,支付宝小程序不支持 */
+ responseType?: "text" | "arraybuffer";
+ /** 自定义参数 */
+ custom?: AnyObject;
+ /** 超时时间,仅微信小程序(2.10.0)、支付宝小程序支持 */
+ timeout?: number;
+ /** DNS解析时优先使用ipv4,仅 App-Android 支持 (HBuilderX 2.8.0+) */
+ firstIpv4?: boolean;
+ /** 验证 ssl 证书 仅5+App安卓端支持(HBuilderX 2.3.3+) */
+ sslVerify?: boolean;
+ /** 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) */
+ withCredentials?: boolean;
+
+ /** 返回当前请求的task, options。请勿在此处修改options。 */
+ getTask?: (task: T, options: HttpRequestConfig) => void;
+ /** 全局自定义验证器 */
+ validateStatus?: (statusCode: number) => boolean | void;
+}
+export interface HttpResponse {
+ config: HttpRequestConfig;
+ statusCode: number;
+ cookies: Array;
+ data: T;
+ errMsg: string;
+ header: AnyObject;
+}
+export interface HttpUploadResponse {
+ config: HttpRequestConfig;
+ statusCode: number;
+ data: T;
+ errMsg: string;
+}
+export interface HttpDownloadResponse extends HttpResponse {
+ tempFilePath: string;
+}
+export interface HttpError {
+ config: HttpRequestConfig;
+ statusCode?: number;
+ cookies?: Array;
+ data?: any;
+ errMsg: string;
+ header?: AnyObject;
+}
+export interface HttpInterceptorManager {
+ use(
+ onFulfilled?: (config: V) => Promise | V,
+ onRejected?: (config: E) => Promise | E
+ ): void;
+ eject(id: number): void;
+}
+export abstract class HttpRequestAbstract {
+ constructor(config?: HttpRequestConfig);
+ config: HttpRequestConfig;
+ interceptors: {
+ request: HttpInterceptorManager;
+ response: HttpInterceptorManager;
+ }
+ middleware(config: HttpRequestConfig): HttpPromise;
+ request(config: HttpRequestConfig): HttpPromise;
+ get(url: string, config?: HttpRequestConfig): HttpPromise;
+ upload(url: string, config?: HttpRequestConfig): HttpPromise;
+ delete(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ head(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ post(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ put(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ connect(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ options(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+ trace(url: string, data?: AnyObject, config?: HttpRequestConfig): HttpPromise;
+
+ download(url: string, config?: HttpRequestConfig): Promise;
+
+ setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void;
+}
+
+declare class HttpRequest extends HttpRequestAbstract { }
+export default HttpRequest;
diff --git a/tuniao-ui/libs/luch-request/index.js b/tuniao-ui/libs/luch-request/index.js
new file mode 100644
index 0000000..d8fe348
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/index.js
@@ -0,0 +1,2 @@
+import Request from './core/Request'
+export default Request
diff --git a/tuniao-ui/libs/luch-request/utils.js b/tuniao-ui/libs/luch-request/utils.js
new file mode 100644
index 0000000..0b5bf21
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/utils.js
@@ -0,0 +1,135 @@
+'use strict'
+
+// utils is a library of generic helper functions non-specific to axios
+
+var toString = Object.prototype.toString
+
+/**
+ * Determine if a value is an Array
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Array, otherwise false
+ */
+export function isArray (val) {
+ return toString.call(val) === '[object Array]'
+}
+
+
+/**
+ * Determine if a value is an Object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Object, otherwise false
+ */
+export function isObject (val) {
+ return val !== null && typeof val === 'object'
+}
+
+/**
+ * Determine if a value is a Date
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Date, otherwise false
+ */
+export function isDate (val) {
+ return toString.call(val) === '[object Date]'
+}
+
+/**
+ * Determine if a value is a URLSearchParams object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
+ */
+export function isURLSearchParams (val) {
+ return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams
+}
+
+
+/**
+ * Iterate over an Array or an Object invoking a function for each item.
+ *
+ * If `obj` is an Array callback will be called passing
+ * the value, index, and complete array for each item.
+ *
+ * If 'obj' is an Object callback will be called passing
+ * the value, key, and complete object for each property.
+ *
+ * @param {Object|Array} obj The object to iterate
+ * @param {Function} fn The callback to invoke for each item
+ */
+export function forEach (obj, fn) {
+ // Don't bother if no value provided
+ if (obj === null || typeof obj === 'undefined') {
+ return
+ }
+
+ // Force an array if not already something iterable
+ if (typeof obj !== 'object') {
+ /*eslint no-param-reassign:0*/
+ obj = [obj]
+ }
+
+ if (isArray(obj)) {
+ // Iterate over array values
+ for (var i = 0, l = obj.length; i < l; i++) {
+ fn.call(null, obj[i], i, obj)
+ }
+ } else {
+ // Iterate over object keys
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
+ fn.call(null, obj[key], key, obj)
+ }
+ }
+ }
+}
+
+/**
+ * 是否为boolean 值
+ * @param val
+ * @returns {boolean}
+ */
+export function isBoolean(val) {
+ return typeof val === 'boolean'
+}
+
+/**
+ * 是否为真正的对象{} new Object
+ * @param {any} obj - 检测的对象
+ * @returns {boolean}
+ */
+export function isPlainObject(obj) {
+ return Object.prototype.toString.call(obj) === '[object Object]'
+}
+
+
+
+/**
+ * Function equal to merge with the difference being that no reference
+ * to original objects is kept.
+ *
+ * @see merge
+ * @param {Object} obj1 Object to merge
+ * @returns {Object} Result of all merge properties
+ */
+export function deepMerge(/* obj1, obj2, obj3, ... */) {
+ let result = {}
+ function assignValue(val, key) {
+ if (typeof result[key] === 'object' && typeof val === 'object') {
+ result[key] = deepMerge(result[key], val)
+ } else if (typeof val === 'object') {
+ result[key] = deepMerge({}, val)
+ } else {
+ result[key] = val
+ }
+ }
+ for (let i = 0, l = arguments.length; i < l; i++) {
+ forEach(arguments[i], assignValue)
+ }
+ return result
+}
+
+export function isUndefined (val) {
+ return typeof val === 'undefined'
+}
diff --git a/tuniao-ui/libs/luch-request/utils/clone.js b/tuniao-ui/libs/luch-request/utils/clone.js
new file mode 100644
index 0000000..2fee704
--- /dev/null
+++ b/tuniao-ui/libs/luch-request/utils/clone.js
@@ -0,0 +1,264 @@
+/* eslint-disable */
+var clone = (function() {
+ 'use strict';
+
+ function _instanceof(obj, type) {
+ return type != null && obj instanceof type;
+ }
+
+ var nativeMap;
+ try {
+ nativeMap = Map;
+ } catch(_) {
+ // maybe a reference error because no `Map`. Give it a dummy value that no
+ // value will ever be an instanceof.
+ nativeMap = function() {};
+ }
+
+ var nativeSet;
+ try {
+ nativeSet = Set;
+ } catch(_) {
+ nativeSet = function() {};
+ }
+
+ var nativePromise;
+ try {
+ nativePromise = Promise;
+ } catch(_) {
+ nativePromise = function() {};
+ }
+
+ /**
+ * Clones (copies) an Object using deep copying.
+ *
+ * This function supports circular references by default, but if you are certain
+ * there are no circular references in your object, you can save some CPU time
+ * by calling clone(obj, false).
+ *
+ * Caution: if `circular` is false and `parent` contains circular references,
+ * your program may enter an infinite loop and crash.
+ *
+ * @param `parent` - the object to be cloned
+ * @param `circular` - set to true if the object to be cloned may contain
+ * circular references. (optional - true by default)
+ * @param `depth` - set to a number if the object is only to be cloned to
+ * a particular depth. (optional - defaults to Infinity)
+ * @param `prototype` - sets the prototype to be used when cloning an object.
+ * (optional - defaults to parent prototype).
+ * @param `includeNonEnumerable` - set to true if the non-enumerable properties
+ * should be cloned as well. Non-enumerable properties on the prototype
+ * chain will be ignored. (optional - false by default)
+ */
+ function clone(parent, circular, depth, prototype, includeNonEnumerable) {
+ if (typeof circular === 'object') {
+ depth = circular.depth;
+ prototype = circular.prototype;
+ includeNonEnumerable = circular.includeNonEnumerable;
+ circular = circular.circular;
+ }
+ // maintain two arrays for circular references, where corresponding parents
+ // and children have the same index
+ var allParents = [];
+ var allChildren = [];
+
+ var useBuffer = typeof Buffer != 'undefined';
+
+ if (typeof circular == 'undefined')
+ circular = true;
+
+ if (typeof depth == 'undefined')
+ depth = Infinity;
+
+ // recurse this function so we don't reset allParents and allChildren
+ function _clone(parent, depth) {
+ // cloning null always returns null
+ if (parent === null)
+ return null;
+
+ if (depth === 0)
+ return parent;
+
+ var child;
+ var proto;
+ if (typeof parent != 'object') {
+ return parent;
+ }
+
+ if (_instanceof(parent, nativeMap)) {
+ child = new nativeMap();
+ } else if (_instanceof(parent, nativeSet)) {
+ child = new nativeSet();
+ } else if (_instanceof(parent, nativePromise)) {
+ child = new nativePromise(function (resolve, reject) {
+ parent.then(function(value) {
+ resolve(_clone(value, depth - 1));
+ }, function(err) {
+ reject(_clone(err, depth - 1));
+ });
+ });
+ } else if (clone.__isArray(parent)) {
+ child = [];
+ } else if (clone.__isRegExp(parent)) {
+ child = new RegExp(parent.source, __getRegExpFlags(parent));
+ if (parent.lastIndex) child.lastIndex = parent.lastIndex;
+ } else if (clone.__isDate(parent)) {
+ child = new Date(parent.getTime());
+ } else if (useBuffer && Buffer.isBuffer(parent)) {
+ if (Buffer.from) {
+ // Node.js >= 5.10.0
+ child = Buffer.from(parent);
+ } else {
+ // Older Node.js versions
+ child = new Buffer(parent.length);
+ parent.copy(child);
+ }
+ return child;
+ } else if (_instanceof(parent, Error)) {
+ child = Object.create(parent);
+ } else {
+ if (typeof prototype == 'undefined') {
+ proto = Object.getPrototypeOf(parent);
+ child = Object.create(proto);
+ }
+ else {
+ child = Object.create(prototype);
+ proto = prototype;
+ }
+ }
+
+ if (circular) {
+ var index = allParents.indexOf(parent);
+
+ if (index != -1) {
+ return allChildren[index];
+ }
+ allParents.push(parent);
+ allChildren.push(child);
+ }
+
+ if (_instanceof(parent, nativeMap)) {
+ parent.forEach(function(value, key) {
+ var keyChild = _clone(key, depth - 1);
+ var valueChild = _clone(value, depth - 1);
+ child.set(keyChild, valueChild);
+ });
+ }
+ if (_instanceof(parent, nativeSet)) {
+ parent.forEach(function(value) {
+ var entryChild = _clone(value, depth - 1);
+ child.add(entryChild);
+ });
+ }
+
+ for (var i in parent) {
+ var attrs = Object.getOwnPropertyDescriptor(parent, i);
+ if (attrs) {
+ child[i] = _clone(parent[i], depth - 1);
+ }
+
+ try {
+ var objProperty = Object.getOwnPropertyDescriptor(parent, i);
+ if (objProperty.set === 'undefined') {
+ // no setter defined. Skip cloning this property
+ continue;
+ }
+ child[i] = _clone(parent[i], depth - 1);
+ } catch(e){
+ if (e instanceof TypeError) {
+ // when in strict mode, TypeError will be thrown if child[i] property only has a getter
+ // we can't do anything about this, other than inform the user that this property cannot be set.
+ continue
+ } else if (e instanceof ReferenceError) {
+ //this may happen in non strict mode
+ continue
+ }
+ }
+
+ }
+
+ if (Object.getOwnPropertySymbols) {
+ var symbols = Object.getOwnPropertySymbols(parent);
+ for (var i = 0; i < symbols.length; i++) {
+ // Don't need to worry about cloning a symbol because it is a primitive,
+ // like a number or string.
+ var symbol = symbols[i];
+ var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);
+ if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
+ continue;
+ }
+ child[symbol] = _clone(parent[symbol], depth - 1);
+ Object.defineProperty(child, symbol, descriptor);
+ }
+ }
+
+ if (includeNonEnumerable) {
+ var allPropertyNames = Object.getOwnPropertyNames(parent);
+ for (var i = 0; i < allPropertyNames.length; i++) {
+ var propertyName = allPropertyNames[i];
+ var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);
+ if (descriptor && descriptor.enumerable) {
+ continue;
+ }
+ child[propertyName] = _clone(parent[propertyName], depth - 1);
+ Object.defineProperty(child, propertyName, descriptor);
+ }
+ }
+
+ return child;
+ }
+
+ return _clone(parent, depth);
+ }
+
+ /**
+ * Simple flat clone using prototype, accepts only objects, usefull for property
+ * override on FLAT configuration object (no nested props).
+ *
+ * USE WITH CAUTION! This may not behave as you wish if you do not know how this
+ * works.
+ */
+ clone.clonePrototype = function clonePrototype(parent) {
+ if (parent === null)
+ return null;
+
+ var c = function () {};
+ c.prototype = parent;
+ return new c();
+ };
+
+// private utility functions
+
+ function __objToStr(o) {
+ return Object.prototype.toString.call(o);
+ }
+ clone.__objToStr = __objToStr;
+
+ function __isDate(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object Date]';
+ }
+ clone.__isDate = __isDate;
+
+ function __isArray(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object Array]';
+ }
+ clone.__isArray = __isArray;
+
+ function __isRegExp(o) {
+ return typeof o === 'object' && __objToStr(o) === '[object RegExp]';
+ }
+ clone.__isRegExp = __isRegExp;
+
+ function __getRegExpFlags(re) {
+ var flags = '';
+ if (re.global) flags += 'g';
+ if (re.ignoreCase) flags += 'i';
+ if (re.multiline) flags += 'm';
+ return flags;
+ }
+ clone.__getRegExpFlags = __getRegExpFlags;
+
+ return clone;
+})();
+
+export default clone
diff --git a/util/request/index.js b/util/request/index.js
new file mode 100644
index 0000000..94e40a1
--- /dev/null
+++ b/util/request/index.js
@@ -0,0 +1,13 @@
+// 引入配置
+import config from '@/common/config'
+// 初始化请求配置
+uni.$tn.http.setConfig((defaultConfig) => {
+ // defaultConfig 为默认全局配置
+ defaultConfig.baseURL = config.baseUrl // 根域名
+ return defaultConfig
+})
+
+module.exports = (vm) => {
+ require('./requestInterceptors')(vm)
+ require('./responseInterceptors')(vm)
+}
\ No newline at end of file
diff --git a/util/request/requestInterceptors.js b/util/request/requestInterceptors.js
new file mode 100644
index 0000000..68c53a8
--- /dev/null
+++ b/util/request/requestInterceptors.js
@@ -0,0 +1,15 @@
+/**
+ * 请求拦截
+ * @param {Object} http
+ */
+module.exports = (vm) => {
+ uni.$tn.http.interceptors.request.use((config) => { // 可以使用async await 做异步操作
+ // 初始化请求拦截器时,会执行此方法,此时data为undefined,默认赋予{}
+ config.data = config.data || {}
+ // 可以在此通过vm引用vuex中的变量,具体值在vm.vuex_[name]中
+ // console.log(vm.vuex_user);
+ return config
+ }, (config) => { // 可以使用async await 做异步操作
+ Promise.reject(config)
+ })
+}
\ No newline at end of file
diff --git a/util/request/responseInterceptors.js b/util/request/responseInterceptors.js
new file mode 100644
index 0000000..2317ae1
--- /dev/null
+++ b/util/request/responseInterceptors.js
@@ -0,0 +1,28 @@
+/**
+ * 相应拦截
+ * @param {Object} http
+ */
+module.exports = (vm) => {
+ uni.$tn.http.interceptors.response.use((response) => { // 可以使用async await 做异步操作
+ const data = response.data
+ // 自定义参数
+ const custom = response.config?.custom
+ // 服务端返回的状态码不等于200,则reject()
+ if (data.code !== 200) {
+ // 如果没有显式定义custom的toast参数为false的话,默认对报错进行toast弹出提示
+ if (custom.toast !== false) {
+ uni.$tn.message.toast(data.message)
+ }
+ // 如果需要catch返回,则进行reject
+ if (custom?.catch) {
+ return Promise.reject(data)
+ } else {
+ // 返回pending中的promise
+ return new Promise(() => {})
+ }
+ }
+ return data.data || {}
+ }, (response) => { // 对响应错误做点什么 (statusCode !== 200)
+ return Promise.reject(response)
+ })
+}
\ No newline at end of file