diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b3114d5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 leejimqiu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/api/request.js b/api/request.js new file mode 100644 index 0000000..2dc05ea --- /dev/null +++ b/api/request.js @@ -0,0 +1,52 @@ +import config from '~/config'; + +const baseUrl = 'https://ddbs.1024tool.vip/'; +const delay = config.isMock ? 500 : 0; +function request(url, method = 'GET', data = {}) { + const header = { + 'content-type': 'application/json', + // 有其他content-type需求加点逻辑判断处理即可 + }; + // 获取token,有就丢进请求头 + const tokenString = wx.getStorageSync('access_token'); + if (tokenString) { + header.Authorization = `${tokenString}`; + } + return new Promise((resolve, reject) => { + wx.request({ + url: baseUrl + url, + method, + data, + dataType: 'json', // 微信官方文档中介绍会对数据进行一次JSON.parse + header, + success(res) { + console.log(res) + setTimeout(() => { + + if(res.data.code && res.data.code == 10103){ + wx.removeStorageSync('access_token'); + wx.switchTab({ + url: '/pages/my/index', + }) + reject(res.data); + } else { + console.log(res.data) + resolve(res.data); + } + + }, delay); + }, + fail(err) { + setTimeout(() => { + console.log(err) + // 断网、服务器挂了都会fail回调,直接reject即可 + + reject(err); + }, delay); + }, + }); + }); +} + +// 导出请求和服务地址 +export default request; diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..ff89040 --- /dev/null +++ b/api/user.js @@ -0,0 +1,9 @@ +import request from './request' + +export const userLogin = () => { + return request({ + url: 'patient/password_login', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..d40e174 --- /dev/null +++ b/app.js @@ -0,0 +1,66 @@ +// app.js +import config from './config'; +import Mock from './mock/index'; +import createBus from './utils/eventBus'; +import { connectSocket, fetchUnreadNum } from './mock/chat'; + +if (config.isMock) { + Mock(); +} + +App({ + onLaunch() { + const updateManager = wx.getUpdateManager(); + + updateManager.onCheckForUpdate((res) => { + // console.log(res.hasUpdate) + }); + + updateManager.onUpdateReady(() => { + wx.showModal({ + title: '更新提示', + content: '新版本已经准备好,是否重启应用?', + success(res) { + if (res.confirm) { + updateManager.applyUpdate(); + } + }, + }); + }); + + this.getUnreadNum(); + this.connect(); + }, + globalData: { + userInfo: null, + unreadNum: 0, // 未读消息数量 + socket: null, // SocketTask 对象 + }, + + /** 全局事件总线 */ + eventBus: createBus(), + + /** 初始化WebSocket */ + connect() { + const socket = connectSocket(); + socket.onMessage((data) => { + data = JSON.parse(data); + if (data.type === 'message' && !data.data.message.read) this.setUnreadNum(this.globalData.unreadNum + 1); + }); + this.globalData.socket = socket; + }, + + /** 获取未读消息数量 */ + getUnreadNum() { + fetchUnreadNum().then(({ data }) => { + this.globalData.unreadNum = data; + this.eventBus.emit('unread-num-change', data); + }); + }, + + /** 设置未读消息数量 */ + setUnreadNum(unreadNum) { + this.globalData.unreadNum = unreadNum; + this.eventBus.emit('unread-num-change', unreadNum); + }, +}); diff --git a/app.json b/app.json new file mode 100644 index 0000000..20a6f57 --- /dev/null +++ b/app.json @@ -0,0 +1,62 @@ +{ + "pages": ["pages/patients/index", "pages/my/index"], + "usingComponents": { + "t-toast": "tdesign-miniprogram/toast/toast" + }, + "subpackages": [ + + { + "root": "pages/my/info-edit", + "name": "edit", + "pages": ["index"] + }, + + { + "root": "pages/login", + "name": "login", + "pages": ["login"] + }, + { + "root": "pages/loginCode", + "name": "loginCode", + "pages": ["loginCode"] + }, + { + "root": "pages/home", + "name": "home", + "pages": ["index"] + } + + + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "Weixin", + "navigationBarTextStyle": "black" + + }, + "tabBar": { + "color": "#888888", + "selectedColor": "#005BA2", + "list": [ + { + "iconPath": "assets/images/home/home.png", + "selectedIconPath": "assets/images/home/homeAct.png", + "pagePath": "pages/patients/index", + "text": "患者管理" + }, + + { + "iconPath": "assets/images/home/my.png", + "selectedIconPath": "assets/images/home/myAct.png", + "pagePath": "pages/my/index", + "text": "我的" + } + ] + }, + "resolveAlias": { + "~/*": "/*" + }, + "sitemapLocation": "sitemap.json" +} diff --git a/app.less b/app.less new file mode 100644 index 0000000..658b301 --- /dev/null +++ b/app.less @@ -0,0 +1,36 @@ +/**app.wxss**/ +@import 'iconfont.less'; +page { + background-color: #F8F8F8; + --td-brand-color: #005BA2; // 任何你想要的主题色 + --td-bg-color: #F8F8F8; + --td-text-color: #222222; + font-size: 28rpx; + color: #222222; + .t-cell__title-text { + font-size: 28rpx; + } + .t-input__control { + font-size: 28rpx; + } + .t-input{ + + } + .t-input__label:not(:empty) { + max-width: 10rem; + font-size: 28rpx; + } + .active{ + .t-cell__note{ + color: #222222; + } + } + button{ + margin: 0; + } +} + +.page { + height: 100vh; + background-color: #fff; +} diff --git a/assets/images/home/home.png b/assets/images/home/home.png new file mode 100644 index 0000000..b015c53 Binary files /dev/null and b/assets/images/home/home.png differ diff --git a/assets/images/home/homeAct.png b/assets/images/home/homeAct.png new file mode 100644 index 0000000..4653fea Binary files /dev/null and b/assets/images/home/homeAct.png differ diff --git a/assets/images/home/icon_1.svg b/assets/images/home/icon_1.svg new file mode 100644 index 0000000..37b0d50 --- /dev/null +++ b/assets/images/home/icon_1.svg @@ -0,0 +1,24 @@ + + + 生长曲线备份 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/home/icon_2.png b/assets/images/home/icon_2.png new file mode 100644 index 0000000..7b31916 Binary files /dev/null and b/assets/images/home/icon_2.png differ diff --git a/assets/images/home/img_1.png b/assets/images/home/img_1.png new file mode 100644 index 0000000..8ddfa43 Binary files /dev/null and b/assets/images/home/img_1.png differ diff --git a/assets/images/home/img_2.png b/assets/images/home/img_2.png new file mode 100644 index 0000000..0492a25 Binary files /dev/null and b/assets/images/home/img_2.png differ diff --git a/assets/images/home/img_title_1.png b/assets/images/home/img_title_1.png new file mode 100644 index 0000000..2d7be3c Binary files /dev/null and b/assets/images/home/img_title_1.png differ diff --git a/assets/images/home/img_title_2.png b/assets/images/home/img_title_2.png new file mode 100644 index 0000000..1c7c9f6 Binary files /dev/null and b/assets/images/home/img_title_2.png differ diff --git a/assets/images/home/my.png b/assets/images/home/my.png new file mode 100644 index 0000000..cac9c17 Binary files /dev/null and b/assets/images/home/my.png differ diff --git a/assets/images/home/myAct.png b/assets/images/home/myAct.png new file mode 100644 index 0000000..d6602be Binary files /dev/null and b/assets/images/home/myAct.png differ diff --git a/assets/images/home/sf.png b/assets/images/home/sf.png new file mode 100644 index 0000000..54784f8 Binary files /dev/null and b/assets/images/home/sf.png differ diff --git a/assets/images/home/sfAct.png b/assets/images/home/sfAct.png new file mode 100644 index 0000000..6a081c5 Binary files /dev/null and b/assets/images/home/sfAct.png differ diff --git a/assets/images/home/top-bg.png b/assets/images/home/top-bg.png new file mode 100644 index 0000000..88e64cf Binary files /dev/null and b/assets/images/home/top-bg.png differ diff --git a/assets/images/logo.jpg b/assets/images/logo.jpg new file mode 100644 index 0000000..88ec9de Binary files /dev/null and b/assets/images/logo.jpg differ diff --git a/assets/images/my/baby.png b/assets/images/my/baby.png new file mode 100644 index 0000000..259ac17 Binary files /dev/null and b/assets/images/my/baby.png differ diff --git a/assets/images/my/jkjy.svg b/assets/images/my/jkjy.svg new file mode 100644 index 0000000..79f22fe --- /dev/null +++ b/assets/images/my/jkjy.svg @@ -0,0 +1,24 @@ + + + 健康教育 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/my/my-top-bg.png b/assets/images/my/my-top-bg.png new file mode 100644 index 0000000..411d85c Binary files /dev/null and b/assets/images/my/my-top-bg.png differ diff --git a/assets/images/my/yyfa.svg b/assets/images/my/yyfa.svg new file mode 100644 index 0000000..329baf8 --- /dev/null +++ b/assets/images/my/yyfa.svg @@ -0,0 +1,22 @@ + + + 用药方案 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/top-bg.png b/assets/images/top-bg.png new file mode 100644 index 0000000..35e6579 Binary files /dev/null and b/assets/images/top-bg.png differ diff --git a/behaviors/useToast.js b/behaviors/useToast.js new file mode 100644 index 0000000..f6112af --- /dev/null +++ b/behaviors/useToast.js @@ -0,0 +1,22 @@ +import Toast, { hideToast } from 'tdesign-miniprogram/toast/index'; + +const useToastBehavior = Behavior({ + methods: { + onShowToast(selector, message) { + Toast({ + context: this, + selector, + message, + }); + }, + + onHideToast(selector) { + hideToast({ + context: this, + selector, + }); + }, + }, +}); + +export default useToastBehavior; diff --git a/components/card/index.js b/components/card/index.js new file mode 100644 index 0000000..bb98a30 --- /dev/null +++ b/components/card/index.js @@ -0,0 +1,9 @@ +Component({ + properties: { + url: String, + desc: String, + tags: Array, + }, + data: {}, + methods: {}, +}); diff --git a/components/card/index.json b/components/card/index.json new file mode 100644 index 0000000..230b5ef --- /dev/null +++ b/components/card/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-image": "tdesign-miniprogram/image/image", + "t-tag": "tdesign-miniprogram/tag/tag" + } +} diff --git a/components/card/index.less b/components/card/index.less new file mode 100644 index 0000000..85e3be2 --- /dev/null +++ b/components/card/index.less @@ -0,0 +1,27 @@ +@import '/variable.less'; + +.home-card { + display: inline-flex; + flex-direction: column; + width: 340rpx; + height: 488rpx; + border-radius: 9px; + background: @bg-color-white; + + &__image { + width: 340rpx; + height: 340rpx; + } + + &__info { + padding: 32rpx; + font-weight: 400; + font-size: @font-size-small; + } + + &__tag-group { + display: flex; + gap: 16rpx; + margin-top: 16rpx; + } +} diff --git a/components/card/index.wxml b/components/card/index.wxml new file mode 100644 index 0000000..f83e538 --- /dev/null +++ b/components/card/index.wxml @@ -0,0 +1,9 @@ + + + + {{desc}} + + {{item.text}} + + + diff --git a/components/nav/index.js b/components/nav/index.js new file mode 100644 index 0000000..9c5012c --- /dev/null +++ b/components/nav/index.js @@ -0,0 +1,109 @@ +Component({ + options: { + styleIsolation: 'shared', + }, + properties: { + navType: { + type: String, + value: 'title', + }, + titleText: String, + }, + data: { + visible: false, + sidebar: [ + { + title: '首页', + url: 'pages/home/index', + isSidebar: true, + }, + { + title: '搜索页', + url: 'pages/search/index', + isSidebar: false, + }, + { + title: '发布页', + url: 'pages/release/index', + isSidebar: false, + }, + { + title: '消息列表页', + url: 'pages/message/index', + isSidebar: true, + }, + { + title: '对话页', + url: 'pages/chat/index', + isSidebar: false, + }, + { + title: '个人中心页', + url: 'pages/my/index', + isSidebar: true, + }, + { + title: '个人信息表单页', + url: 'pages/my/info-edit/index', + isSidebar: false, + }, + { + title: '设置页', + url: 'pages/setting/index', + isSidebar: false, + }, + { + title: '数据图表页', + url: 'pages/dataCenter/index', + isSidebar: false, + }, + { + title: '登录注册页', + url: 'pages/login/login', + isSidebar: false, + }, + ], + statusHeight: 0, + }, + lifetimes: { + ready() { + const statusHeight = wx.getWindowInfo().statusBarHeight; + this.setData({ statusHeight }); + }, + }, + methods: { + openDrawer() { + this.setData({ + visible: true, + }); + }, + itemClick(e) { + const that = this; + const { isSidebar, url } = e.detail.item; + if (isSidebar) { + wx.switchTab({ + url: `/${url}`, + }).then(() => { + // 防止点回tab时,sidebar依旧是展开模式 + that.setData({ + visible: false, + }); + }); + } else { + wx.navigateTo({ + url: `/${url}`, + }).then(() => { + that.setData({ + visible: false, + }); + }); + } + }, + + searchTurn() { + wx.navigateTo({ + url: `/pages/search/index`, + }); + }, + }, +}); diff --git a/components/nav/index.json b/components/nav/index.json new file mode 100644 index 0000000..b551b47 --- /dev/null +++ b/components/nav/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "t-navbar": "tdesign-miniprogram/navbar/navbar", + "t-icon": "tdesign-miniprogram/icon/icon", + "t-drawer": "tdesign-miniprogram/drawer/drawer", + "t-search": "tdesign-miniprogram/search/search" + } +} diff --git a/components/nav/index.less b/components/nav/index.less new file mode 100644 index 0000000..9a820e3 --- /dev/null +++ b/components/nav/index.less @@ -0,0 +1,30 @@ +@import '/variable.less'; + +.home-navbar { + .t-navbar { + &__left { + margin-left: 12rpx; + } + } + + &__icon { + padding: 12rpx; + } + + &__left { + display: flex; + align-items: center; + padding: 0 16rpx; + + .t-search { + --td-search-height: 64rpx; + --td-search-font-size: @font-size-mini; + width: 375rpx; + + .t-icon { + font-size: @font-size-default !important; + } + } + } + --td-drawer-title-font-size: 48rpx; +} diff --git a/components/nav/index.wxml b/components/nav/index.wxml new file mode 100644 index 0000000..38a25f5 --- /dev/null +++ b/components/nav/index.wxml @@ -0,0 +1,23 @@ + + + + + + diff --git a/config.js b/config.js new file mode 100644 index 0000000..8cb1cb6 --- /dev/null +++ b/config.js @@ -0,0 +1,4 @@ +export default { + isMock: true, + baseUrl: '', +}; diff --git a/config/index.js b/config/index.js new file mode 100644 index 0000000..617b5a7 --- /dev/null +++ b/config/index.js @@ -0,0 +1,7 @@ +/** 是否使用mock代替api返回 */ +export const config = { + baseUrl: 'https://ddbs.1024tool.vip/', + useMock: true, +}; + +export default { config }; diff --git a/custom-tab-bar/index.js b/custom-tab-bar/index.js new file mode 100644 index 0000000..7cf58ff --- /dev/null +++ b/custom-tab-bar/index.js @@ -0,0 +1,57 @@ +const app = getApp(); + +Component({ + data: { + value: '', // 初始值设置为空,避免第一次加载时闪烁 + unreadNum: 0, // 未读消息数量 + list: [ + { + icon: 'home', + value: 'index', + label: '首页', + }, + { + icon: 'chat', + value: 'notice', + label: '随访', + }, + { + icon: 'user', + value: 'my', + label: '我1的', + }, + ], + }, + lifetimes: { + ready() { + const pages = getCurrentPages(); + const curPage = pages[pages.length - 1]; + if (curPage) { + const nameRe = /pages\/(\w+)\/index/.exec(curPage.route); + if (nameRe === null) return; + if (nameRe[1] && nameRe) { + this.setData({ + value: nameRe[1], + }); + } + } + + // 同步全局未读消息数量 + this.setUnreadNum(app.globalData.unreadNum); + app.eventBus.on('unread-num-change', (unreadNum) => { + this.setUnreadNum(unreadNum); + }); + }, + }, + methods: { + handleChange(e) { + const { value } = e.detail; + wx.switchTab({ url: `/pages/${value}/index` }); + }, + + /** 设置未读消息数量 */ + setUnreadNum(unreadNum) { + this.setData({ unreadNum }); + }, + }, +}); diff --git a/custom-tab-bar/index.json b/custom-tab-bar/index.json new file mode 100644 index 0000000..e16a2dd --- /dev/null +++ b/custom-tab-bar/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-tab-bar": "tdesign-miniprogram/tab-bar/tab-bar", + "t-tab-bar-item": "tdesign-miniprogram/tab-bar-item/tab-bar-item" + } +} diff --git a/custom-tab-bar/index.less b/custom-tab-bar/index.less new file mode 100644 index 0000000..0381d54 --- /dev/null +++ b/custom-tab-bar/index.less @@ -0,0 +1,10 @@ +@import '/variable.less'; + +.custom-tab-bar { + --td-tab-bar-height: @tab-bar-height; + + &-item { + margin: 0; + padding: 16rpx 24rpx; + } +} diff --git a/custom-tab-bar/index.wxml b/custom-tab-bar/index.wxml new file mode 100644 index 0000000..46ab488 --- /dev/null +++ b/custom-tab-bar/index.wxml @@ -0,0 +1,5 @@ + + 首页 + 随访 + 我的 + diff --git a/ec-canvas/ec-canvas.js b/ec-canvas/ec-canvas.js new file mode 100644 index 0000000..d4638e9 --- /dev/null +++ b/ec-canvas/ec-canvas.js @@ -0,0 +1,284 @@ +import WxCanvas from './wx-canvas'; +import * as echarts from './echarts.min'; + +let ctx; + +function compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i]) + const num2 = parseInt(v2[i]) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +Component({ + properties: { + canvasId: { + type: String, + value: 'ec-canvas' + }, + + ec: { + type: Object + }, + + forceUseOldCanvas: { + type: Boolean, + value: false + } + }, + + data: { + isUseNewCanvas: false + }, + + ready: function () { + // Disable prograssive because drawImage doesn't support DOM as parameter + // See https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.drawImage.html + echarts.registerPreprocessor(option => { + if (option && option.series) { + if (option.series.length > 0) { + option.series.forEach(series => { + series.progressive = 0; + }); + } + else if (typeof option.series === 'object') { + option.series.progressive = 0; + } + } + }); + + if (!this.data.ec) { + console.warn('组件需绑定 ec 变量,例:'); + return; + } + + if (!this.data.ec.lazyLoad) { + this.init(); + } + }, + + methods: { + init: function (callback) { + const version = wx.getSystemInfoSync().SDKVersion + + const canUseNewCanvas = compareVersion(version, '2.9.0') >= 0; + const forceUseOldCanvas = this.data.forceUseOldCanvas; + const isUseNewCanvas = canUseNewCanvas && !forceUseOldCanvas; + this.setData({ isUseNewCanvas }); + + if (forceUseOldCanvas && canUseNewCanvas) { + console.warn('开发者强制使用旧canvas,建议关闭'); + } + + if (isUseNewCanvas) { + // console.log('微信基础库版本大于2.9.0,开始使用'); + // 2.9.0 可以使用 + this.initByNewWay(callback); + } else { + const isValid = compareVersion(version, '1.9.91') >= 0 + if (!isValid) { + console.error('微信基础库版本过低,需大于等于 1.9.91。' + + '参见:https://github.com/ecomfe/echarts-for-weixin' + + '#%E5%BE%AE%E4%BF%A1%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82'); + return; + } else { + console.warn('建议将微信基础库调整大于等于2.9.0版本。升级后绘图将有更好性能'); + this.initByOldWay(callback); + } + } + }, + + initByOldWay(callback) { + // 1.9.91 <= version < 2.9.0:原来的方式初始化 + ctx = wx.createCanvasContext(this.data.canvasId, this); + const canvas = new WxCanvas(ctx, this.data.canvasId, false); + + if (echarts.setPlatformAPI) { + echarts.setPlatformAPI({ + createCanvas: () => canvas, + }); + } else { + echarts.setCanvasCreator(() => canvas); + }; + // const canvasDpr = wx.getSystemInfoSync().pixelRatio // 微信旧的canvas不能传入dpr + const canvasDpr = 1 + var query = wx.createSelectorQuery().in(this); + query.select('.ec-canvas').boundingClientRect(res => { + if (typeof callback === 'function') { + this.chart = callback(canvas, res.width, res.height, canvasDpr); + } + else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, res.width, res.height, canvasDpr); + } + else { + this.triggerEvent('init', { + canvas: canvas, + width: res.width, + height: res.height, + canvasDpr: canvasDpr // 增加了dpr,可方便外面echarts.init + }); + } + }).exec(); + }, + + initByNewWay(callback) { + // version >= 2.9.0:使用新的方式初始化 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + this.canvasNode = canvasNode + + const canvasDpr = wx.getSystemInfoSync().pixelRatio + const canvasWidth = res[0].width + const canvasHeight = res[0].height + + const ctx = canvasNode.getContext('2d') + + const canvas = new WxCanvas(ctx, this.data.canvasId, true, canvasNode) + if (echarts.setPlatformAPI) { + echarts.setPlatformAPI({ + createCanvas: () => canvas, + loadImage: (src, onload, onerror) => { + if (canvasNode.createImage) { + const image = canvasNode.createImage(); + image.onload = onload; + image.onerror = onerror; + image.src = src; + return image; + } + console.error('加载图片依赖 `Canvas.createImage()` API,要求小程序基础库版本在 2.7.0 及以上。'); + // PENDING fallback? + } + }) + } else { + echarts.setCanvasCreator(() => canvas) + } + + if (typeof callback === 'function') { + this.chart = callback(canvas, canvasWidth, canvasHeight, canvasDpr) + } else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, canvasWidth, canvasHeight, canvasDpr) + } else { + this.triggerEvent('init', { + canvas: canvas, + width: canvasWidth, + height: canvasHeight, + dpr: canvasDpr + }) + } + }) + }, + canvasToTempFilePath(opt) { + if (this.data.isUseNewCanvas) { + // 新版 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec(res => { + const canvasNode = res[0].node + opt.canvas = canvasNode + wx.canvasToTempFilePath(opt) + }) + } else { + // 旧的 + if (!opt.canvasId) { + opt.canvasId = this.data.canvasId; + } + ctx.draw(true, () => { + wx.canvasToTempFilePath(opt, this); + }); + } + }, + + touchStart(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousedown', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + handler.processGesture(wrapTouch(e), 'start'); + } + }, + + touchMove(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0]; + var handler = this.chart.getZr().handler; + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + handler.processGesture(wrapTouch(e), 'change'); + } + }, + + touchEnd(e) { + if (this.chart) { + const touch = e.changedTouches ? e.changedTouches[0] : {}; + var handler = this.chart.getZr().handler; + handler.dispatch('mouseup', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + handler.dispatch('click', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + handler.processGesture(wrapTouch(e), 'end'); + } + } + } +}); + +function wrapTouch(event) { + for (let i = 0; i < event.touches.length; ++i) { + const touch = event.touches[i]; + touch.offsetX = touch.x; + touch.offsetY = touch.y; + } + return event; +} diff --git a/ec-canvas/ec-canvas.json b/ec-canvas/ec-canvas.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/ec-canvas/ec-canvas.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/ec-canvas/ec-canvas.wxml b/ec-canvas/ec-canvas.wxml new file mode 100644 index 0000000..88826d9 --- /dev/null +++ b/ec-canvas/ec-canvas.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/ec-canvas/ec-canvas.wxss b/ec-canvas/ec-canvas.wxss new file mode 100644 index 0000000..37e5917 --- /dev/null +++ b/ec-canvas/ec-canvas.wxss @@ -0,0 +1,16 @@ +.ec-canvas { + width: 100%; + height: 100%; + display: block; +} + +ec-canvas { + width: 100%; + height: 100%; + display: block; +} + +canvas { + width: 100%; + height: 100%; +} diff --git a/ec-canvas/echarts.min.js b/ec-canvas/echarts.min.js new file mode 100644 index 0000000..5affea0 --- /dev/null +++ b/ec-canvas/echarts.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).echarts={})}(this,function(t){"use strict";var _=function(t,e){return(_=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}))(t,e)};function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}_(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var x=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},b=new function(){this.browser=new x,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!=typeof window};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(b.wxa=!0,b.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?b.worker=!0:!b.hasGlobalWindow||"Deno"in window?(b.node=!0,b.svgSupported=!0):(J=navigator.userAgent,re=(Ht=b).browser,rt=J.match(/Firefox\/([\d.]+)/),U=J.match(/MSIE\s([\d.]+)/)||J.match(/Trident\/.+?rv:(([\d.]+))/),Q=J.match(/Edge?\/([\d.]+)/),J=/micromessenger/i.test(J),rt&&(re.firefox=!0,re.version=rt[1]),U&&(re.ie=!0,re.version=U[1]),Q&&(re.edge=!0,re.version=Q[1],re.newEdge=18<+Q[1].split(".")[0]),J&&(re.weChat=!0),Ht.svgSupported="undefined"!=typeof SVGRect,Ht.touchEventsSupported="ontouchstart"in window&&!re.ie&&!re.edge,Ht.pointerEventsSupported="onpointerdown"in window&&(re.edge||re.ie&&11<=+re.version),Ht.domSupported="undefined"!=typeof document,rt=document.documentElement.style,Ht.transform3dSupported=(re.ie&&"transition"in rt||re.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in rt)&&!("OTransition"in rt),Ht.transformSupported=Ht.transform3dSupported||re.ie&&9<=+re.version);var j="12px sans-serif";var w,S,T=function(t){var e={};if("undefined"!=typeof JSON)for(var n=0;n>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}}return n}(e,o),o,r);if(e)return e(t,n,i),!0}return!1}function ye(t){return"CANVAS"===t.nodeName.toUpperCase()}var me=/([&<>"'])/g,ve={"&":"&","<":"<",">":">",'"':""","'":"'"};function _e(t){return null==t?"":(t+"").replace(me,function(t,e){return ve[e]})}var xe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,we=[],be=b.browser.firefox&&+b.browser.version.split(".")[0]<39;function Se(t,e,n,i){return n=n||{},i?Me(t,e,n):be&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Me(t,e,n),n}function Me(t,e,n){if(b.domSupported&&t.getBoundingClientRect){var i,r=e.clientX,e=e.clientY;if(ye(t))return i=t.getBoundingClientRect(),n.zrX=r-i.left,void(n.zrY=e-i.top);if(ge(we,t,r,e))return n.zrX=we[0],void(n.zrY=we[1])}n.zrX=n.zrY=0}function Te(t){return t||window.event}function Ce(t,e,n){var i;return null==(e=Te(e)).zrX&&((i=e.type)&&0<=i.indexOf("touch")?(i=("touchend"!==i?e.targetTouches:e.changedTouches)[0])&&Se(t,i,e,n):(Se(t,e,e,n),i=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,t=t.deltaY;return null!=n&&null!=t?3*(0!==t?Math.abs(t):Math.abs(n))*(0=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},je.prototype.clone=function(){return new je(this.x,this.y,this.width,this.height)},je.prototype.copy=function(t){je.copy(this,t)},je.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},je.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},je.prototype.isZero=function(){return 0===this.width||0===this.height},je.create=function(t){return new je(t.x,t.y,t.width,t.height)},je.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},je.applyTransform=function(t,e,n){var i,r,o,a;n?n[1]<1e-5&&-1e-5t.getWidth()||n<0||n>t.getHeight()}O(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){an.prototype[a]=function(t){var e,n,i=t.zrX,r=t.zrY,o=un(this,i,r);if("mouseup"===a&&o||(n=(e=this.findHover(i,r)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4<$t(this._downPoint,[t.zrX,t.zrY]))return;this._downPoint=null}this.dispatchToElement(e,a,t)}});var hn=32,cn=7;function pn(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r>>1])<0?l=o:s=1+o;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function yn(A,P){var L,O,R=cn,N=0,E=[];function e(t){var e=L[t],n=O[t],i=L[t+1],r=O[t+1],t=(O[t]=n+r,t===N-3&&(L[t+1]=L[t+2],O[t+1]=O[t+2]),N--,gn(A[i],A,e,n,0,P));if(e+=t,0!=(n-=t)&&0!==(r=fn(A[e+n-1],A,i,r,r-1,P)))if(n<=r){var o=e,a=n,t=i,s=r,l=0;for(l=0;lO[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(r);do{}while((o=pn(t,n,i,e))=this._maxSize&&0>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===i?parseInt(n.slice(4),16)/15:1),fi(t,e),e):void hi(e,0,0,0,1):7===i||9===i?0<=(r=parseInt(n.slice(1,7),16))&&r<=16777215?(hi(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===i?parseInt(n.slice(7),16)/255:1),fi(t,e),e):void hi(e,0,0,0,1):void 0;var r=n.indexOf("("),o=n.indexOf(")");if(-1!==r&&o+1===i){var i=n.substr(0,r),a=n.substr(r+1,o-(r+1)).split(","),s=1;switch(i){case"rgba":if(4!==a.length)return 3===a.length?hi(e,+a[0],+a[1],+a[2],1):hi(e,0,0,0,1);s=si(a.pop());case"rgb":return 3<=a.length?(hi(e,ai(a[0]),ai(a[1]),ai(a[2]),3===a.length?s:si(a[3])),fi(t,e),e):void hi(e,0,0,0,1);case"hsla":return 4!==a.length?void hi(e,0,0,0,1):(a[3]=si(a[3]),yi(a,e),fi(t,e),e);case"hsl":return 3!==a.length?void hi(e,0,0,0,1):(yi(a,e),fi(t,e),e);default:return}}hi(e,0,0,0,1)}}function yi(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=si(t[1]),r=si(t[2]),i=r<=.5?r*(i+1):r+i-r*i,r=2*r-i;return hi(e=e||[],ri(255*li(r,i,n+1/3)),ri(255*li(r,i,n)),ri(255*li(r,i,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function mi(t,e){var n=gi(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,255e);g++);g=f(g-1,h-2)}i=u[g+1],n=u[g]}n&&i&&(this._lastFr=g,this._lastFrP=e,d=i.percent-n.percent,r=0==d?1:f((e-n.percent)/d,1),i.easingFunc&&(r=i.easingFunc(r)),f=a?this._additiveValue:p?Ri:t[c],(Oi(l)||p)&&(f=f||(this._additiveValue=[])),this.discrete?t[c]=(r<1?n:i).rawValue:Oi(l)?(1===l?Ii:function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;athis._sleepAfterStill)&&this.animation.stop()},qr.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},qr.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},qr.prototype.refreshHover=function(){this._needsRefreshHover=!0},qr.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover())},qr.prototype.resize=function(t){this._disposed||(this.painter.resize((t=t||{}).width,t.height),this.handler.resize())},qr.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},qr.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},qr.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},qr.prototype.setCursorStyle=function(t){this._disposed||this.handler.setCursorStyle(t)},qr.prototype.findHover=function(t,e){if(!this._disposed)return this.handler.findHover(t,e)},qr.prototype.on=function(t,e,n){return this._disposed||this.handler.on(t,e,n),this},qr.prototype.off=function(t,e){this._disposed||this.handler.off(t,e)},qr.prototype.trigger=function(t,e){this._disposed||this.handler.trigger(t,e)},qr.prototype.clear=function(){if(!this._disposed){for(var t=this.storage.getRoots(),e=0;e=n.maxIterations){e+=n.ellipsis;break}var s=0===a?function(t,e,n,i){for(var r=0,o=0,a=t.length;oo){M=n.lines.length;0i.width&&(o=e.split("\n"),c=!0),i.accumWidth=t):(t=da(e,h,i.width,i.breakAll,i.accumWidth),i.accumWidth=t.accumWidth+n,a=t.linesWidths,o=t.lines)):o=e.split("\n");for(var p=0;pthis._ux||i>this._uy;return this.addData(Y.L,t,e),this._ctx&&r&&this._ctx.lineTo(t,e),r?(this._xi=t,this._yi=e,this._pendingPtDist=0):(r=n*n+i*i)>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=r),this},a.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this._drawPendingPt(),this.addData(Y.C,t,e,n,i,r,o),this._ctx&&this._ctx.bezierCurveTo(t,e,n,i,r,o),this._xi=r,this._yi=o,this},a.prototype.quadraticCurveTo=function(t,e,n,i){return this._drawPendingPt(),this.addData(Y.Q,t,e,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,e,n,i),this._xi=n,this._yi=i,this},a.prototype.arc=function(t,e,n,i,r,o){this._drawPendingPt(),qa[0]=i,qa[1]=r,s=o,(l=Za((a=qa)[0]))<0&&(l+=Xa),h=l-a[0],u=a[1],u+=h,!s&&Xa<=u-l?u=l+Xa:s&&Xa<=l-u?u=l-Xa:!s&&uu.length&&(this._expandData(),u=this.data);for(var h=0;hn||Wa(y)>i||c===e-1)&&(f=Math.sqrt(I*I+y*y),r=g,o=_);break;case Y.C:var m=t[c++],v=t[c++],g=t[c++],_=t[c++],x=t[c++],w=t[c++],f=function(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=zn(t,n,r,a,f),f=zn(e,i,o,s,f),y=g-u,m=f-h;c+=Math.sqrt(y*y+m*m),u=g,h=f}return c}(r,o,m,v,g,_,x,w,10),r=x,o=w;break;case Y.Q:f=function(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Wn(t,n,r,p),p=Wn(e,i,o,p),f=d-s,g=p-l;u+=Math.sqrt(f*f+g*g),s=d,l=p}return u}(r,o,m=t[c++],v=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case Y.A:var x=t[c++],w=t[c++],b=t[c++],S=t[c++],M=t[c++],T=t[c++],C=T+M;c+=1,d&&(a=Ha(M)*b+x,s=Ga(M)*S+w),f=Va(b,S)*Fa(Xa,Math.abs(T)),r=Ha(C)*b+x,o=Ga(C)*S+w;break;case Y.R:a=r=t[c++],s=o=t[c++];f=2*t[c++]+2*t[c++];break;case Y.Z:var I=a-r,y=s-o;f=Math.sqrt(I*I+y*y),r=a,o=s}0<=f&&(u+=l[h++]=f)}return this._pathLen=u},a.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,E=this._ux,z=this._uy,B=this._len,c=e<1,p=0,d=0,f=0;if(!c||(this._pathSegLen||this._calculateLength(),a=this._pathSegLen,s=e*this._pathLen))t:for(var g=0;g=rs[i=0]+t&&a<=rs[1]+t?h:0;rMath.PI/2&&c<1.5*Math.PI?-h:h)}return l}(y,m,_,x,x+w,b,T,r);u=Math.cos(x+w)*v+y,h=Math.sin(x+w)*_+m;break;case es.R:c=u=a[d++],p=h=a[d++];if(S=c+a[d++],M=p+a[d++],n){if(Ka(c,p,S,p,e,i,r)||Ka(S,p,S,M,e,i,r)||Ka(S,M,c,M,e,i,r)||Ka(c,M,c,p,e,i,r))return!0}else l=(l+=ts(S,p,S,M,i,r))+ts(c,M,c,p,i,r);break;case es.Z:if(n){if(Ka(u,h,c,p,e,i,r))return!0}else l+=ts(u,h,c,p,i,r);u=c,h=p}}return n||(t=h,o=p,Math.abs(t-o)h,n=n.slice(0,h)),t&&a&&null!=p)for(var f=oa(p,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),g={},y=0;yi.len()&&(uMath.abs(i[1])?0':'':{renderMode:r,content:"{"+(t.markerId||"markerX")+"|} ",style:"subItem"===i?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}:""}function Mp(t,e){return e=e||"transparent",V(t)?t:R(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function Tp(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var Cp=O,Ip=["left","right","top","bottom","width","height"],kp=[["width","left","right"],["height","top","bottom"]];function Dp(a,s,l,u,h){var c=0,p=0,d=(null==u&&(u=1/0),null==h&&(h=1/0),0);s.eachChild(function(t,e){var n,i,r,o=t.getBoundingRect(),e=s.childAt(e+1),e=e&&e.getBoundingRect();d="horizontal"===a?(i=o.width+(e?-e.x+o.x:0),u<(n=c+i)||t.newline?(c=0,n=i,p+=d+l,o.height):Math.max(d,o.height)):(i=o.height+(e?-e.y+o.y:0),h<(r=p+i)||t.newline?(c+=d+l,p=0,r=i,o.width):Math.max(d,o.width)),t.newline||(t.x=c,t.y=p,t.markRedraw(),"horizontal"===a?c=n+l:p=r+l)})}var Ap=Dp;function Pp(t,e,n){n=vp(n||0);var i=e.width,r=e.height,o=to(t.left,i),a=to(t.top,r),e=to(t.right,i),s=to(t.bottom,r),l=to(t.width,i),u=to(t.height,r),h=n[2]+n[0],c=n[1]+n[3],p=t.aspect;switch(isNaN(l)&&(l=i-e-c-o),isNaN(u)&&(u=r-s-h-a),null!=p&&(isNaN(l)&&isNaN(u)&&(i/re)return t[i];return t[n-1]}var cd,pd="\0_ec_inner",dd=(u(l,cd=Lc),l.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Lc(i),this._locale=new Lc(r),this._optionManager=o},l.prototype.setOption=function(t,e,n){e=yd(e);this._optionManager.setOption(t,n,e),this._resetOption(null,e)},l.prototype.resetOption=function(t,e){return this._resetOption(t,yd(e))},l.prototype._resetOption=function(t,e){var n,i=!1,r=this._optionManager;return t&&"recreate"!==t||(n=r.mountOption("recreate"===t),this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(n,e)):ad(this,n),i=!0),"timeline"!==t&&"media"!==t||this.restoreData(),t&&"recreate"!==t&&"timeline"!==t||(n=r.getTimelineOption(this))&&(i=!0,this._mergeOption(n,e)),t&&"recreate"!==t&&"media"!==t||(n=r.getMediaOption(this)).length&&O(n,function(t){i=!0,this._mergeOption(t,e)},this),i},l.prototype.mergeOption=function(t){this._mergeOption(t,null)},l.prototype._mergeOption=function(i,t){var r=this.option,h=this._componentsMap,c=this._componentsCount,n=[],o=E(),p=t&&t.replaceMergeMainTypeMap;Jp(this).datasetMap=E(),O(i,function(t,e){null!=t&&(g.hasClass(e)?e&&(n.push(e),o.set(e,!0)):r[e]=null==r[e]?y(t):d(r[e],t,!0))}),p&&p.each(function(t,e){g.hasClass(e)&&!o.get(e)&&(n.push(e),o.set(e,!0))}),g.topologicalTravel(n,g.getAllClassMainTypes(),function(o){var a,t=function(t,e,n){return(e=(e=id.get(e))&&e(t))?n.concat(e):n}(this,o,_o(i[o])),e=h.get(o),n=e?p&&p.get(o)?"replaceMerge":"normalMerge":"replaceAll",e=So(e,t,n),s=(Do(e,o,g),r[o]=null,h.set(o,null),c.set(o,0),[]),l=[],u=0;O(e,function(t,e){var n=t.existing,i=t.newOption;if(i){var r=g.getClass(o,t.keyInfo.subType,!("series"===o));if(!r)return;if("tooltip"===o){if(a)return;a=!0}n&&n.constructor===r?(n.name=t.keyInfo.name,n.mergeOption(i,this),n.optionUpdated(i,!1)):(e=L({componentIndex:e},t.keyInfo),L(n=new r(i,this,this,e),e),t.brandNew&&(n.__requireNewView=!0),n.init(i,this,this),n.optionUpdated(null,!0))}else n&&(n.mergeOption({},this),n.optionUpdated({},!1));n?(s.push(n.option),l.push(n),u++):(s.push(void 0),l.push(void 0))},this),r[o]=s,h.set(o,l),c.set(o,u),"series"===o&&rd(this)},this),this._seriesIndices||rd(this)},l.prototype.getOption=function(){var a=y(this.option);return O(a,function(t,e){if(g.hasClass(e)){for(var n=_o(t),i=n.length,r=!1,o=i-1;0<=o;o--)n[o]&&!ko(n[o])?r=!0:(n[o]=null,r||i--);n.length=i,a[e]=n}}),delete a[pd],a},l.prototype.getTheme=function(){return this._theme},l.prototype.getLocaleModel=function(){return this._locale},l.prototype.setUpdatePayload=function(t){this._payload=t},l.prototype.getUpdatePayload=function(){return this._payload},l.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){t=n[e||0];if(t)return t;if(null==e)for(var i=0;ig[1]&&(g[1]=f)}return{start:a,end:this._rawCount=this._count=s}},h.prototype._initDataFromProvider=function(t,e,n){for(var i=this._provider,r=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,l=B(o,function(t){return t.property}),u=0;uf[1]&&(f[1]=g)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent=[]},h.prototype.count=function(){return this._count},h.prototype.get=function(t,e){return 0<=e&&e=this._rawCount||t<0)){if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}}return-1},h.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks[t],r=[];if(i){null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();lt[S][1])&&(w=!1)}w&&(a[s++]=e.getRawIndex(f))}return sy[1]&&(y[1]=g)}}}},h.prototype.lttbDownSample=function(t,e){var n,i=this.clone([t],!0),r=i._chunks[t],o=this.count(),a=0,s=Math.floor(1/e),l=this.getRawIndex(0),u=new(rg(this._rawCount))(Math.min(2*(Math.ceil(o/s)+2),o));u[a++]=l;for(var h=1;hh[1]&&(h[1]=y),c[p++]=m}return r._count=p,r._indices=c,r._updateGetRawIdx(),r},h.prototype.each=function(t,e){if(this._count)for(var n=t.length,i=this._chunks,r=0,o=this.count();r'+_e(u)+""+h,t))}function Sg(t,e,n,i){var r,o,a,s,l,u=t.renderMode,h=e.noName,c=e.noValue,p=!e.markerType,d=e.name,f=t.useUTC,g=e.valueFormatter||t.valueFormatter||function(t){return B(t=F(t)?t:[t],function(t,e){return _p(t,F(o)?o[e]:o,f)})};if(!h||!c)return r=p?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",u),d=h?"":_p(d,"ordinal",f),o=e.valueType,g=c?[]:g(e.value,e.dataIndex),e=!p||!h,a=!p&&h,l=yg(i,u),s=l.nameStyle,l=l.valueStyle,"richText"===u?(p?"":r)+(h?"":Cg(t,d,s))+(c?"":function(t,e,n,i,r){r=[r],i=i?10:20;return n&&r.push({padding:[0,0,0,i],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(F(e)?e.join(" "):e,r)}(t,g,e,a,l)):Tg(i,(p?"":r)+(h?"":''+_e(d)+"")+(c?"":function(t,e,n,i){n=n?"10px":"20px",e=e?"float:right;margin-left:"+n:"";return t=F(t)?t:[t],''+B(t,_e).join("  ")+""}(g,e,a,l)),n)}function Mg(t,e,n,i,r,o){if(t)return wg(t)({useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter},t,0,o)}function Tg(t,e,n){return'
'+e+'
'}function Cg(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Ig(t,e){t=t.get("padding");return null!=t?t:"richText"===e?[8,10]:10}Dg.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},Dg.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,e=Sp({color:e,type:t,renderMode:n,markerId:i});return V(e)?e:(this.richTextStyles[i]=e.style,e.content)},Dg.prototype.wrapRichTextStyle=function(t,e){var n={},e=(F(e)?O(e,function(t){return L(n,t)}):L(n,e),this._generateStyleName());return this.richTextStyles[e]=n,"{"+e+"|"+t+"}"};var kg=Dg;function Dg(){this.richTextStyles={},this._nextStyleNameId=go()}function Ag(t){var e,n,i,r,o,a,s,l,u,h,c,p=t.series,d=t.dataIndex,t=t.multipleSeries,f=p.getData(),g=f.mapDimensionsAll("defaultedTooltip"),y=g.length,m=p.getRawValue(d),v=F(m),_=(_=d,Mp((w=p).getData().getItemVisual(_,"style")[w.visualDrawType]));function x(t,e){e=s.getDimensionInfo(e);e&&!1!==e.otherDims.tooltip&&(l?c.push(_g("nameValue",{markerType:"subItem",markerColor:a,name:e.displayName,value:t,valueType:e.type})):(u.push(t),h.push(e.type)))}1this.getShallow("animationThreshold")?!1:t)},c.prototype.restoreData=function(){this.dataTask.dirty()},c.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return ld.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},c.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},c.prototype.getProgressive=function(){return this.get("progressive")},c.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},c.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},c.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,r=this.getData(e);if("series"===i||"all"===n)this.option.selectedMap={},this._selectedDataIndicesMap={};else for(var o=0;oe.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Fg(e,n){O(Nt(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(t){e.wrapMethod(t,pt(Vg,n))})}function Vg(t,e){t=Hg(t);return t&&t.setOutputEnd((e||this).count()),e}function Hg(t){var e,n=(t.ecModel||{}).scheduler,n=n&&n.getPipeline(t.uid);if(n)return(n=n.currentTask)&&(e=n.agentStubMap)?e.get(t.uid):n}at(Rg,Dc),at(Rg,ld),Uo(Rg,g);Wg.prototype.init=function(t,e){},Wg.prototype.render=function(t,e,n,i){},Wg.prototype.dispose=function(t,e){},Wg.prototype.updateView=function(t,e,n,i){},Wg.prototype.updateLayout=function(t,e,n,i){},Wg.prototype.updateVisual=function(t,e,n,i){},Wg.prototype.toggleBlurSeries=function(t,e,n){},Wg.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)};var Gg=Wg;function Wg(){this.group=new Hr,this.uid=Nc("viewComponent")}function Ug(){var o=Po();return function(t){var e=o(t),t=t.pipelineContext,n=!!e.large,i=!!e.progressiveRender,r=e.large=!(!t||!t.large),e=e.progressiveRender=!(!t||!t.progressiveRender);return!(n==r&&i==e)&&"reset"}}Wo(Gg),Zo(Gg);var Xg=Po(),Yg=Ug(),qg=(Zg.prototype.init=function(t,e){},Zg.prototype.render=function(t,e,n,i){},Zg.prototype.highlight=function(t,e,n,i){t=t.getData(i&&i.dataType);t&&Kg(t,i,"emphasis")},Zg.prototype.downplay=function(t,e,n,i){t=t.getData(i&&i.dataType);t&&Kg(t,i,"normal")},Zg.prototype.remove=function(t,e){this.group.removeAll()},Zg.prototype.dispose=function(t,e){},Zg.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.eachRendered=function(t){rc(this.group,t)},Zg.markUpdateMethod=function(t,e){Xg(t).updateMethod=e},Zg.protoInitialize=void(Zg.prototype.type="chart"),Zg);function Zg(){this.group=new Hr,this.uid=Nc("viewChart"),this.renderTask=bf({plan:$g,reset:Qg}),this.renderTask.context={view:this}}function jg(t,e,n){t&&Vl(t)&&("emphasis"===e?Sl:Ml)(t,n)}function Kg(e,t,n){var i,r=Ao(e,t),o=t&&null!=t.highlightKey?(t=t.highlightKey,i=null==(i=Zs[t])&&qs<=32?Zs[t]=qs++:i):null;null!=r?O(_o(r),function(t){jg(e.getItemGraphicEl(t),n,o)}):e.eachItemGraphicEl(function(t){jg(t,n,o)})}function $g(t){return Yg(t.model)}function Qg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,t=t.view,a=r&&Xg(r).updateMethod,o=o?"incrementalPrepareRender":a&&t[a]?a:"render";return"render"!==o&&t[o](e,n,i,r),Jg[o]}Wo(qg),Zo(qg);var Jg={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},ty="\0__throttleOriginMethod",ey="\0__throttleRate",ny="\0__throttleType";function iy(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;en.blockIndex?n.step:null,modBy:null!=(t=i&&i.modDataCount)?Math.ceil(t/e):null,modDataCount:t}},fy.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},fy.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),e=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,r=t.get("large")&&i>=t.get("largeThreshold"),i="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:e,modDataCount:i,large:r}},fy.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=E();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},fy.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.api.getModel(),r=this.api;O(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});Tt(!(t.reset&&t.overallReset),""),t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},fy.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},fy.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},fy.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},fy.prototype._performStageTasks=function(t,s,l,u){u=u||{};var h=!1,c=this;function p(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}O(t,function(i,t){var e,n,r,o,a;u.visualType&&u.visualType!==i.visualType||(e=(n=c._stageTaskMap.get(i.uid)).seriesTaskMap,(n=n.overallTask)?((o=n.agentStubMap).each(function(t){p(u,t)&&(t.dirty(),r=!0)}),r&&n.dirty(),c.updatePayload(n,l),a=c.getPerformArgs(n,u.block),o.each(function(t){t.perform(a)}),n.perform(a)&&(h=!0)):e&&e.each(function(t,e){p(u,t)&&t.dirty();var n=c.getPerformArgs(t,u.block);n.skip=!i.performRawSeries&&s.isSeriesFiltered(t.context.model),c.updatePayload(t,l),t.perform(n)&&(h=!0)}))}),this.unfinished=h||this.unfinished},fy.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},fy.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}}while(e=e.getUpstream())})},fy.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},fy.prototype._createSeriesStageTask=function(n,t,i,r){var o=this,a=t.seriesTaskMap,s=t.seriesTaskMap=E(),t=n.seriesType,e=n.getTargetSeries;function l(t){var e=t.uid,e=s.set(e,a&&a.get(e)||bf({plan:_y,reset:xy,count:Sy}));e.context={model:t,ecModel:i,api:r,useClearVisual:n.isVisual&&!n.isLayout,plan:n.plan,reset:n.reset,scheduler:o},o._pipe(t,e)}n.createOnAllSeries?i.eachRawSeries(l):t?i.eachRawSeriesByType(t,l):e&&e(i,r).each(l)},fy.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||bf({reset:gy}),a=(o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r},o.agentStubMap),s=o.agentStubMap=E(),e=t.seriesType,l=t.getTargetSeries,u=!0,h=!1;function c(t){var e=t.uid,e=s.set(e,a&&a.get(e)||(h=!0,bf({reset:yy,onDirty:vy})));e.context={model:t,overallProgress:u},e.agent=o,e.__block=u,r._pipe(t,e)}Tt(!t.createOnAllSeries,""),e?n.eachRawSeriesByType(e,c):l?l(n,i).each(c):(u=!1,O(n.getSeries(),c)),h&&o.dirty()},fy.prototype._pipe=function(t,e){t=t.uid,t=this._pipelineMap.get(t);t.head||(t.head=e),t.tail&&t.tail.pipe(e),(t.tail=e).__idxInPipeline=t.count++,e.__pipeline=t},fy.wrapStageHandler=function(t,e){return(t=k(t)?{overallReset:t,seriesType:function(t){My=null;try{t(Ty,Cy)}catch(t){}return My}(t)}:t).uid=Nc("stageHandler"),e&&(t.visualType=e),t};var dy=fy;function fy(t,e,n,i){this._stageTaskMap=E(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function gy(t){t.overallReset(t.ecModel,t.api,t.payload)}function yy(t){return t.overallProgress&&my}function my(){this.agent.dirty(),this.getDownstream().dirty()}function vy(){this.agent&&this.agent.dirty()}function _y(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function xy(t){t.useClearVisual&&t.data.clearAllVisual();t=t.resetDefines=_o(t.reset(t.model,t.ecModel,t.api,t.payload));return 1'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,i.connectedBackgroundColor&&f.painter.setBackgroundColor(i.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()):(i.connectedBackgroundColor&&f.add(new As({shape:{x:0,y:0,width:t,height:n},style:{fill:i.connectedBackgroundColor}})),O(p,function(t){t=new ws({style:{x:t.left*e-l,y:t.top*e-u,image:t.dom}});f.add(t)}),f.refreshImmediately(),d.toDataURL("image/"+(i&&i.type||"png")))):this.getDataURL(i);this.id},p.prototype.convertToPixel=function(t,e){return Wm(this,"convertToPixel",t,e)},p.prototype.convertFromPixel=function(t,e){return Wm(this,"convertFromPixel",t,e)},p.prototype.containPixel=function(t,i){var r;if(!this._disposed)return O(Oo(this._model,t),function(t,n){0<=n.indexOf("Models")&&O(t,function(t){var e=t.coordinateSystem;e&&e.containPoint?r=r||!!e.containPoint(i):"seriesModels"===n&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(r=r||e.containPoint(i,t))},this)},this),!!r;this.id},p.prototype.getVisual=function(t,e){var t=Oo(this._model,t,{defaultMainType:"series"}),n=t.seriesModel.getData(),t=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?n.indexOfRawIndex(t.dataIndex):null;if(null!=t){var i=n,r=t,o=e;switch(o){case"color":return i.getItemVisual(r,"style")[i.getVisual("drawType")];case"opacity":return i.getItemVisual(r,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return i.getItemVisual(r,o)}}else{var a=n,s=e;switch(s){case"color":return a.getVisual("style")[a.getVisual("drawType")];case"opacity":return a.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return a.getVisual(s)}}},p.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},p.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},p.prototype._initEvents=function(){var t,n,i,s=this;O(h0,function(a){function t(t){var n,e,i,r=s.getModel(),o=t.target;"globalout"===a?n={}:o&&Ny(o,function(t){var e,t=D(t);return t&&null!=t.dataIndex?(e=t.dataModel||r.getSeriesByIndex(t.seriesIndex),n=e&&e.getDataParams(t.dataIndex,t.dataType,o)||{},1):t.eventData&&(n=L({},t.eventData),1)},!0),n&&(e=n.componentType,i=n.componentIndex,"markLine"!==e&&"markPoint"!==e&&"markArea"!==e||(e="series",i=n.seriesIndex),i=(e=e&&null!=i&&r.getComponent(e,i))&&s["series"===e.mainType?"_chartsMap":"_componentsMap"][e.__viewId],n.event=t,n.type=a,s._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:e,view:i},s.trigger(a,n))}t.zrEventfulCallAtLast=!0,s._zr.on(a,t,s)}),O(p0,function(t,e){s._messageCenter.on(e,function(t){this.trigger(e,t)},s)}),O(["selectchanged"],function(e){s._messageCenter.on(e,function(t){this.trigger(e,t)},s)}),t=this._messageCenter,i=(n=this)._api,t.on("selectchanged",function(t){var e=i.getModel();t.isFromClick?(Ry("map","selectchanged",n,e,t),Ry("pie","selectchanged",n,e,t)):"select"===t.fromAction?(Ry("map","selected",n,e,t),Ry("pie","selected",n,e,t)):"unselect"===t.fromAction&&(Ry("map","unselected",n,e,t),Ry("pie","unselected",n,e,t))})},p.prototype.isDisposed=function(){return this._disposed},p.prototype.clear=function(){this._disposed?this.id:this.setOption({series:[]},!0)},p.prototype.dispose=function(){var t,e,n;this._disposed?this.id:(this._disposed=!0,this.getDom()&&zo(this.getDom(),b0,""),e=(t=this)._api,n=t._model,O(t._componentsViews,function(t){t.dispose(n,e)}),O(t._chartsViews,function(t){t.dispose(n,e)}),t._zr.dispose(),t._dom=t._model=t._chartsMap=t._componentsMap=t._chartsViews=t._componentsViews=t._scheduler=t._api=t._zr=t._throttledZrFlush=t._theme=t._coordSysMgr=t._messageCenter=null,delete v0[t.id])},p.prototype.resize=function(t){if(!this[km])if(this._disposed)this.id;else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var e=e.resetOption("media"),n=t&&t.silent;this[Dm]&&(null==n&&(n=this[Dm].silent),e=!0,this[Dm]=null),this[km]=!0;try{e&&Fm(this),Gm.update.call(this,{type:"resize",animation:L({duration:0},t&&t.animation)})}catch(t){throw this[km]=!1,t}this[km]=!1,Ym.call(this,n),qm.call(this,n)}}},p.prototype.showLoading=function(t,e){this._disposed?this.id:(R(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),m0[t]&&(t=m0[t](this._api,e),e=this._zr,this._loadingFX=t,e.add(t)))},p.prototype.hideLoading=function(){this._disposed?this.id:(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},p.prototype.makeActionFromEvent=function(t){var e=L({},t);return e.type=p0[t.type],e},p.prototype.dispatchAction=function(t,e){var n;this._disposed?this.id:(R(e)||(e={silent:!!e}),c0[t.type]&&this._model&&(this[km]?this._pendingActions.push(t):(n=e.silent,Xm.call(this,t,n),(t=e.flush)?this._zr.flush():!1!==t&&b.browser.weChat&&this._throttledZrFlush(),Ym.call(this,n),qm.call(this,n))))},p.prototype.updateLabelLayout=function(){Cm.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},p.prototype.appendData=function(t){var e;this._disposed?this.id:(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},p.internalField=(Fm=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Vm(t,!0),Vm(t,!1),e.plan()},Vm=function(t,r){for(var o=t._model,a=t._scheduler,s=r?t._componentsViews:t._chartsViews,l=r?t._componentsMap:t._chartsMap,u=t._zr,h=t._api,e=0;es.get("hoverLayerThreshold")&&!b.node&&!b.worker&&s.eachSeries(function(t){t.preventUsingHoverLayer||(t=i._chartsMap[t.__viewId]).__alive&&t.eachRendered(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Cm.trigger("series:afterupdate",t,e,n)},e0=function(t){t[Am]=!0,t.getZr().wakeUp()},n0=function(t){t[Am]&&(t.getZr().storage.traverse(function(t){Ah(t)||a0(t)}),t[Am]=!1)},Jm=function(n){return u(t,e=md),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){Sl(t,e),e0(n)},t.prototype.leaveEmphasis=function(t,e){Ml(t,e),e0(n)},t.prototype.enterBlur=function(t){yl(t,cl),e0(n)},t.prototype.leaveBlur=function(t){Tl(t),e0(n)},t.prototype.enterSelect=function(t){Cl(t),e0(n)},t.prototype.leaveSelect=function(t){Il(t),e0(n)},t.prototype.getModel=function(){return n.getModel()},t.prototype.getViewOfComponentModel=function(t){return n.getViewOfComponentModel(t)},t.prototype.getViewOfSeriesModel=function(t){return n.getViewOfSeriesModel(t)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(t0=function(i){function r(t,e){for(var n=0;ne[1]&&(e[1]=t[1])},Mv.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Mv.prototype.getExtent=function(){return this._extent.slice()},Mv.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},Mv.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},Mv.prototype.isBlank=function(){return this._isBlank},Mv.prototype.setBlank=function(t){this._isBlank=t};var Sv=Mv;function Mv(t){this._setting=t||{},this._extent=[1/0,-1/0]}Zo(Sv);var Tv=0,Cv=(Iv.createByAxisModel=function(t){var t=t.option,e=t.data,e=e&&B(e,kv);return new Iv({categories:e,needCollect:!e,deduplication:!1!==t.dedplication})},Iv.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},Iv.prototype.parseAndCollect=function(t){var e,n,i=this._needCollect;return V(t)||i?(i&&!this._deduplication?(n=this.categories.length,this.categories[n]=t):null==(n=(e=this._getOrCreateMap()).get(t))&&(i?(n=this.categories.length,this.categories[n]=t,e.set(t,n)):n=NaN),n):t},Iv.prototype._getOrCreateMap=function(){return this._map||(this._map=E(this.categories))},Iv);function Iv(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++Tv}function kv(t){return R(t)&&null!=t.value?t.value:t+""}function Dv(t){return"interval"===t.type||"log"===t.type}function Av(t,e,n,i){var r={},o=t[1]-t[0],o=r.interval=co(o/e,!0),e=(null!=n&&oi[1]&&(i[0]=i[1]),r}function Pv(t){var e=Math.pow(10,ho(t)),t=t/e;return t?2===t?t=3:3===t?t=5:t*=2:t=1,eo(t*e)}function Lv(t){return no(t)+2}function Ov(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Rv(t,e){return t>=e[0]&&t<=e[1]}function Nv(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Ev(t,e){return t*(e[1]-e[0])+e[0]}u(Fv,zv=Sv),Fv.prototype.parse=function(t){return null==t?NaN:V(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},Fv.prototype.contain=function(t){return Rv(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},Fv.prototype.normalize=function(t){return Nv(t=this._getTickNumber(this.parse(t)),this._extent)},Fv.prototype.scale=function(t){return t=Math.round(Ev(t,this._extent)),this.getRawOrdinalNumber(t)},Fv.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},Fv.prototype.getMinorTicks=function(t){},Fv.prototype.setSortInfo=function(t){if(null==t)this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;else{for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=t},Fv.prototype.getOrdinalMeta=function(){return this._ordinalMeta},Fv.prototype.calcNiceTicks=function(){},Fv.prototype.calcNiceExtent=function(){},Fv.type="ordinal";var zv,Bv=Fv;function Fv(t){var t=zv.call(this,t)||this,e=(t.type="ordinal",t.getSetting("ordinalMeta"));return F(e=e||new Cv({}))&&(e=new Cv({categories:B(e,function(t){return R(t)?t.value:t})})),t._ordinalMeta=e,t._extent=t.getSetting("extent")||[0,e.categories.length-1],t}Sv.registerClass(Bv);var Vv,Hv=eo,Gv=(u(Wv,Vv=Sv),Wv.prototype.parse=function(t){return t},Wv.prototype.contain=function(t){return Rv(t,this._extent)},Wv.prototype.normalize=function(t){return Nv(t,this._extent)},Wv.prototype.scale=function(t){return Ev(t,this._extent)},Wv.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},Wv.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},Wv.prototype.getInterval=function(){return this._interval},Wv.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Lv(t)},Wv.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(e){n[0]s&&o.push(t?{value:Hv(s+e,r)}:{value:n[1]})}return o},Wv.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=M[0]&&d<=M[1]&&a++)}u=(M[1]-M[0])/b;if(1.5*u=M[0]&&t.value<=M[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n),t_.length),t=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l);i.push([(r=s+=r)/n,(o=l+=o)/n])}return i}function q_(t,o){var e,n,r;return B(ut((t=(e=t).UTF8Encoding?(null==(r=(n=e).UTF8Scale)&&(r=1024),O(n.features,function(t){var e=t.geometry,n=e.encodeOffsets,i=e.coordinates;if(n)switch(e.type){case"LineString":e.coordinates=Y_(i,n,r);break;case"Polygon":case"MultiLineString":X_(i,n,r);break;case"MultiPolygon":O(i,function(t,e){return X_(t,n[e],r)})}}),n.UTF8Encoding=!1,n):e).features,function(t){return t.geometry&&t.properties&&0l&&(l=s[h],u=h);++o[u],s[u]=0,++a}return B(o,function(t){return t/i})}(t,n)[e]||0},getPixelPrecision:ro,getPrecision:no,getPrecisionSafe:io,isNumeric:fo,isRadianAroundZero:ao,linearMap:Jr,nice:co,numericToNumber:po,parseDate:lo,quantile:function(t,e){var e=(t.length-1)*e+1,n=Math.floor(e),i=+t[n-1];return(e=e-n)?i+e*(t[n]-i):i},quantity:uo,quantityExponent:ho,reformIntervals:function(t){t.sort(function(t,e){return function t(e,n,i){return e.interval[i]=e[0]&&t<=e[1]}),function(t){var e={value:t};return{formattedLabel:i(e),rawLabel:n.scale.getLabel(e),tickValue:t}})}):"category"===n.type?(t=(s=n).getLabelModel(),a=Q_(s,t),!t.get("show")||s.scale.isBlank()?{labels:[],labelCategoryInterval:a.labelCategoryInterval}:a):(t=(r=n).scale.getTicks(),o=w_(r),{labels:B(t,function(t,e){return{level:t.level,formattedLabel:o(t,e),rawLabel:r.scale.getLabel(t),tickValue:t.value}})})}function $_(t,e){var n,i,r,o,a,s,l=t.getTickModel().get("customValues");return l?(n=t.scale.getExtent(),{ticks:ut(j_(t,l),function(t){return t>=n[0]&&t<=n[1]})}):"category"===t.type?(l=e,o=J_(e=t,"ticks"),a=M_(l),(s=t1(o,a))||(l.get("show")&&!e.scale.isBlank()||(i=[]),i=k(a)?i1(e,a,!0):"auto"===a?(s=Q_(e,e.getLabelModel()),r=s.labelCategoryInterval,B(s.labels,function(t){return t.tickValue})):n1(e,r=a,!0),e1(o,a,{ticks:i,tickCategoryInterval:r}))):{ticks:B(t.scale.getTicks(),function(t){return t.value})}}function Q_(t,e){var n,i=J_(t,"labels"),e=M_(e),r=t1(i,e);return r||e1(i,e,{labels:k(e)?i1(t,e):n1(t,n="auto"===e?null!=(i=Z_(r=t).autoInterval)?i:Z_(r).autoInterval=r.calculateCategoryInterval():e),labelCategoryInterval:n})}function J_(t,e){return Z_(t)[e]||(Z_(t)[e]=[])}function t1(t,e){for(var n=0;nl[1],h(n[0].coord,l[0])&&(t?n[0].coord=l[0]:n.shift()),t&&h(l[0],n[0].coord)&&n.unshift({coord:l[0]}),h(l[1],i.coord)&&(t?i.coord=l[1]:n.pop()),t)&&h(i.coord,l[1])&&n.push({coord:l[1]}),u},o1.prototype.getMinorTicksCoords=function(){var t;return"ordinal"===this.scale.type?[]:(t=this.model.getModel("minorTick").get("splitNumber"),B(this.scale.getMinorTicks(t=0=u}}for(var o,a=this.__startIndex;ar[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.painter||(e.painter=this)}},v.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;ie[u-1].coord&&(e.reverse(),h.reverse()),function(t,e){var n,i,r=[],o=t.length;function a(t,e,n){var i=t.coord;return{coord:n,color:xi((n-i)/(e.coord-i),[t.color,e.color])}}for(var s=0;si)return;return 1}(a,e))return r=e.mapDimension(a.dim),o={},O(a.getViewLabels(),function(t){t=a.scale.getRawOrdinalNumber(t.tickValue);o[t]=1}),function(t){return!o.hasOwnProperty(e.get(r,t))}}}function Rx(t){for(var e,n,i=t.length/2;0e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;ne[1]&&e.reverse(),e},sw.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},sw.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)};var ow,aw=sw;function sw(t,e,n,i,r){t=ow.call(this,t,e,n)||this;return t.index=0,t.type=i||"value",t.position=r||"bottom",t}function lw(t,e,n){n=n||{};var t=t.coordinateSystem,i=e.axis,r={},o=i.getAxesOnZeroOf()[0],a=i.position,s=o?"onZero":a,i=i.dim,t=t.getRect(),t=[t.x,t.x+t.width,t.y,t.y+t.height],l={left:0,right:1,top:0,bottom:1,onZero:2},u=e.get("offset")||0,u="x"===i?[t[2]-u,t[3]+u]:[t[0]-u,t[1]+u],h=(o&&(h=o.toGlobalCoord(o.dataToCoord(0)),u[l.onZero]=Math.max(Math.min(h,u[1]),u[0])),r.position=["y"===i?u[l[s]]:t[0],"x"===i?u[l[s]]:t[3]],r.rotation=Math.PI/2*("x"===i?0:1),r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,left:-1,right:1}[a],r.labelOffset=o?u[l[a]]-u[l.onZero]:0,e.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),wt(n.labelInside,e.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection),e.get(["axisLabel","rotate"]));return r.labelRotate="top"===s?-h:h,r.z2=1,r}function uw(t){return"cartesian2d"===t.get("coordinateSystem")}function hw(i){var r={xAxisModel:null,yAxisModel:null};return O(r,function(t,e){var n=e.replace(/Model$/,""),n=i.getReferringComponents(n,No).models[0];r[e]=n}),r}var cw=Math.log;dw.prototype.getRect=function(){return this._rect},dw.prototype.update=function(t,e){var n=this._axesMap;function i(t){var d,e=ht(t),n=e.length;if(n){for(var i=[],r=n-1;0<=r;r--){var o=t[+e[r]],a=o.model,s=o.scale;Dv(s)&&a.get("alignTicks")&&null==a.get("interval")?i.push(o):(__(s,a),Dv(s)&&(d=o))}i.length&&(d||__((d=i.pop()).scale,d.model),O(i,function(t){var e=t.scale,t=t.model,n=d.scale,i=Gv.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,n=i.getInterval.call(n),s=(t=v_(e,t)).extent,l=t.fixMin,t=t.fixMax,u=("log"===e.type&&(u=cw(e.base),s=[cw(s[0])/u,cw(s[1])/u]),e.setExtent(s[0],s[1]),e.calcNiceExtent({splitNumber:a,fixMin:l,fixMax:t}),i.getExtent.call(e)),h=(l&&(s[0]=u[0]),t&&(s[1]=u[1]),i.getInterval.call(e)),c=s[0],p=s[1];if(l&&t)h=(p-c)/a;else if(l)for(p=s[0]+h*a;ps[0]&&isFinite(c)&&isFinite(s[0]);)h=Pv(h),c=s[1]-h*a;else{u=(h=ah[1]?-1:1,o=["start"===c?h[0]-o*u:"end"===c?h[1]+o*u:(h[0]+h[1])/2,Sw(c)?t.labelOffset+l*u:0],null!=(u=e.get("nameRotate"))&&(u=u*mw/180),Sw(c)?a=vw.innerTextLayout(t.rotation,null!=u?u:t.rotation,l):(a=function(t,e,n,i){var r,n=oo(n-t),t=i[0]>i[1],i="start"===e&&!t||"start"!==e&&t;e=ao(n-mw/2)?(r=i?"bottom":"top","center"):ao(n-1.5*mw)?(r=i?"top":"bottom","center"):(r="middle",n<1.5*mw&&mw/2u[1]&&u.reverse(),(s=null==s||s>u[1]?u[1]:s)n[r],f=[-c.x,-c.y],e=(e||(f[i]=l[s]),[0,0]),s=[-p.x,-p.y],g=N(t.get("pageButtonGap",!0),t.get("itemGap",!0)),f=(d&&("end"===t.get("pageButtonPosition",!0)?s[i]+=n[r]-p[r]:e[i]+=p[r]+g),s[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(e),h.setPosition(s),{x:0,y:0}),c=(f[r]=(d?n:c)[r],f[o]=Math.max(c[o],p[o]),f[a]=Math.min(0,p[a]+s[1-i]),u.__rectSize=n[r],d?((e={x:0,y:0})[r]=Math.max(n[r]-p[r]-g,0),e[o]=f[o],u.setClipPath(new As({shape:e})),u.__rectSize=e[r]):h.eachChild(function(t){t.attr({invisible:!0,silent:!0})}),this._getPageInfo(t));return null!=c.pageIndex&&kh(l,{x:c.contentPosition[0],y:c.contentPosition[1]},d?t:null),this._updatePageInfoView(t,c),f},kb.prototype._pageGo=function(t,e,n){t=this._getPageInfo(e)[t];null!=t&&n.dispatchAction({type:"legendScroll",scrollDataIndex:t,legendId:e.id})},kb.prototype._updatePageInfoView=function(n,i){var r=this._controllerGroup,t=(O(["pagePrev","pageNext"],function(t){var e=null!=i[t+"DataIndex"],t=r.childOfName(t);t&&(t.setStyle("fill",e?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),t.cursor=e?"pointer":"default")}),r.childOfName("pageText")),e=n.get("pageFormatter"),o=i.pageIndex,o=null!=o?o+1:0,a=i.pageCount;t&&e&&t.setStyle("text",V(e)?e.replace("{current}",null==o?"":o+"").replace("{total}",null==a?"":a+""):e({current:o,total:a}))},kb.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,t=t.getOrient().index,r=Tb[t],o=Cb[t],e=this._findTargetItemIndex(e),a=n.children(),s=a[e],l=a.length,u=l?1:0,h={contentPosition:[n.x,n.y],pageCount:u,pageIndex:u-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(s){n=g(s);h.contentPosition[t]=-n.s;for(var c=e+1,p=n,d=n,f=null;c<=l;++c)(!(f=g(a[c]))&&d.e>p.s+i||f&&!y(f,p.s))&&(p=d.i>p.i?d:f)&&(null==h.pageNextDataIndex&&(h.pageNextDataIndex=p.i),++h.pageCount),d=f;for(c=e-1,p=n,d=n,f=null;-1<=c;--c)(f=g(a[c]))&&y(d,f.s)||!(p.i=e&&t.s<=e+i}},kb.prototype._findTargetItemIndex=function(n){var i,r;return this._showController?(this.getContentGroup().eachChild(function(t,e){t=t.__legendDataIndex;null==r&&null!=t&&(r=e),t===n&&(i=e)}),null!=i?i:r):0},kb.type="legend.scroll",kb);function kb(){var t=null!==Sb&&Sb.apply(this,arguments)||this;return t.type=kb.type,t.newlineDisabled=!0,t._currentIndex=0,t}A_(function(t){A_(vb),t.registerComponentModel(xb),t.registerComponentView(Ib),t.registerAction("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})})});var Db=Po(),Ab=y,Pb=ct;function Lb(){this._dragging=!1,this.animationThreshold=15}function Ob(t,e,n,i){!function n(i,t){{var r;return R(i)&&R(t)?(r=!0,O(t,function(t,e){r=r&&n(i[e],t)}),!!r):i===t}}(Db(n).lastProp,i)&&(Db(n).lastProp=i,e?kh(n,i,t):(n.stopAnimation(),n.attr(i)))}function Rb(t,e){t[e.get(["label","show"])?"show":"hide"]()}function Nb(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function Eb(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function zb(t,e,n,i,r){var o=Bb(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),n=n.getModel("label"),a=vp(n.get("padding")||0),s=n.getFont(),l=Sr(o,s),u=r.position,h=l.width+a[1]+a[3],l=l.height+a[0]+a[2],c=r.align,c=("right"===c&&(u[0]-=h),"center"===c&&(u[0]-=h/2),r.verticalAlign),i=("bottom"===c&&(u[1]-=l),"middle"===c&&(u[1]-=l/2),r=u,c=h,h=l,i=(l=i).getWidth(),l=l.getHeight(),r[0]=Math.min(r[0]+c,i)-c,r[1]=Math.min(r[1]+h,l)-h,r[0]=Math.max(r[0],0),r[1]=Math.max(r[1],0),n.get("backgroundColor"));i&&"auto"!==i||(i=e.get(["axisLine","lineStyle","color"])),t.label={x:u[0],y:u[1],style:cc(n,{text:o,font:s,fill:n.getTextColor(),padding:a,backgroundColor:i}),z2:10}}function Bb(t,e,n,i,r){t=e.scale.parse(t);var o,a=e.scale.getLabel({value:t},{precision:r.precision}),r=r.formatter;return r&&(o={value:b_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},O(i,function(t){var e=n.getSeriesByIndex(t.seriesIndex),t=t.dataIndexInside,e=e&&e.getDataParams(t);e&&o.seriesData.push(e)}),V(r)?a=r.replace("{value}",a):k(r)&&(a=r(o))),a}function Fb(t,e,n){var i=Le();return ze(i,i,n.rotation),Ee(i,i,n.position),jh([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}Lb.prototype.render=function(t,e,n,i){var r,o,a=e.get("value"),s=e.get("status");this._axisModel=t,this._axisPointerModel=e,this._api=n,!i&&this._lastValue===a&&this._lastStatus===s||(this._lastValue=a,this._lastStatus=s,i=this._group,r=this._handle,s&&"hide"!==s?(i&&i.show(),r&&r.show(),this.makeElOption(s={},a,t,e,n),(o=s.graphicKey)!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=o,o=this._moveAnimation=this.determineAnimation(t,e),i?(o=pt(Ob,e,o),this.updatePointerEl(i,s,o),this.updateLabelEl(i,s,o,e)):(i=this._group=new Hr,this.createPointerEl(i,s,t,e),this.createLabelEl(i,s,t,e),n.getZr().add(i)),Eb(i,e,!0),this._renderHandle(a)):(i&&i.hide(),r&&r.hide()))},Lb.prototype.remove=function(t){this.clear(t)},Lb.prototype.dispose=function(t){this.clear(t)},Lb.prototype.determineAnimation=function(t,e){var n,i=e.get("animation"),r=t.axis,o="category"===r.type,e=e.get("snap");return!(!e&&!o)&&("auto"===i||null==i?(n=this.animationThreshold,o&&r.getBandWidth()>n||!!e&&(o=Iw(t).seriesDataCount,e=r.getExtent(),Math.abs(e[0]-e[1])/o>n)):!0===i)},Lb.prototype.makeElOption=function(t,e,n,i,r){},Lb.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;r&&(r=Db(t).pointerEl=new oc[r.type](Ab(e.pointer)),t.add(r))},Lb.prototype.createLabelEl=function(t,e,n,i){e.label&&(e=Db(t).labelEl=new Ns(Ab(e.label)),t.add(e),Rb(e,i))},Lb.prototype.updatePointerEl=function(t,e,n){t=Db(t).pointerEl;t&&e.pointer&&(t.setStyle(e.pointer.style),n(t,{shape:e.pointer.shape}))},Lb.prototype.updateLabelEl=function(t,e,n,i){t=Db(t).labelEl;t&&(t.setStyle(e.label.style),n(t,{x:e.label.x,y:e.label.y}),Rb(t,i))},Lb.prototype._renderHandle=function(t){var e,n,i,r,o,a;!this._dragging&&this.updateHandleTransform&&(e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,r=e.getModel("handle"),a=e.get("status"),r.get("show")&&a&&"hide"!==a?(this._handle||(o=!0,i=this._handle=tc(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ie(t.event)},onmousedown:Pb(this._onHandleDragMove,this,0,0),drift:Pb(this._onHandleDragMove,this),ondragend:Pb(this._onHandleDragEnd,this)}),n.add(i)),Eb(i,e,!1),i.setStyle(r.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"])),F(a=r.get("size"))||(a=[a,a]),i.scaleX=a[0]/2,i.scaleY=a[1]/2,ry(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,o)):(i&&n.remove(i),this._handle=null))},Lb.prototype._moveHandleToValue=function(t,e){Ob(this._axisPointerModel,!e&&this._moveAnimation,this._handle,Nb(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},Lb.prototype._onHandleDragMove=function(t,e){var n=this._handle;n&&(this._dragging=!0,t=this.updateHandleTransform(Nb(n),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=t,n.stopAnimation(),n.attr(Nb(t)),Db(n).lastProp=null,this._doDispatchAxisPointer())},Lb.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},Lb.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},Lb.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var t=t.getZr(),e=this._group,n=this._handle;t&&e&&(this._lastGraphicKey=null,e&&t.remove(e),n&&t.remove(n),this._group=null,this._handle=null,this._payloadInfo=null),oy(this,"_doDispatchAxisPointer")},Lb.prototype.doClear=function(){},Lb.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}};u(Gb,Vb=Lb),Gb.prototype.makeElOption=function(t,e,n,i,r){var o,a,s=n.axis,l=s.grid,u=i.get("type"),h=Wb(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(e,!0)),p=(u&&"none"!==u&&(o=(a=i).get("type"),a=a.getModel(o+"Style"),"line"===o?(p=a.getLineStyle()).fill=null:"shadow"===o&&((p=a.getAreaStyle()).stroke=null),o=p,(a=Ub[u](s,c,h)).style=o,t.graphicKey=a.type,t.pointer=a),lw(l.model,n));u=e,s=t,c=p,h=n,o=i,a=r,l=vw.innerTextLayout(c.rotation,0,c.labelDirection),c.labelMargin=o.get(["label","margin"]),zb(s,h,o,a,{position:Fb(h.axis,u,c),align:l.textAlign,verticalAlign:l.textVerticalAlign})},Gb.prototype.getHandleTransform=function(t,e,n){var i=lw(e.axis.grid.model,e,{labelInside:!1}),n=(i.labelMargin=n.get(["handle","margin"]),Fb(e.axis,t,i));return{x:n[0],y:n[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},Gb.prototype.updateHandleTransform=function(t,e,n,i){var n=n.axis,r=n.grid,o=n.getGlobalExtent(!0),r=Wb(r,n).getOtherAxis(n).getGlobalExtent(),n="x"===n.dim?0:1,a=[t.x,t.y],e=(a[n]+=e[n],a[n]=Math.min(o[1],a[n]),a[n]=Math.max(o[0],a[n]),(r[1]+r[0])/2),o=[e,e];o[n]=a[n];return{x:a[0],y:a[1],rotation:t.rotation,cursorPoint:o,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][n]}};var Vb,Hb=Gb;function Gb(){return null!==Vb&&Vb.apply(this,arguments)||this}function Wb(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var Ub={line:function(t,e,n){var i;return i=[e,n[0]],e=[e,n[1]],n=Xb(t),{type:"Line",subPixelOptimize:!0,shape:{x1:i[n=n||0],y1:i[1-n],x2:e[n],y2:e[1-n]}}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:(e=[e-i/2,n[0]],n=[i,r],i=Xb(t),{x:e[i=i||0],y:e[1-i],width:n[i],height:n[1-i]})}}};function Xb(t){return"x"===t.dim?0:1}u(Zb,Yb=g),Zb.type="axisPointer",Zb.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}};var Yb,qb=Zb;function Zb(){var t=null!==Yb&&Yb.apply(this,arguments)||this;return t.type=Zb.type,t}var jb=Po(),Kb=O;function $b(t,e,n){var i,c,p;function r(t,h){c.on(t,function(e){n=p;var n,i,r={dispatchAction:o,pendings:i={showTip:[],hideTip:[]}};function o(t){var e=i[t.type];e?e.push(t):(t.dispatchAction=o,n.dispatchAction(t))}Kb(jb(c).records,function(t){t&&h(t,e,r.dispatchAction)});var t,a=r.pendings,s=p,l=a.showTip.length,u=a.hideTip.length;l?t=a.showTip[l-1]:u&&(t=a.hideTip[u-1]),t&&(t.dispatchAction=null,s.dispatchAction(t))})}b.node||(i=e.getZr(),jb(i).records||(jb(i).records={}),p=e,jb(c=i).initialized||(jb(c).initialized=!0,r("click",pt(Jb,"click")),r("mousemove",pt(Jb,"mousemove")),r("globalout",Qb)),(jb(i).records[t]||(jb(i).records[t]={})).handler=n)}function Qb(t,e,n){t.handler("leave",null,n)}function Jb(t,e,n,i){e.handler(t,n,i)}function tS(t,e){b.node||(e=e.getZr(),(jb(e).records||{})[t]&&(jb(e).records[t]=null))}u(iS,eS=Gg),iS.prototype.render=function(t,e,n){var e=e.getComponent("tooltip"),i=t.get("triggerOn")||e&&e.get("triggerOn")||"mousemove|click";$b("axisPointer",n,function(t,e,n){"none"!==i&&("leave"===t||0<=i.indexOf(t))&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},iS.prototype.remove=function(t,e){tS("axisPointer",e)},iS.prototype.dispose=function(t,e){tS("axisPointer",e)},iS.type="axisPointer";var eS,nS=iS;function iS(){var t=null!==eS&&eS.apply(this,arguments)||this;return t.type=iS.type,t}function rS(t,e){var n,i,r,o,a=[],s=t.seriesIndex;return null==s||!(e=e.getSeriesByIndex(s))||null==(s=Ao(n=e.getData(),t))||s<0||F(s)?{point:[]}:(i=n.getItemGraphicEl(s),r=e.coordinateSystem,e.getTooltipPosition?a=e.getTooltipPosition(s)||[]:r&&r.dataToPoint?a=t.isStacked?(e=r.getBaseAxis(),t=r.getOtherAxis(e).dim,e=e.dim,t="x"===t||"radius"===t?1:0,e=n.mapDimension(e),(o=[])[t]=n.get(e,s),o[1-t]=n.get(n.getCalculationInfo("stackResultDimension"),s),r.dataToPoint(o)||[]):r.dataToPoint(n.getValues(B(r.dimensions,function(t){return n.mapDimension(t)}),s))||[]:i&&((e=i.getBoundingRect().clone()).applyTransform(i.transform),a=[e.x+e.width/2,e.y+e.height/2]),{point:a,el:i})}var oS=Po();function aS(t,e,n){var o,a,i,s,l,r,u,h,c,p,d,f,g,y,m=t.currTrigger,v=[t.x,t.y],_=t,x=t.dispatchAction||ct(n.dispatchAction,n),w=e.getComponent("axisPointer").coordSysAxesInfo;if(w)return cS(v)&&(v=rS({seriesIndex:_.seriesIndex,dataIndex:_.dataIndex},e).point),o=cS(v),a=_.axesInfo,i=w.axesInfo,s="leave"===m||cS(v),l={},e={list:[],map:{}},u={showPointer:pt(lS,r={}),showTooltip:pt(uS,e)},O(w.coordSysMap,function(t,e){var r=o||t.containPoint(v);O(w.coordSysAxesInfo[e],function(t,e){var n=t.axis,i=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(a,t);s||!r||a&&!i||null!=(i=null!=(i=i&&i.value)||o?i:n.pointToData(v))&&sS(t,i,u,!1,l)})}),h={},O(i,function(n,t){var i=n.linkGroup;i&&!r[t]&&O(i.axesInfo,function(t,e){var e=r[e];t!==n&&e&&(e=e.value,i.mapper&&(e=n.axis.scale.parse(i.mapper(e,hS(t),hS(n)))),h[n.key]=e)})}),O(h,function(t,e){sS(i[e],t,u,!0,l)}),c=r,_=i,p=l.axesInfo=[],O(_,function(t,e){var n=t.axisPointerModel.option,e=c[e];e?(t.useHandle||(n.status="show"),n.value=e.value,n.seriesDataIndices=(e.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&p.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),m=e,_=t,e=x,cS(t=v)||!m.list.length?e({type:"hideTip"}):(x=((m.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{},e({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:_.tooltipOption,position:_.position,dataIndexInside:x.dataIndexInside,dataIndex:x.dataIndex,seriesIndex:x.seriesIndex,dataByCoordSys:m.list})),e=i,_=(t=n).getZr(),x="axisPointerLastHighlights",d=oS(_)[x]||{},f=oS(_)[x]={},O(e,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&t.triggerEmphasis&&O(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;f[e]=t})}),g=[],y=[],O(d,function(t,e){f[e]||y.push(t)}),O(f,function(t,e){d[e]||g.push(t)}),y.length&&t.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:y}),g.length&&t.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:g}),l}function sS(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f,g=t.axis;!g.scale.isBlank()&&g.containData(e)&&(t.involveSeries?(a=e,s=t.axis,l=s.dim,u=a,h=[],c=Number.MAX_VALUE,p=-1,O(t.seriesModels,function(e,t){var n,i=e.getData().mapDimensionsAll(l);if(e.getAxisTooltipData)var r=e.getAxisTooltipData(i,a,s),o=r.dataIndices,r=r.nestestValue;else{if(!(o=e.getData().indicesOfNearest(i[0],a,"category"===s.type?.5:null)).length)return;r=e.getData().get(i[0],o[0])}null!=r&&isFinite(r)&&(i=a-r,(n=Math.abs(i))<=c)&&((n'):""),V(t))o.innerHTML=t+c;else if(t){o.innerHTML="",F(t)||(t=[t]);for(var p,d=0;d"),o=f.join(e);this._showOrMove(i,function(){this._updateContentNotChangedOnAxis(t,p)?this._updatePosition(i,r,n[0],n[1],this._tooltipContent,p):this._showTooltipContent(i,o,p,Math.random()+"",n[0],n[1],r,null,g)})},ES.prototype._showSeriesItemTooltip=function(t,e,n){var i,r,o,a,s,l=this._ecModel,e=D(e),u=e.seriesIndex,h=l.getSeriesByIndex(u),c=e.dataModel||h,p=e.dataIndex,e=e.dataType,d=c.getData(e),f=this._renderMode,g=t.positionDefault,y=zS([d.getItemModel(p),c,h&&(h.coordinateSystem||{}).model],this._tooltipModel,g?{position:g}:null),h=y.get("trigger");null!=h&&"item"!==h||(i=c.getDataParams(p,e),r=new kg,i.marker=r.makeTooltipMarker("item",Mp(i.color),f),g=wf(c.formatTooltip(p,!1,e)),h=y.get("order"),e=y.get("valueFormatter"),o=g.frag,a=o?Mg(e?L({valueFormatter:e},o):o,r,f,h,l.get("useUTC"),y.get("textStyle")):g.text,s="item_"+c.name+"_"+p,this._showOrMove(y,function(){this._showTooltipContent(y,a,i,s,t.offsetX,t.offsetY,t.position,t.target,r)}),n({type:"showTip",dataIndexInside:p,dataIndex:d.getRawIndex(p),seriesIndex:u,from:this.uid}))},ES.prototype._showComponentItemTooltip=function(e,n,t){var i="html"===this._renderMode,r=D(n),o=r.tooltipConfig.option||{},a=o.encodeHTMLContent,a=(V(o)&&(o={content:o,formatter:o},a=!0),a&&i&&o.content&&((o=y(o)).content=_e(o.content)),[o]),i=this._ecModel.getComponent(r.componentMainType,r.componentIndex),r=(i&&a.push(i),a.push({formatter:o.content}),e.positionDefault),s=zS(a,this._tooltipModel,r?{position:r}:null),l=s.get("content"),u=Math.random()+"",h=new kg;this._showOrMove(s,function(){var t=y(s.get("formatterParams")||{});this._showTooltipContent(s,l,t,u,e.offsetX,e.offsetY,e.position,n,h)}),t({type:"showTip",from:this.uid})},ES.prototype._showTooltipContent=function(n,t,i,e,r,o,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&((u=this._tooltipContent).setEnterable(n.get("enterable")),h=n.get("formatter"),a=a||n.get("position"),t=t,c=this._getNearestPoint([r,o],i,n.get("trigger"),n.get("borderColor")).color,h&&(t=V(h)?(p=n.ecModel.get("useUTC"),t=h,bp(t=(d=F(i)?i[0]:i)&&d.axisType&&0<=d.axisType.indexOf("time")?tp(d.axisValue,t,p):t,i,!0)):k(h)?(d=ct(function(t,e){t===this._ticket&&(u.setContent(e,l,n,c,a),this._updatePosition(n,a,r,o,u,i,s))},this),this._ticket=e,h(i,e,d)):h),u.setContent(t,l,n,c,a),u.show(n,c),this._updatePosition(n,a,r,o,u,i,s))},ES.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||F(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:F(e)?void 0:{color:i||e.color||e.borderColor}},ES.prototype._updatePosition=function(t,e,n,i,r,o,a){var s,l=this._api.getWidth(),u=this._api.getHeight(),h=(e=e||t.get("position"),r.getSize()),c=t.get("align"),p=t.get("verticalAlign"),d=a&&a.getBoundingRect().clone();a&&d.applyTransform(a.transform),F(e=k(e)?e([n,i],o,r.el,d,{viewSize:[l,u],contentSize:h.slice()}):e)?(n=to(e[0],l),i=to(e[1],u)):R(e)?((o=e).width=h[0],o.height=h[1],n=(o=Pp(o,{width:l,height:u})).x,i=o.y,p=c=null):i=(n=(s=V(e)&&a?function(t,e,n,i){var r=n[0],o=n[1],a=Math.ceil(Math.SQRT2*i)+8,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-r/2,l=e.y+h/2-o/2;break;case"top":s=e.x+u/2-r/2,l=e.y-o-a;break;case"bottom":s=e.x+u/2-r/2,l=e.y+h+a;break;case"left":s=e.x-r-a,l=e.y+h/2-o/2;break;case"right":s=e.x+u+a,l=e.y+h/2-o/2}return[s,l]}(e,d,h,t.get("borderWidth")):function(t,e,n,i,r,o,a){var n=n.getSize(),s=n[0],n=n[1];null!=o&&(i":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},HS=(GS.prototype.evaluate=function(t){var e=typeof t;return V(e)?this._condVal.test(t):!!H(e)&&this._condVal.test(t+"")},GS);function GS(t){null==(this._condVal=V(t)?new RegExp(t):_t(t)?t:null)&&f("")}US.prototype.evaluate=function(){return this.value};var WS=US;function US(){}YS.prototype.evaluate=function(){for(var t=this.children,e=0;e { + return ctx.createCircularGradient(arguments); + }; + } + + _initEvent() { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown' + }, { + wxName: 'touchMove', + ecName: 'mousemove' + }, { + wxName: 'touchEnd', + ecName: 'mouseup' + }, { + wxName: 'touchEnd', + ecName: 'click' + }]; + eventNames.forEach(name => { + this.event[name.wxName] = e => { + const touch = e.touches[0]; + this.chart.getZr().handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + }; + }); + } + + set width(w) { + if (this.canvasNode) this.canvasNode.width = w + } + set height(h) { + if (this.canvasNode) this.canvasNode.height = h + } + + get width() { + if (this.canvasNode) + return this.canvasNode.width + return 0 + } + get height() { + if (this.canvasNode) + return this.canvasNode.height + return 0 + } +} diff --git a/iconfont.less b/iconfont.less new file mode 100644 index 0000000..f78b771 --- /dev/null +++ b/iconfont.less @@ -0,0 +1,82 @@ +@font-face { + font-family: "iconfont"; /* Project id 4945922 */ + src: url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.woff2?t=1750598435466') format('woff2'), + url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.woff?t=1750598435466') format('woff'), + url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.ttf?t=1750598435466') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-fanhui:before { + content: "\e601"; +} + +.icon-sousuo:before { + content: "\e733"; +} + +.icon-riqi:before { + content: "\e675"; +} + +.icon-nanbaobao:before { + content: "\e60a"; +} + +.icon-jiahao2:before { + content: "\e660"; +} + +.icon-zengjiatianjiajiahao:before { + content: "\e62a"; +} + +.icon-gantanhao_icon:before { + content: "\e65b"; +} + +.icon-touxiang:before { + content: "\e62c"; +} + +.icon-youjiantou:before { + content: "\e612"; +} + +.icon-shouji:before { + content: "\e6f7"; +} + +.icon-xiaoxi:before { + content: "\e600"; +} + +.icon-jiahao1:before { + content: "\e727"; +} + +.icon-jiahao:before { + content: "\e783"; +} + +.icon-dianzan:before { + content: "\e694"; +} + +.icon-bianji:before { + content: "\e67b"; +} + +.icon-shanchu1:before { + content: "\e67d"; +} + +.icon-xiangji:before { + content: "\e609"; +} diff --git a/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json new file mode 100644 index 0000000..4bdac29 --- /dev/null +++ b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json @@ -0,0 +1 @@ +{"key":"TDesign","label":"Tdesign","components":{"t-action-sheet":{"key":"t-action-sheet","label":"动作面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-actionsheet.png","properties":[{"key":"cancelText","type":["String"],"desc":"设置取消按钮的文本","label":""},{"key":"count","type":["Number"],"desc":"设置每页展示菜单的数量,仅当 type=grid 时有效","label":""},{"key":"items","type":["Array"],"desc":"菜单项","label":""},{"key":"showCancel","type":["Boolean"],"desc":"是否显示取消按钮","label":""},{"key":"theme","type":["String"],"desc":"展示类型,列表和表格形式展示","label":""},{"key":"visible","type":["Boolean"],"desc":"显示与隐藏","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:close","desc":"关闭时触发","label":""},{"key":"bind:selected","desc":"选择菜单项时触发","label":""}],"tpl":"","path":"./action-sheet/action-sheet"},"t-avatar-group":{"key":"t-avatar-group","label":"头像组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"cascading","type":["String"],"desc":"图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上","label":""},{"key":"collapseAvatar","type":["String"],"desc":"头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多`","label":""},{"key":"max","type":["Number"],"desc":"能够同时显示的最多头像数量","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size","label":""}],"externalClasses":["t-class","t-class-image","t-class-content"],"tpl":"","require":{"t-avatar":"./avatar/avatar"},"path":"./avatar/avatar-group"},"t-avatar":{"key":"t-avatar","label":"头像","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"alt","type":["String"],"desc":"头像替换文本,仅当图片加载失败时有效","label":""},{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"hideOnLoadFailed","type":["Boolean"],"desc":"加载失败时隐藏图片","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等,默认为 large","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""}],"tpl":"","path":"./avatar/avatar"},"t-back-top":{"key":"t-back-top","label":"回到顶部","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-backtop.png","properties":[{"key":"fixed","type":["Boolean"],"desc":"是否绝对定位固定到屏幕右下方","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"text","type":["String"],"desc":"文案","label":""},{"key":"theme","type":["String"],"desc":"预设的样式类型","label":""}],"externalClasses":["t-class","t-class-icon","t-class-text"],"events":[{"key":"bind:to-top","desc":"点击触发","label":""}],"tpl":"","path":"./back-top/back-top"},"t-badge":{"key":"t-badge","label":"徽标数","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-badge.png","properties":[{"key":"color","type":["String"],"desc":"颜色","label":""},{"key":"content","type":["String"],"desc":"徽标内容,示例:`content='自定义内容'`。也可以使用默认插槽定义","label":""},{"key":"count","type":["String","Number"],"desc":"徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+。特殊:值为空表示使用插槽渲染","label":""},{"key":"dot","type":["Boolean"],"desc":"是否为红点","label":""},{"key":"maxCount","type":["Number"],"desc":"封顶的数字值","label":""},{"key":"offset","type":["Array"],"desc":"设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem']","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"showZero","type":["Boolean"],"desc":"当数值为 0 时,是否展示徽标","label":""},{"key":"size","type":["String"],"desc":"尺寸","label":""}],"externalClasses":["t-class","t-class-content","t-class-count"],"tpl":"","path":"./badge/badge"},"t-button":{"key":"t-button","label":"按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-button.png","properties":[{"key":"block","type":["Boolean"],"desc":"是否为块级元素","label":""},{"key":"content","type":["String"],"desc":"按钮内容","label":""},{"key":"customDataset","type":["Object"],"desc":"自定义 dataset,可通过 event.currentTarget.dataset.custom 获取","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用按钮","label":""},{"key":"ghost","type":["Boolean"],"desc":"是否为幽灵按钮(镂空按钮)","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"loading","type":["Boolean"],"desc":"是否显示为加载状态","label":""},{"key":"shape","type":["String"],"desc":"按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形","label":""},{"key":"size","type":["String"],"desc":"组件尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,依次为品牌色、危险色","label":""},{"key":"type","type":["String"],"desc":"同小程序的 formType","label":""},{"key":"variant","type":["String"],"desc":"按钮形式,基础、线框、文字","label":""}],"externalClasses":["t-class","t-class-icon"],"events":[{"key":"bind:click","desc":"点击时触发","label":""}],"tpl":"","path":"./button/button"},"t-cell-group":{"key":"t-cell-group","label":"单元格组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示组边框","label":""},{"key":"title","type":["String"],"desc":"单元格组标题","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-cell":"./cell/cell"},"path":"./cell-group/cell-group"},"t-cell":{"key":"t-cell","label":"单元格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"align","type":["String"],"desc":"内容的对齐方式,默认居中对齐","label":""},{"key":"arrow","type":["Boolean"],"desc":"是否显示右侧箭头","label":""},{"key":"bordered","type":["Boolean"],"desc":"是否显示下边框","label":""},{"key":"description","type":["String"],"desc":"下方内容描述","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""},{"key":"image","type":["String"],"desc":"主图","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标,出现在单元格标题的左侧","label":""},{"key":"note","type":["String"],"desc":"和标题同行的说明文字","label":""},{"key":"required","type":["Boolean"],"desc":"是否显示表单必填星号","label":""},{"key":"rightIcon","type":["String"],"desc":"最右侧图标","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"url","type":["String"],"desc":"点击后跳转链接地址。如果值为空,则表示不需要跳转","label":""}],"externalClasses":["t-class","t-class-title","t-class-note","t-class-description","t-class-thumb","t-class-hover","t-class-left","t-class-right"],"events":[{"key":"bind:click","desc":"右侧内容","label":""}],"tpl":"","path":"./cell/cell"},"t-check-tag":{"key":"t-check-tag","label":"可选标签","icon":"","properties":[{"key":"checked","type":["Boolean"],"desc":"标签选中的状态,默认风格(theme=default)才有选中态","label":""},{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"content","type":["String","Number"],"desc":"组件子元素","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""}],"events":[{"key":"bind:change","desc":"组件子元素","label":""},{"key":"bind:click","desc":"点击标签时触发","label":""}],"tpl":"check tag","path":"./check-tag/check-tag"},"t-checkbox-group":{"key":"t-checkbox-group","label":"多选框组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"max","type":["Number"],"desc":"支持最多选中的数量","label":""},{"key":"name","type":["String"],"desc":"统一设置内部复选框 HTML 属性","label":""},{"key":"options","type":["Array"],"desc":"以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""}],"events":[{"key":"bind:change","desc":"值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项","label":""}],"tpl":"","require":{"t-checkbox":"./checkbox/checkbox"},"path":"./checkbox-group/checkbox-group"},"t-checkbox":{"key":"t-checkbox","label":"多选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"align","type":["String"],"desc":"多选框和内容相对位置","label":""},{"key":"checkAll","type":["Boolean"],"desc":"用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"多选框颜色","label":""},{"key":"content","type":["String"],"desc":"多选框内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"icon","type":["Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标地址,非选中态图标地址]","label":""},{"key":"indeterminate","type":["Boolean"],"desc":"是否为半选","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"value","type":["String","Number"],"desc":"多选框的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./checkbox/checkbox"},"t-collapse-panel":{"key":"t-collapse-panel","label":"折叠面板","icon":"","properties":[{"key":"content","type":["String"],"desc":"折叠面板内容","label":""},{"key":"disabled","type":["Boolean"],"desc":"禁止当前面板展开,优先级大于 Collapse 的同名属性","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"当前折叠面板展开图标,优先级大于 Collapse 的同名属性","label":""},{"key":"header","type":["String"],"desc":"面板头内容","label":""},{"key":"headerRightContent","type":["String"],"desc":"面板头的右侧区域,一般用于呈现面板操作","label":""},{"key":"value","type":["String","Number"],"desc":"当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识","label":""}],"tpl":"此处可自定义内容","path":"./collapse/collapse-panel"},"t-collapse":{"key":"t-collapse","label":"折叠","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-collapse.png","properties":[{"key":"defaultExpandAll","type":["Boolean"],"desc":"默认是否展开全部","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用面板展开/收起操作","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"展开图标。值为 undefined 或 false 则不显示展开图标;值为 true 显示默认图标;值类型为函数,则表示完全自定义展开图标","label":""},{"key":"expandMutex","type":["Boolean"],"desc":"每个面板互斥展开,每次只展开一个面板","label":""},{"key":"value","type":["Array"],"desc":"展开的面板集合","label":""}],"events":[{"key":"bind:change","desc":"切换面板时触发,返回变化的值","label":""}],"tpl":"此处可自定义内容","require":{"t-collapse-panel":"./collapse/collapse-panel"},"path":"./collapse/collapse"},"t-date-time-picker":{"key":"t-date-time-picker","label":"日期时间选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-datetimepicker.png","properties":[{"key":"cancelBtn","type":["String"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String"],"desc":"确定按钮文字","label":""},{"key":"end","type":["String","Number"],"desc":"选择器的结束时间","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"format","type":["String"],"desc":"用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format)","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"mode","type":["String","Array"],"desc":"选择器模式,用于表示可以选择到哪一个层级。【示例一】year 或者 ['year'] 表示纯日期选择器,只能选择到年份,只显示年份。【示例二】'hour' 或 ['hour'] 表示纯时间选择器,只能选择到小时维度。【示例三】['year', 'month', 'date', 'hour', 'minute'] 表示,日期和时间 混合选择器,可以选择到具体哪一分钟,显示全部时间:年/月/日/时/分","label":""},{"key":"showWeek","type":["Boolean"],"desc":"【开发中】是否在日期旁边显示周几(如周一,周二,周日等)","label":""},{"key":"start","type":["String","Number"],"desc":"选择器的开始时间","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["String","Number"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-confirm","t-class-cancel","t-class-title"],"events":[{"key":"bind:cancel","desc":"取消按钮点击时触发","label":""},{"key":"bind:change","desc":"选中值发生变化时触发","label":""},{"key":"bind:column-change","desc":"每一列选中数据变化时触发","label":""},{"key":"bind:confirm","desc":"确认按钮点击时触发","label":""}],"tpl":"","path":"./date-time-picker/date-time-picker"},"t-dialog":{"key":"t-dialog","label":"对话框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dialog.png","properties":[{"key":"actions","type":["Array"],"desc":"操作栏","label":""},{"key":"buttonLayout","type":["String"],"desc":"多按钮排列方式","label":""},{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发关闭事件","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件","label":""},{"key":"content","type":["String"],"desc":"内容","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showInAttachedElement","type":["Boolean"],"desc":"【开发中】仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"visible","type":["Boolean"],"desc":"控制对话框是否显示","label":""},{"key":"zIndex","type":["Number"],"desc":"对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-content","t-class-confirm","t-class-cancel"],"events":[{"key":"bind:cancel","desc":"如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件","label":""},{"key":"bind:close","desc":"关闭事件,点击 取消按钮 或 点击蒙层 时触发","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./dialog/dialog"},"t-divider":{"key":"t-divider","label":"分割线","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-divider.png","properties":[{"key":"align","type":["String"],"desc":"文本位置(仅在水平分割线有效)","label":""},{"key":"content","type":["String"],"desc":"子元素","label":""},{"key":"dashed","type":["Boolean"],"desc":"是否虚线(仅在水平分割线有效)","label":""},{"key":"layout","type":["String"],"desc":"分隔线类型有两种:水平和垂直","label":""},{"key":"lineColor","type":["String"],"desc":"分隔线颜色","label":""}],"externalClasses":["t-class","t-class-line","t-class-content"],"tpl":"","path":"./divider/divider"},"t-drawer":{"key":"t-drawer","label":"模态抽屉","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-drawer.png","properties":[{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发抽屉关闭事件","label":""},{"key":"destroyOnClose","type":["Boolean"],"desc":"抽屉关闭时是否销毁节点","label":""},{"key":"items","type":["Array"],"desc":"抽屉里的列表项","label":""},{"key":"placement","type":["String"],"desc":"抽屉方向","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"visible","type":["Boolean"],"desc":"组件是否可见","label":""},{"key":"zIndex","type":["Number"],"desc":"抽屉层级,样式默认为 1500","label":""}],"events":[{"key":"bind:close","desc":"关闭事件,取消按钮点击时、关闭按钮点击时、点击蒙层时均会触发","label":""},{"key":"bind:item-click","desc":"点击抽屉里的列表项","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./drawer/drawer"},"t-dropdown-item":{"key":"t-dropdown-item","label":"下拉菜单子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"label","type":["String"],"desc":"标题","label":""},{"key":"multiple","type":["Boolean"],"desc":"是否多选","label":""},{"key":"options","type":["Array"],"desc":"选项数据","label":""}],"tpl":"","path":"./dropdown-menu/dropdown-item"},"t-dropdown-menu":{"key":"t-dropdown-menu","label":"下拉菜单","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"activeColor","type":["String"],"desc":"【讨论中】菜单标题和选项的选中态颜色","label":""},{"key":"closeOnClickOverlay","type":["Boolean"],"desc":"是否在点击遮罩层后关闭菜单","label":""},{"key":"duration","type":["String","Number"],"desc":"动画时长","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"zIndex","type":["Number"],"desc":"菜单栏 z-index 层级","label":""}],"tpl":"","require":{"t-dropdown-item":"./dropdown-menu/dropdown-item"},"path":"./dropdown-menu/dropdown-menu"},"t-empty":{"key":"t-empty","label":"空状态","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-empty.png","properties":[{"key":"action","type":["String"],"desc":"操作按钮","label":""},{"key":"description","type":["String"],"desc":"描述文字","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""}],"externalClasses":["t-class","t-class-description","t-class-image","t-class-actions"],"tpl":"","path":"./empty/empty"},"t-fab":{"key":"t-fab","label":"悬浮按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-fab.png","properties":[{"key":"buttonProps","type":["Object"],"desc":"透传至 Button 组件","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"style","type":["String"],"desc":"悬浮按钮的样式,常用于调整位置","label":""},{"key":"text","type":["String"],"desc":"文本内容","label":""}],"events":[{"key":"bind:click","desc":"悬浮按钮点击事件","label":""}],"tpl":"","path":"./fab/fab"},"t-footer":{"key":"t-footer","label":"布局-底部内容","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-footer.png","properties":[{"key":"copyright","type":["String"],"desc":"版权信息,type 为`text`生效","label":""},{"key":"logo","type":["Object"],"desc":"图标配置,type 为`logo`生效。`logo.icon` 表示图标链接地址,`logo.title` 表示标题文本,`logo.url` 表示链接跳转地址","label":""},{"key":"textLinkList","type":["Array"],"desc":"链接列表,type 为`text`生效。name 表示链接名称, url 表示链接 page 路径,目前只支持小程序内部跳转,openType 表示跳转方式","label":""},{"key":"theme","type":["String"],"desc":"页脚展示类型","label":""}],"tpl":"","path":"./footer/footer"},"t-grid-item":{"key":"t-grid-item","label":"宫格子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"description","type":["String"],"desc":"文本以外的更多描述,辅助信息。可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"image","type":["String"],"desc":"图片,可以是图片地址,也可以自定义图片节点","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"layout","type":["String"],"desc":"内容布局方式","label":""},{"key":"text","type":["String"],"desc":"文本,可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"url","type":["String"],"desc":"点击后的跳转链接","label":""}],"externalClasses":["t-class","t-class-image","t-class-text","t-class-description"],"tpl":"","path":"./grid-item/grid-item"},"t-grid":{"key":"t-grid","label":"栅格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"align","type":["String"],"desc":"内容对齐方式","label":""},{"key":"border","type":["Boolean","Object"],"desc":"边框,默认不显示。值为 true 则显示默认边框,值类型为 object 则表示自定义边框样式","label":""},{"key":"column","type":["Number"],"desc":"每一行的列数量","label":""},{"key":"gutter","type":["Number"],"desc":"间隔大小","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-grid-item":"./grid-item/grid-item"},"path":"./grid/grid"},"t-icon":{"key":"t-icon","label":"图标","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-icon.png","properties":[{"key":"classPrefix","type":["String"],"desc":"自定义icon前缀","label":""},{"key":"color","type":["String"],"desc":"图标颜色","label":""},{"key":"style","type":["String"],"desc":"自定义样式","label":""},{"key":"name","type":["String"],"desc":"图标名称","label":""},{"key":"size","type":["String","Number"],"desc":"图标名称","label":""}],"tpl":"","path":"./icon/icon"},"t-image":{"key":"t-image","label":"图片","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-image.png","properties":[{"key":"error","type":["String"],"desc":"加载失败时显示的内容。值为 `default` 则表示使用默认加载失败风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `error`;值为其他则表示普通文本内容,如“加载失败”","label":""},{"key":"lazy","type":["Boolean"],"desc":"是否开启图片懒加载","label":""},{"key":"loading","type":["String"],"desc":"加载态内容。值为 `default` 则表示使用默认加载中风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `loading`;值为其他则表示普通文本内容,如“加载中”","label":""},{"key":"shape","type":["String"],"desc":"图片圆角类型","label":""},{"key":"src","type":["String"],"desc":"图片链接","label":""}],"externalClasses":["t-class","t-class-load"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""},{"key":"bind:load","desc":"图片加载完成时触发","label":""}],"tpl":"","path":"./image/image"},"t-indexes":{"key":"t-indexes","label":"索引","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-indexes.png","properties":[{"key":"height","type":["Number"],"desc":"列表高度,未设置默认占满设备高度","label":""},{"key":"list","type":["Array"],"desc":"索引列表的列表数据。每个元素包含三个子元素,index(string):索引值,例如1,2,3,...或A,B,C等;title(string): 索引标题,可不填将默认设为索引值;children(Array<{title: string}>): 子元素列表,title为子元素的展示文案。","label":""},{"key":"sticky","type":["Boolean"],"desc":"索引是否吸顶,默认为true","label":""}],"events":[{"key":"bind:select","desc":"点击行元素时触发事件","label":""}],"tpl":"","path":"./indexes/indexes"},"t-input":{"key":"t-input","label":"输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-input.png","properties":[{"key":"align","type":["String"],"desc":"文本内容位置,居左/居中/居右","label":""},{"key":"borderless","type":["Boolean"],"desc":"【讨论中】是否开启无边框模式","label":""},{"key":"clearable","type":["Boolean"],"desc":"是否可清空","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用输入框","label":""},{"key":"errorMessage","type":["String"],"desc":"错误提示文本,值为空不显示(废弃属性,如果需要,请更为使用 status 和 tips)","label":""},{"key":"format","type":["String"],"desc":"【开发中】指定输入框展示值的格式","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的文本长度,一个中文等于一个计数长度。值小于等于 0 的时候,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"prefixIcon","type":["String"],"desc":"组件前置图标,值为字符串则表示图标名称","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"size","type":["String"],"desc":"输入框尺寸","label":""},{"key":"status","type":["String"],"desc":"输入框状态","label":""},{"key":"suffix","type":["String"],"desc":"后置图标前的后置内容","label":""},{"key":"suffixIcon","type":["String"],"desc":"后置文本内容,值为字符串则表示图标名称","label":""},{"key":"tips","type":["String"],"desc":"输入框下方提示文本,会根据不同的 `status` 呈现不同的样式","label":""},{"key":"value","type":["String","Number"],"desc":"输入框的值","label":""}],"externalClasses":["t-class","t-class-input","t-class-placeholder","t-class-error-msg"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入框值发生变化时触发","label":""},{"key":"bind:clear","desc":"清空按钮点击时触发","label":""},{"key":"bind:enter","desc":"回车键按下时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""}],"tpl":"","path":"./input/input"},"t-loading":{"key":"t-loading","label":"加载中","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-loading.png","properties":[{"key":"delay","type":["Number"],"desc":"延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"duration","type":["Number"],"desc":"加载动画执行完成一次的时间,单位:毫秒","label":""},{"key":"indicator","type":["Boolean"],"desc":"是否显示加载指示符","label":""},{"key":"inheritColor","type":["Boolean"],"desc":"是否继承父元素颜色","label":""},{"key":"layout","type":["String"],"desc":"对齐方式","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载状态","label":""},{"key":"pause","type":["Boolean"],"desc":"是否暂停动画","label":""},{"key":"progress","type":["Number"],"desc":"加载进度","label":""},{"key":"reverse","type":["Boolean"],"desc":"加载动画是否反向","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例:40rpx/20px","label":""},{"key":"text","type":["String"],"desc":"加载提示文案","label":""},{"key":"theme","type":["String"],"desc":"加载组件类型","label":""}],"externalClasses":["t-class","t-class-text","t-class-indicator"],"tpl":"","path":"./loading/loading"},"t-message":{"key":"t-message","label":"全局提醒","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-message.png","properties":[{"key":"action","type":["String"],"desc":"操作","label":""},{"key":"align","type":["String"],"desc":"文本对齐方式","label":""},{"key":"closeBtn","type":["String","Boolean"],"desc":"关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。也可以完全自定义按钮","label":""},{"key":"content","type":["String"],"desc":"用于自定义消息弹出内容","label":""},{"key":"duration","type":["Number"],"desc":"消息内置计时器,计时到达时会触发 duration-end 事件。单位:毫秒。值为 0 则表示没有计时器。","label":""},{"key":"icon","type":["String","Boolean"],"desc":"消息提醒前面的图标。值为 true 则根据 theme 显示对应的图标,值为 false 则不显示图标。值为 'info' 或 'bell' 则显示组件内置图标。也可以完全自定义图标节点","label":""},{"key":"marquee","type":["Boolean","Object"],"desc":"跑马灯效果。speed 指速度控制;loop 指循环播放次数,值为 -1 表示循环播放,值为 0 表示不循环播放;delay 表示延迟多久开始播放","label":""},{"key":"offset","type":["Array"],"desc":"相对于 placement 的偏移量,示例:[-10, 20] 或 ['10rpx', '8rpx']","label":""},{"key":"theme","type":["String"],"desc":"消息组件风格","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示,隐藏时默认销毁组件","label":""},{"key":"zIndex","type":["Number"],"desc":"元素层级,样式默认为 5000","label":""}],"externalClasses":["t-class","t-class-content","t-class-icon","t-class-action","t-class-close-btn"],"events":[{"key":"bind:action-btn-click","desc":"当操作按钮存在时,用户点击操作按钮时触发","label":""},{"key":"bind:close-btn-click","desc":"当关闭按钮存在时,用户点击关闭按钮触发","label":""},{"key":"bind:duration-end","desc":"计时结束后触发","label":""}],"tpl":"","path":"./message/message"},"t-navbar":{"key":"t-navbar","label":"导航条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-navbar.png","properties":[{"key":"animation","type":["Boolean"],"desc":"是否添加动画效果","label":""},{"key":"background","type":["String"],"desc":"背景","label":""},{"key":"delta","type":["Number"],"desc":"后退按钮后退层数,含义参考 [wx.navigateBack](https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateBack.html),特殊的,传入 0 不会发生执行 wx.navigateBack,只会触发一个 goback 事件供自行处理。","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在顶部","label":""},{"key":"homeIcon","type":["String"],"desc":"首页图标地址。值为 '' 或者 undefiend 则表示不显示返回图标,值为 'circle' 表示显示默认图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标地址,值为 '' 或者 undefiend 则表示不显示返回图标,值为 'arrow-left' 表示显示返回图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"title","type":["String"],"desc":"页面标题","label":""},{"key":"titleMaxLength","type":["Number"],"desc":"标题文字最大长度,超出的范围使用 `...` 表示","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-title","t-class-left-icon","t-class-home-icon","t-class-capsule"],"events":[{"key":"bind:complete","desc":"navigateBack 执行完成后触发(失败或成功均会触发)","label":""},{"key":"bind:fail","desc":"navigateBack 执行失败后触发","label":""},{"key":"bind:go-back","desc":"delta 值为 0 时,点击返回,触发该事件","label":""},{"key":"bind:go-home","desc":"点击 Home 触发","label":""},{"key":"bind:success","desc":"navigateBack 执行成功后触发","label":""}],"tpl":"","path":"./navbar/navbar"},"t-picker-item":{"key":"t-picker-item","label":"选择器子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"format","type":["String"],"desc":"格式化标签","label":""},{"key":"options","type":["Array"],"desc":"数据源","label":""}],"tpl":"","path":"./picker-item/picker-item"},"t-picker":{"key":"t-picker","label":"选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确定按钮文字","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:change","desc":"选中变化时候触发","label":""},{"key":"bind:pick","desc":"任何一列选中都会触发,不同的列参数不同。`context.column` 表示第几列变化,`context.index` 表示变化那一列的选中项下标","label":""}],"tpl":"","require":{"t-picker-item":"./picker-item/picker-item"},"path":"./picker/picker"},"t-popup":{"key":"t-popup","label":"气泡框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-popup.png","properties":[{"key":"closeBtn","type":["Boolean"],"desc":"关闭按钮,值类型为 Boolean 时表示是否显示关闭按钮。也可以自定义关闭按钮","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击遮罩层是否关闭","label":""},{"key":"content","type":["String"],"desc":"浮层里面的内容","label":""},{"key":"placement","type":["String"],"desc":"浮层出现位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"transitionProps","type":["Object"],"desc":"动画效果定义","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示浮层","label":""},{"key":"zIndex","type":["Number"],"desc":"组件层级,Web 侧样式默认为 5500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-overlay","t-class-content"],"events":[{"key":"bind:visible-change","desc":"当浮层隐藏或显示时触发","label":""}],"tpl":"","path":"./popup/popup"},"t-progress":{"key":"t-progress","label":"进度条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-progress.png","properties":[{"key":"color","type":["String","Object","Array"],"desc":"进度条颜色。示例:'#ED7B2F' 或 'orange' 或 `['#f00', '#0ff', '#f0f']` 或 `{ '0%': '#f00', '100%': '#0ff' }` 或 `{ from: '#000', to: '#000' }` 等","label":""},{"key":"label","type":["String","Boolean"],"desc":"进度百分比,可自定义","label":""},{"key":"percentage","type":["Number"],"desc":"进度条百分比","label":""},{"key":"size","type":["String","Number"],"desc":"进度条尺寸,示例:small/medium/large/240。small 值为 72; medium 值为 112;large 值为 160","label":""},{"key":"status","type":["String"],"desc":"进度条状态","label":""},{"key":"strokeWidth","type":["String","Number"],"desc":"进度条线宽。宽度数值不能超过 size 的一半,否则不能输出环形进度","label":""},{"key":"theme","type":["String"],"desc":"进度条风格。值为 line,标签(label)显示在进度条右侧;值为 plump,标签(label)显示在进度条里面;值为 circle,标签(label)显示在进度条正中间","label":""},{"key":"trackColor","type":["String"],"desc":"进度条未完成部分颜色","label":""}],"tpl":"","path":"./progress/progress"},"t-pull-down-refresh":{"key":"t-pull-down-refresh","label":"下拉刷新","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-pulldownrefresh.png","properties":[{"key":"loadingBarHeight","type":["String","Number"],"desc":"加载中下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"loadingProps","type":["Object"],"desc":"加载loading样式","label":""},{"key":"loadingTexts","type":["Array"],"desc":"提示语,组件内部默认值为 ['下拉刷新', '松手刷新', '正在刷新', '刷新完成']","label":""},{"key":"maxBarHeight","type":["String","Number"],"desc":"最大下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"refreshTimeout","type":["Number"],"desc":"刷新超时时间","label":""},{"key":"value","type":["Boolean"],"desc":"组件状态,值为 `true` 表示下拉状态,值为 `false` 表示收起状态","label":""}],"externalClasses":["t-class","t-class-loading","t-class-text","t-class-indicator"],"events":[{"key":"bind:change","desc":"下拉或收起时触发,用户手势往下滑动触发下拉状态,手势松开触发收起状态","label":""},{"key":"bind:refresh","desc":"结束下拉时触发","label":""},{"key":"bind:timeout","desc":"刷新超时触发","label":""}],"tpl":"拖拽该区域演示 中间下拉刷新","path":"./pull-down-refresh/pull-down-refresh"},"t-radio-group":{"key":"t-radio-group","label":"单选框组","icon":"","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用全部子单选框","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"options","type":["Array"],"desc":"单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"选中的值","label":""}],"events":[{"key":"bind:change","desc":"选中值发生变化时触发","label":""}],"tpl":"","require":{"t-radio":"./radio/radio"},"path":"./radio-group/radio-group"},"t-radio":{"key":"t-radio","label":"单选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-radio.png","properties":[{"key":"align","type":["String"],"desc":"复选框和内容相对位置","label":""},{"key":"allowUncheck","type":["Boolean"],"desc":"是否允许取消选中","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"单选按钮颜色","label":""},{"key":"content","type":["String"],"desc":"单选内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否为禁用态","label":""},{"key":"icon","type":["String","Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标,非选中态图标]。值为 fill-circle 表示图标为填充型图标,值为 stroke-line 表示图标为描边型图标","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"单选按钮的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./radio/radio"},"t-rate":{"key":"t-rate","label":"评分","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-rate.png","properties":[{"key":"allowHalf","type":["Boolean"],"desc":"是否允许半选","label":""},{"key":"color","type":["String","Array"],"desc":"评分图标的颜色,样式中默认为 #ED7B2F。一个值表示设置选中高亮的五角星颜色,示例:[选中颜色]。数组则表示分别设置 选中高亮的五角星颜色 和 未选中暗灰的五角星颜色,[选中颜色,未选中颜色]。示例:['#ED7B2F', '#E3E6EB']","label":""},{"key":"count","type":["Number"],"desc":"评分的数量","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用评分","label":""},{"key":"gap","type":["Number"],"desc":"评分图标的间距","label":""},{"key":"showText","type":["Boolean"],"desc":"是否显示对应的辅助文字","label":""},{"key":"size","type":["String"],"desc":"评分图标的大小,示例:`20`","label":""},{"key":"texts","type":["Array"],"desc":"评分等级对应的辅助文字。组件内置默认值为:['极差', '失望', '一般', '满意', '惊喜']。自定义值示例:['1分', '2分', '3分', '4分', '5分']","label":""},{"key":"value","type":["Number"],"desc":"选择评分的值","label":""},{"key":"variant","type":["String"],"desc":"形状类型,有描边类型和填充类型两种","label":""}],"events":[{"key":"bind:change","desc":"评分数改变时触发","label":""}],"tpl":"","path":"./rate/rate"},"t-search":{"key":"t-search","label":"搜索","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-search.png","properties":[{"key":"action","type":["String"],"desc":"自定义右侧操作按钮文字","label":""},{"key":"center","type":["Boolean"],"desc":"是否居中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"focus","type":["Boolean"],"desc":"是否聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"rightIcon","type":["String"],"desc":"右侧图标","label":""},{"key":"shape","type":["String"],"desc":"搜索框形状","label":""},{"key":"value","type":["String"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-input-container","t-class-cancel","t-class-left","t-class-right"],"events":[{"key":"bind:action-click","desc":"点击右侧操作按钮文字时触发","label":""},{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"值发生变化时触发","label":""},{"key":"bind:clear","desc":"点击清除时触发","label":""},{"key":"bind:focus","desc":"聚焦时触发","label":""},{"key":"bind:submit","desc":"提交时触发","label":""}],"tpl":"","path":"./search/search"},"t-skeleton":{"key":"t-skeleton","label":"骨架屏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-skeleton.png","properties":[{"key":"animation","type":["String"],"desc":"动画效果,有「渐变加载动画」和「闪烁加载动画」两种。值为 'none' 则表示没有动画","label":""},{"key":"delay","type":["Number"],"desc":"【开发中】延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"loading","type":["Boolean"],"desc":"是否为加载状态,如果是则显示骨架图,如果不是则显示加载完成的内容","label":""},{"key":"rowCol","type":["Array"],"desc":"用于设置行列数量、宽度高度、间距等。【示例一】,`[1, 1, 2]` 表示输出三行骨架图,第一行一列,第二行一列,第三行两列。【示例二】,`[1, 1, { width: '100px' }]` 表示自定义第三行的宽度为 `100px`。【示例三】,`[1, 2, [{ width, height }, { width, height, marginLeft }]]` 表示第三行有两列,且自定义宽度、高度和间距","label":""},{"key":"theme","type":["String"],"desc":"骨架图风格,有基础、头像组合等两大类","label":""}],"externalClasses":["t-class","t-class-avatar","t-class-image","t-class-text"],"tpl":"","path":"./skeleton/skeleton"},"t-slider":{"key":"t-slider","label":"滑块","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-slider.png","properties":[{"key":"colors","type":["Array"],"desc":"颜色,[已选择, 未选择]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"disabledColor","type":["Array"],"desc":"禁用状态滑动条的颜色,[已选, 未选]","label":""},{"key":"label","type":["String","Boolean"],"desc":"滑块当前值文本。
值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
值为 `${value}%` 则表示组件会根据占位符渲染文案;
值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值","label":""},{"key":"marks","type":["Object","Array"],"desc":"刻度标记,示例:`[0, 10, 40, 200]` 或者 `{ 5: '5¥', 10: '10%' }`","label":""},{"key":"max","type":["Number"],"desc":"滑块范围最大值","label":""},{"key":"min","type":["Number"],"desc":"滑块范围最小值","label":""},{"key":"range","type":["Boolean"],"desc":"双游标滑块","label":""},{"key":"showExtremeValue","type":["Boolean"],"desc":"是否边界值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"value","type":["Number","Array"],"desc":"滑块值","label":""}],"externalClasses":["t-class","t-class-bar","t-class-bar-active","t-class-bar-disabled","t-class-cursor"],"events":[{"key":"bind:change","desc":"滑块值变化时触发","label":""},{"key":"bind:dragend","desc":"结束拖动时触发","label":""},{"key":"bind:dragstart","desc":"开始拖动时触发","label":""}],"tpl":"","path":"./slider/slider"},"t-step-item":{"key":"t-step-item","label":"步骤","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"content","type":["String"],"desc":"步骤描述","label":""},{"key":"icon","type":["String"],"desc":"图标。传入 slot 代表使用插槽,其他字符串代表使用内置图标","label":""},{"key":"status","type":["String"],"desc":"当前步骤的状态","label":""},{"key":"subStepItems","type":["Array"],"desc":"子步骤条,仅支持 layout = 'vertical' 时","label":""},{"key":"title","type":["String"],"desc":"标题","label":""}],"externalClasses":["t-class","t-class-content","t-class-title","t-class-description","t-class-extra"],"tpl":"","path":"./step-item/step-item"},"t-stepper":{"key":"t-stepper","label":"步进器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-stepper.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"禁用全部操作","label":""},{"key":"disableInput","type":["Boolean"],"desc":"禁用输入框","label":""},{"key":"inputWidth","type":["Number"],"desc":"输入框宽度","label":""},{"key":"max","type":["Number"],"desc":"最大值","label":""},{"key":"min","type":["Number"],"desc":"最小值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"theme","type":["String"],"desc":"组件风格","label":""},{"key":"value","type":["String","Number"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-add","t-class-minus"],"events":[{"key":"bind:blur","desc":"输入框失去焦点时触发","label":""},{"key":"bind:change","desc":"数值发生变更时触发","label":""},{"key":"bind:overlimit","desc":"数值超出限制时触发","label":""}],"tpl":"","path":"./stepper/stepper"},"t-steps":{"key":"t-steps","label":"步骤条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"current","type":["String","Number"],"desc":"当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成","label":""},{"key":"currentStatus","type":["String"],"desc":"用于控制 current 指向的步骤条的状态","label":""},{"key":"layout","type":["String"],"desc":"步骤条方向,有两种:横向和纵向","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"separator","type":["String"],"desc":"步骤条分割符","label":""},{"key":"theme","type":["String"],"desc":"步骤条风格","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"当前步骤发生变化时触发","label":""}],"tpl":"","require":{"t-step-item":"./step-item/step-item"},"path":"./steps/steps"},"t-sticky":{"key":"t-sticky","label":"吸顶容器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-sticky.png","properties":[{"key":"container","type":["String"],"desc":"函数返回容器对应的 NodesRef 节点,将对应节点指定为组件的外部容器,滚动时组件会始终保持在容器范围内,当组件即将超出容器底部时,会返回原位置。","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"offsetTop","type":["String","Number"],"desc":"吸顶时与顶部的距离,单位`px`","label":""},{"key":"zIndex","type":["Number"],"desc":"吸顶时的 z-index","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:scroll","desc":"滚动时触发,scrollTop: 距离顶部位置,isFixed: 是否吸顶","label":""}],"tpl":"","path":"./sticky/sticky"},"t-swipe-cell":{"key":"t-swipe-cell","label":"滑动操作","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swipecell.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用滑动","label":""},{"key":"expanded","type":["String"],"desc":"操作项是否呈现为打开态","label":""},{"key":"left","type":["Array"],"desc":"左侧滑动操作项。所有行为同 `right`","label":""},{"key":"right","type":["Array"],"desc":"右侧滑动操作项。有两种定义方式,一种是使用数组,二种是使用插槽。`right.text` 表示操作文本,`right.className` 表示操作项类名,`right.style` 表示操作项样式,`right.onClick` 表示点击操作项后执行的回调函数。示例:`[{ text: '删除', style: 'background-color: red', onClick: () => {} }]`","label":""}],"events":[{"key":"bind:click","desc":"操作项点击时触发(插槽写法组件不触发,业务侧自定义内容和事件)","label":""}],"tpl":"删除","require":{"t-cell":"./cell/cell"},"path":"./swipe-cell/swipe-cell"},"t-swiper":{"key":"t-swiper","label":"轮播","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swiper.png","properties":[{"key":"animation","type":["String"],"desc":"轮播切换动画效果类型","label":""},{"key":"autoplay","type":["Boolean"],"desc":"是否自动播放","label":""},{"key":"current","type":["Number"],"desc":"当前轮播在哪一项(下标)","label":""},{"key":"direction","type":["String"],"desc":"轮播滑动方向,包括横向滑动和纵向滑动两个方向","label":""},{"key":"duration","type":["Number"],"desc":"滑动动画时长","label":""},{"key":"height","type":["Number"],"desc":"当使用垂直方向滚动时的高度","label":""},{"key":"interval","type":["Number"],"desc":"轮播间隔时间","label":""},{"key":"loop","type":["Boolean"],"desc":"是否循环播放","label":""},{"key":"navigation","type":["Object"],"desc":"导航器全部配置","label":""}],"events":[{"key":"bind:change","desc":"轮播切换时触发","label":""}],"tpl":"","require":{"t-swiper-item":"./swiper/swiper-item"},"path":"./swiper/swiper"},"t-switch":{"key":"t-switch","label":"开关","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-switch.png","properties":[{"key":"colors","type":["Array"],"desc":"自定义颜色,[打开时的颜色,关闭时的颜色]。组件默认颜色为 ['#0052d9', 'rgba(0, 0, 0, .26']。示例:[blue, gray]","label":""},{"key":"customValue","type":["Array"],"desc":"开关内容,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"label","type":["String"],"desc":"开关的标签","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载中状态","label":""},{"key":"size","type":["String"],"desc":"开关尺寸","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"开关值","label":""}],"events":[{"key":"bind:change","desc":"数据发生变化时触发","label":""}],"tpl":"","path":"./switch/switch"},"t-tab-bar-item":{"key":"t-tab-bar-item","label":"标签栏选项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"图标右上角提示信息","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"subTabBar","type":["Array"],"desc":"二级菜单","label":""},{"key":"value","type":["String","Number"],"desc":"标识符","label":""}],"tpl":"{{item.label}}","path":"./tab-bar-item/tab-bar-item"},"t-tab-bar":{"key":"t-tab-bar","label":"标签栏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示外边框","label":""},{"key":"color","type":["Array"],"desc":"标签颜色设置。示例:[选中标签的颜色, 未选中的标签颜色]","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在底部","label":""},{"key":"safeAreaInsetBottom","type":["Boolean"],"desc":"是否为 iPhoneX 留出底部安全距离","label":""},{"key":"split","type":["Boolean"],"desc":"是否需要分割线","label":""},{"key":"value","type":["String","Number","Array"],"desc":"当前选中标签的索引","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"选中标签切换时触发","label":""}],"tpl":"{{item.label}}","require":{"t-tab-bar-item":"./tab-bar-item/tab-bar-item"},"path":"./tab-bar/tab-bar"},"t-tab-panel":{"key":"t-tab-panel","label":"选项卡面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"destroyOnHide","type":["Boolean"],"desc":"选项卡内容隐藏时是否销毁","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用当前选项卡","label":""},{"key":"label","type":["String"],"desc":"选项卡名称","label":""},{"key":"panel","type":["String"],"desc":"用于自定义选项卡面板内容","label":""},{"key":"value","type":["String","Number"],"desc":"选项卡的值,唯一标识","label":""}],"tpl":"标签一内容","path":"./tab-panel/tab-panel"},"t-tabs":{"key":"t-tabs","label":"选项卡","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"animation","type":["Object"],"desc":"动画效果设置。其中 duration 表示动画时长","label":""},{"key":"placement","type":["String"],"desc":"选项卡位置","label":""},{"key":"showBottomLine","type":["Boolean"],"desc":"是否展示底部激活线条","label":""},{"key":"stickyProps","type":["Object"],"desc":"是否支持吸顶","label":""},{"key":"value","type":["String","Number"],"desc":"激活的选项卡值","label":""}],"externalClasses":["t-class","t-class-item","t-class-active","t-class-track"],"events":[{"key":"bind:change","desc":"激活的选项卡发生变化时触发","label":""}],"tpl":"标签一内容标签二内容","require":{"t-tab-panel":"./tab-panel/tab-panel"},"path":"./tabs/tabs"},"t-tag":{"key":"t-tag","label":"标签","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tag.png","properties":[{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"maxWidth","type":["String","Number"],"desc":"标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,用于描述组件不同的应用场景","label":""},{"key":"variant","type":["String"],"desc":"标签风格变体","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:click","desc":"点击时触发","label":""},{"key":"bind:close","desc":"如果关闭按钮存在,点击关闭按钮时触发","label":""}],"tpl":"重要","path":"./tag/tag"},"t-textarea":{"key":"t-textarea","label":"文本输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-textarea.png","properties":[{"key":"adjustPosition","type":["Boolean"],"desc":"键盘弹起时,是否自动上推页面","label":""},{"key":"autofocus","type":["Boolean"],"desc":"自动聚焦,拉起键盘","label":""},{"key":"autosize","type":["Boolean"],"desc":"是否自动增高,值为 autosize 时,style.height 不生效","label":""},{"key":"confirmHold","type":["Boolean"],"desc":"点击键盘右下角按钮时是否保持键盘不收起点","label":""},{"key":"confirmType","type":["String"],"desc":"设置键盘右下角按钮的文字,仅在 type='text'时生效","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用文本框","label":""},{"key":"focus","type":["Boolean"],"desc":"自动聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的字符个数","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"value","type":["String"],"desc":"文本框值","label":""}],"externalClasses":["t-class","t-class-textarea","t-class-placeholder","t-class-name"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入内容变化时触发","label":""},{"key":"bind:enter","desc":"点击完成时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""},{"key":"bind:line-change","desc":"行高发生变化时触发","label":""}],"tpl":"","path":"./textarea/textarea"},"t-toast":{"key":"t-toast","label":"轻提示","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-toast.png","properties":[{"key":"direction","type":["String"],"desc":"图标排列方式","label":""},{"key":"duration","type":["Number"],"desc":"弹窗显示毫秒数","label":""},{"key":"icon","type":["String"],"desc":"自定义图标","label":""},{"key":"message","type":["String"],"desc":"弹窗显示文字","label":""},{"key":"overlayProps","type":["Object"],"desc":"遮罩层属性,透传至 Overlay","label":""},{"key":"placement","type":["String"],"desc":"弹窗展示位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透,即不允许点击和滚动","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"theme","type":["String"],"desc":"提示类型","label":""}],"externalClasses":["t-class"],"tpl":"","path":"./toast/toast"},"t-transition":{"key":"t-transition","label":"动画","icon":"","properties":[{"key":"appear","type":["Boolean"],"desc":"首次出现是否展示动画","label":""},{"key":"customClass","type":["String"],"desc":"自定义容器类名","label":""},{"key":"destoryOnClose","type":["Boolean"],"desc":"隐藏时是否销毁内容","label":""},{"key":"duration","type":["Number"],"desc":"指定过渡时间","label":""},{"key":"name","type":["String"],"desc":"过渡类名","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"tpl":"","path":"./transition/transition"},"t-upload":{"key":"t-upload","label":"上传","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-upload.png","properties":[{"key":"addContent","type":["String"],"desc":"添加按钮内容。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"allowUploadDuplicateFile","type":["Boolean"],"desc":"是否允许重复上传相同文件名的文件","label":""},{"key":"config","type":["Object"],"desc":"图片上传配置,视频上传配置,文件上传配置等,包含图片尺寸、图片来源、视频来源、视频拍摄最长时间等。更多细节查看小程序官网。[图片上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)。[视频上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html)","label":""},{"key":"deleteBtn","type":["String"],"desc":"删除图标。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"fileListDisplay","type":["String"],"desc":"用于完全自定义文件列表内容","label":""},{"key":"files","type":["Array"],"desc":"已上传文件列表","label":""},{"key":"gridConfig","type":["Object"],"desc":"upload组件每行上传图片列数以及图片的宽度和高度","label":""},{"key":"gutter","type":["Number"],"desc":"预览窗格的 `gutter` 大小,单位 rpx","label":""},{"key":"imageProps","type":["Object"],"desc":"透传 Image 组件全部属性","label":""},{"key":"max","type":["Number"],"desc":"用于控制文件上传数量,值为 0 则不限制","label":""},{"key":"mediaType","type":["Array"],"desc":"支持上传的文件类型,图片或视频","label":""},{"key":"requestMethod","type":["String"],"desc":"自定义上传方法","label":""},{"key":"sizeLimit","type":["Number","Object"],"desc":"图片文件大小限制,单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`","label":""}],"events":[{"key":"bind:add","desc":"上传成功后触发,仅包含本次选择的照片;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""},{"key":"bind:complete","desc":"上传成功或失败后触发","label":""},{"key":"bind:fail","desc":"上传失败后触发","label":""},{"key":"bind:remove","desc":"移除文件时触发","label":""},{"key":"bind:select-change","desc":"选择文件或图片之后,上传之前,触发该事件。
`files` 表示之前已经上传完成的文件列表。
`currentSelectedFiles` 表示本次上传选中的文件列表","label":""},{"key":"bind:success","desc":"上传成功后触发,包含所有上传的文件;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""}],"tpl":"","path":"./upload/upload"}},"common":{"properties":{},"events":{}},"menu":[{"key":"menu-basic","label":"基础","submenu":[{"key":"subMenu-button","label":"Button 按钮","components":["t-button"]},{"key":"subMenu-divider","label":"Divider 分割线","components":["t-divider"]},{"key":"subMenu-fab","label":"Fab 悬浮按钮","components":["t-fab"]},{"key":"subMenu-icon","label":"Icon 图标","components":["t-icon"]}]},{"key":"menu-nav","label":"导航","submenu":[{"key":"subMenu-drawer","label":"Drawer 抽屉","components":["t-drawer"]},{"key":"subMenu-indexes","label":"Indexes 索引","components":["t-indexes"]},{"key":"subMenu-navbar","label":"Navbar 导航条","components":["t-navbar"]},{"key":"subMenu-steps","label":"Steps 步骤条","components":["t-steps"]},{"key":"subMenu-tabbar","label":"TabBar 标签栏","components":["t-tab-bar"]},{"key":"subMenu-tabs","label":"Tabs 选项卡","components":["t-tabs"]}]},{"key":"menu-input","label":"输入","submenu":[{"key":"subMenu-checkbox","label":"CheckBox 复选框","components":["t-checkbox"]},{"key":"subMenu-dateTimePicker","label":"DateTimePicker 时间选择器","components":["t-date-time-picker"]},{"key":"subMenu-input","label":"Input 输入框","components":["t-input"]},{"key":"subMenu-picker","label":"Picker 选择器","components":["t-picker"]},{"key":"subMenu-radio","label":"Radio 单选框","components":["t-radio"]},{"key":"subMenu-rate","label":"Rate 评分","components":["t-rate"]},{"key":"subMenu-search","label":"Search 搜索框","components":["t-search"]},{"key":"subMenu-slider","label":"Slider 滑动选择器","components":["t-slider"]},{"key":"subMenu-stepper","label":"Stepper 步进器","components":["t-stepper"]},{"key":"subMenu-switch","label":"Switch 开关","components":["t-switch"]},{"key":"subMenu-textarea","label":"Textarea 多行文本框","components":["t-textarea"]},{"key":"subMenu-upload","label":"UpLoad 上传","components":["t-upload"]}]},{"key":"menu-data","label":"数据展示","submenu":[{"key":"subMenu-avatar","label":"Avatar 头像","components":["t-avatar"]},{"key":"subMenu-badge","label":"Badge 徽标","components":["t-badge"]},{"key":"subMenu-cell","label":"Cell 单元格","components":["t-cell"]},{"key":"subMenu-collapse","label":"Collapse 折叠面板","components":["t-collapse"]},{"key":"subMenu-dropdown-menu","label":"DropdownMenu 下拉菜单","components":["t-dropdown-menu"]},{"key":"subMenu-empty","label":"Empty 空状态","components":["t-empty"]},{"key":"subMenu-footer","label":"Footer 页脚","components":["t-footer"]},{"key":"subMenu-grid","label":"Grid 宫格","components":["t-grid"]},{"key":"subMenu-image","label":"Image 图片","components":["t-image"]},{"key":"subMenu-skeleton","label":"Skeleton 骨架屏","components":["t-skeleton"]},{"key":"subMenu-sticky","label":"Sticky 吸顶容器","components":["t-sticky"]},{"key":"subMenu-swiper","label":"Swiper 轮播图","components":["t-swiper"]},{"key":"subMenu-tag","label":"Tag 标签","components":["t-tag"]}]},{"key":"menu-info","label":"消息提醒","submenu":[{"key":"subMenu-actionsheet","label":"ActionSheet 动作面板","components":["t-action-sheet"]},{"key":"subMenu-back-top","label":"BackTop 返回顶部","components":["t-back-top"]},{"key":"subMenu-dialog","label":"Dialog 弹出框","components":["t-dialog"]},{"key":"subMenu-loading","label":"Loading 加载","components":["t-loading"]},{"key":"subMenu-message","label":"Message 消息通知","components":["t-message"]},{"key":"subMenu-popup","label":"Popup 弹出层","components":["t-popup"]},{"key":"subMenu-progress","label":"Progress 进度条","components":["t-progress"]},{"key":"subMenu-pullDownRefresh","label":"PullDownRefresh 下拉刷新","components":["t-pull-down-refresh"]},{"key":"subMenu-swipeCell","label":"SwipeCell 滑动操作","components":["t-swipe-cell"]},{"key":"subMenu-toast","label":"Toast 轻提示","components":["t-toast"]}]}]} \ No newline at end of file diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts new file mode 100644 index 0000000..02e0cf5 --- /dev/null +++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts @@ -0,0 +1,85 @@ +import { SuperComponent } from '../common/src/index'; +export default class ActionSheet extends SuperComponent { + static show: (options: import("./show").ActionSheetShowOption) => WechatMiniprogram.Component.TrivialInstance; + behaviors: string[]; + externalClasses: string[]; + properties: { + align?: { + type: StringConstructor; + value?: "left" | "center"; + }; + cancelText?: { + type: StringConstructor; + value?: string; + }; + count?: { + type: NumberConstructor; + value?: number; + }; + description?: { + type: StringConstructor; + value?: string; + }; + items: { + type: ArrayConstructor; + value?: (string | import("./type").ActionSheetItem)[]; + required?: boolean; + }; + popupProps?: { + type: ObjectConstructor; + value?: import("../popup").TdPopupProps; + }; + showCancel?: { + type: BooleanConstructor; + value?: boolean; + }; + showOverlay?: { + type: BooleanConstructor; + value?: boolean; + }; + theme?: { + type: StringConstructor; + value?: "list" | "grid"; + }; + usingCustomNavbar?: { + type: BooleanConstructor; + value?: boolean; + }; + visible?: { + type: BooleanConstructor; + value?: boolean; + }; + defaultVisible?: { + type: BooleanConstructor; + value?: boolean; + }; + }; + data: { + prefix: string; + classPrefix: string; + gridThemeItems: any[]; + currentSwiperIndex: number; + defaultPopUpProps: {}; + defaultPopUpzIndex: number; + }; + controlledProps: { + key: string; + event: string; + }[]; + observers: { + 'visible, items'(visible: boolean): void; + }; + methods: { + init(): void; + memoInitialData(): void; + splitGridThemeActions(): void; + show(options: any): void; + close(): void; + onPopupVisibleChange({ detail }: { + detail: any; + }): void; + onSwiperChange(e: WechatMiniprogram.TouchEvent): void; + onSelect(event: WechatMiniprogram.TouchEvent): void; + onCancel(): void; + }; +} diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js new file mode 100644 index 0000000..c40d3c7 --- /dev/null +++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js @@ -0,0 +1 @@ +import{__decorate}from"tslib";import{chunk}from"../common/utils";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{ActionSheetTheme,show}from"./show";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-action-sheet`;let ActionSheet=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-cancel`],this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,gridThemeItems:[],currentSwiperIndex:0,defaultPopUpProps:{},defaultPopUpzIndex:11500},this.controlledProps=[{key:"visible",event:"visible-change"}],this.observers={"visible, items"(e){e&&this.init()}},this.methods={init(){this.memoInitialData(),this.splitGridThemeActions()},memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)},splitGridThemeActions(){this.data.theme===ActionSheetTheme.Grid&&this.setData({gridThemeItems:chunk(this.data.items,this.data.count)})},show(e){this.setData(Object.assign(Object.assign(Object.assign({},this.initialData),e),{visible:!0})),this.splitGridThemeActions(),this.autoClose=!0,this._trigger("visible-change",{visible:!0})},close(){this.triggerEvent("close",{trigger:"command"}),this._trigger("visible-change",{visible:!1})},onPopupVisibleChange({detail:e}){e.visible||(this.triggerEvent("close",{trigger:"overlay"}),this._trigger("visible-change",{visible:!1})),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)},onSwiperChange(e){const{current:t}=e.detail;this.setData({currentSwiperIndex:t})},onSelect(e){const{currentSwiperIndex:t,items:i,gridThemeItems:s,count:o,theme:r}=this.data,{index:n}=e.currentTarget.dataset,a=r===ActionSheetTheme.Grid,h=a?s[t][n]:i[n],c=a?n+t*o:n;h&&(this.triggerEvent("selected",{selected:h,index:c}),h.disabled||(this.triggerEvent("close",{trigger:"select"}),this._trigger("visible-change",{visible:!1})))},onCancel(){this.triggerEvent("cancel"),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)}}}};ActionSheet.show=show,ActionSheet=__decorate([wxComponent()],ActionSheet);export default ActionSheet; \ No newline at end of file diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json new file mode 100644 index 0000000..ca2efb1 --- /dev/null +++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json @@ -0,0 +1 @@ +{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-popup":"../popup/popup","t-grid":"../grid/grid","t-grid-item":"../grid-item/grid-item"}} \ No newline at end of file diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml new file mode 100644 index 0000000..cabb001 --- /dev/null +++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml @@ -0,0 +1 @@ +{{description}}