diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3284cf7..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/.hbuilderx/ -/unpackage/ -/node_modules/ \ No newline at end of file diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json deleted file mode 100644 index b6d9d89..0000000 --- a/.hbuilderx/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ - // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 - "version": "0.0", - "configurations": [{ - "default" : - { - "launchtype" : "local" - }, - "mp-toutiao" : - { - "launchtype" : "local" - }, - "type" : "uniCloud" - } - ] -} diff --git a/App.vue b/App.vue deleted file mode 100644 index 08204dc..0000000 --- a/App.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/components/Search.vue b/components/Search.vue deleted file mode 100644 index d924d5e..0000000 --- a/components/Search.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - \ No newline at end of file diff --git a/components/SearchHeader.vue b/components/SearchHeader.vue deleted file mode 100644 index 852d88a..0000000 --- a/components/SearchHeader.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/components/TitleHeader.vue b/components/TitleHeader.vue deleted file mode 100644 index 2a68099..0000000 --- a/components/TitleHeader.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/components/recommend.vue b/components/recommend.vue deleted file mode 100644 index c3edf58..0000000 --- a/components/recommend.vue +++ /dev/null @@ -1,260 +0,0 @@ - - - - - \ No newline at end of file diff --git a/components/recommend.vue.rej b/components/recommend.vue.rej deleted file mode 100644 index f9362a8..0000000 --- a/components/recommend.vue.rej +++ /dev/null @@ -1,12 +0,0 @@ -diff a/components/recommend.vue b/components/recommend.vue (rejected hunks) -@@ -142,9 +142,7 @@ - url: '/subPackages/details/scenicDetails?id='+id - }) - }else if(this.scenic_type_id == 5){ -- uni.navigateTo({ -- url: '/subPackages1/hotel/hotelDetails?id='+id -- }) -+ - }else if(this.scenic_type_id == 11){ - - }else if(this.scenic_type_id == 12){ diff --git a/index.html b/index.html deleted file mode 100644 index c3ff205..0000000 --- a/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - -
- - - diff --git a/main.js b/main.js deleted file mode 100644 index 56f7689..0000000 --- a/main.js +++ /dev/null @@ -1,33 +0,0 @@ -// #ifndef VUE3 -import Vue from 'vue' -import App from './App' -import store from './store' -import '@/static/js/request.js' -import '@/static/js/CommonFunction.js' - -Vue.config.productionTip = false - -// 去除生产环境console -if (uni.getSystemInfoSync().platform !== "devtools") { - console.log = () => {} -} - -App.mpType = 'app' - -const app = new Vue({ - store: store, - ...App -}) -app.$mount() -// #endif - -// #ifdef VUE3 -import { createSSRApp } from 'vue' -import App from './App.vue' -export function createApp() { - const app = createSSRApp(App) - return { - app - } -} -// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json deleted file mode 100644 index 0434ed0..0000000 --- a/manifest.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "name" : "changshu", - "appid" : "__UNI__9BF1085", - "description" : "", - "versionName" : "1.0.0", - "versionCode" : "100", - "transformPx" : false, - /* 5+App特有相关 */ - "app-plus" : { - "usingComponents" : true, - "nvueStyleCompiler" : "uni-app", - "compilerVersion" : 3, - "splashscreen" : { - "alwaysShowBeforeRender" : true, - "waiting" : true, - "autoclose" : true, - "delay" : 0 - }, - /* 模块配置 */ - "modules" : {}, - /* 应用发布信息 */ - "distribute" : { - /* android打包配置 */ - "android" : { - "permissions" : [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ] - }, - /* ios打包配置 */ - "ios" : {}, - /* SDK配置 */ - "sdkConfigs" : {} - } - }, - /* 快应用特有相关 */ - "quickapp" : {}, - /* 小程序特有相关 */ - "mp-weixin" : { - "appid" : "", - "setting" : { - "urlCheck" : false - }, - "usingComponents" : true - }, - "mp-alipay" : { - "usingComponents" : true - }, - "mp-baidu" : { - "usingComponents" : true - }, - "mp-toutiao" : { - "usingComponents" : true, - "setting" : { - "es6" : true, - "postcss" : true, - "minified" : true - }, - "appid" : "tt600a16b7ff358a5901" - }, - "uniStatistics" : { - "enable" : false - }, - "vueVersion" : "2", - "h5" : { - "devServer" : { - "port" : 5173, //端口号 - "disableHostCheck" : true, - "proxy" : { - "/api" : { - "target" : "https://changyoutaihuadmin.xmainc.com/", //目标接口域名 - "changeOrigin" : true, //是否跨域 - "secure" : true, // 设置支持https协议的代理 - "pathRewrite" : { - "^/api" : "" //意思就是把devApi这个替换成空 '' - } - } - } - }, - "router" : { - "mode" : "history" - }, - "sdkConfigs" : { - "maps" : { - "qqmap" : { - "key" : "4QQBZ-35LWQ-7725U-45ZGA-MIB5E-ZXBEA" - } - } - } - } -} diff --git a/pages.json b/pages.json deleted file mode 100644 index 6c918fa..0000000 --- a/pages.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages - { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "智游常熟" - } - }, - { - "path": "pages/user/user", - "style": { - "navigationStyle": "custom", - "navigationBarTitleText": "我的" - } - }, - { - "path": "pages/login/login", - "style": { - "navigationBarTitleText": "常熟文旅" - } - } - ], - "subPackages": [{ - "root": "subPackages", - "pages": [ - { - "path": "index", - "style": { - "navigationBarTitleText": "uni-app" - } - }, - { - "path": "rim/rimList", - "style": { - "navigationBarTitleText": "常熟周边" - } - }, - { - "path": "peripheralActivity/peripheralActivity", - "style": { - "navigationBarTitleText": "周边特惠活动" - } - }, - { - "path": "service/service", - "style": { - "navigationBarTitleText": "投诉建议" - } - }, - { - "path": "user/profile", - "style": { - "navigationBarTitleText": "个人信息" - } - }, - { - "path": "user/travelerList", - "style": { - "navigationBarTitleText": "常用信息" - } - }, - { - "path": "user/privacy", - "style": { - "navigationBarTitleText": "详情" - } - }, - { - "path": "user/privacyInfo", - "style": { - "navigationBarTitleText": "详情" - } - }, - { - "path": "user/coupon", - "style": { - "navigationBarTitleText": "优惠券" - } - } - ] - }], - "tabBar": { - "color": "#999999", - "selectedColor": "#333333", - "borderStyle": "black", - "backgroundColor": "#ffffff", - "fontSize": "24rpx", - "height": "100rpx", - "iconWidth": "40rpx", - "list": [{ - "pagePath": "pages/index/index", - "iconPath": "/static/images/home.png", - "selectedIconPath": "/static/images/selectHome.png", - "text": "首页" - }, - { - "pagePath": "pages/user/user", - "iconPath": "/static/images/mine.png", - "selectedIconPath": "/static/images/selectMine.png", - "text": "我的" - } - ] - }, - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "uni-app", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8" - }, - "uniIdRouter": {} -} diff --git a/pages/index/index.vue b/pages/index/index.vue deleted file mode 100644 index 30e7c36..0000000 --- a/pages/index/index.vue +++ /dev/null @@ -1,704 +0,0 @@ - - - - - diff --git a/pages/login/login.vue b/pages/login/login.vue deleted file mode 100644 index 98783b2..0000000 --- a/pages/login/login.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/user/user.vue b/pages/user/user.vue deleted file mode 100644 index 3dfca48..0000000 --- a/pages/user/user.vue +++ /dev/null @@ -1,650 +0,0 @@ - - - - - \ No newline at end of file diff --git a/static/css/base.css b/static/css/base.css deleted file mode 100644 index 83ecd6b..0000000 --- a/static/css/base.css +++ /dev/null @@ -1,71 +0,0 @@ -* { - padding: 0; - margin: 0; -} - -a { - text-decoration: none; -} - -input { - outline: none; - border: none; -} - -view { - box-sizing: border-box; -} - -.flex-between { - display: flex; - justify-content: space-between; - align-items: center; -} - -.flex-center { - display: flex; - justify-content: center; - align-items: center; -} - -.flex-around { - display: flex; - justify-content: space-around; - align-items: center; -} - -.flex-start { - display: flex; - justify-content: flex-start; - align-items: center; -} - -.flex-column { - display: flex; - flex-direction: column; -} - -/*单行隐藏*/ -.text-overflow { - overflow-x: hidden; - overflow-y: inherit; - text-overflow: ellipsis; - white-space: nowrap; -} - -/* 两行隐藏 */ -.text-overflowRows { - overflow: hidden; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - word-break: break-all; - display: -webkit-box; - -webkit-box-orient: vertical; -} -.finished-text { - text-align: center; - font-size: 24upx; - padding: 30upx 0; - color: #999999; -} - diff --git a/static/images/home.png b/static/images/home.png deleted file mode 100644 index 9d13426..0000000 Binary files a/static/images/home.png and /dev/null differ diff --git a/static/images/mine.png b/static/images/mine.png deleted file mode 100644 index 67970d8..0000000 Binary files a/static/images/mine.png and /dev/null differ diff --git a/static/images/selectHome.png b/static/images/selectHome.png deleted file mode 100644 index 2359413..0000000 Binary files a/static/images/selectHome.png and /dev/null differ diff --git a/static/images/selectMine.png b/static/images/selectMine.png deleted file mode 100644 index 16e1d34..0000000 Binary files a/static/images/selectMine.png and /dev/null differ diff --git a/static/js/CommonFunction.js b/static/js/CommonFunction.js deleted file mode 100644 index 2b6d2cc..0000000 --- a/static/js/CommonFunction.js +++ /dev/null @@ -1,234 +0,0 @@ -// 获取路径参数 -import Vue from "vue"; - -// 格式化富文本 -Vue.prototype.formateRichText = str => { - if (!str) return ""; - var reg = new RegExp("') - reg = new RegExp("section", "g"); - str = str.replace(reg, 'div'); - reg = new RegExp("↵", "g"); - str = str.replace(reg, '
'); - return str; -} - -// 获取路径参数 -Vue.prototype.getUrlPara = url => { - let arrUrl = url.split("?"); - let para = arrUrl[1]; - return para ? para.split('&') : false; -} - -// 中文姓名规则 -Vue.prototype.idChinaName = (val) => { - var pattern = /^[\u4E00-\u9FA5]{2,4}$/ - return pattern.test(val); -} - -// 身份证验证规则 -Vue.prototype.idCardNumber = (val) => { - var pattern = /^\d{17}(\d{1}|[X|x])$/ - return pattern.test(val); -} - -// 护照验证正则 -Vue.prototype.passportValid = (val) => { - return /^([a-zA-z]|[0-9]){5,17}$/.test(val); -} - -// 台胞证正则 -Vue.prototype.taiwanValid = (val) => { - return /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/.test(val); -} - -// 港澳通行证正则 -Vue.prototype.gangaoValid = (val) => { - return /^([A-Z]\d{6,10}(\(\w{1}\))?)$/.test(val); -} - -// 外国人永久居留证正则 -Vue.prototype.foreignerValid = (val) => { - return /(^[A-Za-z]{3})([0-9]{12}$)/.test(val); -} - -// 军官证正则 -Vue.prototype.officerValid = (val) => { - return /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/.test(val); -} - -// 邮箱验证正则 -Vue.prototype.emailValid = (val) => { - return /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(val) -} - -//判断电话号码格式 -Vue.prototype.IsTel = tel => { - var pattern = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; - return pattern.test(tel); -} - -//判断澳门电话号码格式 -Vue.prototype.IsTelMacau = tel => { - var pattern = /^\d{8}$/; - return pattern.test(tel); -} - -//验证码格式 -Vue.prototype.IsCode = code => { - var pattern = /^\d{6}$/; - return pattern.test(code); -} - -// 图片显示判断 -Vue.prototype.showImg = img => { - if (!img) return; - if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { - return img; - } else { - return this.NEWAPIURL + img; - } -} - -Vue.prototype.showImgs = img => { - if (!img) return; - if (img.indexOf('https://') != -1 || img.indexOf('http://') != -1) { - return img; - } else { - return 'https://api.cloud.sz-trip.com' + img; - } -} - -// 获取经纬度 -Vue.prototype.getLocation = () => { - uni.startLocationUpdate({ - success: res => { - uni.onLocationChange(data => { - uni.setStorageSync('location', { - lat: data.latitude, - lon: data.longitude - }); - }) - } - }) -} - -// 路由页面跳转 -Vue.prototype.gotoPath = path => { - uni.navigateTo({ - url: path - }) -} - -// 返回上一页 -Vue.prototype.goBack = () => { - getCurrentPages().length > 1 ? uni.navigateBack({}) : uni.switchTab({ - url: '/pages/index/index' - }) -} - -// 打开地图 -Vue.prototype.openLocation = (lat, lon) => { - uni.openLocation({ - latitude: Number(lat), - longitude: Number(lon), - success: function() { - console.log('success'); - } - }); -} - -// 拨打电话 -Vue.prototype.clickPhone = (phone) => { - uni.makePhoneCall({ - phoneNumber: phone - }) -} - -//周几 -Vue.prototype.ShowDateDay = day => { - let stateTxt = ""; - switch (day) { - case 0: - stateTxt = '周日' - break; - case 1: - stateTxt = '周一' - break; - case 2: - stateTxt = '周二' - break; - case 3: - stateTxt = '周三' - break; - case 4: - stateTxt = '周四' - break; - case 5: - stateTxt = '周五' - break; - case 6: - stateTxt = '周六' - break; - } - return stateTxt -} - -Date.prototype.Format = function(fmt) { //author: meizz - var o = { - "Y+": this.getFullYear(), //月份 - "M+": this.getMonth() + 1, //月份 - "d+": this.getDate(), //日 - "h+": this.getHours(), //小时 - "m+": this.getMinutes(), //分 - "s+": this.getSeconds(), //秒 - "q+": Math.floor((this.getMonth() + 3) / 3), //季度 - "S": this.getMilliseconds() //毫秒 - }; - if (/(y+)/.test(fmt)) - fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); - for (var k in o) - if (new RegExp("(" + k + ")").test(fmt)) - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]) - .length))); - return fmt; -} - -// 是否接收订阅消息 -Vue.prototype.getSubscribeMessage = () => { - const templateIds = [ - // 退款成功通知 - 'hRZoiEES2BWtKb6Xgsnn8khLQH9un5j_11qu0bwlhfE', - // 订单核销通知 - // '7D-JP7o0nQ_NiQk2w8mBs8jdT1_7ofvyBN-G9NLY2Zk', - // 订单支付成功通知 - // '6cHez9KDlCDp1_nWUlUSV7qEaahIQWmYVlOCE-J6ODQ', - // 出票失败提醒 - // 'G-N85zK2gPwgTRZWQrtHZo_-5TFcdAqBxSk4qsqcvVc', - // 出票结果通知 - 'YyTCUIYBnrj9CyKks8cOjNX_Rk8a4yVdswMP-zXVbhc' - ] - uni.requestSubscribeMessage({ - tmplIds: templateIds, - complete(res) { - uni.navigateTo({ - url: '/subPackages/order/trades' - }) - } - }) -} - -// 金刚区头图 -Vue.prototype.getHeadImg = type => { - return Vue.prototype.Post({ - type, - }, - '/api/public_service/getKumgangHeadImgList' - ).then(res => { - return res.data[0].image - }); -} \ No newline at end of file diff --git a/static/js/mmmm-image-tools/index.js b/static/js/mmmm-image-tools/index.js deleted file mode 100644 index acf40bc..0000000 --- a/static/js/mmmm-image-tools/index.js +++ /dev/null @@ -1,196 +0,0 @@ -function getLocalFilePath(path) { - if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) { - return path - } - if (path.indexOf('file://') === 0) { - return path - } - if (path.indexOf('/storage/emulated/0/') === 0) { - return path - } - if (path.indexOf('/') === 0) { - var localFilePath = plus.io.convertAbsoluteFileSystem(path) - if (localFilePath !== path) { - return localFilePath - } else { - path = path.substr(1) - } - } - return '_www/' + path -} - -function dataUrlToBase64(str) { - var array = str.split(',') - return array[array.length - 1] -} - -var index = 0 -function getNewFileId() { - return Date.now() + String(index++) -} - -function biggerThan(v1, v2) { - var v1Array = v1.split('.') - var v2Array = v2.split('.') - var update = false - for (var index = 0; index < v2Array.length; index++) { - var diff = v1Array[index] - v2Array[index] - if (diff !== 0) { - update = diff > 0 - break - } - } - return update -} - -export function pathToBase64(path) { - return new Promise(function(resolve, reject) { - if (typeof window === 'object' && 'document' in window) { - if (typeof FileReader === 'function') { - var xhr = new XMLHttpRequest() - xhr.open('GET', path, true) - xhr.responseType = 'blob' - xhr.onload = function() { - if (this.status === 200) { - let fileReader = new FileReader() - fileReader.onload = function(e) { - resolve(e.target.result) - } - fileReader.onerror = reject - fileReader.readAsDataURL(this.response) - } - } - xhr.onerror = reject - xhr.send() - return - } - var canvas = document.createElement('canvas') - var c2x = canvas.getContext('2d') - var img = new Image - img.onload = function() { - canvas.width = img.width - canvas.height = img.height - c2x.drawImage(img, 0, 0) - resolve(canvas.toDataURL()) - canvas.height = canvas.width = 0 - } - img.onerror = reject - img.src = path - return - } - if (typeof plus === 'object') { - plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) { - entry.file(function(file) { - var fileReader = new plus.io.FileReader() - fileReader.onload = function(data) { - resolve(data.target.result) - } - fileReader.onerror = function(error) { - reject(error) - } - fileReader.readAsDataURL(file) - }, function(error) { - reject(error) - }) - }, function(error) { - reject(error) - }) - return - } - if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { - wx.getFileSystemManager().readFile({ - filePath: path, - encoding: 'base64', - success: function(res) { - resolve('data:image/png;base64,' + res.data) - }, - fail: function(error) { - reject(error) - } - }) - return - } - reject(new Error('not support')) - }) -} - -export function base64ToPath(base64) { - return new Promise(function(resolve, reject) { - if (typeof window === 'object' && 'document' in window) { - base64 = base64.split(',') - var type = base64[0].match(/:(.*?);/)[1] - var str = atob(base64[1]) - var n = str.length - var array = new Uint8Array(n) - while (n--) { - array[n] = str.charCodeAt(n) - } - return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type }))) - } - var extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/) - if (extName) { - extName = extName[1] - } else { - reject(new Error('base64 error')) - } - var fileName = getNewFileId() + '.' + extName - if (typeof plus === 'object') { - var basePath = '_doc' - var dirPath = 'uniapp_temp' - var filePath = basePath + '/' + dirPath + '/' + fileName - if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime.innerVersion)) { - plus.io.resolveLocalFileSystemURL(basePath, function(entry) { - entry.getDirectory(dirPath, { - create: true, - exclusive: false, - }, function(entry) { - entry.getFile(fileName, { - create: true, - exclusive: false, - }, function(entry) { - entry.createWriter(function(writer) { - writer.onwrite = function() { - resolve(filePath) - } - writer.onerror = reject - writer.seek(0) - writer.writeAsBinary(dataUrlToBase64(base64)) - }, reject) - }, reject) - }, reject) - }, reject) - return - } - var bitmap = new plus.nativeObj.Bitmap(fileName) - bitmap.loadBase64Data(base64, function() { - bitmap.save(filePath, {}, function() { - bitmap.clear() - resolve(filePath) - }, function(error) { - bitmap.clear() - reject(error) - }) - }, function(error) { - bitmap.clear() - reject(error) - }) - return - } - if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { - var filePath = wx.env.USER_DATA_PATH + '/' + fileName - wx.getFileSystemManager().writeFile({ - filePath: filePath, - data: dataUrlToBase64(base64), - encoding: 'base64', - success: function() { - resolve(filePath) - }, - fail: function(error) { - reject(error) - } - }) - return - } - reject(new Error('not support')) - }) -} \ No newline at end of file diff --git a/static/js/mmmm-image-tools/package.json b/static/js/mmmm-image-tools/package.json deleted file mode 100644 index e8b9c0a..0000000 --- a/static/js/mmmm-image-tools/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "mmmm-image-tools", - "name": "image-tools", - "version": "1.4.0", - "description": "图像转换工具,可用于图像和base64的转换", - "keywords": [ - "base64", - "保存", - "图像" - ] -} \ No newline at end of file diff --git a/static/js/request.js b/static/js/request.js deleted file mode 100644 index bae4d5d..0000000 --- a/static/js/request.js +++ /dev/null @@ -1,78 +0,0 @@ -import Vue from 'vue'; -import store from '@/store'; - -// 定义 API URL -const CS_API_URL = 'https://api.cloud.sz-trip.com'; -const JDSZ_API_URL = 'https://api.cloud.sz-trip.com'; -const NEWAPIURL = process.env.NODE_ENV === 'development' ? CS_API_URL : CS_API_URL; - -// 获取token -const getToken = () => { - const userInfoFromStorage = uni.getStorageSync('userInfo'); - if (userInfoFromStorage) { - const userInfo = JSON.parse(userInfoFromStorage); - if (userInfo.token) { - return userInfo.token; - } - } - // return store.state.user.userInfo.token; - return "9e78c382-3fe9-4d54-82b2-27f83e1d5f24" -}; - -// 定义错误处理函数 -const handleError = (res, reject) => { - setTimeout(() => { - uni.showToast({ - title: res.data?.msg || res.msg, - icon: 'none' - }); - reject(res); - }, 0); - if (res.data?.code === 401) { - store.commit('changeLoginPath'); - } -}; - -// 挂载到 Vue 原型上 -Vue.prototype.NEWAPIURL = NEWAPIURL; -// #ifdef H5 -Vue.prototype.NEWAPIURL = '/api'; -// #endif - -Vue.prototype.Post = (params = {}, apiurl) => { - const token = getToken(); - if (token) { - params.token = token; - } - return new Promise((resolve, reject) => { - uni.showLoading({ - title: '加载中' - }); - uni.request({ - method: params.method || 'GET', - url: params && params.apiType === 'jdsz' ? JDSZ_API_URL + apiurl : Vue.prototype.NEWAPIURL + apiurl, - data: params, - header: { - 'content-type': 'application/json', - 'token': token || '' - }, - success: (res) => { - console.log('success', res.data); - uni.hideLoading() - if (res.data.code === 200 || res.data.code === 1) { - resolve(res.data); - } else { - handleError(res, reject); - } - }, - fail: (err) => { - uni.hideLoading() - console.log('err', err); - handleError(err, reject); - } - }); - }); -}; - -export default NEWAPIURL; - \ No newline at end of file diff --git a/static/js/weapp-qrcode.js b/static/js/weapp-qrcode.js deleted file mode 100644 index 382c43d..0000000 --- a/static/js/weapp-qrcode.js +++ /dev/null @@ -1,426 +0,0 @@ -// Core code comes from https://github.com/davidshimjs/qrcodejs -var QRCode; - -(function () { - /** - * Get the type by string length - * - * @private - * @param {String} sText - * @param {Number} nCorrectLevel - * @return {Number} type - */ - function _getTypeNumber(sText, nCorrectLevel) { - var nType = 1; - var length = _getUTF8Length(sText); - - for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) { - var nLimit = 0; - - switch (nCorrectLevel) { - case QRErrorCorrectLevel.L: - nLimit = QRCodeLimitLength[i][0]; - break; - case QRErrorCorrectLevel.M: - nLimit = QRCodeLimitLength[i][1]; - break; - case QRErrorCorrectLevel.Q: - nLimit = QRCodeLimitLength[i][2]; - break; - case QRErrorCorrectLevel.H: - nLimit = QRCodeLimitLength[i][3]; - break; - } - - if (length <= nLimit) { - break; - } else { - nType++; - } - } - - if (nType > QRCodeLimitLength.length) { - throw new Error("Too long data"); - } - - return nType; - } - - function _getUTF8Length(sText) { - var replacedText = encodeURI(sText).toString().replace(/\%[0-9a-fA-F]{2}/g, 'a'); - return replacedText.length + (replacedText.length != sText ? 3 : 0); - } - - function QR8bitByte(data) { - this.mode = QRMode.MODE_8BIT_BYTE; - this.data = data; - this.parsedData = []; - - // Added to support UTF-8 Characters - for (var i = 0, l = this.data.length; i < l; i++) { - var byteArray = []; - var code = this.data.charCodeAt(i); - - if (code > 0x10000) { - byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18); - byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12); - byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6); - byteArray[3] = 0x80 | (code & 0x3F); - } else if (code > 0x800) { - byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12); - byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6); - byteArray[2] = 0x80 | (code & 0x3F); - } else if (code > 0x80) { - byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6); - byteArray[1] = 0x80 | (code & 0x3F); - } else { - byteArray[0] = code; - } - - this.parsedData.push(byteArray); - } - - this.parsedData = Array.prototype.concat.apply([], this.parsedData); - - if (this.parsedData.length != this.data.length) { - this.parsedData.unshift(191); - this.parsedData.unshift(187); - this.parsedData.unshift(239); - } - } - - QR8bitByte.prototype = { - getLength: function (buffer) { - return this.parsedData.length; - }, - write: function (buffer) { - for (var i = 0, l = this.parsedData.length; i < l; i++) { - buffer.put(this.parsedData[i], 8); - } - } - }; - - - // QRCodeModel - function QRCodeModel(typeNumber, errorCorrectLevel) { - this.typeNumber = typeNumber; - this.errorCorrectLevel = errorCorrectLevel; - this.modules = null; - this.moduleCount = 0; - this.dataCache = null; - this.dataList = []; - } - QRCodeModel.prototype = { - addData: function (data) { var newData = new QR8bitByte(data); this.dataList.push(newData); this.dataCache = null; }, isDark: function (row, col) { - if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) { throw new Error(row + "," + col); } - return this.modules[row][col]; - }, getModuleCount: function () { return this.moduleCount; }, make: function () { this.makeImpl(false, this.getBestMaskPattern()); }, makeImpl: function (test, maskPattern) { - this.moduleCount = this.typeNumber * 4 + 17; this.modules = new Array(this.moduleCount); for (var row = 0; row < this.moduleCount; row++) { this.modules[row] = new Array(this.moduleCount); for (var col = 0; col < this.moduleCount; col++) { this.modules[row][col] = null; } } - this.setupPositionProbePattern(0, 0); this.setupPositionProbePattern(this.moduleCount - 7, 0); this.setupPositionProbePattern(0, this.moduleCount - 7); this.setupPositionAdjustPattern(); this.setupTimingPattern(); this.setupTypeInfo(test, maskPattern); if (this.typeNumber >= 7) { this.setupTypeNumber(test); } - if (this.dataCache == null) { this.dataCache = QRCodeModel.createData(this.typeNumber, this.errorCorrectLevel, this.dataList); } - this.mapData(this.dataCache, maskPattern); - }, setupPositionProbePattern: function (row, col) { for (var r = -1; r <= 7; r++) { if (row + r <= -1 || this.moduleCount <= row + r) continue; for (var c = -1; c <= 7; c++) { if (col + c <= -1 || this.moduleCount <= col + c) continue; if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { this.modules[row + r][col + c] = true; } else { this.modules[row + r][col + c] = false; } } } }, getBestMaskPattern: function () { - var minLostPoint = 0; var pattern = 0; for (var i = 0; i < 8; i++) { this.makeImpl(true, i); var lostPoint = QRUtil.getLostPoint(this); if (i == 0 || minLostPoint > lostPoint) { minLostPoint = lostPoint; pattern = i; } } - return pattern; - }, createMovieClip: function (target_mc, instance_name, depth) { - var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth); var cs = 1; this.make(); for (var row = 0; row < this.modules.length; row++) { var y = row * cs; for (var col = 0; col < this.modules[row].length; col++) { var x = col * cs; var dark = this.modules[row][col]; if (dark) { qr_mc.beginFill(0, 100); qr_mc.moveTo(x, y); qr_mc.lineTo(x + cs, y); qr_mc.lineTo(x + cs, y + cs); qr_mc.lineTo(x, y + cs); qr_mc.endFill(); } } } - return qr_mc; - }, setupTimingPattern: function () { - for (var r = 8; r < this.moduleCount - 8; r++) { - if (this.modules[r][6] != null) { continue; } - this.modules[r][6] = (r % 2 == 0); - } - for (var c = 8; c < this.moduleCount - 8; c++) { - if (this.modules[6][c] != null) { continue; } - this.modules[6][c] = (c % 2 == 0); - } - }, setupPositionAdjustPattern: function () { - var pos = QRUtil.getPatternPosition(this.typeNumber); for (var i = 0; i < pos.length; i++) { - for (var j = 0; j < pos.length; j++) { - var row = pos[i]; var col = pos[j]; if (this.modules[row][col] != null) { continue; } - for (var r = -2; r <= 2; r++) { for (var c = -2; c <= 2; c++) { if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { this.modules[row + r][col + c] = true; } else { this.modules[row + r][col + c] = false; } } } - } - } - }, setupTypeNumber: function (test) { - var bits = QRUtil.getBCHTypeNumber(this.typeNumber); for (var i = 0; i < 18; i++) { var mod = (!test && ((bits >> i) & 1) == 1); this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; } - for (var i = 0; i < 18; i++) { var mod = (!test && ((bits >> i) & 1) == 1); this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; } - }, setupTypeInfo: function (test, maskPattern) { - var data = (this.errorCorrectLevel << 3) | maskPattern; var bits = QRUtil.getBCHTypeInfo(data); for (var i = 0; i < 15; i++) { var mod = (!test && ((bits >> i) & 1) == 1); if (i < 6) { this.modules[i][8] = mod; } else if (i < 8) { this.modules[i + 1][8] = mod; } else { this.modules[this.moduleCount - 15 + i][8] = mod; } } - for (var i = 0; i < 15; i++) { var mod = (!test && ((bits >> i) & 1) == 1); if (i < 8) { this.modules[8][this.moduleCount - i - 1] = mod; } else if (i < 9) { this.modules[8][15 - i - 1 + 1] = mod; } else { this.modules[8][15 - i - 1] = mod; } } - this.modules[this.moduleCount - 8][8] = (!test); - }, mapData: function (data, maskPattern) { - var inc = -1; var row = this.moduleCount - 1; var bitIndex = 7; var byteIndex = 0; for (var col = this.moduleCount - 1; col > 0; col -= 2) { - if (col == 6) col--; while (true) { - for (var c = 0; c < 2; c++) { - if (this.modules[row][col - c] == null) { - var dark = false; if (byteIndex < data.length) { dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); } - var mask = QRUtil.getMask(maskPattern, row, col - c); if (mask) { dark = !dark; } - this.modules[row][col - c] = dark; bitIndex--; if (bitIndex == -1) { byteIndex++; bitIndex = 7; } - } - } - row += inc; if (row < 0 || this.moduleCount <= row) { row -= inc; inc = -inc; break; } - } - } - } - }; - QRCodeModel.PAD0 = 0xEC; - QRCodeModel.PAD1 = 0x11; - QRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) { - var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel); var buffer = new QRBitBuffer(); for (var i = 0; i < dataList.length; i++) { var data = dataList[i]; buffer.put(data.mode, 4); buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber)); data.write(buffer); } - var totalDataCount = 0; for (var i = 0; i < rsBlocks.length; i++) { totalDataCount += rsBlocks[i].dataCount; } - if (buffer.getLengthInBits() > totalDataCount * 8) { - throw new Error("code length overflow. (" - + buffer.getLengthInBits() - + ">" - + totalDataCount * 8 - + ")"); - } - if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) { buffer.put(0, 4); } - while (buffer.getLengthInBits() % 8 != 0) { buffer.putBit(false); } - while (true) { - if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } - buffer.put(QRCodeModel.PAD0, 8); if (buffer.getLengthInBits() >= totalDataCount * 8) { break; } - buffer.put(QRCodeModel.PAD1, 8); - } - return QRCodeModel.createBytes(buffer, rsBlocks); - }; - QRCodeModel.createBytes = function (buffer, rsBlocks) { - var offset = 0; var maxDcCount = 0; var maxEcCount = 0; var dcdata = new Array(rsBlocks.length); var ecdata = new Array(rsBlocks.length); for (var r = 0; r < rsBlocks.length; r++) { - var dcCount = rsBlocks[r].dataCount; var ecCount = rsBlocks[r].totalCount - dcCount; maxDcCount = Math.max(maxDcCount, dcCount); maxEcCount = Math.max(maxEcCount, ecCount); dcdata[r] = new Array(dcCount); for (var i = 0; i < dcdata[r].length; i++) { dcdata[r][i] = 0xff & buffer.buffer[i + offset]; } - offset += dcCount; var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); var modPoly = rawPoly.mod(rsPoly); ecdata[r] = new Array(rsPoly.getLength() - 1); for (var i = 0; i < ecdata[r].length; i++) { var modIndex = i + modPoly.getLength() - ecdata[r].length; ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; } - } - var totalCodeCount = 0; for (var i = 0; i < rsBlocks.length; i++) { totalCodeCount += rsBlocks[i].totalCount; } - var data = new Array(totalCodeCount); var index = 0; for (var i = 0; i < maxDcCount; i++) { for (var r = 0; r < rsBlocks.length; r++) { if (i < dcdata[r].length) { data[index++] = dcdata[r][i]; } } } - for (var i = 0; i < maxEcCount; i++) { for (var r = 0; r < rsBlocks.length; r++) { if (i < ecdata[r].length) { data[index++] = ecdata[r][i]; } } } - return data; - }; - var QRMode = { MODE_NUMBER: 1 << 0, MODE_ALPHA_NUM: 1 << 1, MODE_8BIT_BYTE: 1 << 2, MODE_KANJI: 1 << 3 }; - var QRErrorCorrectLevel = { L: 1, M: 0, Q: 3, H: 2 }; - var QRMaskPattern = { PATTERN000: 0, PATTERN001: 1, PATTERN010: 2, PATTERN011: 3, PATTERN100: 4, PATTERN101: 5, PATTERN110: 6, PATTERN111: 7 }; - var QRUtil = { - PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), getBCHTypeInfo: function (data) { - var d = data << 10; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); } - return ((data << 10) | d) ^ QRUtil.G15_MASK; - }, getBCHTypeNumber: function (data) { - var d = data << 12; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); } - return (data << 12) | d; - }, getBCHDigit: function (data) { - var digit = 0; while (data != 0) { digit++; data >>>= 1; } - return digit; - }, getPatternPosition: function (typeNumber) { return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; }, getMask: function (maskPattern, i, j) { switch (maskPattern) { case QRMaskPattern.PATTERN000: return (i + j) % 2 == 0; case QRMaskPattern.PATTERN001: return i % 2 == 0; case QRMaskPattern.PATTERN010: return j % 3 == 0; case QRMaskPattern.PATTERN011: return (i + j) % 3 == 0; case QRMaskPattern.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; case QRMaskPattern.PATTERN101: return (i * j) % 2 + (i * j) % 3 == 0; case QRMaskPattern.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 == 0; case QRMaskPattern.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 == 0; default: throw new Error("bad maskPattern:" + maskPattern); } }, getErrorCorrectPolynomial: function (errorCorrectLength) { - var a = new QRPolynomial([1], 0); for (var i = 0; i < errorCorrectLength; i++) { a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); } - return a; - }, getLengthInBits: function (mode, type) { if (1 <= type && type < 10) { switch (mode) { case QRMode.MODE_NUMBER: return 10; case QRMode.MODE_ALPHA_NUM: return 9; case QRMode.MODE_8BIT_BYTE: return 8; case QRMode.MODE_KANJI: return 8; default: throw new Error("mode:" + mode); } } else if (type < 27) { switch (mode) { case QRMode.MODE_NUMBER: return 12; case QRMode.MODE_ALPHA_NUM: return 11; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 10; default: throw new Error("mode:" + mode); } } else if (type < 41) { switch (mode) { case QRMode.MODE_NUMBER: return 14; case QRMode.MODE_ALPHA_NUM: return 13; case QRMode.MODE_8BIT_BYTE: return 16; case QRMode.MODE_KANJI: return 12; default: throw new Error("mode:" + mode); } } else { throw new Error("type:" + type); } }, getLostPoint: function (qrCode) { - var moduleCount = qrCode.getModuleCount(); var lostPoint = 0; for (var row = 0; row < moduleCount; row++) { - for (var col = 0; col < moduleCount; col++) { - var sameCount = 0; var dark = qrCode.isDark(row, col); for (var r = -1; r <= 1; r++) { - if (row + r < 0 || moduleCount <= row + r) { continue; } - for (var c = -1; c <= 1; c++) { - if (col + c < 0 || moduleCount <= col + c) { continue; } - if (r == 0 && c == 0) { continue; } - if (dark == qrCode.isDark(row + r, col + c)) { sameCount++; } - } - } - if (sameCount > 5) { lostPoint += (3 + sameCount - 5); } - } - } - for (var row = 0; row < moduleCount - 1; row++) { for (var col = 0; col < moduleCount - 1; col++) { var count = 0; if (qrCode.isDark(row, col)) count++; if (qrCode.isDark(row + 1, col)) count++; if (qrCode.isDark(row, col + 1)) count++; if (qrCode.isDark(row + 1, col + 1)) count++; if (count == 0 || count == 4) { lostPoint += 3; } } } - for (var row = 0; row < moduleCount; row++) { for (var col = 0; col < moduleCount - 6; col++) { if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) { lostPoint += 40; } } } - for (var col = 0; col < moduleCount; col++) { for (var row = 0; row < moduleCount - 6; row++) { if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) { lostPoint += 40; } } } - var darkCount = 0; for (var col = 0; col < moduleCount; col++) { for (var row = 0; row < moduleCount; row++) { if (qrCode.isDark(row, col)) { darkCount++; } } } - var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; lostPoint += ratio * 10; return lostPoint; - } - }; - var QRMath = { - glog: function (n) { - if (n < 1) { throw new Error("glog(" + n + ")"); } - return QRMath.LOG_TABLE[n]; - }, gexp: function (n) { - while (n < 0) { n += 255; } - while (n >= 256) { n -= 255; } - return QRMath.EXP_TABLE[n]; - }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256) - }; for (var i = 0; i < 8; i++) { QRMath.EXP_TABLE[i] = 1 << i; } - for (var i = 8; i < 256; i++) { QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; } - for (var i = 0; i < 255; i++) { QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; } - function QRPolynomial(num, shift) { - if (num.length == undefined) { throw new Error(num.length + "/" + shift); } - var offset = 0; while (offset < num.length && num[offset] == 0) { offset++; } - this.num = new Array(num.length - offset + shift); for (var i = 0; i < num.length - offset; i++) { this.num[i] = num[i + offset]; } - } - QRPolynomial.prototype = { - get: function (index) { return this.num[index]; }, getLength: function () { return this.num.length; }, multiply: function (e) { - var num = new Array(this.getLength() + e.getLength() - 1); for (var i = 0; i < this.getLength(); i++) { for (var j = 0; j < e.getLength(); j++) { num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); } } - return new QRPolynomial(num, 0); - }, mod: function (e) { - if (this.getLength() - e.getLength() < 0) { return this; } - var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0)); var num = new Array(this.getLength()); for (var i = 0; i < this.getLength(); i++) { num[i] = this.get(i); } - for (var i = 0; i < e.getLength(); i++) { num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); } - return new QRPolynomial(num, 0).mod(e); - } - }; - function QRRSBlock(totalCount, dataCount) { this.totalCount = totalCount; this.dataCount = dataCount; } - QRRSBlock.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]]; - QRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) { - var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel); if (rsBlock == undefined) { throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel); } - var length = rsBlock.length / 3; var list = []; for (var i = 0; i < length; i++) { var count = rsBlock[i * 3 + 0]; var totalCount = rsBlock[i * 3 + 1]; var dataCount = rsBlock[i * 3 + 2]; for (var j = 0; j < count; j++) { list.push(new QRRSBlock(totalCount, dataCount)); } } - return list; - }; - QRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) { switch (errorCorrectLevel) { case QRErrorCorrectLevel.L: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; case QRErrorCorrectLevel.M: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; case QRErrorCorrectLevel.Q: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; case QRErrorCorrectLevel.H: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; default: return undefined; } }; - function QRBitBuffer() { this.buffer = []; this.length = 0; } - QRBitBuffer.prototype = { - get: function (index) { var bufIndex = Math.floor(index / 8); return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) == 1; }, put: function (num, length) { for (var i = 0; i < length; i++) { this.putBit(((num >>> (length - i - 1)) & 1) == 1); } }, getLengthInBits: function () { return this.length; }, putBit: function (bit) { - var bufIndex = Math.floor(this.length / 8); if (this.buffer.length <= bufIndex) { this.buffer.push(0); } - if (bit) { this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); } - this.length++; - } - }; - var QRCodeLimitLength = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]]; - - // QRCode object - QRCode = function (canvasId, vOption) { - this._htOption = { - width: 256, - height: 256, - typeNumber: 4, - colorDark: "#000000", - colorLight: "#ffffff", - correctLevel: QRErrorCorrectLevel.H - }; - - if (typeof vOption === 'string') { - vOption = { - text: vOption - }; - } - - // Overwrites options - if (vOption) { - for (var i in vOption) { - this._htOption[i] = vOption[i]; - } - } - - this._oQRCode = null; - this.canvasId = canvasId - - if (this._htOption.text && this.canvasId) { - this.makeCode(this._htOption.text); - } - }; - - QRCode.prototype.makeCode = function (sText) { - this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel); - this._oQRCode.addData(sText); - this._oQRCode.make(); - this.makeImage(); - }; - - QRCode.prototype.makeImage = function () { - var _oContext - if (this._htOption.usingIn) { - _oContext = wx.createCanvasContext(this.canvasId, this._htOption.usingIn) - } - else { - _oContext = wx.createCanvasContext(this.canvasId) - } - var _htOption = this._htOption; - var oQRCode = this._oQRCode - - var nCount = oQRCode.getModuleCount(); - var nWidth = _htOption.padding ? (_htOption.width - 2 * _htOption.padding) / nCount : _htOption.width / nCount; - var nHeight = _htOption.padding ? (_htOption.height - 2 * _htOption.padding) / nCount : _htOption.height / nCount; - var nRoundedHeight = Math.round(nHeight); - var nRoundedWidth = Math.round(nWidth); - - if (_htOption.image && _htOption.image != '') { - _oContext.drawImage(_htOption.image, 0, 0, _htOption.width, _htOption.height) - } - _oContext.setFillStyle('#fff') - _oContext.fillRect(0, 0, _htOption.width, _htOption.height) - _oContext.save() - for (var row = 0; row < nCount; row++) { - for (var col = 0; col < nCount; col++) { - var bIsDark = oQRCode.isDark(row, col); - var nLeft = _htOption.padding ? col * nWidth + _htOption.padding : col * nWidth; - var nTop = _htOption.padding ? row * nHeight + _htOption.padding : row * nHeight; - _oContext.setStrokeStyle(bIsDark ? _htOption.colorDark : _htOption.colorLight) - // _oContext.setStrokeStyle('red') - _oContext.setLineWidth(1) - _oContext.setFillStyle(bIsDark ? _htOption.colorDark : _htOption.colorLight) - // _oContext.setFillStyle('red') - // if (bIsDark) { - _oContext.fillRect(nLeft, nTop, nWidth, nHeight); - // } - - // 안티 앨리어싱 방지 처리 - // if (bIsDark) { - _oContext.strokeRect( - Math.floor(nLeft) + 0.5, - Math.floor(nTop) + 0.5, - nRoundedHeight - ); - - _oContext.strokeRect( - Math.ceil(nLeft) - 0.5, - Math.ceil(nTop) - 0.5, - nRoundedWidth, - nRoundedHeight - ); - // } - // _oContext.fillRect( - // Math.floor(nLeft) + 0.5, - // Math.floor(nTop) + 0.5, - // nRoundedWidth, - // nRoundedHeight - // ); - // _oContext.fillRect( - // Math.ceil(nLeft) - 0.5, - // Math.ceil(nTop) - 0.5, - // nRoundedWidth, - // nRoundedHeight - // ); - // _oContext.clearRect( - // Math.floor(nLeft) + 0.5, - // Math.floor(nTop) + 0.5, - // nRoundedWidth, - // nRoundedHeight - // ); - // _oContext.clearRect( - // Math.ceil(nLeft) - 0.5, - // Math.ceil(nTop) - 0.5, - // nRoundedWidth, - // nRoundedHeight - // ); - } - } - - _oContext.draw(false, () => { - setTimeout(() => { - this.exportImage() - }, 800) - }) - }; - - // 保存为图片,将临时路径传给回调 - QRCode.prototype.exportImage = function (callback) { - if (this._htOption.callback && typeof this._htOption.callback === 'function') { - wx.canvasToTempFilePath({ - x: 0, - y: 0, - width: this._htOption.width, - height: this._htOption.height, - destWidth: this._htOption.width, - destHeight: this._htOption.height, - canvasId: this.canvasId, - success: (res) => { - this._htOption.callback({path: res.tempFilePath}) - } - }) - } - } - - QRCode.CorrectLevel = QRErrorCorrectLevel; -})(); - -module.exports = QRCode \ No newline at end of file diff --git a/store/index.js b/store/index.js deleted file mode 100644 index 441c8da..0000000 --- a/store/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -import user from "./modules/user" - -Vue.use(Vuex); - -export default new Vuex.Store({ - modules: { - user: user, - } -}) diff --git a/store/modules/user.js b/store/modules/user.js deleted file mode 100644 index d15a45e..0000000 --- a/store/modules/user.js +++ /dev/null @@ -1,69 +0,0 @@ -export default { - // 类似 vue 的 data - state: { - location: { - lat: '', - lon: '' - }, - userInfo: { - token: "" - }, //保存用户登录信息, - toPath: "", //要跳转过去的页面, - products: "",//订单数据 - linkProducts: "",//用来支付的订单数据 - coupon: "",//景点下单选择优惠券 - eshoppingCart: [],//自提产品购物车下单数据 - sshoppingCart: [],//邮寄产品购物车下单数据 - meetRoomReserve: { - date: null, //使用日期信息 - coupon: null, // 优惠券信息 - people: null, //预定人信息 - } // 会议预定信息 - }, - // 类似 vue 里的 mothods(同步方法) - mutations: { - //改变用户信息,自动保存到本地的COOKIE - changeUserInfo(state, data) { - state.userInfo = data; - uni.setStorageSync('userInfo', JSON.stringify(data)) - }, - changeLoationInfo(state, data) { - uni.setStorageSync('locationInfo', JSON.stringify(data)) - state.location = data; - }, - changeLoginPath(state) { - var pages = getCurrentPages() //获取加载的页面 - var currentPage = pages[pages.length - 1] //获取当前页面的对象 - state.toPath = currentPage.$page.fullPath - if(state.toPath == '/pages/login/login') return; - // 登录 - uni.navigateTo({ - url: '/pages/login/login' - }) - }, - //订单数据 - changeOrderInfo(state, data) { - state.products = data - }, - //获取支付订单数据 - changelinkProducts(state, data) { - state.linkProducts = data - }, - // 选择优惠券 - choseCoupon(state, data) { - state.coupon = data - }, - // 自提产品购物车下单 - changeOrderECart(state, data){ - state.eshoppingCart = data - }, - // 邮寄产品购物车下单 - changeOrderSCart(state, data){ - state.sshoppingCart = data - }, - //meetRoomReserve修改会议预定信息 - changeMeetRoomReserve(state, data){ - state.meetRoomReserve = data - } - } -} diff --git a/subPackages/index.vue b/subPackages/index.vue deleted file mode 100644 index 02409e3..0000000 --- a/subPackages/index.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/peripheralActivity/peripheralActivity.vue b/subPackages/peripheralActivity/peripheralActivity.vue deleted file mode 100644 index 02409e3..0000000 --- a/subPackages/peripheralActivity/peripheralActivity.vue +++ /dev/null @@ -1,8 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/rim/rimList.vue b/subPackages/rim/rimList.vue deleted file mode 100644 index 8c3fc3f..0000000 --- a/subPackages/rim/rimList.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/service/service.vue b/subPackages/service/service.vue deleted file mode 100644 index b4b39e5..0000000 --- a/subPackages/service/service.vue +++ /dev/null @@ -1,186 +0,0 @@ - - - - - diff --git a/subPackages/user/bindTel.vue b/subPackages/user/bindTel.vue deleted file mode 100644 index 9672cee..0000000 --- a/subPackages/user/bindTel.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/user/changeNickname.vue b/subPackages/user/changeNickname.vue deleted file mode 100644 index d37e3ad..0000000 --- a/subPackages/user/changeNickname.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/user/collect.vue b/subPackages/user/collect.vue deleted file mode 100644 index 29ff363..0000000 --- a/subPackages/user/collect.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subPackages/user/coupon.vue b/subPackages/user/coupon.vue deleted file mode 100644 index d95142d..0000000 --- a/subPackages/user/coupon.vue +++ /dev/null @@ -1,494 +0,0 @@ - - - - - diff --git a/subPackages/user/myAddressAdd.vue b/subPackages/user/myAddressAdd.vue deleted file mode 100644 index 88333ef..0000000 --- a/subPackages/user/myAddressAdd.vue +++ /dev/null @@ -1,386 +0,0 @@ - - - - - diff --git a/subPackages/user/myContactsAdd.vue b/subPackages/user/myContactsAdd.vue deleted file mode 100644 index ae9ff16..0000000 --- a/subPackages/user/myContactsAdd.vue +++ /dev/null @@ -1,247 +0,0 @@ - - - - - diff --git a/subPackages/user/privacy.vue b/subPackages/user/privacy.vue deleted file mode 100644 index b094b3a..0000000 --- a/subPackages/user/privacy.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - \ No newline at end of file diff --git a/subPackages/user/privacyInfo.vue b/subPackages/user/privacyInfo.vue deleted file mode 100644 index 84bcba7..0000000 --- a/subPackages/user/privacyInfo.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - - diff --git a/subPackages/user/profile.vue b/subPackages/user/profile.vue deleted file mode 100644 index b5a8997..0000000 --- a/subPackages/user/profile.vue +++ /dev/null @@ -1,350 +0,0 @@ - - - - - diff --git a/subPackages/user/travelerList.vue b/subPackages/user/travelerList.vue deleted file mode 100644 index 0e980ce..0000000 --- a/subPackages/user/travelerList.vue +++ /dev/null @@ -1,328 +0,0 @@ - - - - - diff --git a/uni.scss b/uni.scss deleted file mode 100644 index a05adb4..0000000 --- a/uni.scss +++ /dev/null @@ -1,76 +0,0 @@ -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ - -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ - -/* 颜色变量 */ - -/* 行为相关颜色 */ -$uni-color-primary: #007aff; -$uni-color-success: #4cd964; -$uni-color-warning: #f0ad4e; -$uni-color-error: #dd524d; - -/* 文字基本颜色 */ -$uni-text-color:#333;//基本色 -$uni-text-color-inverse:#fff;//反色 -$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 -$uni-text-color-placeholder: #808080; -$uni-text-color-disable:#c0c0c0; - -/* 背景颜色 */ -$uni-bg-color:#ffffff; -$uni-bg-color-grey:#f8f8f8; -$uni-bg-color-hover:#f1f1f1;//点击状态颜色 -$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 - -/* 边框颜色 */ -$uni-border-color:#c8c7cc; - -/* 尺寸变量 */ - -/* 文字尺寸 */ -$uni-font-size-sm:12px; -$uni-font-size-base:14px; -$uni-font-size-lg:16; - -/* 图片尺寸 */ -$uni-img-size-sm:20px; -$uni-img-size-base:26px; -$uni-img-size-lg:40px; - -/* Border Radius */ -$uni-border-radius-sm: 2px; -$uni-border-radius-base: 3px; -$uni-border-radius-lg: 6px; -$uni-border-radius-circle: 50%; - -/* 水平间距 */ -$uni-spacing-row-sm: 5px; -$uni-spacing-row-base: 10px; -$uni-spacing-row-lg: 15px; - -/* 垂直间距 */ -$uni-spacing-col-sm: 4px; -$uni-spacing-col-base: 8px; -$uni-spacing-col-lg: 12px; - -/* 透明度 */ -$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 - -/* 文章场景相关 */ -$uni-color-title: #2C405A; // 文章标题颜色 -$uni-font-size-title:20px; -$uni-color-subtitle: #555555; // 二级标题颜色 -$uni-font-size-subtitle:26px; -$uni-color-paragraph: #3F536E; // 文章段落颜色 -$uni-font-size-paragraph:15px; diff --git a/uni_modules/uni-badge/changelog.md b/uni_modules/uni-badge/changelog.md deleted file mode 100644 index 56581c4..0000000 --- a/uni_modules/uni-badge/changelog.md +++ /dev/null @@ -1,31 +0,0 @@ -## 1.2.1(2022-09-05) -- 修复 当 text 超过 max-num 时,badge 的宽度计算是根据 text 的长度计算,更改为 css 计算实际展示宽度,详见:[https://ask.dcloud.net.cn/question/150473](https://ask.dcloud.net.cn/question/150473) -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge) -## 1.1.7(2021-11-08) -- 优化 升级ui -- 修改 size 属性默认值调整为 small -- 修改 type 属性,默认值调整为 error,info 替换 default -## 1.1.6(2021-09-22) -- 修复 在字节小程序上样式不生效的 bug -## 1.1.5(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.4(2021-07-29) -- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性 -## 1.1.3(2021-06-24) -- 优化 示例项目 -## 1.1.1(2021-05-12) -- 新增 组件示例地址 -## 1.1.0(2021-05-12) -- 新增 uni-badge 的 absolute 属性,支持定位 -- 新增 uni-badge 的 offset 属性,支持定位偏移 -- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 -- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ -- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 -## 1.0.7(2021-05-07) -- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug -- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug -- 新增 uni-badge 属性 custom-style, 支持自定义样式 -## 1.0.6(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-badge/components/uni-badge/uni-badge.vue b/uni_modules/uni-badge/components/uni-badge/uni-badge.vue deleted file mode 100644 index 498bb1c..0000000 --- a/uni_modules/uni-badge/components/uni-badge/uni-badge.vue +++ /dev/null @@ -1,268 +0,0 @@ - - - - - diff --git a/uni_modules/uni-badge/package.json b/uni_modules/uni-badge/package.json deleted file mode 100644 index 7a34d9c..0000000 --- a/uni_modules/uni-badge/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "uni-badge", - "displayName": "uni-badge 数字角标", - "version": "1.2.1", - "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", - "keywords": [ - "", - "badge", - "uni-ui", - "uniui", - "数字角标", - "徽章" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "y", - "联盟": "y" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-badge/readme.md b/uni_modules/uni-badge/readme.md deleted file mode 100644 index bdf175d..0000000 --- a/uni_modules/uni-badge/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -## Badge 数字角标 -> **组件名:uni-badge** -> 代码块: `uBadge` - -数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-calendar/changelog.md b/uni_modules/uni-calendar/changelog.md deleted file mode 100644 index 0160b69..0000000 --- a/uni_modules/uni-calendar/changelog.md +++ /dev/null @@ -1,20 +0,0 @@ -## 1.4.7(2022-09-16) -- 可以使用 uni-scss 控制主题色 -## 1.4.6(2022-09-08) -- fix: 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件 -## 1.4.5(2022-02-25) -- 修复 条件编译 nvue 不支持的 css 样式 -## 1.4.4(2022-02-25) -- 修复 条件编译 nvue 不支持的 css 样式 -## 1.4.3(2021-09-22) -- 修复 startDate、 endDate 属性失效的 bug -## 1.4.2(2021-08-24) -- 新增 支持国际化 -## 1.4.1(2021-08-05) -- 修复 弹出层被 tabbar 遮盖 bug -## 1.4.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.3.16(2021-05-12) -- 新增 组件示例地址 -## 1.3.15(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-calendar/components/uni-calendar/calendar.js b/uni_modules/uni-calendar/components/uni-calendar/calendar.js deleted file mode 100644 index b8d7d6f..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/calendar.js +++ /dev/null @@ -1,546 +0,0 @@ -/** -* @1900-2100区间内的公历、农历互转 -* @charset UTF-8 -* @github https://github.com/jjonline/calendar.js -* @Author Jea杨(JJonline@JJonline.Cn) -* @Time 2014-7-21 -* @Time 2016-8-13 Fixed 2033hex、Attribution Annals -* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug -* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year -* @Version 1.0.3 -* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] -* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] -*/ -/* eslint-disable */ -var calendar = { - - /** - * 农历1900-2100的润大小信息表 - * @Array Of Property - * @return Hex - */ - lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 - 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 - 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 - 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 - 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 - 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 - 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 - 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 - 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 - 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 - 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 - 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 - 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 - 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 - 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 - /** Add By JJonline@JJonline.Cn**/ - 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 - 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 - 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 - 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 - 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 - 0x0d520], // 2100 - - /** - * 公历每个月份的天数普通表 - * @Array Of Property - * @return Number - */ - solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], - - /** - * 天干地支之天干速查表 - * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] - * @return Cn string - */ - Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], - - /** - * 天干地支之地支速查表 - * @Array Of Property - * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] - * @return Cn string - */ - Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], - - /** - * 天干地支之地支速查表<=>生肖 - * @Array Of Property - * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] - * @return Cn string - */ - Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], - - /** - * 24节气速查表 - * @Array Of Property - * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] - * @return Cn string - */ - solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], - - /** - * 1900-2100各年的24节气日期速查表 - * @Array Of Property - * @return 0x string For splice - */ - sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', - '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', - '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', - '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', - 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', - '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', - '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', - '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', - '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', - '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', - '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', - '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', - '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', - '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', - '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', - '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', - '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', - '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', - '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', - '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', - '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', - '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', - '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', - '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', - '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', - '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', - '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', - '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', - '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', - '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', - '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', - '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', - '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', - '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', - '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', - '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', - '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', - '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', - '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', - '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', - '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', - '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', - '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', - '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', - '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', - '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', - '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', - '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', - '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', - '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', - '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', - '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', - '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', - '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', - '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', - '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', - '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', - '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', - '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', - '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', - '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', - '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], - - /** - * 数字转中文速查表 - * @Array Of Property - * @trans ['日','一','二','三','四','五','六','七','八','九','十'] - * @return Cn string - */ - nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], - - /** - * 日期转农历称呼速查表 - * @Array Of Property - * @trans ['初','十','廿','卅'] - * @return Cn string - */ - nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], - - /** - * 月份转农历称呼速查表 - * @Array Of Property - * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] - * @return Cn string - */ - nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], - - /** - * 返回农历y年一整年的总天数 - * @param lunar Year - * @return Number - * @eg:var count = calendar.lYearDays(1987) ;//count=387 - */ - lYearDays: function (y) { - var i; var sum = 348 - for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } - return (sum + this.leapDays(y)) - }, - - /** - * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 - * @param lunar Year - * @return Number (0-12) - * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 - */ - leapMonth: function (y) { // 闰字编码 \u95f0 - return (this.lunarInfo[y - 1900] & 0xf) - }, - - /** - * 返回农历y年闰月的天数 若该年没有闰月则返回0 - * @param lunar Year - * @return Number (0、29、30) - * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 - */ - leapDays: function (y) { - if (this.leapMonth(y)) { - return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) - } - return (0) - }, - - /** - * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 - * @param lunar Year - * @return Number (-1、29、30) - * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 - */ - monthDays: function (y, m) { - if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 - return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) - }, - - /** - * 返回公历(!)y年m月的天数 - * @param solar Year - * @return Number (-1、28、29、30、31) - * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 - */ - solarDays: function (y, m) { - if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 - var ms = m - 1 - if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 - return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) - } else { - return (this.solarMonth[ms]) - } - }, - - /** - * 农历年份转换为干支纪年 - * @param lYear 农历年的年份数 - * @return Cn string - */ - toGanZhiYear: function (lYear) { - var ganKey = (lYear - 3) % 10 - var zhiKey = (lYear - 3) % 12 - if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 - if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 - return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] - }, - - /** - * 公历月、日判断所属星座 - * @param cMonth [description] - * @param cDay [description] - * @return Cn string - */ - toAstro: function (cMonth, cDay) { - var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' - var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] - return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 - }, - - /** - * 传入offset偏移量返回干支 - * @param offset 相对甲子的偏移量 - * @return Cn string - */ - toGanZhi: function (offset) { - return this.Gan[offset % 10] + this.Zhi[offset % 12] - }, - - /** - * 传入公历(!)y年获得该年第n个节气的公历日期 - * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 - * @return day Number - * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 - */ - getTerm: function (y, n) { - if (y < 1900 || y > 2100) { return -1 } - if (n < 1 || n > 24) { return -1 } - var _table = this.sTermInfo[y - 1900] - var _info = [ - parseInt('0x' + _table.substr(0, 5)).toString(), - parseInt('0x' + _table.substr(5, 5)).toString(), - parseInt('0x' + _table.substr(10, 5)).toString(), - parseInt('0x' + _table.substr(15, 5)).toString(), - parseInt('0x' + _table.substr(20, 5)).toString(), - parseInt('0x' + _table.substr(25, 5)).toString() - ] - var _calday = [ - _info[0].substr(0, 1), - _info[0].substr(1, 2), - _info[0].substr(3, 1), - _info[0].substr(4, 2), - - _info[1].substr(0, 1), - _info[1].substr(1, 2), - _info[1].substr(3, 1), - _info[1].substr(4, 2), - - _info[2].substr(0, 1), - _info[2].substr(1, 2), - _info[2].substr(3, 1), - _info[2].substr(4, 2), - - _info[3].substr(0, 1), - _info[3].substr(1, 2), - _info[3].substr(3, 1), - _info[3].substr(4, 2), - - _info[4].substr(0, 1), - _info[4].substr(1, 2), - _info[4].substr(3, 1), - _info[4].substr(4, 2), - - _info[5].substr(0, 1), - _info[5].substr(1, 2), - _info[5].substr(3, 1), - _info[5].substr(4, 2) - ] - return parseInt(_calday[n - 1]) - }, - - /** - * 传入农历数字月份返回汉语通俗表示法 - * @param lunar month - * @return Cn string - * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' - */ - toChinaMonth: function (m) { // 月 => \u6708 - if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 - var s = this.nStr3[m - 1] - s += '\u6708'// 加上月字 - return s - }, - - /** - * 传入农历日期数字返回汉字表示法 - * @param lunar day - * @return Cn string - * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' - */ - toChinaDay: function (d) { // 日 => \u65e5 - var s - switch (d) { - case 10: - s = '\u521d\u5341'; break - case 20: - s = '\u4e8c\u5341'; break - break - case 30: - s = '\u4e09\u5341'; break - break - default : - s = this.nStr2[Math.floor(d / 10)] - s += this.nStr1[d % 10] - } - return (s) - }, - - /** - * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” - * @param y year - * @return Cn string - * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' - */ - getAnimal: function (y) { - return this.Animals[(y - 4) % 12] - }, - - /** - * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON - * @param y solar year - * @param m solar month - * @param d solar day - * @return JSON object - * @eg:console.log(calendar.solar2lunar(1987,11,01)); - */ - solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 - // 年份限定、上限 - if (y < 1900 || y > 2100) { - return -1// undefined转换为数字变为NaN - } - // 公历传参最下限 - if (y == 1900 && m == 1 && d < 31) { - return -1 - } - // 未传参 获得当天 - if (!y) { - var objDate = new Date() - } else { - var objDate = new Date(y, parseInt(m) - 1, d) - } - var i; var leap = 0; var temp = 0 - // 修正ymd参数 - var y = objDate.getFullYear() - var m = objDate.getMonth() + 1 - var d = objDate.getDate() - var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 - for (i = 1900; i < 2101 && offset > 0; i++) { - temp = this.lYearDays(i) - offset -= temp - } - if (offset < 0) { - offset += temp; i-- - } - - // 是否今天 - var isTodayObj = new Date() - var isToday = false - if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { - isToday = true - } - // 星期几 - var nWeek = objDate.getDay() - var cWeek = this.nStr1[nWeek] - // 数字表示周几顺应天朝周一开始的惯例 - if (nWeek == 0) { - nWeek = 7 - } - // 农历年 - var year = i - var leap = this.leapMonth(i) // 闰哪个月 - var isLeap = false - - // 效验闰月 - for (i = 1; i < 13 && offset > 0; i++) { - // 闰月 - if (leap > 0 && i == (leap + 1) && isLeap == false) { - --i - isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 - } else { - temp = this.monthDays(year, i)// 计算农历普通月天数 - } - // 解除闰月 - if (isLeap == true && i == (leap + 1)) { isLeap = false } - offset -= temp - } - // 闰月导致数组下标重叠取反 - if (offset == 0 && leap > 0 && i == leap + 1) { - if (isLeap) { - isLeap = false - } else { - isLeap = true; --i - } - } - if (offset < 0) { - offset += temp; --i - } - // 农历月 - var month = i - // 农历日 - var day = offset + 1 - // 天干地支处理 - var sm = m - 1 - var gzY = this.toGanZhiYear(year) - - // 当月的两个节气 - // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` - var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 - var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 - - // 依据12节气修正干支月 - var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) - if (d >= firstNode) { - gzM = this.toGanZhi((y - 1900) * 12 + m + 12) - } - - // 传入的日期的节气与否 - var isTerm = false - var Term = null - if (firstNode == d) { - isTerm = true - Term = this.solarTerm[m * 2 - 2] - } - if (secondNode == d) { - isTerm = true - Term = this.solarTerm[m * 2 - 1] - } - // 日柱 当月一日与 1900/1/1 相差天数 - var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 - var gzD = this.toGanZhi(dayCyclical + d - 1) - // 该日期所属的星座 - var astro = this.toAstro(m, d) - - return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } - }, - - /** - * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON - * @param y lunar year - * @param m lunar month - * @param d lunar day - * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] - * @return JSON object - * @eg:console.log(calendar.lunar2solar(1987,9,10)); - */ - lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 - var isLeapMonth = !!isLeapMonth - var leapOffset = 0 - var leapMonth = this.leapMonth(y) - var leapDay = this.leapDays(y) - if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 - if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 - var day = this.monthDays(y, m) - var _day = day - // bugFix 2016-9-25 - // if month is leap, _day use leapDays method - if (isLeapMonth) { - _day = this.leapDays(y, m) - } - if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 - - // 计算农历的时间差 - var offset = 0 - for (var i = 1900; i < y; i++) { - offset += this.lYearDays(i) - } - var leap = 0; var isAdd = false - for (var i = 1; i < m; i++) { - leap = this.leapMonth(y) - if (!isAdd) { // 处理闰月 - if (leap <= i && leap > 0) { - offset += this.leapDays(y); isAdd = true - } - } - offset += this.monthDays(y, i) - } - // 转换闰月农历 需补充该年闰月的前一个月的时差 - if (isLeapMonth) { offset += day } - // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) - var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) - var calObj = new Date((offset + d - 31) * 86400000 + stmap) - var cY = calObj.getUTCFullYear() - var cM = calObj.getUTCMonth() + 1 - var cD = calObj.getUTCDate() - - return this.solar2lunar(cY, cM, cD) - } -} - -export default calendar diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json deleted file mode 100644 index fcbd13c..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "uni-calender.ok": "ok", - "uni-calender.cancel": "cancel", - "uni-calender.today": "today", - "uni-calender.MON": "MON", - "uni-calender.TUE": "TUE", - "uni-calender.WED": "WED", - "uni-calender.THU": "THU", - "uni-calender.FRI": "FRI", - "uni-calender.SAT": "SAT", - "uni-calender.SUN": "SUN" -} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js b/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json deleted file mode 100644 index 1ca43de..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "uni-calender.ok": "确定", - "uni-calender.cancel": "取消", - "uni-calender.today": "今日", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六" -} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json deleted file mode 100644 index e0fe33b..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "uni-calender.ok": "確定", - "uni-calender.cancel": "取消", - "uni-calender.today": "今日", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六" -} diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue deleted file mode 100644 index 369710e..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue +++ /dev/null @@ -1,188 +0,0 @@ - - - - - diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue deleted file mode 100644 index 9cd0e69..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue +++ /dev/null @@ -1,562 +0,0 @@ - - - - - diff --git a/uni_modules/uni-calendar/components/uni-calendar/util.js b/uni_modules/uni-calendar/components/uni-calendar/util.js deleted file mode 100644 index 2d6100b..0000000 --- a/uni_modules/uni-calendar/components/uni-calendar/util.js +++ /dev/null @@ -1,350 +0,0 @@ -import CALENDAR from './calendar.js' - -class Calendar { - constructor({ - date, - selected, - startDate, - endDate, - range - } = {}) { - // 当前日期 - this.date = this.getDate(new Date()) // 当前初入日期 - // 打点信息 - this.selected = selected || []; - // 范围开始 - this.startDate = startDate - // 范围结束 - this.endDate = endDate - this.range = range - // 多选状态 - this.cleanMultipleStatus() - // 每周日期 - this.weeks = {} - // this._getWeek(this.date.fullDate) - } - /** - * 设置日期 - * @param {Object} date - */ - setDate(date) { - this.selectDate = this.getDate(date) - this._getWeek(this.selectDate.fullDate) - } - - /** - * 清理多选状态 - */ - cleanMultipleStatus() { - this.multipleStatus = { - before: '', - after: '', - data: [] - } - } - - /** - * 重置开始日期 - */ - resetSatrtDate(startDate) { - // 范围开始 - this.startDate = startDate - - } - - /** - * 重置结束日期 - */ - resetEndDate(endDate) { - // 范围结束 - this.endDate = endDate - } - - /** - * 获取任意时间 - */ - getDate(date, AddDayCount = 0, str = 'day') { - if (!date) { - date = new Date() - } - if (typeof date !== 'object') { - date = date.replace(/-/g, '/') - } - const dd = new Date(date) - switch (str) { - case 'day': - dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 - break - case 'month': - if (dd.getDate() === 31) { - dd.setDate(dd.getDate() + AddDayCount) - } else { - dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 - } - break - case 'year': - dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 - break - } - const y = dd.getFullYear() - const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 - const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 - return { - fullDate: y + '-' + m + '-' + d, - year: y, - month: m, - date: d, - day: dd.getDay() - } - } - - - /** - * 获取上月剩余天数 - */ - _getLastMonthDays(firstDay, full) { - let dateArr = [] - for (let i = firstDay; i > 0; i--) { - const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() - dateArr.push({ - date: beforeDate, - month: full.month - 1, - lunar: this.getlunar(full.year, full.month - 1, beforeDate), - disable: true - }) - } - return dateArr - } - /** - * 获取本月天数 - */ - _currentMonthDys(dateData, full) { - let dateArr = [] - let fullDate = this.date.fullDate - for (let i = 1; i <= dateData; i++) { - let nowDate = full.year + '-' + (full.month < 10 ? - full.month : full.month) + '-' + (i < 10 ? - '0' + i : i) - // 是否今天 - let isDay = fullDate === nowDate - // 获取打点信息 - let info = this.selected && this.selected.find((item) => { - if (this.dateEqual(nowDate, item.date)) { - return item - } - }) - - // 日期禁用 - let disableBefore = true - let disableAfter = true - if (this.startDate) { - // let dateCompBefore = this.dateCompare(this.startDate, fullDate) - // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) - disableBefore = this.dateCompare(this.startDate, nowDate) - } - - if (this.endDate) { - // let dateCompAfter = this.dateCompare(fullDate, this.endDate) - // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) - disableAfter = this.dateCompare(nowDate, this.endDate) - } - let multiples = this.multipleStatus.data - let checked = false - let multiplesStatus = -1 - if (this.range) { - if (multiples) { - multiplesStatus = multiples.findIndex((item) => { - return this.dateEqual(item, nowDate) - }) - } - if (multiplesStatus !== -1) { - checked = true - } - } - let data = { - fullDate: nowDate, - year: full.year, - date: i, - multiple: this.range ? checked : false, - beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), - afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), - month: full.month, - lunar: this.getlunar(full.year, full.month, i), - disable: !(disableBefore && disableAfter), - isDay - } - if (info) { - data.extraInfo = info - } - - dateArr.push(data) - } - return dateArr - } - /** - * 获取下月天数 - */ - _getNextMonthDays(surplus, full) { - let dateArr = [] - for (let i = 1; i < surplus + 1; i++) { - dateArr.push({ - date: i, - month: Number(full.month) + 1, - lunar: this.getlunar(full.year, Number(full.month) + 1, i), - disable: true - }) - } - return dateArr - } - - /** - * 获取当前日期详情 - * @param {Object} date - */ - getInfo(date) { - if (!date) { - date = new Date() - } - const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) - return dateInfo - } - - /** - * 比较时间大小 - */ - dateCompare(startDate, endDate) { - // 计算截止时间 - startDate = new Date(startDate.replace('-', '/').replace('-', '/')) - // 计算详细项的截止时间 - endDate = new Date(endDate.replace('-', '/').replace('-', '/')) - if (startDate <= endDate) { - return true - } else { - return false - } - } - - /** - * 比较时间是否相等 - */ - dateEqual(before, after) { - // 计算截止时间 - before = new Date(before.replace('-', '/').replace('-', '/')) - // 计算详细项的截止时间 - after = new Date(after.replace('-', '/').replace('-', '/')) - if (before.getTime() - after.getTime() === 0) { - return true - } else { - return false - } - } - - - /** - * 获取日期范围内所有日期 - * @param {Object} begin - * @param {Object} end - */ - geDateAll(begin, end) { - var arr = [] - var ab = begin.split('-') - var ae = end.split('-') - var db = new Date() - db.setFullYear(ab[0], ab[1] - 1, ab[2]) - var de = new Date() - de.setFullYear(ae[0], ae[1] - 1, ae[2]) - var unixDb = db.getTime() - 24 * 60 * 60 * 1000 - var unixDe = de.getTime() - 24 * 60 * 60 * 1000 - for (var k = unixDb; k <= unixDe;) { - k = k + 24 * 60 * 60 * 1000 - arr.push(this.getDate(new Date(parseInt(k))).fullDate) - } - return arr - } - /** - * 计算阴历日期显示 - */ - getlunar(year, month, date) { - return CALENDAR.solar2lunar(year, month, date) - } - /** - * 设置打点 - */ - setSelectInfo(data, value) { - this.selected = value - this._getWeek(data) - } - - /** - * 获取多选状态 - */ - setMultiple(fullDate) { - let { - before, - after - } = this.multipleStatus - - if (!this.range) return - if (before && after) { - this.multipleStatus.before = '' - this.multipleStatus.after = '' - this.multipleStatus.data = [] - } else { - if (!before) { - this.multipleStatus.before = fullDate - } else { - this.multipleStatus.after = fullDate - if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); - } else { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); - } - } - } - this._getWeek(fullDate) - } - - /** - * 获取每周数据 - * @param {Object} dateData - */ - _getWeek(dateData) { - const { - year, - month - } = this.getDate(dateData) - let firstDay = new Date(year, month - 1, 1).getDay() - let currentDay = new Date(year, month, 0).getDate() - let dates = { - lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 - currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 - nextMonthDays: [], // 下个月开始几天 - weeks: [] - } - let canlender = [] - const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) - dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) - canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) - let weeks = {} - // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 - for (let i = 0; i < canlender.length; i++) { - if (i % 7 === 0) { - weeks[parseInt(i / 7)] = new Array(7) - } - weeks[parseInt(i / 7)][i % 7] = canlender[i] - } - this.canlender = canlender - this.weeks = weeks - } - - //静态方法 - // static init(date) { - // if (!this.instance) { - // this.instance = new Calendar(date); - // } - // return this.instance; - // } -} - - -export default Calendar diff --git a/uni_modules/uni-calendar/package.json b/uni_modules/uni-calendar/package.json deleted file mode 100644 index c59180c..0000000 --- a/uni_modules/uni-calendar/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "uni-calendar", - "displayName": "uni-calendar 日历", - "version": "1.4.7", - "description": "日历组件", - "keywords": [ - "uni-ui", - "uniui", - "日历", - "", - "打卡", - "日历选择" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-calendar/readme.md b/uni_modules/uni-calendar/readme.md deleted file mode 100644 index 4f3ca0e..0000000 --- a/uni_modules/uni-calendar/readme.md +++ /dev/null @@ -1,103 +0,0 @@ - - -## Calendar 日历 -> **组件名:uni-calendar** -> 代码块: `uCalendar` - - -日历组件 - -> **注意事项** -> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 -> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js) -> - 仅支持自定义组件模式 -> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() -> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意 -> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动 - - -### 安装方式 - -本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 - -如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) - -### 基本用法 - -在 ``template`` 中使用组件 - -```html - - - -``` - -### 通过方法打开日历 - -需要设置 `insert` 为 `false` - -```html - - - - -``` - -```javascript - -export default { - data() { - return {}; - }, - methods: { - open(){ - this.$refs.calendar.open(); - }, - confirm(e) { - console.log(e); - } - } -}; - -``` - - -## API - -### Calendar Props - -| 属性名 | 类型 | 默认值| 说明 | -| | | -| date | String |- | 自定义当前时间,默认为今天 | -| lunar | Boolean | false | 显示农历 | -| startDate | String |- | 日期选择范围-开始日期 | -| endDate | String |- | 日期选择范围-结束日期 | -| range | Boolean | false | 范围选择 | -| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 | -|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 | -| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] | -|showMonth | Boolean | true | 是否显示月份为背景 | - -### Calendar Events - -| 事件名 | 说明 |返回值| -| | | | -| open | 弹出日历组件,`insert :false` 时生效|- | - - - - - -## 组件示例 - -点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar) \ No newline at end of file diff --git a/uni_modules/uni-card/changelog.md b/uni_modules/uni-card/changelog.md deleted file mode 100644 index c3cd8c4..0000000 --- a/uni_modules/uni-card/changelog.md +++ /dev/null @@ -1,26 +0,0 @@ -## 1.3.1(2021-12-20) -- 修复 在vue页面下略缩图显示不正常的bug -## 1.3.0(2021-11-19) -- 重构插槽的用法 ,header 替换为 title -- 新增 actions 插槽 -- 新增 cover 封面图属性和插槽 -- 新增 padding 内容默认内边距离 -- 新增 margin 卡片默认外边距离 -- 新增 spacing 卡片默认内边距 -- 新增 shadow 卡片阴影属性 -- 取消 mode 属性,可使用组合插槽代替 -- 取消 note 属性 ,使用actions插槽代替 -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card) -## 1.2.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.2.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.8(2021-07-01) -- 优化 图文卡片无图片加载时,提供占位图标 -- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) -- 修复 thumbnail 不存在仍然占位的 bug -## 1.1.7(2021-05-12) -- 新增 组件示例地址 -## 1.1.6(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-card/components/uni-card/uni-card.vue b/uni_modules/uni-card/components/uni-card/uni-card.vue deleted file mode 100644 index 38cf594..0000000 --- a/uni_modules/uni-card/components/uni-card/uni-card.vue +++ /dev/null @@ -1,270 +0,0 @@ - - - - - diff --git a/uni_modules/uni-card/package.json b/uni_modules/uni-card/package.json deleted file mode 100644 index f16224d..0000000 --- a/uni_modules/uni-card/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "id": "uni-card", - "displayName": "uni-card 卡片", - "version": "1.3.1", - "description": "Card 组件,提供常见的卡片样式。", - "keywords": [ - "uni-ui", - "uniui", - "card", - "", - "卡片" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-icons", - "uni-scss" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-card/readme.md b/uni_modules/uni-card/readme.md deleted file mode 100644 index 7434e71..0000000 --- a/uni_modules/uni-card/readme.md +++ /dev/null @@ -1,12 +0,0 @@ - - -## Card 卡片 -> **组件名:uni-card** -> 代码块: `uCard` - -卡片视图组件。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-collapse/changelog.md b/uni_modules/uni-collapse/changelog.md deleted file mode 100644 index 292e4c7..0000000 --- a/uni_modules/uni-collapse/changelog.md +++ /dev/null @@ -1,36 +0,0 @@ -## 1.4.3(2022-01-25) -- 修复 初始化的时候 ,open 属性失效的bug -## 1.4.2(2022-01-21) -- 修复 微信小程序resize后组件收起的bug -## 1.4.1(2021-11-22) -- 修复 vue3中个别scss变量无法找到的问题 -## 1.4.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse) -## 1.3.3(2021-08-17) -- 优化 show-arrow 属性默认为true -## 1.3.2(2021-08-17) -- 新增 show-arrow 属性,控制是否显示右侧箭头 -## 1.3.1(2021-07-30) -- 优化 vue3下小程序事件警告的问题 -## 1.3.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.2.2(2021-07-21) -- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug -## 1.2.1(2021-07-21) -- 优化 组件示例 -## 1.2.0(2021-07-21) -- 新增 组件折叠动画 -- 新增 value\v-model 属性 ,动态修改面板折叠状态 -- 新增 title 插槽 ,可定义面板标题 -- 新增 border 属性 ,显示隐藏面板内容分隔线 -- 新增 title-border 属性 ,显示隐藏面板标题分隔线 -- 修复 resize 方法失效的Bug -- 修复 change 事件返回参数不正确的Bug -- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 -## 1.1.7(2021-05-12) -- 新增 组件示例地址 -## 1.1.6(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 1.1.5(2021-02-05) -- 调整为uni_modules目录规范 \ No newline at end of file diff --git a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue deleted file mode 100644 index d62a6a7..0000000 --- a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue +++ /dev/null @@ -1,402 +0,0 @@ - - - - - diff --git a/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue b/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue deleted file mode 100644 index 384c39a..0000000 --- a/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue +++ /dev/null @@ -1,147 +0,0 @@ - - - diff --git a/uni_modules/uni-collapse/package.json b/uni_modules/uni-collapse/package.json deleted file mode 100644 index 65349cf..0000000 --- a/uni_modules/uni-collapse/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "id": "uni-collapse", - "displayName": "uni-collapse 折叠面板", - "version": "1.4.3", - "description": "Collapse 组件,可以折叠 / 展开的内容区域。", - "keywords": [ - "uni-ui", - "折叠", - "折叠面板", - "手风琴" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-collapse/readme.md b/uni_modules/uni-collapse/readme.md deleted file mode 100644 index bc758eb..0000000 --- a/uni_modules/uni-collapse/readme.md +++ /dev/null @@ -1,12 +0,0 @@ - - -## Collapse 折叠面板 -> **组件名:uni-collapse** -> 代码块: `uCollapse` -> 关联组件:`uni-collapse-item`、`uni-icons`。 - - -折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-combox/changelog.md b/uni_modules/uni-combox/changelog.md deleted file mode 100644 index 23c2748..0000000 --- a/uni_modules/uni-combox/changelog.md +++ /dev/null @@ -1,15 +0,0 @@ -## 1.0.1(2021-11-23) -- 优化 label、label-width 属性 -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox) -## 0.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 0.0.6(2021-05-12) -- 新增 组件示例地址 -## 0.0.5(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 0.0.4(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 0.0.3(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue deleted file mode 100644 index d4cb79d..0000000 --- a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - - - diff --git a/uni_modules/uni-combox/package.json b/uni_modules/uni-combox/package.json deleted file mode 100644 index 4a05c3f..0000000 --- a/uni_modules/uni-combox/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "id": "uni-combox", - "displayName": "uni-combox 组合框", - "version": "1.0.1", - "description": "可以选择也可以输入的表单项 ", - "keywords": [ - "uni-ui", - "uniui", - "combox", - "组合框", - "select" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "n" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-combox/readme.md b/uni_modules/uni-combox/readme.md deleted file mode 100644 index ffa2cc8..0000000 --- a/uni_modules/uni-combox/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## Combox 组合框 -> **组件名:uni-combox** -> 代码块: `uCombox` - - -组合框组件。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-countdown/changelog.md b/uni_modules/uni-countdown/changelog.md deleted file mode 100644 index f25beef..0000000 --- a/uni_modules/uni-countdown/changelog.md +++ /dev/null @@ -1,24 +0,0 @@ -## 1.2.2(2022-01-19) -- 修复 在微信小程序中样式不生效的bug -## 1.2.1(2022-01-18) -- 新增 update 方法 ,在动态更新时间后,刷新组件 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown) -## 1.1.3(2021-10-18) -- 重构 -- 新增 font-size 支持自定义字体大小 -## 1.1.2(2021-08-24) -- 新增 支持国际化 -## 1.1.1(2021-07-30) -- 优化 vue3下小程序事件警告的问题 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.5(2021-06-18) -- 修复 uni-countdown 重复赋值跳两秒的 bug -## 1.0.4(2021-05-12) -- 新增 组件示例地址 -## 1.0.3(2021-05-08) -- 修复 uni-countdown 不能控制倒计时的 bug -## 1.0.2(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json deleted file mode 100644 index 06309cb..0000000 --- a/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-countdown.day": "day", - "uni-countdown.h": "h", - "uni-countdown.m": "m", - "uni-countdown.s": "s" -} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js b/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json deleted file mode 100644 index 358cdd1..0000000 --- a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-countdown.day": "天", - "uni-countdown.h": "时", - "uni-countdown.m": "分", - "uni-countdown.s": "秒" -} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json deleted file mode 100644 index e5a63de..0000000 --- a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-countdown.day": "天", - "uni-countdown.h": "時", - "uni-countdown.m": "分", - "uni-countdown.s": "秒" -} diff --git a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue deleted file mode 100644 index 1f8ef4e..0000000 --- a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue +++ /dev/null @@ -1,271 +0,0 @@ - - - diff --git a/uni_modules/uni-countdown/package.json b/uni_modules/uni-countdown/package.json deleted file mode 100644 index 70e99ee..0000000 --- a/uni_modules/uni-countdown/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id": "uni-countdown", - "displayName": "uni-countdown 倒计时", - "version": "1.2.2", - "description": "CountDown 倒计时组件", - "keywords": [ - "uni-ui", - "uniui", - "countdown", - "倒计时" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-countdown/readme.md b/uni_modules/uni-countdown/readme.md deleted file mode 100644 index 4bcb1aa..0000000 --- a/uni_modules/uni-countdown/readme.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## CountDown 倒计时 -> **组件名:uni-countdown** -> 代码块: `uCountDown` - -倒计时组件。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-checkbox/changelog.md b/uni_modules/uni-data-checkbox/changelog.md deleted file mode 100644 index c7a468a..0000000 --- a/uni_modules/uni-data-checkbox/changelog.md +++ /dev/null @@ -1,45 +0,0 @@ -## 1.0.3(2022-09-16) -- 可以使用 uni-scss 控制主题色 -## 1.0.2(2022-06-30) -- 优化 在 uni-forms 中的依赖注入方式 -## 1.0.1(2022-02-07) -- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) -## 0.2.5(2021-08-23) -- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 -## 0.2.4(2021-08-17) -- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 -## 0.2.3(2021-08-11) -- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 -## 0.2.2(2021-07-30) -- 优化 在uni-forms组件,与label不对齐的问题 -## 0.2.1(2021-07-27) -- 修复 单选默认值为0不能选中的Bug -## 0.2.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 0.1.11(2021-07-06) -- 优化 删除无用日志 -## 0.1.10(2021-07-05) -- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 -## 0.1.9(2021-07-05) -- 修复 nvue 黑框样式问题 -## 0.1.8(2021-06-28) -- 修复 selectedTextColor 属性不生效的Bug -## 0.1.7(2021-06-02) -- 新增 map 属性,可以方便映射text/value属性 -## 0.1.6(2021-05-26) -- 修复 不关联服务空间的情况下组件报错的Bug -## 0.1.5(2021-05-12) -- 新增 组件示例地址 -## 0.1.4(2021-04-09) -- 修复 nvue 下无法选中的问题 -## 0.1.3(2021-03-22) -- 新增 disabled属性 -## 0.1.2(2021-02-24) -- 优化 默认颜色显示 -## 0.1.1(2021-02-24) -- 新增 支持nvue -## 0.1.0(2021-02-18) -- “暂无数据”显示居中 diff --git a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue deleted file mode 100644 index 3c75d9f..0000000 --- a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue +++ /dev/null @@ -1,821 +0,0 @@ - - - - - diff --git a/uni_modules/uni-data-checkbox/package.json b/uni_modules/uni-data-checkbox/package.json deleted file mode 100644 index 113c350..0000000 --- a/uni_modules/uni-data-checkbox/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "id": "uni-data-checkbox", - "displayName": "uni-data-checkbox 数据选择器", - "version": "1.0.3", - "description": "通过数据驱动的单选框和复选框", - "keywords": [ - "uni-ui", - "checkbox", - "单选", - "多选", - "单选多选" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "^3.1.1" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-load-more","uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-data-checkbox/readme.md b/uni_modules/uni-data-checkbox/readme.md deleted file mode 100644 index 6eb253d..0000000 --- a/uni_modules/uni-data-checkbox/readme.md +++ /dev/null @@ -1,18 +0,0 @@ - - -## DataCheckbox 数据驱动的单选复选框 -> **组件名:uni-data-checkbox** -> 代码块: `uDataCheckbox` - - -本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: - -1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能 -2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验 -3. 本组件合并了单选多选 -4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性 - -在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-picker/changelog.md b/uni_modules/uni-data-picker/changelog.md deleted file mode 100644 index 7edcd87..0000000 --- a/uni_modules/uni-data-picker/changelog.md +++ /dev/null @@ -1,68 +0,0 @@ -## 1.0.9(2022-11-30) -- 修复 v-for 为使用 key 值控制台 warning -## 1.0.8(2022-09-16) -- 可以使用 uni-scss 控制主题色 -## 1.0.7(2022-07-06) -- 优化 pc端图标位置不正确的问题 -## 1.0.6(2022-07-05) -- 优化 显示样式 -## 1.0.5(2022-07-04) -- 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug -## 1.0.4(2022-04-19) -- 修复 字节小程序 本地数据无法选择下一级的Bug -## 1.0.3(2022-02-25) -- 修复 nvue 不支持的 v-show 的 bug -## 1.0.2(2022-02-25) -- 修复 条件编译 nvue 不支持的 css 样式 -## 1.0.1(2021-11-23) -- 修复 由上个版本引发的map、v-model等属性不生效的bug -## 1.0.0(2021-11-19) -- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-picker](https://uniapp.dcloud.io/component/uniui/uni-data-picker) -## 0.4.9(2021-10-28) -- 修复 VUE2 v-model 概率无效的 bug -## 0.4.8(2021-10-27) -- 修复 v-model 概率无效的 bug -## 0.4.7(2021-10-25) -- 新增 属性 spaceInfo 服务空间配置 HBuilderX 3.2.11+ -- 修复 树型 uniCloud 数据类型为 int 时报错的 bug -## 0.4.6(2021-10-19) -- 修复 非 VUE3 v-model 为 0 时无法选中的 bug -## 0.4.5(2021-09-26) -- 新增 清除已选项的功能(通过 clearIcon 属性配置是否显示按钮),同时提供 clear 方法以供调用,二者等效 -- 修复 readonly 为 true 时报错的 bug -## 0.4.4(2021-09-26) -- 修复 上一版本造成的 map 属性失效的 bug -- 新增 ellipsis 属性,支持配置 tab 选项长度过长时是否自动省略 -## 0.4.3(2021-09-24) -- 修复 某些情况下级联未触发的 bug -## 0.4.2(2021-09-23) -- 新增 提供 show 和 hide 方法,开发者可以通过 ref 调用 -- 新增 选项内容过长自动添加省略号 -## 0.4.1(2021-09-15) -- 新增 map 属性 字段映射,将 text/value 映射到数据中的其他字段 -## 0.4.0(2021-07-13) -- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 0.3.5(2021-06-04) -- 修复 无法加载云端数据的问题 -## 0.3.4(2021-05-28) -- 修复 v-model 无效问题 -- 修复 loaddata 为空数据组时加载时间过长问题 -- 修复 上个版本引出的本地数据无法选择带有 children 的 2 级节点 -## 0.3.3(2021-05-12) -- 新增 组件示例地址 -## 0.3.2(2021-04-22) -- 修复 非树形数据有 where 属性查询报错的问题 -## 0.3.1(2021-04-15) -- 修复 本地数据概率无法回显时问题 -## 0.3.0(2021-04-07) -- 新增 支持云端非树形表结构数据 -- 修复 根节点 parent_field 字段等于 null 时选择界面错乱问题 -## 0.2.0(2021-03-15) -- 修复 nodeclick、popupopened、popupclosed 事件无法触发的问题 -## 0.1.9(2021-03-09) -- 修复 微信小程序某些情况下无法选择的问题 -## 0.1.8(2021-02-05) -- 优化 部分样式在 nvue 上的兼容表现 -## 0.1.7(2021-02-05) -- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js b/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js deleted file mode 100644 index 6ef26a2..0000000 --- a/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js +++ /dev/null @@ -1,45 +0,0 @@ -// #ifdef H5 -export default { - name: 'Keypress', - props: { - disable: { - type: Boolean, - default: false - } - }, - mounted () { - const keyNames = { - esc: ['Esc', 'Escape'], - tab: 'Tab', - enter: 'Enter', - space: [' ', 'Spacebar'], - up: ['Up', 'ArrowUp'], - left: ['Left', 'ArrowLeft'], - right: ['Right', 'ArrowRight'], - down: ['Down', 'ArrowDown'], - delete: ['Backspace', 'Delete', 'Del'] - } - const listener = ($event) => { - if (this.disable) { - return - } - const keyName = Object.keys(keyNames).find(key => { - const keyName = $event.key - const value = keyNames[key] - return value === keyName || (Array.isArray(value) && value.includes(keyName)) - }) - if (keyName) { - // 避免和其他按键事件冲突 - setTimeout(() => { - this.$emit(keyName, {}) - }, 0) - } - } - document.addEventListener('keyup', listener) - this.$once('hook:beforeDestroy', () => { - document.removeEventListener('keyup', listener) - }) - }, - render: () => {} -} -// #endif diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue b/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue deleted file mode 100644 index 4553627..0000000 --- a/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue +++ /dev/null @@ -1,554 +0,0 @@ - - - - - diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js deleted file mode 100644 index c12fd54..0000000 --- a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js +++ /dev/null @@ -1,563 +0,0 @@ -export default { - props: { - localdata: { - type: [Array, Object], - default () { - return [] - } - }, - spaceInfo: { - type: Object, - default () { - return {} - } - }, - collection: { - type: String, - default: '' - }, - action: { - type: String, - default: '' - }, - field: { - type: String, - default: '' - }, - orderby: { - type: String, - default: '' - }, - where: { - type: [String, Object], - default: '' - }, - pageData: { - type: String, - default: 'add' - }, - pageCurrent: { - type: Number, - default: 1 - }, - pageSize: { - type: Number, - default: 20 - }, - getcount: { - type: [Boolean, String], - default: false - }, - getone: { - type: [Boolean, String], - default: false - }, - gettree: { - type: [Boolean, String], - default: false - }, - manual: { - type: Boolean, - default: false - }, - value: { - type: [Array, String, Number], - default () { - return [] - } - }, - modelValue: { - type: [Array, String, Number], - default () { - return [] - } - }, - preload: { - type: Boolean, - default: false - }, - stepSearh: { - type: Boolean, - default: true - }, - selfField: { - type: String, - default: '' - }, - parentField: { - type: String, - default: '' - }, - multiple: { - type: Boolean, - default: false - }, - map: { - type: Object, - default() { - return { - text: "text", - value: "value" - } - } - } - }, - data() { - return { - loading: false, - errorMessage: '', - loadMore: { - contentdown: '', - contentrefresh: '', - contentnomore: '' - }, - dataList: [], - selected: [], - selectedIndex: 0, - page: { - current: this.pageCurrent, - size: this.pageSize, - count: 0 - } - } - }, - computed: { - isLocaldata() { - return !this.collection.length - }, - postField() { - let fields = [this.field]; - if (this.parentField) { - fields.push(`${this.parentField} as parent_value`); - } - return fields.join(','); - }, - dataValue() { - let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined) - return isModelValue ? this.modelValue : this.value - }, - hasValue() { - if (typeof this.dataValue === 'number') { - return true - } - return (this.dataValue != null) && (this.dataValue.length > 0) - } - }, - created() { - this.$watch(() => { - var al = []; - ['pageCurrent', - 'pageSize', - 'spaceInfo', - 'value', - 'modelValue', - 'localdata', - 'collection', - 'action', - 'field', - 'orderby', - 'where', - 'getont', - 'getcount', - 'gettree' - ].forEach(key => { - al.push(this[key]) - }); - return al - }, (newValue, oldValue) => { - let needReset = false - for (let i = 2; i < newValue.length; i++) { - if (newValue[i] != oldValue[i]) { - needReset = true - break - } - } - if (newValue[0] != oldValue[0]) { - this.page.current = this.pageCurrent - } - this.page.size = this.pageSize - - this.onPropsChange() - }) - this._treeData = [] - }, - methods: { - onPropsChange() { - this._treeData = [] - }, - getCommand(options = {}) { - /* eslint-disable no-undef */ - let db = uniCloud.database(this.spaceInfo) - - const action = options.action || this.action - if (action) { - db = db.action(action) - } - - const collection = options.collection || this.collection - db = db.collection(collection) - - const where = options.where || this.where - if (!(!where || !Object.keys(where).length)) { - db = db.where(where) - } - - const field = options.field || this.field - if (field) { - db = db.field(field) - } - - const orderby = options.orderby || this.orderby - if (orderby) { - db = db.orderBy(orderby) - } - - const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current - const size = options.pageSize !== undefined ? options.pageSize : this.page.size - const getCount = options.getcount !== undefined ? options.getcount : this.getcount - const getTree = options.gettree !== undefined ? options.gettree : this.gettree - - const getOptions = { - getCount, - getTree - } - if (options.getTreePath) { - getOptions.getTreePath = options.getTreePath - } - - db = db.skip(size * (current - 1)).limit(size).get(getOptions) - - return db - }, - getNodeData(callback) { - if (this.loading) { - return - } - this.loading = true - this.getCommand({ - field: this.postField, - where: this._pathWhere() - }).then((res) => { - this.loading = false - this.selected = res.result.data - callback && callback() - }).catch((err) => { - this.loading = false - this.errorMessage = err - }) - }, - getTreePath(callback) { - if (this.loading) { - return - } - this.loading = true - - this.getCommand({ - field: this.postField, - getTreePath: { - startWith: `${this.selfField}=='${this.dataValue}'` - } - }).then((res) => { - this.loading = false - let treePath = [] - this._extractTreePath(res.result.data, treePath) - this.selected = treePath - callback && callback() - }).catch((err) => { - this.loading = false - this.errorMessage = err - }) - }, - loadData() { - if (this.isLocaldata) { - this._processLocalData() - return - } - - if (this.dataValue != null) { - this._loadNodeData((data) => { - this._treeData = data - this._updateBindData() - this._updateSelected() - }) - return - } - - if (this.stepSearh) { - this._loadNodeData((data) => { - this._treeData = data - this._updateBindData() - }) - } else { - this._loadAllData((data) => { - this._treeData = [] - this._extractTree(data, this._treeData, null) - this._updateBindData() - }) - } - }, - _loadAllData(callback) { - if (this.loading) { - return - } - this.loading = true - - this.getCommand({ - field: this.postField, - gettree: true, - startwith: `${this.selfField}=='${this.dataValue}'` - }).then((res) => { - this.loading = false - callback(res.result.data) - this.onDataChange() - }).catch((err) => { - this.loading = false - this.errorMessage = err - }) - }, - _loadNodeData(callback, pw) { - if (this.loading) { - return - } - this.loading = true - - this.getCommand({ - field: this.postField, - where: pw || this._postWhere(), - pageSize: 500 - }).then((res) => { - this.loading = false - callback(res.result.data) - this.onDataChange() - }).catch((err) => { - this.loading = false - this.errorMessage = err - }) - }, - _pathWhere() { - let result = [] - let where_field = this._getParentNameByField(); - if (where_field) { - result.push(`${where_field} == '${this.dataValue}'`) - } - - if (this.where) { - return `(${this.where}) && (${result.join(' || ')})` - } - - return result.join(' || ') - }, - _postWhere() { - let result = [] - let selected = this.selected - let parentField = this.parentField - if (parentField) { - result.push(`${parentField} == null || ${parentField} == ""`) - } - if (selected.length) { - for (var i = 0; i < selected.length - 1; i++) { - result.push(`${parentField} == '${selected[i].value}'`) - } - } - - let where = [] - if (this.where) { - where.push(`(${this.where})`) - } - if (result.length) { - where.push(`(${result.join(' || ')})`) - } - - return where.join(' && ') - }, - _nodeWhere() { - let result = [] - let selected = this.selected - if (selected.length) { - result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`) - } - - if (this.where) { - return `(${this.where}) && (${result.join(' || ')})` - } - - return result.join(' || ') - }, - _getParentNameByField() { - const fields = this.field.split(','); - let where_field = null; - for (let i = 0; i < fields.length; i++) { - const items = fields[i].split('as'); - if (items.length < 2) { - continue; - } - if (items[1].trim() === 'value') { - where_field = items[0].trim(); - break; - } - } - return where_field - }, - _isTreeView() { - return (this.parentField && this.selfField) - }, - _updateSelected() { - var dl = this.dataList - var sl = this.selected - let textField = this.map.text - let valueField = this.map.value - for (var i = 0; i < sl.length; i++) { - var value = sl[i].value - var dl2 = dl[i] - for (var j = 0; j < dl2.length; j++) { - var item2 = dl2[j] - if (item2[valueField] === value) { - sl[i].text = item2[textField] - break - } - } - } - }, - _updateBindData(node) { - const { - dataList, - hasNodes - } = this._filterData(this._treeData, this.selected) - - let isleaf = this._stepSearh === false && !hasNodes - - if (node) { - node.isleaf = isleaf - } - - this.dataList = dataList - this.selectedIndex = dataList.length - 1 - - if (!isleaf && this.selected.length < dataList.length) { - this.selected.push({ - value: null, - text: "请选择" - }) - } - - return { - isleaf, - hasNodes - } - }, - _filterData(data, paths) { - let dataList = [] - let hasNodes = true - - dataList.push(data.filter((item) => { - return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '') - })) - for (let i = 0; i < paths.length; i++) { - var value = paths[i].value - var nodes = data.filter((item) => { - return item.parent_value === value - }) - - if (nodes.length) { - dataList.push(nodes) - } else { - hasNodes = false - } - } - - return { - dataList, - hasNodes - } - }, - _extractTree(nodes, result, parent_value) { - let list = result || [] - let valueField = this.map.value - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i] - - let child = {} - for (let key in node) { - if (key !== 'children') { - child[key] = node[key] - } - } - if (parent_value !== null && parent_value !== undefined && parent_value !== '') { - child.parent_value = parent_value - } - result.push(child) - - let children = node.children - if (children) { - this._extractTree(children, result, node[valueField]) - } - } - }, - _extractTreePath(nodes, result) { - let list = result || [] - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i] - - let child = {} - for (let key in node) { - if (key !== 'children') { - child[key] = node[key] - } - } - result.push(child) - - let children = node.children - if (children) { - this._extractTreePath(children, result) - } - } - }, - _findNodePath(key, nodes, path = []) { - let textField = this.map.text - let valueField = this.map.value - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i] - let children = node.children - let text = node[textField] - let value = node[valueField] - - path.push({ - value, - text - }) - - if (value === key) { - return path - } - - if (children) { - const p = this._findNodePath(key, children, path) - if (p.length) { - return p - } - } - - path.pop() - } - return [] - }, - _processLocalData() { - this._treeData = [] - this._extractTree(this.localdata, this._treeData) - - var inputValue = this.dataValue - if (inputValue === undefined) { - return - } - - if (Array.isArray(inputValue)) { - inputValue = inputValue[inputValue.length - 1] - if (typeof inputValue === 'object' && inputValue[this.map.value]) { - inputValue = inputValue[this.map.value] - } - } - - this.selected = this._findNodePath(inputValue, this.localdata) - } - } -} diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue deleted file mode 100644 index 159b54d..0000000 --- a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue +++ /dev/null @@ -1,335 +0,0 @@ - - - - diff --git a/uni_modules/uni-data-picker/package.json b/uni_modules/uni-data-picker/package.json deleted file mode 100644 index 04b4610..0000000 --- a/uni_modules/uni-data-picker/package.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "id": "uni-data-picker", - "displayName": "uni-data-picker 数据驱动的picker选择器", - "version": "1.0.9", - "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", - "keywords": [ - "uni-ui", - "uniui", - "picker", - "级联", - "省市区", - "" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-load-more", - "uni-icons", - "uni-scss" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "u" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-data-picker/readme.md b/uni_modules/uni-data-picker/readme.md deleted file mode 100644 index 6cda224..0000000 --- a/uni_modules/uni-data-picker/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -## DataPicker 级联选择 -> **组件名:uni-data-picker** -> 代码块: `uDataPicker` -> 关联组件:`uni-data-pickerview`、`uni-load-more`。 - - -`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。 - -支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 - -候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。 - -`` 组件尤其适用于地址选择、分类选择等选择类。 - -`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。 - -`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。 - -在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-select/changelog.md b/uni_modules/uni-data-select/changelog.md deleted file mode 100644 index da04296..0000000 --- a/uni_modules/uni-data-select/changelog.md +++ /dev/null @@ -1,25 +0,0 @@ -## 1.0.1(2022-12-06) -- 修复 当where变化时,数据不会自动更新的问题 - -## 0.1.9(2022-09-05) -- 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框 -## 0.1.8(2022-08-29) -- 修复 点击的位置不准确 -## 0.1.7(2022-08-12) -- 新增 支持 disabled 属性 -## 0.1.6(2022-07-06) -- 修复 pc端宽度异常的bug -## 0.1.5 -- 修复 pc端宽度异常的bug -## 0.1.4(2022-07-05) -- 优化 显示样式 -## 0.1.3(2022-06-02) -- 修复 localdata 赋值不生效的 bug -- 新增 支持 uni.scss 修改颜色 -- 新增 支持选项禁用(数据选项设置 disabled: true 即禁用) -## 0.1.2(2022-05-08) -- 修复 当 value 为 0 时选择不生效的 bug -## 0.1.1(2022-05-07) -- 新增 记住上次的选项(仅 collection 存在时有效) -## 0.1.0(2022-04-22) -- 初始化 diff --git a/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue deleted file mode 100644 index 8bbfcf1..0000000 --- a/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue +++ /dev/null @@ -1,447 +0,0 @@ - - - - - diff --git a/uni_modules/uni-data-select/package.json b/uni_modules/uni-data-select/package.json deleted file mode 100644 index a58b7b1..0000000 --- a/uni_modules/uni-data-select/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "uni-data-select", - "displayName": "uni-data-select 下拉框选择器", - "version": "1.0.1", - "description": "通过数据驱动的下拉框选择器", - "keywords": [ - "uni-ui", - "select", - "uni-data-select", - "下拉框", - "下拉选" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "^3.1.1" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-load-more"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "u", - "app-nvue": "n" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "u", - "百度": "u", - "字节跳动": "u", - "QQ": "u", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-data-select/readme.md b/uni_modules/uni-data-select/readme.md deleted file mode 100644 index eb58de3..0000000 --- a/uni_modules/uni-data-select/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -## DataSelect 下拉框选择器 -> **组件名:uni-data-select** -> 代码块: `uDataSelect` - -当选项过多时,使用下拉菜单展示并选择内容 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-dateformat/changelog.md b/uni_modules/uni-dateformat/changelog.md deleted file mode 100644 index d551d7b..0000000 --- a/uni_modules/uni-dateformat/changelog.md +++ /dev/null @@ -1,10 +0,0 @@ -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat) -## 0.0.5(2021-07-08) -- 调整 默认时间不再是当前时间,而是显示'-'字符 -## 0.0.4(2021-05-12) -- 新增 组件示例地址 -## 0.0.3(2021-02-04) -- 调整为uni_modules目录规范 -- 修复 iOS 平台日期格式化出错的问题 diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js b/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js deleted file mode 100644 index e00d559..0000000 --- a/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js +++ /dev/null @@ -1,200 +0,0 @@ -// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型 -function pad(str, length = 2) { - str += '' - while (str.length < length) { - str = '0' + str - } - return str.slice(-length) -} - -const parser = { - yyyy: (dateObj) => { - return pad(dateObj.year, 4) - }, - yy: (dateObj) => { - return pad(dateObj.year) - }, - MM: (dateObj) => { - return pad(dateObj.month) - }, - M: (dateObj) => { - return dateObj.month - }, - dd: (dateObj) => { - return pad(dateObj.day) - }, - d: (dateObj) => { - return dateObj.day - }, - hh: (dateObj) => { - return pad(dateObj.hour) - }, - h: (dateObj) => { - return dateObj.hour - }, - mm: (dateObj) => { - return pad(dateObj.minute) - }, - m: (dateObj) => { - return dateObj.minute - }, - ss: (dateObj) => { - return pad(dateObj.second) - }, - s: (dateObj) => { - return dateObj.second - }, - SSS: (dateObj) => { - return pad(dateObj.millisecond, 3) - }, - S: (dateObj) => { - return dateObj.millisecond - }, -} - -// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12 -function getDate(time) { - if (time instanceof Date) { - return time - } - switch (typeof time) { - case 'string': - { - // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000 - if (time.indexOf('T') > -1) { - return new Date(time) - } - return new Date(time.replace(/-/g, '/')) - } - default: - return new Date(time) - } -} - -export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') { - if (!date && date !== 0) { - return '' - } - date = getDate(date) - const dateObj = { - year: date.getFullYear(), - month: date.getMonth() + 1, - day: date.getDate(), - hour: date.getHours(), - minute: date.getMinutes(), - second: date.getSeconds(), - millisecond: date.getMilliseconds() - } - const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/ - let flag = true - let result = format - while (flag) { - flag = false - result = result.replace(tokenRegExp, function(matched) { - flag = true - return parser[matched](dateObj) - }) - } - return result -} - -export function friendlyDate(time, { - locale = 'zh', - threshold = [60000, 3600000], - format = 'yyyy/MM/dd hh:mm:ss' -}) { - if (time === '-') { - return time - } - if (!time && time !== 0) { - return '' - } - const localeText = { - zh: { - year: '年', - month: '月', - day: '天', - hour: '小时', - minute: '分钟', - second: '秒', - ago: '前', - later: '后', - justNow: '刚刚', - soon: '马上', - template: '{num}{unit}{suffix}' - }, - en: { - year: 'year', - month: 'month', - day: 'day', - hour: 'hour', - minute: 'minute', - second: 'second', - ago: 'ago', - later: 'later', - justNow: 'just now', - soon: 'soon', - template: '{num} {unit} {suffix}' - } - } - const text = localeText[locale] || localeText.zh - let date = getDate(time) - let ms = date.getTime() - Date.now() - let absMs = Math.abs(ms) - if (absMs < threshold[0]) { - return ms < 0 ? text.justNow : text.soon - } - if (absMs >= threshold[1]) { - return formatDate(date, format) - } - let num - let unit - let suffix = text.later - if (ms < 0) { - suffix = text.ago - ms = -ms - } - const seconds = Math.floor((ms) / 1000) - const minutes = Math.floor(seconds / 60) - const hours = Math.floor(minutes / 60) - const days = Math.floor(hours / 24) - const months = Math.floor(days / 30) - const years = Math.floor(months / 12) - switch (true) { - case years > 0: - num = years - unit = text.year - break - case months > 0: - num = months - unit = text.month - break - case days > 0: - num = days - unit = text.day - break - case hours > 0: - num = hours - unit = text.hour - break - case minutes > 0: - num = minutes - unit = text.minute - break - default: - num = seconds - unit = text.second - break - } - - if (locale === 'en') { - if (num === 1) { - num = 'a' - } else { - unit += 's' - } - } - - return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g, - suffix) -} diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue b/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue deleted file mode 100644 index c5ed030..0000000 --- a/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - diff --git a/uni_modules/uni-dateformat/package.json b/uni_modules/uni-dateformat/package.json deleted file mode 100644 index 786a670..0000000 --- a/uni_modules/uni-dateformat/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-dateformat", - "displayName": "uni-dateformat 日期格式化", - "version": "1.0.0", - "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式", - "keywords": [ - "uni-ui", - "uniui", - "日期格式化", - "时间格式化", - "格式化时间", - "" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "y", - "联盟": "y" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-dateformat/readme.md b/uni_modules/uni-dateformat/readme.md deleted file mode 100644 index 37ddb6e..0000000 --- a/uni_modules/uni-dateformat/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -### DateFormat 日期格式化 -> **组件名:uni-dateformat** -> 代码块: `uDateformat` - - -日期格式化组件。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md deleted file mode 100644 index 56d8a1c..0000000 --- a/uni_modules/uni-datetime-picker/changelog.md +++ /dev/null @@ -1,105 +0,0 @@ -## 2.2.12(2022-12-01) -- 修复 vue3 下 i18n 国际化初始值不正确的bug -## 2.2.11(2022-09-19) -- 修复,支付宝小程序样式错乱,[详情](https://github.com/dcloudio/uni-app/issues/3861) -## 2.2.10(2022-09-19) -- 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) -## 2.2.9(2022-09-16) -- 可以使用 uni-scss 控制主题色 -## 2.2.8(2022-09-08) -- 修复 close事件无效的 bug -## 2.2.7(2022-09-05) -- 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false) -## 2.2.6(2022-06-30) -- 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 -## 2.2.5(2022-06-24) -- 修复 日历顶部年月及底部确认未国际化 bug -## 2.2.4(2022-03-31) -- 修复 Vue3 下动态赋值,单选类型未响应的 bug -## 2.2.3(2022-03-28) -- 修复 Vue3 下动态赋值未响应的 bug -## 2.2.2(2021-12-10) -- 修复 clear-icon 属性在小程序平台不生效的 bug -## 2.2.1(2021-12-10) -- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug -## 2.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) -## 2.1.5(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -## 2.1.4(2021-09-10) -- 修复 hide-second 在移动端的 bug -- 修复 单选赋默认值时,赋值日期未高亮的 bug -- 修复 赋默认值时,移动端未正确显示时间的 bug -## 2.1.3(2021-09-09) -- 新增 hide-second 属性,支持只使用时分,隐藏秒 -## 2.1.2(2021-09-03) -- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 -- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 -- 优化 调整字号大小,美化日历界面 -- 修复 因国际化导致的 placeholder 失效的 bug -## 2.1.1(2021-08-24) -- 新增 支持国际化 -- 优化 范围选择器在 pc 端过宽的问题 -## 2.1.0(2021-08-09) -- 新增 适配 vue3 -## 2.0.19(2021-08-09) -- 新增 支持作为 uni-forms 子组件相关功能 -- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug -## 2.0.18(2021-08-05) -- 修复 type 属性动态赋值无效的 bug -- 修复 ‘确认’按钮被 tabbar 遮盖 bug -- 修复 组件未赋值时范围选左、右日历相同的 bug -## 2.0.17(2021-08-04) -- 修复 范围选未正确显示当前值的 bug -- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug -## 2.0.16(2021-07-21) -- 新增 return-type 属性支持返回 date 日期对象 -## 2.0.15(2021-07-14) -- 修复 单选日期类型,初始赋值后不在当前日历的 bug -- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) -- 优化 移动端移除显示框的清空按钮,无实际用途 -## 2.0.14(2021-07-14) -- 修复 组件赋值为空,界面未更新的 bug -- 修复 start 和 end 不能动态赋值的 bug -- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug -## 2.0.13(2021-07-08) -- 修复 范围选择不能动态赋值的 bug -## 2.0.12(2021-07-08) -- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug -## 2.0.11(2021-07-08) -- 优化 弹出层在超出视窗边缘定位不准确的问题 -## 2.0.10(2021-07-08) -- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug -- 优化 弹出层在超出视窗边缘被遮盖的问题 -## 2.0.9(2021-07-07) -- 新增 maskClick 事件 -- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px -- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] -## 2.0.8(2021-07-07) -- 新增 日期时间显示框支持插槽 -## 2.0.7(2021-07-01) -- 优化 添加 uni-icons 依赖 -## 2.0.6(2021-05-22) -- 修复 图标在小程序上不显示的 bug -- 优化 重命名引用组件,避免潜在组件命名冲突 -## 2.0.5(2021-05-20) -- 优化 代码目录扁平化 -## 2.0.4(2021-05-12) -- 新增 组件示例地址 -## 2.0.3(2021-05-10) -- 修复 ios 下不识别 '-' 日期格式的 bug -- 优化 pc 下弹出层添加边框和阴影 -## 2.0.2(2021-05-08) -- 修复 在 admin 中获取弹出层定位错误的bug -## 2.0.1(2021-05-08) -- 修复 type 属性向下兼容,默认值从 date 变更为 datetime -## 2.0.0(2021-04-30) -- 支持日历形式的日期+时间的范围选择 - > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) -## 1.0.6(2021-03-18) -- 新增 hide-second 属性,时间支持仅选择时、分 -- 修复 选择跟显示的日期不一样的 bug -- 修复 chang事件触发2次的 bug -- 修复 分、秒 end 范围错误的 bug -- 优化 更好的 nvue 适配 diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue deleted file mode 100644 index a2201d3..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - - - diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue deleted file mode 100644 index b376470..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue +++ /dev/null @@ -1,924 +0,0 @@ - - - - - diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json deleted file mode 100644 index 9acf1ab..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "uni-datetime-picker.selectDate": "select date", - "uni-datetime-picker.selectTime": "select time", - "uni-datetime-picker.selectDateTime": "select datetime", - "uni-datetime-picker.startDate": "start date", - "uni-datetime-picker.endDate": "end date", - "uni-datetime-picker.startTime": "start time", - "uni-datetime-picker.endTime": "end time", - "uni-datetime-picker.ok": "ok", - "uni-datetime-picker.clear": "clear", - "uni-datetime-picker.cancel": "cancel", - "uni-datetime-picker.year": "-", - "uni-datetime-picker.month": "", - "uni-calender.MON": "MON", - "uni-calender.TUE": "TUE", - "uni-calender.WED": "WED", - "uni-calender.THU": "THU", - "uni-calender.FRI": "FRI", - "uni-calender.SAT": "SAT", - "uni-calender.SUN": "SUN", - "uni-calender.confirm": "confirm" -} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json deleted file mode 100644 index d2df5e7..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "uni-datetime-picker.selectDate": "选择日期", - "uni-datetime-picker.selectTime": "选择时间", - "uni-datetime-picker.selectDateTime": "选择日期时间", - "uni-datetime-picker.startDate": "开始日期", - "uni-datetime-picker.endDate": "结束日期", - "uni-datetime-picker.startTime": "开始时间", - "uni-datetime-picker.endTime": "结束时间", - "uni-datetime-picker.ok": "确定", - "uni-datetime-picker.clear": "清除", - "uni-datetime-picker.cancel": "取消", - "uni-datetime-picker.year": "年", - "uni-datetime-picker.month": "月", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六", - "uni-calender.confirm": "确认" -} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json deleted file mode 100644 index d23fa3c..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "uni-datetime-picker.selectDate": "選擇日期", - "uni-datetime-picker.selectTime": "選擇時間", - "uni-datetime-picker.selectDateTime": "選擇日期時間", - "uni-datetime-picker.startDate": "開始日期", - "uni-datetime-picker.endDate": "結束日期", - "uni-datetime-picker.startTime": "開始时间", - "uni-datetime-picker.endTime": "結束时间", - "uni-datetime-picker.ok": "確定", - "uni-datetime-picker.clear": "清除", - "uni-datetime-picker.cancel": "取消", - "uni-datetime-picker.year": "年", - "uni-datetime-picker.month": "月", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六", - "uni-calender.confirm": "確認" -} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js deleted file mode 100644 index 9601aba..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js +++ /dev/null @@ -1,45 +0,0 @@ -// #ifdef H5 -export default { - name: 'Keypress', - props: { - disable: { - type: Boolean, - default: false - } - }, - mounted () { - const keyNames = { - esc: ['Esc', 'Escape'], - tab: 'Tab', - enter: 'Enter', - space: [' ', 'Spacebar'], - up: ['Up', 'ArrowUp'], - left: ['Left', 'ArrowLeft'], - right: ['Right', 'ArrowRight'], - down: ['Down', 'ArrowDown'], - delete: ['Backspace', 'Delete', 'Del'] - } - const listener = ($event) => { - if (this.disable) { - return - } - const keyName = Object.keys(keyNames).find(key => { - const keyName = $event.key - const value = keyNames[key] - return value === keyName || (Array.isArray(value) && value.includes(keyName)) - }) - if (keyName) { - // 避免和其他按键事件冲突 - setTimeout(() => { - this.$emit(keyName, {}) - }, 0) - } - } - document.addEventListener('keyup', listener) - this.$once('hook:beforeDestroy', () => { - document.removeEventListener('keyup', listener) - }) - }, - render: () => {} -} -// #endif \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue deleted file mode 100644 index b4ba172..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue +++ /dev/null @@ -1,946 +0,0 @@ - - - - - diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue deleted file mode 100644 index 8bac504..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue +++ /dev/null @@ -1,1012 +0,0 @@ - - - - diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js deleted file mode 100644 index efa5773..0000000 --- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js +++ /dev/null @@ -1,410 +0,0 @@ -class Calendar { - constructor({ - date, - selected, - startDate, - endDate, - range, - // multipleStatus - } = {}) { - // 当前日期 - this.date = this.getDate(new Date()) // 当前初入日期 - // 打点信息 - this.selected = selected || []; - // 范围开始 - this.startDate = startDate - // 范围结束 - this.endDate = endDate - this.range = range - // 多选状态 - this.cleanMultipleStatus() - // 每周日期 - this.weeks = {} - // this._getWeek(this.date.fullDate) - // this.multipleStatus = multipleStatus - this.lastHover = false - } - /** - * 设置日期 - * @param {Object} date - */ - setDate(date) { - this.selectDate = this.getDate(date) - this._getWeek(this.selectDate.fullDate) - } - - /** - * 清理多选状态 - */ - cleanMultipleStatus() { - this.multipleStatus = { - before: '', - after: '', - data: [] - } - } - - /** - * 重置开始日期 - */ - resetSatrtDate(startDate) { - // 范围开始 - this.startDate = startDate - - } - - /** - * 重置结束日期 - */ - resetEndDate(endDate) { - // 范围结束 - this.endDate = endDate - } - - /** - * 获取任意时间 - */ - getDate(date, AddDayCount = 0, str = 'day') { - if (!date) { - date = new Date() - } - if (typeof date !== 'object') { - date = date.replace(/-/g, '/') - } - const dd = new Date(date) - switch (str) { - case 'day': - dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 - break - case 'month': - if (dd.getDate() === 31) { - dd.setDate(dd.getDate() + AddDayCount) - } else { - dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 - } - break - case 'year': - dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 - break - } - const y = dd.getFullYear() - const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 - const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 - return { - fullDate: y + '-' + m + '-' + d, - year: y, - month: m, - date: d, - day: dd.getDay() - } - } - - - /** - * 获取上月剩余天数 - */ - _getLastMonthDays(firstDay, full) { - let dateArr = [] - for (let i = firstDay; i > 0; i--) { - const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() - dateArr.push({ - date: beforeDate, - month: full.month - 1, - disable: true - }) - } - return dateArr - } - /** - * 获取本月天数 - */ - _currentMonthDys(dateData, full) { - let dateArr = [] - let fullDate = this.date.fullDate - for (let i = 1; i <= dateData; i++) { - let isinfo = false - let nowDate = full.year + '-' + (full.month < 10 ? - full.month : full.month) + '-' + (i < 10 ? - '0' + i : i) - // 是否今天 - let isDay = fullDate === nowDate - // 获取打点信息 - let info = this.selected && this.selected.find((item) => { - if (this.dateEqual(nowDate, item.date)) { - return item - } - }) - - // 日期禁用 - let disableBefore = true - let disableAfter = true - if (this.startDate) { - // let dateCompBefore = this.dateCompare(this.startDate, fullDate) - // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) - disableBefore = this.dateCompare(this.startDate, nowDate) - } - - if (this.endDate) { - // let dateCompAfter = this.dateCompare(fullDate, this.endDate) - // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) - disableAfter = this.dateCompare(nowDate, this.endDate) - } - let multiples = this.multipleStatus.data - let checked = false - let multiplesStatus = -1 - if (this.range) { - if (multiples) { - multiplesStatus = multiples.findIndex((item) => { - return this.dateEqual(item, nowDate) - }) - } - if (multiplesStatus !== -1) { - checked = true - } - } - let data = { - fullDate: nowDate, - year: full.year, - date: i, - multiple: this.range ? checked : false, - beforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after), - afterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after), - month: full.month, - disable: !(disableBefore && disableAfter), - isDay, - userChecked: false - } - if (info) { - data.extraInfo = info - } - - dateArr.push(data) - } - return dateArr - } - /** - * 获取下月天数 - */ - _getNextMonthDays(surplus, full) { - let dateArr = [] - for (let i = 1; i < surplus + 1; i++) { - dateArr.push({ - date: i, - month: Number(full.month) + 1, - disable: true - }) - } - return dateArr - } - - /** - * 获取当前日期详情 - * @param {Object} date - */ - getInfo(date) { - if (!date) { - date = new Date() - } - const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) - return dateInfo - } - - /** - * 比较时间大小 - */ - dateCompare(startDate, endDate) { - // 计算截止时间 - startDate = new Date(startDate.replace('-', '/').replace('-', '/')) - // 计算详细项的截止时间 - endDate = new Date(endDate.replace('-', '/').replace('-', '/')) - if (startDate <= endDate) { - return true - } else { - return false - } - } - - /** - * 比较时间是否相等 - */ - dateEqual(before, after) { - // 计算截止时间 - before = new Date(before.replace('-', '/').replace('-', '/')) - // 计算详细项的截止时间 - after = new Date(after.replace('-', '/').replace('-', '/')) - if (before.getTime() - after.getTime() === 0) { - return true - } else { - return false - } - } - - /** - * 比较真实起始日期 - */ - - isLogicBefore(currentDay, before, after) { - let logicBefore = before - if (before && after) { - logicBefore = this.dateCompare(before, after) ? before : after - } - return this.dateEqual(logicBefore, currentDay) - } - - isLogicAfter(currentDay, before, after) { - let logicAfter = after - if (before && after) { - logicAfter = this.dateCompare(before, after) ? after : before - } - return this.dateEqual(logicAfter, currentDay) - } - - /** - * 获取日期范围内所有日期 - * @param {Object} begin - * @param {Object} end - */ - geDateAll(begin, end) { - var arr = [] - var ab = begin.split('-') - var ae = end.split('-') - var db = new Date() - db.setFullYear(ab[0], ab[1] - 1, ab[2]) - var de = new Date() - de.setFullYear(ae[0], ae[1] - 1, ae[2]) - var unixDb = db.getTime() - 24 * 60 * 60 * 1000 - var unixDe = de.getTime() - 24 * 60 * 60 * 1000 - for (var k = unixDb; k <= unixDe;) { - k = k + 24 * 60 * 60 * 1000 - arr.push(this.getDate(new Date(parseInt(k))).fullDate) - } - return arr - } - - /** - * 获取多选状态 - */ - setMultiple(fullDate) { - let { - before, - after - } = this.multipleStatus - if (!this.range) return - if (before && after) { - if (!this.lastHover) { - this.lastHover = true - return - } - this.multipleStatus.before = fullDate - this.multipleStatus.after = '' - this.multipleStatus.data = [] - this.multipleStatus.fulldate = '' - this.lastHover = false - } else { - if (!before) { - this.multipleStatus.before = fullDate - this.lastHover = false - } else { - this.multipleStatus.after = fullDate - if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus - .after); - } else { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus - .before); - } - this.lastHover = true - } - } - this._getWeek(fullDate) - } - - /** - * 鼠标 hover 更新多选状态 - */ - setHoverMultiple(fullDate) { - let { - before, - after - } = this.multipleStatus - - if (!this.range) return - if (this.lastHover) return - - if (!before) { - this.multipleStatus.before = fullDate - } else { - this.multipleStatus.after = fullDate - if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); - } else { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); - } - } - this._getWeek(fullDate) - } - - /** - * 更新默认值多选状态 - */ - setDefaultMultiple(before, after) { - this.multipleStatus.before = before - this.multipleStatus.after = after - if (before && after) { - if (this.dateCompare(before, after)) { - this.multipleStatus.data = this.geDateAll(before, after); - this._getWeek(after) - } else { - this.multipleStatus.data = this.geDateAll(after, before); - this._getWeek(before) - } - } - } - - /** - * 获取每周数据 - * @param {Object} dateData - */ - _getWeek(dateData) { - const { - fullDate, - year, - month, - date, - day - } = this.getDate(dateData) - let firstDay = new Date(year, month - 1, 1).getDay() - let currentDay = new Date(year, month, 0).getDate() - let dates = { - lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 - currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 - nextMonthDays: [], // 下个月开始几天 - weeks: [] - } - let canlender = [] - const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) - dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) - canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) - let weeks = {} - // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 - for (let i = 0; i < canlender.length; i++) { - if (i % 7 === 0) { - weeks[parseInt(i / 7)] = new Array(7) - } - weeks[parseInt(i / 7)][i % 7] = canlender[i] - } - this.canlender = canlender - this.weeks = weeks - } - - //静态方法 - // static init(date) { - // if (!this.instance) { - // this.instance = new Calendar(date); - // } - // return this.instance; - // } -} - - -export default Calendar diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json deleted file mode 100644 index 1f45ddb..0000000 --- a/uni_modules/uni-datetime-picker/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-datetime-picker", - "displayName": "uni-datetime-picker 日期选择器", - "version": "2.2.12", - "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", - "keywords": [ - "uni-datetime-picker", - "uni-ui", - "uniui", - "日期时间选择器", - "日期时间" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "n" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-datetime-picker/readme.md b/uni_modules/uni-datetime-picker/readme.md deleted file mode 100644 index 162fbef..0000000 --- a/uni_modules/uni-datetime-picker/readme.md +++ /dev/null @@ -1,21 +0,0 @@ - - -> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` - -## DatetimePicker 时间选择器 - -> **组件名:uni-datetime-picker** -> 代码块: `uDatetimePicker` - - -该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 - -若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 - -**_点击 picker 默认值规则:_** - -- 若设置初始值 value, 会显示在 picker 显示框中 -- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-drawer/changelog.md b/uni_modules/uni-drawer/changelog.md deleted file mode 100644 index 6d2488c..0000000 --- a/uni_modules/uni-drawer/changelog.md +++ /dev/null @@ -1,13 +0,0 @@ -## 1.2.1(2021-11-22) -- 修复 vue3中个别scss变量无法找到的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer) -## 1.1.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-05-12) -- 新增 组件示例地址 -## 1.0.6(2021-02-04) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-drawer/components/uni-drawer/keypress.js b/uni_modules/uni-drawer/components/uni-drawer/keypress.js deleted file mode 100644 index 62dda46..0000000 --- a/uni_modules/uni-drawer/components/uni-drawer/keypress.js +++ /dev/null @@ -1,45 +0,0 @@ -// #ifdef H5 -export default { - name: 'Keypress', - props: { - disable: { - type: Boolean, - default: false - } - }, - mounted () { - const keyNames = { - esc: ['Esc', 'Escape'], - tab: 'Tab', - enter: 'Enter', - space: [' ', 'Spacebar'], - up: ['Up', 'ArrowUp'], - left: ['Left', 'ArrowLeft'], - right: ['Right', 'ArrowRight'], - down: ['Down', 'ArrowDown'], - delete: ['Backspace', 'Delete', 'Del'] - } - const listener = ($event) => { - if (this.disable) { - return - } - const keyName = Object.keys(keyNames).find(key => { - const keyName = $event.key - const value = keyNames[key] - return value === keyName || (Array.isArray(value) && value.includes(keyName)) - }) - if (keyName) { - // 避免和其他按键事件冲突 - setTimeout(() => { - this.$emit(keyName, {}) - }, 0) - } - } - document.addEventListener('keyup', listener) - // this.$once('hook:beforeDestroy', () => { - // document.removeEventListener('keyup', listener) - // }) - }, - render: () => {} -} -// #endif diff --git a/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue deleted file mode 100644 index 2471521..0000000 --- a/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - - - diff --git a/uni_modules/uni-drawer/package.json b/uni_modules/uni-drawer/package.json deleted file mode 100644 index dd056e4..0000000 --- a/uni_modules/uni-drawer/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-drawer", - "displayName": "uni-drawer 抽屉", - "version": "1.2.1", - "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", - "keywords": [ - "uni-ui", - "uniui", - "drawer", - "抽屉", - "侧滑导航" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-drawer/readme.md b/uni_modules/uni-drawer/readme.md deleted file mode 100644 index dcf6e6b..0000000 --- a/uni_modules/uni-drawer/readme.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## Drawer 抽屉 -> **组件名:uni-drawer** -> 代码块: `uDrawer` - -抽屉侧滑菜单。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-easyinput/changelog.md b/uni_modules/uni-easyinput/changelog.md deleted file mode 100644 index 3f9d3b3..0000000 --- a/uni_modules/uni-easyinput/changelog.md +++ /dev/null @@ -1,89 +0,0 @@ -## 1.1.5(2022-11-29) -- 优化 主题样式 -## 1.1.4(2022-10-27) -- 修复 props 中背景颜色无默认值的bug -## 1.1.0(2022-06-30) - -- 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容 -- 新增 clear 事件,点击右侧叉号图标触发 -- 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发 -- 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等 - -## 1.0.5(2022-06-07) - -- 优化 clearable 显示策略 - -## 1.0.4(2022-06-07) - -- 优化 clearable 显示策略 - -## 1.0.3(2022-05-20) - -- 修复 关闭图标某些情况下无法取消的 bug - -## 1.0.2(2022-04-12) - -- 修复 默认值不生效的 bug - -## 1.0.1(2022-04-02) - -- 修复 value 不能为 0 的 bug - -## 1.0.0(2021-11-19) - -- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-easyinput](https://uniapp.dcloud.io/component/uniui/uni-easyinput) - -## 0.1.4(2021-08-20) - -- 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug - -## 0.1.3(2021-08-11) - -- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 - -## 0.1.2(2021-07-30) - -- 优化 vue3 下事件警告的问题 - -## 0.1.1 - -- 优化 errorMessage 属性支持 Boolean 类型 - -## 0.1.0(2021-07-13) - -- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) - -## 0.0.16(2021-06-29) - -- 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug - -## 0.0.15(2021-06-21) - -- 修复 passwordIcon 属性拼写错误的 bug - -## 0.0.14(2021-06-18) - -- 新增 passwordIcon 属性,当 type=password 时是否显示小眼睛图标 -- 修复 confirmType 属性不生效的问题 - -## 0.0.13(2021-06-04) - -- 修复 disabled 状态可清出内容的 bug - -## 0.0.12(2021-05-12) - -- 新增 组件示例地址 - -## 0.0.11(2021-05-07) - -- 修复 input-border 属性不生效的问题 - -## 0.0.10(2021-04-30) - -- 修复 ios 遮挡文字、显示一半的问题 - -## 0.0.9(2021-02-05) - -- 调整为 uni_modules 目录规范 -- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/common.js b/uni_modules/uni-easyinput/components/uni-easyinput/common.js deleted file mode 100644 index df9abe1..0000000 --- a/uni_modules/uni-easyinput/components/uni-easyinput/common.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * @desc 函数防抖 - * @param func 目标函数 - * @param wait 延迟执行毫秒数 - * @param immediate true - 立即执行, false - 延迟执行 - */ -export const debounce = function(func, wait = 1000, immediate = true) { - let timer; - console.log(1); - return function() { - console.log(123); - let context = this, - args = arguments; - if (timer) clearTimeout(timer); - if (immediate) { - let callNow = !timer; - timer = setTimeout(() => { - timer = null; - }, wait); - if (callNow) func.apply(context, args); - } else { - timer = setTimeout(() => { - func.apply(context, args); - }, wait) - } - } -} -/** - * @desc 函数节流 - * @param func 函数 - * @param wait 延迟执行毫秒数 - * @param type 1 使用表时间戳,在时间段开始的时候触发 2 使用表定时器,在时间段结束的时候触发 - */ -export const throttle = (func, wait = 1000, type = 1) => { - let previous = 0; - let timeout; - return function() { - let context = this; - let args = arguments; - if (type === 1) { - let now = Date.now(); - - if (now - previous > wait) { - func.apply(context, args); - previous = now; - } - } else if (type === 2) { - if (!timeout) { - timeout = setTimeout(() => { - timeout = null; - func.apply(context, args) - }, wait) - } - } - } -} diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue deleted file mode 100644 index e7e8bba..0000000 --- a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue +++ /dev/null @@ -1,639 +0,0 @@ - - - - - diff --git a/uni_modules/uni-easyinput/package.json b/uni_modules/uni-easyinput/package.json deleted file mode 100644 index 63d07fb..0000000 --- a/uni_modules/uni-easyinput/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-easyinput", - "displayName": "uni-easyinput 增强输入框", - "version": "1.1.5", - "description": "Easyinput 组件是对原生input组件的增强", - "keywords": [ - "uni-ui", - "uniui", - "input", - "uni-easyinput", - "输入框" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-easyinput/readme.md b/uni_modules/uni-easyinput/readme.md deleted file mode 100644 index f1faf8f..0000000 --- a/uni_modules/uni-easyinput/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -### Easyinput 增强输入框 -> **组件名:uni-easyinput** -> 代码块: `uEasyinput` - - -easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-easyinput) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fab/changelog.md b/uni_modules/uni-fab/changelog.md deleted file mode 100644 index 0048ff9..0000000 --- a/uni_modules/uni-fab/changelog.md +++ /dev/null @@ -1,21 +0,0 @@ -## 1.2.4(2022-09-07) -小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false) -## 1.2.3(2022-09-05) -- 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310) -## 1.2.2(2021-12-29) -- 更新 组件依赖 -## 1.2.1(2021-11-19) -- 修复 阴影颜色不正确的bug -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) -## 1.1.1(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-05-12) -- 新增 组件示例地址 -## 1.0.6(2021-02-05) -- 调整为uni_modules目录规范 -- 优化 按钮背景色调整 -- 优化 兼容pc端 diff --git a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue deleted file mode 100644 index 96c4739..0000000 --- a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue +++ /dev/null @@ -1,487 +0,0 @@ - - - - - diff --git a/uni_modules/uni-fab/package.json b/uni_modules/uni-fab/package.json deleted file mode 100644 index 6636170..0000000 --- a/uni_modules/uni-fab/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "id": "uni-fab", - "displayName": "uni-fab 悬浮按钮", - "version": "1.2.4", - "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", - "keywords": [ - "uni-ui", - "uniui", - "按钮", - "悬浮按钮", - "fab" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-scss","uni-icons"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-fab/readme.md b/uni_modules/uni-fab/readme.md deleted file mode 100644 index 9a444e8..0000000 --- a/uni_modules/uni-fab/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -## Fab 悬浮按钮 -> **组件名:uni-fab** -> 代码块: `uFab` - - -点击可展开一个图形按钮菜单 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fav/changelog.md b/uni_modules/uni-fav/changelog.md deleted file mode 100644 index d8a08d4..0000000 --- a/uni_modules/uni-fav/changelog.md +++ /dev/null @@ -1,19 +0,0 @@ -## 1.2.1(2022-05-30) -- 新增 stat 属性 ,是否开启uni统计功能 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav) -## 1.1.1(2021-08-24) -- 新增 支持国际化 -## 1.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.6(2021-05-12) -- 新增 组件示例地址 -## 1.0.5(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.4(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 1.0.3(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 1.0.2(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/en.json b/uni_modules/uni-fav/components/uni-fav/i18n/en.json deleted file mode 100644 index 9a0759e..0000000 --- a/uni_modules/uni-fav/components/uni-fav/i18n/en.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-fav.collect": "collect", - "uni-fav.collected": "collected" -} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/index.js b/uni_modules/uni-fav/components/uni-fav/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-fav/components/uni-fav/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json deleted file mode 100644 index 67c89bf..0000000 --- a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-fav.collect": "收藏", - "uni-fav.collected": "已收藏" -} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json deleted file mode 100644 index 67c89bf..0000000 --- a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-fav.collect": "收藏", - "uni-fav.collected": "已收藏" -} diff --git a/uni_modules/uni-fav/components/uni-fav/uni-fav.vue b/uni_modules/uni-fav/components/uni-fav/uni-fav.vue deleted file mode 100644 index d2c58df..0000000 --- a/uni_modules/uni-fav/components/uni-fav/uni-fav.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - - - diff --git a/uni_modules/uni-fav/package.json b/uni_modules/uni-fav/package.json deleted file mode 100644 index cc14697..0000000 --- a/uni_modules/uni-fav/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "id": "uni-fav", - "displayName": "uni-fav 收藏按钮", - "version": "1.2.1", - "description": " Fav 收藏组件,可自定义颜色、大小。", - "keywords": [ - "fav", - "uni-ui", - "uniui", - "收藏" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-fav/readme.md b/uni_modules/uni-fav/readme.md deleted file mode 100644 index 4de125d..0000000 --- a/uni_modules/uni-fav/readme.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## Fav 收藏按钮 -> **组件名:uni-fav** -> 代码块: `uFav` - -用于收藏功能,可点击切换选中、不选中的状态。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fav) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-file-picker/changelog.md b/uni_modules/uni-file-picker/changelog.md deleted file mode 100644 index e1621c3..0000000 --- a/uni_modules/uni-file-picker/changelog.md +++ /dev/null @@ -1,65 +0,0 @@ -## 1.0.3(2022-12-21) -- 新增 sourceType 属性, 可以自定义图片和视频选择的来源 -## 1.0.2(2022-07-04) -- 修复 在uni-forms下样式不生效的bug -## 1.0.1(2021-11-23) -- 修复 参数为对象的情况下,url在某些情况显示错误的bug -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker) -## 0.2.16(2021-11-08) -- 修复 传入空对象 ,显示错误的Bug -## 0.2.15(2021-08-30) -- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug -## 0.2.14(2021-08-23) -- 新增 参数中返回 fileID 字段 -## 0.2.13(2021-08-23) -- 修复 腾讯云传入fileID 不能回显的bug -- 修复 选择图片后,不能放大的问题 -## 0.2.12(2021-08-17) -- 修复 由于 0.2.11 版本引起的不能回显图片的Bug -## 0.2.11(2021-08-16) -- 新增 clearFiles(index) 方法,可以手动删除指定文件 -- 修复 v-model 值设为 null 报错的Bug -## 0.2.10(2021-08-13) -- 修复 return-type="object" 时,无法删除文件的Bug -## 0.2.9(2021-08-03) -- 修复 auto-upload 属性失效的Bug -## 0.2.8(2021-07-31) -- 修复 fileExtname属性不指定值报错的Bug -## 0.2.7(2021-07-31) -- 修复 在某种场景下图片不回显的Bug -## 0.2.6(2021-07-30) -- 修复 return-type为object下,返回值不正确的Bug -## 0.2.5(2021-07-30) -- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 -## 0.2.3(2021-07-28) -- 优化 调整示例代码 -## 0.2.2(2021-07-27) -- 修复 vue3 下赋值错误的Bug -- 优化 h5平台下上传文件导致页面卡死的问题 -## 0.2.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 0.1.1(2021-07-02) -- 修复 sourceType 缺少默认值导致 ios 无法选择文件 -## 0.1.0(2021-06-30) -- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 -## 0.0.11(2021-06-30) -- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 -## 0.0.10(2021-06-29) -- 优化 文件上传后进度条消失时机 -## 0.0.9(2021-06-29) -- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug -## 0.0.8(2021-06-15) -- 修复 删除文件时无法触发 v-model 的Bug -## 0.0.7(2021-05-12) -- 新增 组件示例地址 -## 0.0.6(2021-04-09) -- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug -## 0.0.5(2021-04-09) -- 优化 更新组件示例 -## 0.0.4(2021-04-09) -- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 -## 0.0.3(2021-02-05) -- 调整为uni_modules目录规范 -- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js b/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js deleted file mode 100644 index aff0864..0000000 --- a/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js +++ /dev/null @@ -1,224 +0,0 @@ -'use strict'; - -const ERR_MSG_OK = 'chooseAndUploadFile:ok'; -const ERR_MSG_FAIL = 'chooseAndUploadFile:fail'; - -function chooseImage(opts) { - const { - count, - sizeType = ['original', 'compressed'], - sourceType, - extension - } = opts - return new Promise((resolve, reject) => { - uni.chooseImage({ - count, - sizeType, - sourceType, - extension, - success(res) { - resolve(normalizeChooseAndUploadFileRes(res, 'image')); - }, - fail(res) { - reject({ - errMsg: res.errMsg.replace('chooseImage:fail', ERR_MSG_FAIL), - }); - }, - }); - }); -} - -function chooseVideo(opts) { - const { - camera, - compressed, - maxDuration, - sourceType, - extension - } = opts; - return new Promise((resolve, reject) => { - uni.chooseVideo({ - camera, - compressed, - maxDuration, - sourceType, - extension, - success(res) { - const { - tempFilePath, - duration, - size, - height, - width - } = res; - resolve(normalizeChooseAndUploadFileRes({ - errMsg: 'chooseVideo:ok', - tempFilePaths: [tempFilePath], - tempFiles: [ - { - name: (res.tempFile && res.tempFile.name) || '', - path: tempFilePath, - size, - type: (res.tempFile && res.tempFile.type) || '', - width, - height, - duration, - fileType: 'video', - cloudPath: '', - }, ], - }, 'video')); - }, - fail(res) { - reject({ - errMsg: res.errMsg.replace('chooseVideo:fail', ERR_MSG_FAIL), - }); - }, - }); - }); -} - -function chooseAll(opts) { - const { - count, - extension - } = opts; - return new Promise((resolve, reject) => { - let chooseFile = uni.chooseFile; - if (typeof wx !== 'undefined' && - typeof wx.chooseMessageFile === 'function') { - chooseFile = wx.chooseMessageFile; - } - if (typeof chooseFile !== 'function') { - return reject({ - errMsg: ERR_MSG_FAIL + ' 请指定 type 类型,该平台仅支持选择 image 或 video。', - }); - } - chooseFile({ - type: 'all', - count, - extension, - success(res) { - resolve(normalizeChooseAndUploadFileRes(res)); - }, - fail(res) { - reject({ - errMsg: res.errMsg.replace('chooseFile:fail', ERR_MSG_FAIL), - }); - }, - }); - }); -} - -function normalizeChooseAndUploadFileRes(res, fileType) { - res.tempFiles.forEach((item, index) => { - if (!item.name) { - item.name = item.path.substring(item.path.lastIndexOf('/') + 1); - } - if (fileType) { - item.fileType = fileType; - } - item.cloudPath = - Date.now() + '_' + index + item.name.substring(item.name.lastIndexOf('.')); - }); - if (!res.tempFilePaths) { - res.tempFilePaths = res.tempFiles.map((file) => file.path); - } - return res; -} - -function uploadCloudFiles(files, max = 5, onUploadProgress) { - files = JSON.parse(JSON.stringify(files)) - const len = files.length - let count = 0 - let self = this - return new Promise(resolve => { - while (count < max) { - next() - } - - function next() { - let cur = count++ - if (cur >= len) { - !files.find(item => !item.url && !item.errMsg) && resolve(files) - return - } - const fileItem = files[cur] - const index = self.files.findIndex(v => v.uuid === fileItem.uuid) - fileItem.url = '' - delete fileItem.errMsg - - uniCloud - .uploadFile({ - filePath: fileItem.path, - cloudPath: fileItem.cloudPath, - fileType: fileItem.fileType, - onUploadProgress: res => { - res.index = index - onUploadProgress && onUploadProgress(res) - } - }) - .then(res => { - fileItem.url = res.fileID - fileItem.index = index - if (cur < len) { - next() - } - }) - .catch(res => { - fileItem.errMsg = res.errMsg || res.message - fileItem.index = index - if (cur < len) { - next() - } - }) - } - }) -} - - - - - -function uploadFiles(choosePromise, { - onChooseFile, - onUploadProgress -}) { - return choosePromise - .then((res) => { - if (onChooseFile) { - const customChooseRes = onChooseFile(res); - if (typeof customChooseRes !== 'undefined') { - return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === 'undefined' ? - res : chooseRes); - } - } - return res; - }) - .then((res) => { - if (res === false) { - return { - errMsg: ERR_MSG_OK, - tempFilePaths: [], - tempFiles: [], - }; - } - return res - }) -} - -function chooseAndUploadFile(opts = { - type: 'all' -}) { - if (opts.type === 'image') { - return uploadFiles(chooseImage(opts), opts); - } - else if (opts.type === 'video') { - return uploadFiles(chooseVideo(opts), opts); - } - return uploadFiles(chooseAll(opts), opts); -} - -export { - chooseAndUploadFile, - uploadCloudFiles -}; diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue b/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue deleted file mode 100644 index 9bb9829..0000000 --- a/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue +++ /dev/null @@ -1,663 +0,0 @@ - - - - - diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue deleted file mode 100644 index 625d92e..0000000 --- a/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue +++ /dev/null @@ -1,325 +0,0 @@ - - - - - diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue deleted file mode 100644 index 2a29bc2..0000000 --- a/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/utils.js b/uni_modules/uni-file-picker/components/uni-file-picker/utils.js deleted file mode 100644 index 60aaa3e..0000000 --- a/uni_modules/uni-file-picker/components/uni-file-picker/utils.js +++ /dev/null @@ -1,109 +0,0 @@ -/** - * 获取文件名和后缀 - * @param {String} name - */ -export const get_file_ext = (name) => { - const last_len = name.lastIndexOf('.') - const len = name.length - return { - name: name.substring(0, last_len), - ext: name.substring(last_len + 1, len) - } -} - -/** - * 获取扩展名 - * @param {Array} fileExtname - */ -export const get_extname = (fileExtname) => { - if (!Array.isArray(fileExtname)) { - let extname = fileExtname.replace(/(\[|\])/g, '') - return extname.split(',') - } else { - return fileExtname - } - return [] -} - -/** - * 获取文件和检测是否可选 - */ -export const get_files_and_is_max = (res, _extname) => { - let filePaths = [] - let files = [] - if(!_extname || _extname.length === 0){ - return { - filePaths, - files - } - } - res.tempFiles.forEach(v => { - let fileFullName = get_file_ext(v.name) - const extname = fileFullName.ext.toLowerCase() - if (_extname.indexOf(extname) !== -1) { - files.push(v) - filePaths.push(v.path) - } - }) - if (files.length !== res.tempFiles.length) { - uni.showToast({ - title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`, - icon: 'none', - duration: 5000 - }) - } - - return { - filePaths, - files - } -} - - -/** - * 获取图片信息 - * @param {Object} filepath - */ -export const get_file_info = (filepath) => { - return new Promise((resolve, reject) => { - uni.getImageInfo({ - src: filepath, - success(res) { - resolve(res) - }, - fail(err) { - reject(err) - } - }) - }) -} -/** - * 获取封装数据 - */ -export const get_file_data = async (files, type = 'image') => { - // 最终需要上传数据库的数据 - let fileFullName = get_file_ext(files.name) - const extname = fileFullName.ext.toLowerCase() - let filedata = { - name: files.name, - uuid: files.uuid, - extname: extname || '', - cloudPath: files.cloudPath, - fileType: files.fileType, - url: files.path || files.path, - size: files.size, //单位是字节 - image: {}, - path: files.path, - video: {} - } - if (type === 'image') { - const imageinfo = await get_file_info(files.path) - delete filedata.video - filedata.image.width = imageinfo.width - filedata.image.height = imageinfo.height - filedata.image.location = imageinfo.path - } else { - delete filedata.image - } - return filedata -} diff --git a/uni_modules/uni-file-picker/package.json b/uni_modules/uni-file-picker/package.json deleted file mode 100644 index 8d5227b..0000000 --- a/uni_modules/uni-file-picker/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "id": "uni-file-picker", - "displayName": "uni-file-picker 文件选择上传", - "version": "1.0.3", - "description": "文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间", - "keywords": [ - "uni-ui", - "uniui", - "图片上传", - "文件上传" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "n" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-file-picker/readme.md b/uni_modules/uni-file-picker/readme.md deleted file mode 100644 index c8399a5..0000000 --- a/uni_modules/uni-file-picker/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - -## FilePicker 文件选择上传 - -> **组件名:uni-file-picker** -> 代码块: `uFilePicker` - - -文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-file-picker) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-forms/changelog.md b/uni_modules/uni-forms/changelog.md deleted file mode 100644 index c358a21..0000000 --- a/uni_modules/uni-forms/changelog.md +++ /dev/null @@ -1,90 +0,0 @@ -## 1.4.8(2022-08-23) -- 优化 根据 rules 自动添加 required 的问题 -## 1.4.7(2022-08-22) -- 修复 item 未设置 require 属性,rules 设置 require 后,星号也显示的 bug,详见:[https://ask.dcloud.net.cn/question/151540](https://ask.dcloud.net.cn/question/151540) -## 1.4.6(2022-07-13) -- 修复 model 需要校验的值没有声明对应字段时,导致第一次不触发校验的bug -## 1.4.5(2022-07-05) -- 新增 更多表单示例 -- 优化 子表单组件过期提示的问题 -- 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式 -## 1.4.4(2022-07-04) -- 更新 删除组件日志 -## 1.4.3(2022-07-04) -- 修复 由 1.4.0 引发的 label 插槽不生效的bug -## 1.4.2(2022-07-04) -- 修复 子组件找不到 setValue 报错的bug -## 1.4.1(2022-07-04) -- 修复 uni-data-picker 在 uni-forms-item 中报错的bug -- 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug -## 1.4.0(2022-06-30) -- 【重要】组件逻辑重构,部分用法用旧版本不兼容,请注意兼容问题 -- 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力 -- 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃 -- 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效 -- 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法 -- 新增 子表单的 setRules 方法,配合自定义校验函数使用 -- 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则 -- 优化 动态表单校验方式,废弃拼接name的方式 -## 1.3.3(2022-06-22) -- 修复 表单校验顺序无序问题 -## 1.3.2(2021-12-09) -- -## 1.3.1(2021-11-19) -- 修复 label 插槽不生效的bug -## 1.3.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-forms](https://uniapp.dcloud.io/component/uniui/uni-forms) -## 1.2.7(2021-08-13) -- 修复 没有添加校验规则的字段依然报错的Bug -## 1.2.6(2021-08-11) -- 修复 重置表单错误信息无法清除的问题 -## 1.2.5(2021-08-11) -- 优化 组件文档 -## 1.2.4(2021-08-11) -- 修复 表单验证只生效一次的问题 -## 1.2.3(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.2.2(2021-07-26) -- 修复 vue2 下条件编译导致destroyed生命周期失效的Bug -- 修复 1.2.1 引起的示例在小程序平台报错的Bug -## 1.2.1(2021-07-22) -- 修复 动态校验表单,默认值为空的情况下校验失效的Bug -- 修复 不指定name属性时,运行报错的Bug -- 优化 label默认宽度从65调整至70,使required为true且四字时不换行 -- 优化 组件示例,新增动态校验示例代码 -- 优化 组件文档,使用方式更清晰 -## 1.2.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.2(2021-06-25) -- 修复 pattern 属性在微信小程序平台无效的问题 -## 1.1.1(2021-06-22) -- 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug -## 1.1.0(2021-06-22) -- 修复 只写setRules方法而导致校验不生效的Bug -- 修复 由上个办法引发的错误提示文字错位的Bug -## 1.0.48(2021-06-21) -- 修复 不设置 label 属性 ,无法设置label插槽的问题 -## 1.0.47(2021-06-21) -- 修复 不设置label属性,label-width属性不生效的bug -- 修复 setRules 方法与rules属性冲突的问题 -## 1.0.46(2021-06-04) -- 修复 动态删减数据导致报错的问题 -## 1.0.45(2021-06-04) -- 新增 modelValue 属性 ,value 即将废弃 -## 1.0.44(2021-06-02) -- 新增 uni-forms-item 可以设置单独的 rules -- 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 -- 优化 submit 事件重命名为 validate -## 1.0.43(2021-05-12) -- 新增 组件示例地址 -## 1.0.42(2021-04-30) -- 修复 自定义检验器失效的问题 -## 1.0.41(2021-03-05) -- 更新 校验器 -- 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug -## 1.0.40(2021-03-04) -- 修复 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug -## 1.0.39(2021-02-05) -- 调整为uni_modules目录规范 -- 修复 校验器传入 int 等类型 ,返回String类型的Bug diff --git a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue deleted file mode 100644 index ce7c460..0000000 --- a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue +++ /dev/null @@ -1,631 +0,0 @@ - - - - - diff --git a/uni_modules/uni-forms/components/uni-forms/uni-forms.vue b/uni_modules/uni-forms/components/uni-forms/uni-forms.vue deleted file mode 100644 index ed2f6d9..0000000 --- a/uni_modules/uni-forms/components/uni-forms/uni-forms.vue +++ /dev/null @@ -1,397 +0,0 @@ - - - - - diff --git a/uni_modules/uni-forms/components/uni-forms/utils.js b/uni_modules/uni-forms/components/uni-forms/utils.js deleted file mode 100644 index 6da2421..0000000 --- a/uni_modules/uni-forms/components/uni-forms/utils.js +++ /dev/null @@ -1,293 +0,0 @@ -/** - * 简单处理对象拷贝 - * @param {Obejct} 被拷贝对象 - * @@return {Object} 拷贝对象 - */ -export const deepCopy = (val) => { - return JSON.parse(JSON.stringify(val)) -} -/** - * 过滤数字类型 - * @param {String} format 数字类型 - * @@return {Boolean} 返回是否为数字类型 - */ -export const typeFilter = (format) => { - return format === 'int' || format === 'double' || format === 'number' || format === 'timestamp'; -} - -/** - * 把 value 转换成指定的类型,用于处理初始值,原因是初始值需要入库不能为 undefined - * @param {String} key 字段名 - * @param {any} value 字段值 - * @param {Object} rules 表单校验规则 - */ -export const getValue = (key, value, rules) => { - const isRuleNumType = rules.find(val => val.format && typeFilter(val.format)); - const isRuleBoolType = rules.find(val => (val.format && val.format === 'boolean') || val.format === 'bool'); - // 输入类型为 number - if (!!isRuleNumType) { - if (!value && value !== 0) { - value = null - } else { - value = isNumber(Number(value)) ? Number(value) : value - } - } - - // 输入类型为 boolean - if (!!isRuleBoolType) { - value = isBoolean(value) ? value : false - } - - return value; -} - -/** - * 获取表单数据 - * @param {String|Array} name 真实名称,需要使用 realName 获取 - * @param {Object} data 原始数据 - * @param {any} value 需要设置的值 - */ -export const setDataValue = (field, formdata, value) => { - formdata[field] = value - return value || '' -} - -/** - * 获取表单数据 - * @param {String|Array} field 真实名称,需要使用 realName 获取 - * @param {Object} data 原始数据 - */ -export const getDataValue = (field, data) => { - return objGet(data, field) -} - -/** - * 获取表单类型 - * @param {String|Array} field 真实名称,需要使用 realName 获取 - */ -export const getDataValueType = (field, data) => { - const value = getDataValue(field, data) - return { - type: type(value), - value - } -} - -/** - * 获取表单可用的真实name - * @param {String|Array} name 表单name - * @@return {String} 表单可用的真实name - */ -export const realName = (name, data = {}) => { - const base_name = _basePath(name) - if (typeof base_name === 'object' && Array.isArray(base_name) && base_name.length > 1) { - const realname = base_name.reduce((a, b) => a += `#${b}`, '_formdata_') - return realname - } - return base_name[0] || name -} - -/** - * 判断是否表单可用的真实name - * @param {String|Array} name 表单name - * @@return {String} 表单可用的真实name - */ -export const isRealName = (name) => { - const reg = /^_formdata_#*/ - return reg.test(name) -} - -/** - * 获取表单数据的原始格式 - * @@return {Object|Array} object 需要解析的数据 - */ -export const rawData = (object = {}, name) => { - let newData = JSON.parse(JSON.stringify(object)) - let formData = {} - for(let i in newData){ - let path = name2arr(i) - objSet(formData,path,newData[i]) - } - return formData -} - -/** - * 真实name还原为 array - * @param {*} name - */ -export const name2arr = (name) => { - let field = name.replace('_formdata_#', '') - field = field.split('#').map(v => (isNumber(v) ? Number(v) : v)) - return field -} - -/** - * 对象中设置值 - * @param {Object|Array} object 源数据 - * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c'] - * @param {String} value 需要设置的值 - */ -export const objSet = (object, path, value) => { - if (typeof object !== 'object') return object; - _basePath(path).reduce((o, k, i, _) => { - if (i === _.length - 1) { - // 若遍历结束直接赋值 - o[k] = value - return null - } else if (k in o) { - // 若存在对应路径,则返回找到的对象,进行下一次遍历 - return o[k] - } else { - // 若不存在对应路径,则创建对应对象,若下一路径是数字,新对象赋值为空数组,否则赋值为空对象 - o[k] = /^[0-9]{1,}$/.test(_[i + 1]) ? [] : {} - return o[k] - } - }, object) - // 返回object - return object; -} - -// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用 -function _basePath(path) { - // 若是数组,则直接返回 - if (Array.isArray(path)) return path - // 若有 '[',']',则替换成将 '[' 替换成 '.',去掉 ']' - return path.replace(/\[/g, '.').replace(/\]/g, '').split('.') -} - -/** - * 从对象中获取值 - * @param {Object|Array} object 源数据 - * @param {String| Array} path 'a.b.c' 或 ['a',0,'b','c'] - * @param {String} defaultVal 如果无法从调用链中获取值的默认值 - */ -export const objGet = (object, path, defaultVal = 'undefined') => { - // 先将path处理成统一格式 - let newPath = _basePath(path) - // 递归处理,返回最后结果 - let val = newPath.reduce((o, k) => { - return (o || {})[k] - }, object); - return !val || val !== undefined ? val : defaultVal -} - - -/** - * 是否为 number 类型 - * @param {any} num 需要判断的值 - * @return {Boolean} 是否为 number - */ -export const isNumber = (num) => { - return !isNaN(Number(num)) -} - -/** - * 是否为 boolean 类型 - * @param {any} bool 需要判断的值 - * @return {Boolean} 是否为 boolean - */ -export const isBoolean = (bool) => { - return (typeof bool === 'boolean') -} -/** - * 是否有必填字段 - * @param {Object} rules 规则 - * @return {Boolean} 是否有必填字段 - */ -export const isRequiredField = (rules) => { - let isNoField = false; - for (let i = 0; i < rules.length; i++) { - const ruleData = rules[i]; - if (ruleData.required) { - isNoField = true; - break; - } - } - return isNoField; -} - - -/** - * 获取数据类型 - * @param {Any} obj 需要获取数据类型的值 - */ -export const type = (obj) => { - var class2type = {}; - - // 生成class2type映射 - "Boolean Number String Function Array Date RegExp Object Error".split(" ").map(function(item, index) { - class2type["[object " + item + "]"] = item.toLowerCase(); - }) - if (obj == null) { - return obj + ""; - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[Object.prototype.toString.call(obj)] || "object" : - typeof obj; -} - -/** - * 判断两个值是否相等 - * @param {any} a 值 - * @param {any} b 值 - * @return {Boolean} 是否相等 - */ -export const isEqual = (a, b) => { - //如果a和b本来就全等 - if (a === b) { - //判断是否为0和-0 - return a !== 0 || 1 / a === 1 / b; - } - //判断是否为null和undefined - if (a == null || b == null) { - return a === b; - } - //接下来判断a和b的数据类型 - var classNameA = toString.call(a), - classNameB = toString.call(b); - //如果数据类型不相等,则返回false - if (classNameA !== classNameB) { - return false; - } - //如果数据类型相等,再根据不同数据类型分别判断 - switch (classNameA) { - case '[object RegExp]': - case '[object String]': - //进行字符串转换比较 - return '' + a === '' + b; - case '[object Number]': - //进行数字转换比较,判断是否为NaN - if (+a !== +a) { - return +b !== +b; - } - //判断是否为0或-0 - return +a === 0 ? 1 / +a === 1 / b : +a === +b; - case '[object Date]': - case '[object Boolean]': - return +a === +b; - } - //如果是对象类型 - if (classNameA == '[object Object]') { - //获取a和b的属性长度 - var propsA = Object.getOwnPropertyNames(a), - propsB = Object.getOwnPropertyNames(b); - if (propsA.length != propsB.length) { - return false; - } - for (var i = 0; i < propsA.length; i++) { - var propName = propsA[i]; - //如果对应属性对应值不相等,则返回false - if (a[propName] !== b[propName]) { - return false; - } - } - return true; - } - //如果是数组类型 - if (classNameA == '[object Array]') { - if (a.toString() == b.toString()) { - return true; - } - return false; - } -} diff --git a/uni_modules/uni-forms/components/uni-forms/validate.js b/uni_modules/uni-forms/components/uni-forms/validate.js deleted file mode 100644 index 1834c6c..0000000 --- a/uni_modules/uni-forms/components/uni-forms/validate.js +++ /dev/null @@ -1,486 +0,0 @@ -var pattern = { - email: /^\S+?@\S+?\.\S+?$/, - idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, - url: new RegExp( - "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", - 'i') -}; - -const FORMAT_MAPPING = { - "int": 'integer', - "bool": 'boolean', - "double": 'number', - "long": 'number', - "password": 'string' - // "fileurls": 'array' -} - -function formatMessage(args, resources = '') { - var defaultMessage = ['label'] - defaultMessage.forEach((item) => { - if (args[item] === undefined) { - args[item] = '' - } - }) - - let str = resources - for (let key in args) { - let reg = new RegExp('{' + key + '}') - str = str.replace(reg, args[key]) - } - return str -} - -function isEmptyValue(value, type) { - if (value === undefined || value === null) { - return true; - } - - if (typeof value === 'string' && !value) { - return true; - } - - if (Array.isArray(value) && !value.length) { - return true; - } - - if (type === 'object' && !Object.keys(value).length) { - return true; - } - - return false; -} - -const types = { - integer(value) { - return types.number(value) && parseInt(value, 10) === value; - }, - string(value) { - return typeof value === 'string'; - }, - number(value) { - if (isNaN(value)) { - return false; - } - return typeof value === 'number'; - }, - "boolean": function(value) { - return typeof value === 'boolean'; - }, - "float": function(value) { - return types.number(value) && !types.integer(value); - }, - array(value) { - return Array.isArray(value); - }, - object(value) { - return typeof value === 'object' && !types.array(value); - }, - date(value) { - return value instanceof Date; - }, - timestamp(value) { - if (!this.integer(value) || Math.abs(value).toString().length > 16) { - return false - } - return true; - }, - file(value) { - return typeof value.url === 'string'; - }, - email(value) { - return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; - }, - url(value) { - return typeof value === 'string' && !!value.match(pattern.url); - }, - pattern(reg, value) { - try { - return new RegExp(reg).test(value); - } catch (e) { - return false; - } - }, - method(value) { - return typeof value === 'function'; - }, - idcard(value) { - return typeof value === 'string' && !!value.match(pattern.idcard); - }, - 'url-https'(value) { - return this.url(value) && value.startsWith('https://'); - }, - 'url-scheme'(value) { - return value.startsWith('://'); - }, - 'url-web'(value) { - return false; - } -} - -class RuleValidator { - - constructor(message) { - this._message = message - } - - async validateRule(fieldKey, fieldValue, value, data, allData) { - var result = null - - let rules = fieldValue.rules - - let hasRequired = rules.findIndex((item) => { - return item.required - }) - if (hasRequired < 0) { - if (value === null || value === undefined) { - return result - } - if (typeof value === 'string' && !value.length) { - return result - } - } - - var message = this._message - - if (rules === undefined) { - return message['default'] - } - - for (var i = 0; i < rules.length; i++) { - let rule = rules[i] - let vt = this._getValidateType(rule) - - Object.assign(rule, { - label: fieldValue.label || `["${fieldKey}"]` - }) - - if (RuleValidatorHelper[vt]) { - result = RuleValidatorHelper[vt](rule, value, message) - if (result != null) { - break - } - } - - if (rule.validateExpr) { - let now = Date.now() - let resultExpr = rule.validateExpr(value, allData, now) - if (resultExpr === false) { - result = this._getMessage(rule, rule.errorMessage || this._message['default']) - break - } - } - - if (rule.validateFunction) { - result = await this.validateFunction(rule, value, data, allData, vt) - if (result !== null) { - break - } - } - } - - if (result !== null) { - result = message.TAG + result - } - - return result - } - - async validateFunction(rule, value, data, allData, vt) { - let result = null - try { - let callbackMessage = null - const res = await rule.validateFunction(rule, value, allData || data, (message) => { - callbackMessage = message - }) - if (callbackMessage || (typeof res === 'string' && res) || res === false) { - result = this._getMessage(rule, callbackMessage || res, vt) - } - } catch (e) { - result = this._getMessage(rule, e.message, vt) - } - return result - } - - _getMessage(rule, message, vt) { - return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) - } - - _getValidateType(rule) { - var result = '' - if (rule.required) { - result = 'required' - } else if (rule.format) { - result = 'format' - } else if (rule.arrayType) { - result = 'arrayTypeFormat' - } else if (rule.range) { - result = 'range' - } else if (rule.maximum !== undefined || rule.minimum !== undefined) { - result = 'rangeNumber' - } else if (rule.maxLength !== undefined || rule.minLength !== undefined) { - result = 'rangeLength' - } else if (rule.pattern) { - result = 'pattern' - } else if (rule.validateFunction) { - result = 'validateFunction' - } - return result - } -} - -const RuleValidatorHelper = { - required(rule, value, message) { - if (rule.required && isEmptyValue(value, rule.format || typeof value)) { - return formatMessage(rule, rule.errorMessage || message.required); - } - - return null - }, - - range(rule, value, message) { - const { - range, - errorMessage - } = rule; - - let list = new Array(range.length); - for (let i = 0; i < range.length; i++) { - const item = range[i]; - if (types.object(item) && item.value !== undefined) { - list[i] = item.value; - } else { - list[i] = item; - } - } - - let result = false - if (Array.isArray(value)) { - result = (new Set(value.concat(list)).size === list.length); - } else { - if (list.indexOf(value) > -1) { - result = true; - } - } - - if (!result) { - return formatMessage(rule, errorMessage || message['enum']); - } - - return null - }, - - rangeNumber(rule, value, message) { - if (!types.number(value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - let { - minimum, - maximum, - exclusiveMinimum, - exclusiveMaximum - } = rule; - let min = exclusiveMinimum ? value <= minimum : value < minimum; - let max = exclusiveMaximum ? value >= maximum : value > maximum; - - if (minimum !== undefined && min) { - return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? - 'exclusiveMinimum' : 'minimum' - ]) - } else if (maximum !== undefined && max) { - return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? - 'exclusiveMaximum' : 'maximum' - ]) - } else if (minimum !== undefined && maximum !== undefined && (min || max)) { - return formatMessage(rule, rule.errorMessage || message['number'].range) - } - - return null - }, - - rangeLength(rule, value, message) { - if (!types.string(value) && !types.array(value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - let min = rule.minLength; - let max = rule.maxLength; - let val = value.length; - - if (min !== undefined && val < min) { - return formatMessage(rule, rule.errorMessage || message['length'].minLength) - } else if (max !== undefined && val > max) { - return formatMessage(rule, rule.errorMessage || message['length'].maxLength) - } else if (min !== undefined && max !== undefined && (val < min || val > max)) { - return formatMessage(rule, rule.errorMessage || message['length'].range) - } - - return null - }, - - pattern(rule, value, message) { - if (!types['pattern'](rule.pattern, value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - return null - }, - - format(rule, value, message) { - var customTypes = Object.keys(types); - var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : (rule.format || rule.arrayType); - - if (customTypes.indexOf(format) > -1) { - if (!types[format](value)) { - return formatMessage(rule, rule.errorMessage || message.typeError); - } - } - - return null - }, - - arrayTypeFormat(rule, value, message) { - if (!Array.isArray(value)) { - return formatMessage(rule, rule.errorMessage || message.typeError); - } - - for (let i = 0; i < value.length; i++) { - const element = value[i]; - let formatResult = this.format(rule, element, message) - if (formatResult !== null) { - return formatResult - } - } - - return null - } -} - -class SchemaValidator extends RuleValidator { - - constructor(schema, options) { - super(SchemaValidator.message); - - this._schema = schema - this._options = options || null - } - - updateSchema(schema) { - this._schema = schema - } - - async validate(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidate(data, false, allData) - } - return result.length ? result[0] : null - } - - async validateAll(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidate(data, true, allData) - } - return result - } - - async validateUpdate(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidateUpdate(data, false, allData) - } - return result.length ? result[0] : null - } - - async invokeValidate(data, all, allData) { - let result = [] - let schema = this._schema - for (let key in schema) { - let value = schema[key] - let errorMessage = await this.validateRule(key, value, data[key], data, allData) - if (errorMessage != null) { - result.push({ - key, - errorMessage - }) - if (!all) break - } - } - return result - } - - async invokeValidateUpdate(data, all, allData) { - let result = [] - for (let key in data) { - let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData) - if (errorMessage != null) { - result.push({ - key, - errorMessage - }) - if (!all) break - } - } - return result - } - - _checkFieldInSchema(data) { - var keys = Object.keys(data) - var keys2 = Object.keys(this._schema) - if (new Set(keys.concat(keys2)).size === keys2.length) { - return '' - } - - var noExistFields = keys.filter((key) => { - return keys2.indexOf(key) < 0; - }) - var errorMessage = formatMessage({ - field: JSON.stringify(noExistFields) - }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']) - return [{ - key: 'invalid', - errorMessage - }] - } -} - -function Message() { - return { - TAG: "", - default: '验证错误', - defaultInvalid: '提交的字段{field}在数据库中并不存在', - validateFunction: '验证无效', - required: '{label}必填', - 'enum': '{label}超出范围', - timestamp: '{label}格式无效', - whitespace: '{label}不能为空', - typeError: '{label}类型无效', - date: { - format: '{label}日期{value}格式无效', - parse: '{label}日期无法解析,{value}无效', - invalid: '{label}日期{value}无效' - }, - length: { - minLength: '{label}长度不能少于{minLength}', - maxLength: '{label}长度不能超过{maxLength}', - range: '{label}必须介于{minLength}和{maxLength}之间' - }, - number: { - minimum: '{label}不能小于{minimum}', - maximum: '{label}不能大于{maximum}', - exclusiveMinimum: '{label}不能小于等于{minimum}', - exclusiveMaximum: '{label}不能大于等于{maximum}', - range: '{label}必须介于{minimum}and{maximum}之间' - }, - pattern: { - mismatch: '{label}格式不匹配' - } - }; -} - - -SchemaValidator.message = new Message(); - -export default SchemaValidator diff --git a/uni_modules/uni-forms/package.json b/uni_modules/uni-forms/package.json deleted file mode 100644 index e3736c4..0000000 --- a/uni_modules/uni-forms/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-forms", - "displayName": "uni-forms 表单", - "version": "1.4.8", - "description": "由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据", - "keywords": [ - "uni-ui", - "表单", - "校验", - "表单校验", - "表单验证" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-forms/readme.md b/uni_modules/uni-forms/readme.md deleted file mode 100644 index 63d5a04..0000000 --- a/uni_modules/uni-forms/readme.md +++ /dev/null @@ -1,23 +0,0 @@ - - -## Forms 表单 - -> **组件名:uni-forms** -> 代码块: `uForms`、`uni-forms-item` -> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。 - - -uni-app的内置组件已经有了 `
`组件,用于提交表单内容。 - -然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni ui` 又基于 ``组件封装了 ``组件,内置了表单验证功能。 - -`` 提供了 `rules`属性来描述校验规则、``子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。 - -每个要校验的表单项,不管input还是checkbox,都必须放在``组件中,且一个``组件只能放置一个表单项。 - -``组件内部预留了显示error message的区域,默认是在表单项的底部。 - -另外,``组件下面的各个表单项,可以通过``包裹为不同的分组。同一``下的不同表单项目将聚拢在一起,同其他group保持垂直间距。``仅影响视觉效果。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-forms) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-goods-nav/changelog.md b/uni_modules/uni-goods-nav/changelog.md deleted file mode 100644 index c6264c6..0000000 --- a/uni_modules/uni-goods-nav/changelog.md +++ /dev/null @@ -1,18 +0,0 @@ -## 1.2.1(2022-05-30) -- 新增 stat属性,是否开启uni统计功能 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-goods-nav](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) -## 1.1.1(2021-08-24) -- 新增 支持国际化 -## 1.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-05-12) -- 新增 组件示例地址 -## 1.0.6(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.5(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json deleted file mode 100644 index dcdba41..0000000 --- a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-goods-nav.options.shop": "shop", - "uni-goods-nav.options.cart": "cart", - "uni-goods-nav.buttonGroup.addToCart": "add to cart", - "uni-goods-nav.buttonGroup.buyNow": "buy now" -} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json deleted file mode 100644 index 48ee344..0000000 --- a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-goods-nav.options.shop": "店铺", - "uni-goods-nav.options.cart": "购物车", - "uni-goods-nav.buttonGroup.addToCart": "加入购物车", - "uni-goods-nav.buttonGroup.buyNow": "立即购买" -} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json deleted file mode 100644 index d0a0255..0000000 --- a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "uni-goods-nav.options.shop": "店鋪", - "uni-goods-nav.options.cart": "購物車", - "uni-goods-nav.buttonGroup.addToCart": "加入購物車", - "uni-goods-nav.buttonGroup.buyNow": "立即購買" -} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue b/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue deleted file mode 100644 index 8a16b17..0000000 --- a/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue +++ /dev/null @@ -1,229 +0,0 @@ - - - - - diff --git a/uni_modules/uni-goods-nav/package.json b/uni_modules/uni-goods-nav/package.json deleted file mode 100644 index 636e45e..0000000 --- a/uni_modules/uni-goods-nav/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-goods-nav", - "displayName": "uni-goods-nav 商品导航", - "version": "1.2.1", - "description": "商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作", - "keywords": [ - "uni-ui", - "uniui", - "商品导航" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-goods-nav/readme.md b/uni_modules/uni-goods-nav/readme.md deleted file mode 100644 index 07df93f..0000000 --- a/uni_modules/uni-goods-nav/readme.md +++ /dev/null @@ -1,10 +0,0 @@ - - -## GoodsNav 商品导航 -> **组件名:uni-goods-nav** -> 代码块: `uGoodsNav` - -商品加入购物车,立即购买等。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-grid/changelog.md b/uni_modules/uni-grid/changelog.md deleted file mode 100644 index d301166..0000000 --- a/uni_modules/uni-grid/changelog.md +++ /dev/null @@ -1,13 +0,0 @@ -## 1.4.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid) -## 1.3.2(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -## 1.3.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.3.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.2.4(2021-05-12) -- 新增 组件示例地址 -## 1.2.3(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue b/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue deleted file mode 100644 index 19c08d7..0000000 --- a/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - - diff --git a/uni_modules/uni-grid/components/uni-grid/uni-grid.vue b/uni_modules/uni-grid/components/uni-grid/uni-grid.vue deleted file mode 100644 index 0edc7ff..0000000 --- a/uni_modules/uni-grid/components/uni-grid/uni-grid.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/uni_modules/uni-grid/package.json b/uni_modules/uni-grid/package.json deleted file mode 100644 index ccb2c91..0000000 --- a/uni_modules/uni-grid/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id": "uni-grid", - "displayName": "uni-grid 宫格", - "version": "1.4.0", - "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。", - "keywords": [ - "uni-ui", - "uniui", - "九宫格", - "表格" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss","uni-icons"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-grid/readme.md b/uni_modules/uni-grid/readme.md deleted file mode 100644 index 0aa44cc..0000000 --- a/uni_modules/uni-grid/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## Grid 宫格 -> **组件名:uni-grid** -> 代码块: `uGrid` - - -宫格组件。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-group/changelog.md b/uni_modules/uni-group/changelog.md deleted file mode 100644 index a7024fd..0000000 --- a/uni_modules/uni-group/changelog.md +++ /dev/null @@ -1,16 +0,0 @@ -## 1.2.2(2022-05-30) -- 新增 stat属性,是否开启uni统计功能 -## 1.2.1(2021-11-22) -- 修复 vue3中某些scss变量无法找到的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-group](https://uniapp.dcloud.io/component/uniui/uni-group) -## 1.1.7(2021-11-08) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -- 优化 组件文档 -## 1.0.3(2021-05-12) -- 新增 组件示例地址 -## 1.0.2(2021-02-05) -- 调整为uni_modules目录规范 -- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-group/components/uni-group/uni-group.vue b/uni_modules/uni-group/components/uni-group/uni-group.vue deleted file mode 100644 index 3425ecd..0000000 --- a/uni_modules/uni-group/components/uni-group/uni-group.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - diff --git a/uni_modules/uni-group/package.json b/uni_modules/uni-group/package.json deleted file mode 100644 index ea00a08..0000000 --- a/uni_modules/uni-group/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-group", - "displayName": "uni-group 分组", - "version": "1.2.2", - "description": "分组组件可用于将组件用于分组,添加间隔,以产生明显的区块", - "keywords": [ - "uni-ui", - "uniui", - "group", - "分组", - "" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-group/readme.md b/uni_modules/uni-group/readme.md deleted file mode 100644 index bae67f4..0000000 --- a/uni_modules/uni-group/readme.md +++ /dev/null @@ -1,9 +0,0 @@ - -## Group 分组 -> **组件名:uni-group** -> 代码块: `uGroup` - -分组组件可用于将组件分组,添加间隔,以产生明显的区块。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-group) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md deleted file mode 100644 index 6449885..0000000 --- a/uni_modules/uni-icons/changelog.md +++ /dev/null @@ -1,22 +0,0 @@ -## 1.3.5(2022-01-24) -- 优化 size 属性可以传入不带单位的字符串数值 -## 1.3.4(2022-01-24) -- 优化 size 支持其他单位 -## 1.3.3(2022-01-17) -- 修复 nvue 有些图标不显示的bug,兼容老版本图标 -## 1.3.2(2021-12-01) -- 优化 示例可复制图标名称 -## 1.3.1(2021-11-23) -- 优化 兼容旧组件 type 值 -## 1.3.0(2021-11-19) -- 新增 更多图标 -- 优化 自定义图标使用方式 -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) -## 1.1.7(2021-11-08) -## 1.2.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.5(2021-05-12) -- 新增 组件示例地址 -## 1.1.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js deleted file mode 100644 index 7889936..0000000 --- a/uni_modules/uni-icons/components/uni-icons/icons.js +++ /dev/null @@ -1,1169 +0,0 @@ -export default { - "id": "2852637", - "name": "uniui图标库", - "font_family": "uniicons", - "css_prefix_text": "uniui-", - "description": "", - "glyphs": [ - { - "icon_id": "25027049", - "name": "yanse", - "font_class": "color", - "unicode": "e6cf", - "unicode_decimal": 59087 - }, - { - "icon_id": "25027048", - "name": "wallet", - "font_class": "wallet", - "unicode": "e6b1", - "unicode_decimal": 59057 - }, - { - "icon_id": "25015720", - "name": "settings-filled", - "font_class": "settings-filled", - "unicode": "e6ce", - "unicode_decimal": 59086 - }, - { - "icon_id": "25015434", - "name": "shimingrenzheng-filled", - "font_class": "auth-filled", - "unicode": "e6cc", - "unicode_decimal": 59084 - }, - { - "icon_id": "24934246", - "name": "shop-filled", - "font_class": "shop-filled", - "unicode": "e6cd", - "unicode_decimal": 59085 - }, - { - "icon_id": "24934159", - "name": "staff-filled-01", - "font_class": "staff-filled", - "unicode": "e6cb", - "unicode_decimal": 59083 - }, - { - "icon_id": "24932461", - "name": "VIP-filled", - "font_class": "vip-filled", - "unicode": "e6c6", - "unicode_decimal": 59078 - }, - { - "icon_id": "24932462", - "name": "plus_circle_fill", - "font_class": "plus-filled", - "unicode": "e6c7", - "unicode_decimal": 59079 - }, - { - "icon_id": "24932463", - "name": "folder_add-filled", - "font_class": "folder-add-filled", - "unicode": "e6c8", - "unicode_decimal": 59080 - }, - { - "icon_id": "24932464", - "name": "yanse-filled", - "font_class": "color-filled", - "unicode": "e6c9", - "unicode_decimal": 59081 - }, - { - "icon_id": "24932465", - "name": "tune-filled", - "font_class": "tune-filled", - "unicode": "e6ca", - "unicode_decimal": 59082 - }, - { - "icon_id": "24932455", - "name": "a-rilidaka-filled", - "font_class": "calendar-filled", - "unicode": "e6c0", - "unicode_decimal": 59072 - }, - { - "icon_id": "24932456", - "name": "notification-filled", - "font_class": "notification-filled", - "unicode": "e6c1", - "unicode_decimal": 59073 - }, - { - "icon_id": "24932457", - "name": "wallet-filled", - "font_class": "wallet-filled", - "unicode": "e6c2", - "unicode_decimal": 59074 - }, - { - "icon_id": "24932458", - "name": "paihangbang-filled", - "font_class": "medal-filled", - "unicode": "e6c3", - "unicode_decimal": 59075 - }, - { - "icon_id": "24932459", - "name": "gift-filled", - "font_class": "gift-filled", - "unicode": "e6c4", - "unicode_decimal": 59076 - }, - { - "icon_id": "24932460", - "name": "fire-filled", - "font_class": "fire-filled", - "unicode": "e6c5", - "unicode_decimal": 59077 - }, - { - "icon_id": "24928001", - "name": "refreshempty", - "font_class": "refreshempty", - "unicode": "e6bf", - "unicode_decimal": 59071 - }, - { - "icon_id": "24926853", - "name": "location-ellipse", - "font_class": "location-filled", - "unicode": "e6af", - "unicode_decimal": 59055 - }, - { - "icon_id": "24926735", - "name": "person-filled", - "font_class": "person-filled", - "unicode": "e69d", - "unicode_decimal": 59037 - }, - { - "icon_id": "24926703", - "name": "personadd-filled", - "font_class": "personadd-filled", - "unicode": "e698", - "unicode_decimal": 59032 - }, - { - "icon_id": "24923351", - "name": "back", - "font_class": "back", - "unicode": "e6b9", - "unicode_decimal": 59065 - }, - { - "icon_id": "24923352", - "name": "forward", - "font_class": "forward", - "unicode": "e6ba", - "unicode_decimal": 59066 - }, - { - "icon_id": "24923353", - "name": "arrowthinright", - "font_class": "arrow-right", - "unicode": "e6bb", - "unicode_decimal": 59067 - }, - { - "icon_id": "24923353", - "name": "arrowthinright", - "font_class": "arrowthinright", - "unicode": "e6bb", - "unicode_decimal": 59067 - }, - { - "icon_id": "24923354", - "name": "arrowthinleft", - "font_class": "arrow-left", - "unicode": "e6bc", - "unicode_decimal": 59068 - }, - { - "icon_id": "24923354", - "name": "arrowthinleft", - "font_class": "arrowthinleft", - "unicode": "e6bc", - "unicode_decimal": 59068 - }, - { - "icon_id": "24923355", - "name": "arrowthinup", - "font_class": "arrow-up", - "unicode": "e6bd", - "unicode_decimal": 59069 - }, - { - "icon_id": "24923355", - "name": "arrowthinup", - "font_class": "arrowthinup", - "unicode": "e6bd", - "unicode_decimal": 59069 - }, - { - "icon_id": "24923356", - "name": "arrowthindown", - "font_class": "arrow-down", - "unicode": "e6be", - "unicode_decimal": 59070 - },{ - "icon_id": "24923356", - "name": "arrowthindown", - "font_class": "arrowthindown", - "unicode": "e6be", - "unicode_decimal": 59070 - }, - { - "icon_id": "24923349", - "name": "arrowdown", - "font_class": "bottom", - "unicode": "e6b8", - "unicode_decimal": 59064 - },{ - "icon_id": "24923349", - "name": "arrowdown", - "font_class": "arrowdown", - "unicode": "e6b8", - "unicode_decimal": 59064 - }, - { - "icon_id": "24923346", - "name": "arrowright", - "font_class": "right", - "unicode": "e6b5", - "unicode_decimal": 59061 - }, - { - "icon_id": "24923346", - "name": "arrowright", - "font_class": "arrowright", - "unicode": "e6b5", - "unicode_decimal": 59061 - }, - { - "icon_id": "24923347", - "name": "arrowup", - "font_class": "top", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "24923347", - "name": "arrowup", - "font_class": "arrowup", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "24923348", - "name": "arrowleft", - "font_class": "left", - "unicode": "e6b7", - "unicode_decimal": 59063 - }, - { - "icon_id": "24923348", - "name": "arrowleft", - "font_class": "arrowleft", - "unicode": "e6b7", - "unicode_decimal": 59063 - }, - { - "icon_id": "24923334", - "name": "eye", - "font_class": "eye", - "unicode": "e651", - "unicode_decimal": 58961 - }, - { - "icon_id": "24923335", - "name": "eye-filled", - "font_class": "eye-filled", - "unicode": "e66a", - "unicode_decimal": 58986 - }, - { - "icon_id": "24923336", - "name": "eye-slash", - "font_class": "eye-slash", - "unicode": "e6b3", - "unicode_decimal": 59059 - }, - { - "icon_id": "24923337", - "name": "eye-slash-filled", - "font_class": "eye-slash-filled", - "unicode": "e6b4", - "unicode_decimal": 59060 - }, - { - "icon_id": "24923305", - "name": "info-filled", - "font_class": "info-filled", - "unicode": "e649", - "unicode_decimal": 58953 - }, - { - "icon_id": "24923299", - "name": "reload-01", - "font_class": "reload", - "unicode": "e6b2", - "unicode_decimal": 59058 - }, - { - "icon_id": "24923195", - "name": "mic_slash_fill", - "font_class": "micoff-filled", - "unicode": "e6b0", - "unicode_decimal": 59056 - }, - { - "icon_id": "24923165", - "name": "map-pin-ellipse", - "font_class": "map-pin-ellipse", - "unicode": "e6ac", - "unicode_decimal": 59052 - }, - { - "icon_id": "24923166", - "name": "map-pin", - "font_class": "map-pin", - "unicode": "e6ad", - "unicode_decimal": 59053 - }, - { - "icon_id": "24923167", - "name": "location", - "font_class": "location", - "unicode": "e6ae", - "unicode_decimal": 59054 - }, - { - "icon_id": "24923064", - "name": "starhalf", - "font_class": "starhalf", - "unicode": "e683", - "unicode_decimal": 59011 - }, - { - "icon_id": "24923065", - "name": "star", - "font_class": "star", - "unicode": "e688", - "unicode_decimal": 59016 - }, - { - "icon_id": "24923066", - "name": "star-filled", - "font_class": "star-filled", - "unicode": "e68f", - "unicode_decimal": 59023 - }, - { - "icon_id": "24899646", - "name": "a-rilidaka", - "font_class": "calendar", - "unicode": "e6a0", - "unicode_decimal": 59040 - }, - { - "icon_id": "24899647", - "name": "fire", - "font_class": "fire", - "unicode": "e6a1", - "unicode_decimal": 59041 - }, - { - "icon_id": "24899648", - "name": "paihangbang", - "font_class": "medal", - "unicode": "e6a2", - "unicode_decimal": 59042 - }, - { - "icon_id": "24899649", - "name": "font", - "font_class": "font", - "unicode": "e6a3", - "unicode_decimal": 59043 - }, - { - "icon_id": "24899650", - "name": "gift", - "font_class": "gift", - "unicode": "e6a4", - "unicode_decimal": 59044 - }, - { - "icon_id": "24899651", - "name": "link", - "font_class": "link", - "unicode": "e6a5", - "unicode_decimal": 59045 - }, - { - "icon_id": "24899652", - "name": "notification", - "font_class": "notification", - "unicode": "e6a6", - "unicode_decimal": 59046 - }, - { - "icon_id": "24899653", - "name": "staff", - "font_class": "staff", - "unicode": "e6a7", - "unicode_decimal": 59047 - }, - { - "icon_id": "24899654", - "name": "VIP", - "font_class": "vip", - "unicode": "e6a8", - "unicode_decimal": 59048 - }, - { - "icon_id": "24899655", - "name": "folder_add", - "font_class": "folder-add", - "unicode": "e6a9", - "unicode_decimal": 59049 - }, - { - "icon_id": "24899656", - "name": "tune", - "font_class": "tune", - "unicode": "e6aa", - "unicode_decimal": 59050 - }, - { - "icon_id": "24899657", - "name": "shimingrenzheng", - "font_class": "auth", - "unicode": "e6ab", - "unicode_decimal": 59051 - }, - { - "icon_id": "24899565", - "name": "person", - "font_class": "person", - "unicode": "e699", - "unicode_decimal": 59033 - }, - { - "icon_id": "24899566", - "name": "email-filled", - "font_class": "email-filled", - "unicode": "e69a", - "unicode_decimal": 59034 - }, - { - "icon_id": "24899567", - "name": "phone-filled", - "font_class": "phone-filled", - "unicode": "e69b", - "unicode_decimal": 59035 - }, - { - "icon_id": "24899568", - "name": "phone", - "font_class": "phone", - "unicode": "e69c", - "unicode_decimal": 59036 - }, - { - "icon_id": "24899570", - "name": "email", - "font_class": "email", - "unicode": "e69e", - "unicode_decimal": 59038 - }, - { - "icon_id": "24899571", - "name": "personadd", - "font_class": "personadd", - "unicode": "e69f", - "unicode_decimal": 59039 - }, - { - "icon_id": "24899558", - "name": "chatboxes-filled", - "font_class": "chatboxes-filled", - "unicode": "e692", - "unicode_decimal": 59026 - }, - { - "icon_id": "24899559", - "name": "contact", - "font_class": "contact", - "unicode": "e693", - "unicode_decimal": 59027 - }, - { - "icon_id": "24899560", - "name": "chatbubble-filled", - "font_class": "chatbubble-filled", - "unicode": "e694", - "unicode_decimal": 59028 - }, - { - "icon_id": "24899561", - "name": "contact-filled", - "font_class": "contact-filled", - "unicode": "e695", - "unicode_decimal": 59029 - }, - { - "icon_id": "24899562", - "name": "chatboxes", - "font_class": "chatboxes", - "unicode": "e696", - "unicode_decimal": 59030 - }, - { - "icon_id": "24899563", - "name": "chatbubble", - "font_class": "chatbubble", - "unicode": "e697", - "unicode_decimal": 59031 - }, - { - "icon_id": "24881290", - "name": "upload-filled", - "font_class": "upload-filled", - "unicode": "e68e", - "unicode_decimal": 59022 - }, - { - "icon_id": "24881292", - "name": "upload", - "font_class": "upload", - "unicode": "e690", - "unicode_decimal": 59024 - }, - { - "icon_id": "24881293", - "name": "weixin", - "font_class": "weixin", - "unicode": "e691", - "unicode_decimal": 59025 - }, - { - "icon_id": "24881274", - "name": "compose", - "font_class": "compose", - "unicode": "e67f", - "unicode_decimal": 59007 - }, - { - "icon_id": "24881275", - "name": "qq", - "font_class": "qq", - "unicode": "e680", - "unicode_decimal": 59008 - }, - { - "icon_id": "24881276", - "name": "download-filled", - "font_class": "download-filled", - "unicode": "e681", - "unicode_decimal": 59009 - }, - { - "icon_id": "24881277", - "name": "pengyouquan", - "font_class": "pyq", - "unicode": "e682", - "unicode_decimal": 59010 - }, - { - "icon_id": "24881279", - "name": "sound", - "font_class": "sound", - "unicode": "e684", - "unicode_decimal": 59012 - }, - { - "icon_id": "24881280", - "name": "trash-filled", - "font_class": "trash-filled", - "unicode": "e685", - "unicode_decimal": 59013 - }, - { - "icon_id": "24881281", - "name": "sound-filled", - "font_class": "sound-filled", - "unicode": "e686", - "unicode_decimal": 59014 - }, - { - "icon_id": "24881282", - "name": "trash", - "font_class": "trash", - "unicode": "e687", - "unicode_decimal": 59015 - }, - { - "icon_id": "24881284", - "name": "videocam-filled", - "font_class": "videocam-filled", - "unicode": "e689", - "unicode_decimal": 59017 - }, - { - "icon_id": "24881285", - "name": "spinner-cycle", - "font_class": "spinner-cycle", - "unicode": "e68a", - "unicode_decimal": 59018 - }, - { - "icon_id": "24881286", - "name": "weibo", - "font_class": "weibo", - "unicode": "e68b", - "unicode_decimal": 59019 - }, - { - "icon_id": "24881288", - "name": "videocam", - "font_class": "videocam", - "unicode": "e68c", - "unicode_decimal": 59020 - }, - { - "icon_id": "24881289", - "name": "download", - "font_class": "download", - "unicode": "e68d", - "unicode_decimal": 59021 - }, - { - "icon_id": "24879601", - "name": "help", - "font_class": "help", - "unicode": "e679", - "unicode_decimal": 59001 - }, - { - "icon_id": "24879602", - "name": "navigate-filled", - "font_class": "navigate-filled", - "unicode": "e67a", - "unicode_decimal": 59002 - }, - { - "icon_id": "24879603", - "name": "plusempty", - "font_class": "plusempty", - "unicode": "e67b", - "unicode_decimal": 59003 - }, - { - "icon_id": "24879604", - "name": "smallcircle", - "font_class": "smallcircle", - "unicode": "e67c", - "unicode_decimal": 59004 - }, - { - "icon_id": "24879605", - "name": "minus-filled", - "font_class": "minus-filled", - "unicode": "e67d", - "unicode_decimal": 59005 - }, - { - "icon_id": "24879606", - "name": "micoff", - "font_class": "micoff", - "unicode": "e67e", - "unicode_decimal": 59006 - }, - { - "icon_id": "24879588", - "name": "closeempty", - "font_class": "closeempty", - "unicode": "e66c", - "unicode_decimal": 58988 - }, - { - "icon_id": "24879589", - "name": "clear", - "font_class": "clear", - "unicode": "e66d", - "unicode_decimal": 58989 - }, - { - "icon_id": "24879590", - "name": "navigate", - "font_class": "navigate", - "unicode": "e66e", - "unicode_decimal": 58990 - }, - { - "icon_id": "24879591", - "name": "minus", - "font_class": "minus", - "unicode": "e66f", - "unicode_decimal": 58991 - }, - { - "icon_id": "24879592", - "name": "image", - "font_class": "image", - "unicode": "e670", - "unicode_decimal": 58992 - }, - { - "icon_id": "24879593", - "name": "mic", - "font_class": "mic", - "unicode": "e671", - "unicode_decimal": 58993 - }, - { - "icon_id": "24879594", - "name": "paperplane", - "font_class": "paperplane", - "unicode": "e672", - "unicode_decimal": 58994 - }, - { - "icon_id": "24879595", - "name": "close", - "font_class": "close", - "unicode": "e673", - "unicode_decimal": 58995 - }, - { - "icon_id": "24879596", - "name": "help-filled", - "font_class": "help-filled", - "unicode": "e674", - "unicode_decimal": 58996 - }, - { - "icon_id": "24879597", - "name": "plus-filled", - "font_class": "paperplane-filled", - "unicode": "e675", - "unicode_decimal": 58997 - }, - { - "icon_id": "24879598", - "name": "plus", - "font_class": "plus", - "unicode": "e676", - "unicode_decimal": 58998 - }, - { - "icon_id": "24879599", - "name": "mic-filled", - "font_class": "mic-filled", - "unicode": "e677", - "unicode_decimal": 58999 - }, - { - "icon_id": "24879600", - "name": "image-filled", - "font_class": "image-filled", - "unicode": "e678", - "unicode_decimal": 59000 - }, - { - "icon_id": "24855900", - "name": "locked-filled", - "font_class": "locked-filled", - "unicode": "e668", - "unicode_decimal": 58984 - }, - { - "icon_id": "24855901", - "name": "info", - "font_class": "info", - "unicode": "e669", - "unicode_decimal": 58985 - }, - { - "icon_id": "24855903", - "name": "locked", - "font_class": "locked", - "unicode": "e66b", - "unicode_decimal": 58987 - }, - { - "icon_id": "24855884", - "name": "camera-filled", - "font_class": "camera-filled", - "unicode": "e658", - "unicode_decimal": 58968 - }, - { - "icon_id": "24855885", - "name": "chat-filled", - "font_class": "chat-filled", - "unicode": "e659", - "unicode_decimal": 58969 - }, - { - "icon_id": "24855886", - "name": "camera", - "font_class": "camera", - "unicode": "e65a", - "unicode_decimal": 58970 - }, - { - "icon_id": "24855887", - "name": "circle", - "font_class": "circle", - "unicode": "e65b", - "unicode_decimal": 58971 - }, - { - "icon_id": "24855888", - "name": "checkmarkempty", - "font_class": "checkmarkempty", - "unicode": "e65c", - "unicode_decimal": 58972 - }, - { - "icon_id": "24855889", - "name": "chat", - "font_class": "chat", - "unicode": "e65d", - "unicode_decimal": 58973 - }, - { - "icon_id": "24855890", - "name": "circle-filled", - "font_class": "circle-filled", - "unicode": "e65e", - "unicode_decimal": 58974 - }, - { - "icon_id": "24855891", - "name": "flag", - "font_class": "flag", - "unicode": "e65f", - "unicode_decimal": 58975 - }, - { - "icon_id": "24855892", - "name": "flag-filled", - "font_class": "flag-filled", - "unicode": "e660", - "unicode_decimal": 58976 - }, - { - "icon_id": "24855893", - "name": "gear-filled", - "font_class": "gear-filled", - "unicode": "e661", - "unicode_decimal": 58977 - }, - { - "icon_id": "24855894", - "name": "home", - "font_class": "home", - "unicode": "e662", - "unicode_decimal": 58978 - }, - { - "icon_id": "24855895", - "name": "home-filled", - "font_class": "home-filled", - "unicode": "e663", - "unicode_decimal": 58979 - }, - { - "icon_id": "24855896", - "name": "gear", - "font_class": "gear", - "unicode": "e664", - "unicode_decimal": 58980 - }, - { - "icon_id": "24855897", - "name": "smallcircle-filled", - "font_class": "smallcircle-filled", - "unicode": "e665", - "unicode_decimal": 58981 - }, - { - "icon_id": "24855898", - "name": "map-filled", - "font_class": "map-filled", - "unicode": "e666", - "unicode_decimal": 58982 - }, - { - "icon_id": "24855899", - "name": "map", - "font_class": "map", - "unicode": "e667", - "unicode_decimal": 58983 - }, - { - "icon_id": "24855825", - "name": "refresh-filled", - "font_class": "refresh-filled", - "unicode": "e656", - "unicode_decimal": 58966 - }, - { - "icon_id": "24855826", - "name": "refresh", - "font_class": "refresh", - "unicode": "e657", - "unicode_decimal": 58967 - }, - { - "icon_id": "24855808", - "name": "cloud-upload", - "font_class": "cloud-upload", - "unicode": "e645", - "unicode_decimal": 58949 - }, - { - "icon_id": "24855809", - "name": "cloud-download-filled", - "font_class": "cloud-download-filled", - "unicode": "e646", - "unicode_decimal": 58950 - }, - { - "icon_id": "24855810", - "name": "cloud-download", - "font_class": "cloud-download", - "unicode": "e647", - "unicode_decimal": 58951 - }, - { - "icon_id": "24855811", - "name": "cloud-upload-filled", - "font_class": "cloud-upload-filled", - "unicode": "e648", - "unicode_decimal": 58952 - }, - { - "icon_id": "24855813", - "name": "redo", - "font_class": "redo", - "unicode": "e64a", - "unicode_decimal": 58954 - }, - { - "icon_id": "24855814", - "name": "images-filled", - "font_class": "images-filled", - "unicode": "e64b", - "unicode_decimal": 58955 - }, - { - "icon_id": "24855815", - "name": "undo-filled", - "font_class": "undo-filled", - "unicode": "e64c", - "unicode_decimal": 58956 - }, - { - "icon_id": "24855816", - "name": "more", - "font_class": "more", - "unicode": "e64d", - "unicode_decimal": 58957 - }, - { - "icon_id": "24855817", - "name": "more-filled", - "font_class": "more-filled", - "unicode": "e64e", - "unicode_decimal": 58958 - }, - { - "icon_id": "24855818", - "name": "undo", - "font_class": "undo", - "unicode": "e64f", - "unicode_decimal": 58959 - }, - { - "icon_id": "24855819", - "name": "images", - "font_class": "images", - "unicode": "e650", - "unicode_decimal": 58960 - }, - { - "icon_id": "24855821", - "name": "paperclip", - "font_class": "paperclip", - "unicode": "e652", - "unicode_decimal": 58962 - }, - { - "icon_id": "24855822", - "name": "settings", - "font_class": "settings", - "unicode": "e653", - "unicode_decimal": 58963 - }, - { - "icon_id": "24855823", - "name": "search", - "font_class": "search", - "unicode": "e654", - "unicode_decimal": 58964 - }, - { - "icon_id": "24855824", - "name": "redo-filled", - "font_class": "redo-filled", - "unicode": "e655", - "unicode_decimal": 58965 - }, - { - "icon_id": "24841702", - "name": "list", - "font_class": "list", - "unicode": "e644", - "unicode_decimal": 58948 - }, - { - "icon_id": "24841489", - "name": "mail-open-filled", - "font_class": "mail-open-filled", - "unicode": "e63a", - "unicode_decimal": 58938 - }, - { - "icon_id": "24841491", - "name": "hand-thumbsdown-filled", - "font_class": "hand-down-filled", - "unicode": "e63c", - "unicode_decimal": 58940 - }, - { - "icon_id": "24841492", - "name": "hand-thumbsdown", - "font_class": "hand-down", - "unicode": "e63d", - "unicode_decimal": 58941 - }, - { - "icon_id": "24841493", - "name": "hand-thumbsup-filled", - "font_class": "hand-up-filled", - "unicode": "e63e", - "unicode_decimal": 58942 - }, - { - "icon_id": "24841494", - "name": "hand-thumbsup", - "font_class": "hand-up", - "unicode": "e63f", - "unicode_decimal": 58943 - }, - { - "icon_id": "24841496", - "name": "heart-filled", - "font_class": "heart-filled", - "unicode": "e641", - "unicode_decimal": 58945 - }, - { - "icon_id": "24841498", - "name": "mail-open", - "font_class": "mail-open", - "unicode": "e643", - "unicode_decimal": 58947 - }, - { - "icon_id": "24841488", - "name": "heart", - "font_class": "heart", - "unicode": "e639", - "unicode_decimal": 58937 - }, - { - "icon_id": "24839963", - "name": "loop", - "font_class": "loop", - "unicode": "e633", - "unicode_decimal": 58931 - }, - { - "icon_id": "24839866", - "name": "pulldown", - "font_class": "pulldown", - "unicode": "e632", - "unicode_decimal": 58930 - }, - { - "icon_id": "24813798", - "name": "scan", - "font_class": "scan", - "unicode": "e62a", - "unicode_decimal": 58922 - }, - { - "icon_id": "24813786", - "name": "bars", - "font_class": "bars", - "unicode": "e627", - "unicode_decimal": 58919 - }, - { - "icon_id": "24813788", - "name": "cart-filled", - "font_class": "cart-filled", - "unicode": "e629", - "unicode_decimal": 58921 - }, - { - "icon_id": "24813790", - "name": "checkbox", - "font_class": "checkbox", - "unicode": "e62b", - "unicode_decimal": 58923 - }, - { - "icon_id": "24813791", - "name": "checkbox-filled", - "font_class": "checkbox-filled", - "unicode": "e62c", - "unicode_decimal": 58924 - }, - { - "icon_id": "24813794", - "name": "shop", - "font_class": "shop", - "unicode": "e62f", - "unicode_decimal": 58927 - }, - { - "icon_id": "24813795", - "name": "headphones", - "font_class": "headphones", - "unicode": "e630", - "unicode_decimal": 58928 - }, - { - "icon_id": "24813796", - "name": "cart", - "font_class": "cart", - "unicode": "e631", - "unicode_decimal": 58929 - } - ] -} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue deleted file mode 100644 index 86e7444..0000000 --- a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css deleted file mode 100644 index 2f56eab..0000000 --- a/uni_modules/uni-icons/components/uni-icons/uniicons.css +++ /dev/null @@ -1,663 +0,0 @@ -.uniui-color:before { - content: "\e6cf"; -} - -.uniui-wallet:before { - content: "\e6b1"; -} - -.uniui-settings-filled:before { - content: "\e6ce"; -} - -.uniui-auth-filled:before { - content: "\e6cc"; -} - -.uniui-shop-filled:before { - content: "\e6cd"; -} - -.uniui-staff-filled:before { - content: "\e6cb"; -} - -.uniui-vip-filled:before { - content: "\e6c6"; -} - -.uniui-plus-filled:before { - content: "\e6c7"; -} - -.uniui-folder-add-filled:before { - content: "\e6c8"; -} - -.uniui-color-filled:before { - content: "\e6c9"; -} - -.uniui-tune-filled:before { - content: "\e6ca"; -} - -.uniui-calendar-filled:before { - content: "\e6c0"; -} - -.uniui-notification-filled:before { - content: "\e6c1"; -} - -.uniui-wallet-filled:before { - content: "\e6c2"; -} - -.uniui-medal-filled:before { - content: "\e6c3"; -} - -.uniui-gift-filled:before { - content: "\e6c4"; -} - -.uniui-fire-filled:before { - content: "\e6c5"; -} - -.uniui-refreshempty:before { - content: "\e6bf"; -} - -.uniui-location-filled:before { - content: "\e6af"; -} - -.uniui-person-filled:before { - content: "\e69d"; -} - -.uniui-personadd-filled:before { - content: "\e698"; -} - -.uniui-back:before { - content: "\e6b9"; -} - -.uniui-forward:before { - content: "\e6ba"; -} - -.uniui-arrow-right:before { - content: "\e6bb"; -} - -.uniui-arrowthinright:before { - content: "\e6bb"; -} - -.uniui-arrow-left:before { - content: "\e6bc"; -} - -.uniui-arrowthinleft:before { - content: "\e6bc"; -} - -.uniui-arrow-up:before { - content: "\e6bd"; -} - -.uniui-arrowthinup:before { - content: "\e6bd"; -} - -.uniui-arrow-down:before { - content: "\e6be"; -} - -.uniui-arrowthindown:before { - content: "\e6be"; -} - -.uniui-bottom:before { - content: "\e6b8"; -} - -.uniui-arrowdown:before { - content: "\e6b8"; -} - -.uniui-right:before { - content: "\e6b5"; -} - -.uniui-arrowright:before { - content: "\e6b5"; -} - -.uniui-top:before { - content: "\e6b6"; -} - -.uniui-arrowup:before { - content: "\e6b6"; -} - -.uniui-left:before { - content: "\e6b7"; -} - -.uniui-arrowleft:before { - content: "\e6b7"; -} - -.uniui-eye:before { - content: "\e651"; -} - -.uniui-eye-filled:before { - content: "\e66a"; -} - -.uniui-eye-slash:before { - content: "\e6b3"; -} - -.uniui-eye-slash-filled:before { - content: "\e6b4"; -} - -.uniui-info-filled:before { - content: "\e649"; -} - -.uniui-reload:before { - content: "\e6b2"; -} - -.uniui-micoff-filled:before { - content: "\e6b0"; -} - -.uniui-map-pin-ellipse:before { - content: "\e6ac"; -} - -.uniui-map-pin:before { - content: "\e6ad"; -} - -.uniui-location:before { - content: "\e6ae"; -} - -.uniui-starhalf:before { - content: "\e683"; -} - -.uniui-star:before { - content: "\e688"; -} - -.uniui-star-filled:before { - content: "\e68f"; -} - -.uniui-calendar:before { - content: "\e6a0"; -} - -.uniui-fire:before { - content: "\e6a1"; -} - -.uniui-medal:before { - content: "\e6a2"; -} - -.uniui-font:before { - content: "\e6a3"; -} - -.uniui-gift:before { - content: "\e6a4"; -} - -.uniui-link:before { - content: "\e6a5"; -} - -.uniui-notification:before { - content: "\e6a6"; -} - -.uniui-staff:before { - content: "\e6a7"; -} - -.uniui-vip:before { - content: "\e6a8"; -} - -.uniui-folder-add:before { - content: "\e6a9"; -} - -.uniui-tune:before { - content: "\e6aa"; -} - -.uniui-auth:before { - content: "\e6ab"; -} - -.uniui-person:before { - content: "\e699"; -} - -.uniui-email-filled:before { - content: "\e69a"; -} - -.uniui-phone-filled:before { - content: "\e69b"; -} - -.uniui-phone:before { - content: "\e69c"; -} - -.uniui-email:before { - content: "\e69e"; -} - -.uniui-personadd:before { - content: "\e69f"; -} - -.uniui-chatboxes-filled:before { - content: "\e692"; -} - -.uniui-contact:before { - content: "\e693"; -} - -.uniui-chatbubble-filled:before { - content: "\e694"; -} - -.uniui-contact-filled:before { - content: "\e695"; -} - -.uniui-chatboxes:before { - content: "\e696"; -} - -.uniui-chatbubble:before { - content: "\e697"; -} - -.uniui-upload-filled:before { - content: "\e68e"; -} - -.uniui-upload:before { - content: "\e690"; -} - -.uniui-weixin:before { - content: "\e691"; -} - -.uniui-compose:before { - content: "\e67f"; -} - -.uniui-qq:before { - content: "\e680"; -} - -.uniui-download-filled:before { - content: "\e681"; -} - -.uniui-pyq:before { - content: "\e682"; -} - -.uniui-sound:before { - content: "\e684"; -} - -.uniui-trash-filled:before { - content: "\e685"; -} - -.uniui-sound-filled:before { - content: "\e686"; -} - -.uniui-trash:before { - content: "\e687"; -} - -.uniui-videocam-filled:before { - content: "\e689"; -} - -.uniui-spinner-cycle:before { - content: "\e68a"; -} - -.uniui-weibo:before { - content: "\e68b"; -} - -.uniui-videocam:before { - content: "\e68c"; -} - -.uniui-download:before { - content: "\e68d"; -} - -.uniui-help:before { - content: "\e679"; -} - -.uniui-navigate-filled:before { - content: "\e67a"; -} - -.uniui-plusempty:before { - content: "\e67b"; -} - -.uniui-smallcircle:before { - content: "\e67c"; -} - -.uniui-minus-filled:before { - content: "\e67d"; -} - -.uniui-micoff:before { - content: "\e67e"; -} - -.uniui-closeempty:before { - content: "\e66c"; -} - -.uniui-clear:before { - content: "\e66d"; -} - -.uniui-navigate:before { - content: "\e66e"; -} - -.uniui-minus:before { - content: "\e66f"; -} - -.uniui-image:before { - content: "\e670"; -} - -.uniui-mic:before { - content: "\e671"; -} - -.uniui-paperplane:before { - content: "\e672"; -} - -.uniui-close:before { - content: "\e673"; -} - -.uniui-help-filled:before { - content: "\e674"; -} - -.uniui-paperplane-filled:before { - content: "\e675"; -} - -.uniui-plus:before { - content: "\e676"; -} - -.uniui-mic-filled:before { - content: "\e677"; -} - -.uniui-image-filled:before { - content: "\e678"; -} - -.uniui-locked-filled:before { - content: "\e668"; -} - -.uniui-info:before { - content: "\e669"; -} - -.uniui-locked:before { - content: "\e66b"; -} - -.uniui-camera-filled:before { - content: "\e658"; -} - -.uniui-chat-filled:before { - content: "\e659"; -} - -.uniui-camera:before { - content: "\e65a"; -} - -.uniui-circle:before { - content: "\e65b"; -} - -.uniui-checkmarkempty:before { - content: "\e65c"; -} - -.uniui-chat:before { - content: "\e65d"; -} - -.uniui-circle-filled:before { - content: "\e65e"; -} - -.uniui-flag:before { - content: "\e65f"; -} - -.uniui-flag-filled:before { - content: "\e660"; -} - -.uniui-gear-filled:before { - content: "\e661"; -} - -.uniui-home:before { - content: "\e662"; -} - -.uniui-home-filled:before { - content: "\e663"; -} - -.uniui-gear:before { - content: "\e664"; -} - -.uniui-smallcircle-filled:before { - content: "\e665"; -} - -.uniui-map-filled:before { - content: "\e666"; -} - -.uniui-map:before { - content: "\e667"; -} - -.uniui-refresh-filled:before { - content: "\e656"; -} - -.uniui-refresh:before { - content: "\e657"; -} - -.uniui-cloud-upload:before { - content: "\e645"; -} - -.uniui-cloud-download-filled:before { - content: "\e646"; -} - -.uniui-cloud-download:before { - content: "\e647"; -} - -.uniui-cloud-upload-filled:before { - content: "\e648"; -} - -.uniui-redo:before { - content: "\e64a"; -} - -.uniui-images-filled:before { - content: "\e64b"; -} - -.uniui-undo-filled:before { - content: "\e64c"; -} - -.uniui-more:before { - content: "\e64d"; -} - -.uniui-more-filled:before { - content: "\e64e"; -} - -.uniui-undo:before { - content: "\e64f"; -} - -.uniui-images:before { - content: "\e650"; -} - -.uniui-paperclip:before { - content: "\e652"; -} - -.uniui-settings:before { - content: "\e653"; -} - -.uniui-search:before { - content: "\e654"; -} - -.uniui-redo-filled:before { - content: "\e655"; -} - -.uniui-list:before { - content: "\e644"; -} - -.uniui-mail-open-filled:before { - content: "\e63a"; -} - -.uniui-hand-down-filled:before { - content: "\e63c"; -} - -.uniui-hand-down:before { - content: "\e63d"; -} - -.uniui-hand-up-filled:before { - content: "\e63e"; -} - -.uniui-hand-up:before { - content: "\e63f"; -} - -.uniui-heart-filled:before { - content: "\e641"; -} - -.uniui-mail-open:before { - content: "\e643"; -} - -.uniui-heart:before { - content: "\e639"; -} - -.uniui-loop:before { - content: "\e633"; -} - -.uniui-pulldown:before { - content: "\e632"; -} - -.uniui-scan:before { - content: "\e62a"; -} - -.uniui-bars:before { - content: "\e627"; -} - -.uniui-cart-filled:before { - content: "\e629"; -} - -.uniui-checkbox:before { - content: "\e62b"; -} - -.uniui-checkbox-filled:before { - content: "\e62c"; -} - -.uniui-shop:before { - content: "\e62f"; -} - -.uniui-headphones:before { - content: "\e630"; -} - -.uniui-cart:before { - content: "\e631"; -} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf deleted file mode 100644 index 835f33b..0000000 Binary files a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf and /dev/null differ diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json deleted file mode 100644 index d1c4e77..0000000 --- a/uni_modules/uni-icons/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id": "uni-icons", - "displayName": "uni-icons 图标", - "version": "1.3.5", - "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", - "keywords": [ - "uni-ui", - "uniui", - "icon", - "图标" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "^3.2.14" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md deleted file mode 100644 index 86234ba..0000000 --- a/uni_modules/uni-icons/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -## Icons 图标 -> **组件名:uni-icons** -> 代码块: `uIcons` - -用于展示 icons 图标 。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-indexed-list/changelog.md b/uni_modules/uni-indexed-list/changelog.md deleted file mode 100644 index 08fa71c..0000000 --- a/uni_modules/uni-indexed-list/changelog.md +++ /dev/null @@ -1,17 +0,0 @@ -## 1.2.1(2021-11-22) -- 修复 vue3中某些scss变量无法找到的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-indexed-list](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.11(2021-05-12) -- 新增 组件示例地址 -## 1.0.10(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.9(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.8(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 支持 PC 端 diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue deleted file mode 100644 index 19284bd..0000000 --- a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue +++ /dev/null @@ -1,144 +0,0 @@ - - - - - diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue deleted file mode 100644 index ee3a7ec..0000000 --- a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue +++ /dev/null @@ -1,367 +0,0 @@ - - - diff --git a/uni_modules/uni-indexed-list/package.json b/uni_modules/uni-indexed-list/package.json deleted file mode 100644 index 125c0e7..0000000 --- a/uni_modules/uni-indexed-list/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "id": "uni-indexed-list", - "displayName": "uni-indexed-list 索引列表", - "version": "1.2.1", - "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景", - "keywords": [ - "uni-ui", - "索引列表", - "索引", - "列表" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-indexed-list/readme.md b/uni_modules/uni-indexed-list/readme.md deleted file mode 100644 index 44ad84b..0000000 --- a/uni_modules/uni-indexed-list/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## IndexedList 索引列表 -> **组件名:uni-indexed-list** -> 代码块: `uIndexedList` - - -用于展示索引列表。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-link/changelog.md b/uni_modules/uni-link/changelog.md deleted file mode 100644 index 2cfbf59..0000000 --- a/uni_modules/uni-link/changelog.md +++ /dev/null @@ -1,17 +0,0 @@ -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-link](https://uniapp.dcloud.io/component/uniui/uni-link) -## 1.1.7(2021-11-08) -## 0.0.7(2021-09-03) -- 修复 在 nvue 下不显示的 bug -## 0.0.6(2021-07-30) -- 新增 支持自定义插槽 -## 0.0.5(2021-06-21) -- 新增 download 属性,H5平台下载文件名 -## 0.0.4(2021-05-12) -- 新增 组件示例地址 -## 0.0.3(2021-03-09) -- 新增 href 属性支持 tel:|mailto: - -## 0.0.2(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-link/components/uni-link/uni-link.vue b/uni_modules/uni-link/components/uni-link/uni-link.vue deleted file mode 100644 index 27c5468..0000000 --- a/uni_modules/uni-link/components/uni-link/uni-link.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/uni_modules/uni-link/package.json b/uni_modules/uni-link/package.json deleted file mode 100644 index 77b1986..0000000 --- a/uni_modules/uni-link/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-link", - "displayName": "uni-link 超链接", - "version": "1.0.0", - "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打", - "keywords": [ - "uni-ui", - "uniui", - "link", - "超链接", - "" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "y", - "联盟": "y" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-link/readme.md b/uni_modules/uni-link/readme.md deleted file mode 100644 index 7f09e94..0000000 --- a/uni_modules/uni-link/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## Link 链接 -> **组件名:uni-link** -> 代码块: `uLink` - - -uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-list/changelog.md b/uni_modules/uni-list/changelog.md deleted file mode 100644 index 2836bf5..0000000 --- a/uni_modules/uni-list/changelog.md +++ /dev/null @@ -1,40 +0,0 @@ -## 1.2.10(2022-11-23) -修复 uni-list-item 组件 keep-scroll-position 属性 无法设置为false的错误 -## 1.2.9(2022-11-22) -- 修复 uni-list-chat 在vue3下跳转报错的bug -## 1.2.8(2022-11-21) -- 修复 uni-list-chat avatar属性 值为本地路径时错误的问题 -## 1.2.7(2022-11-21) -- 修复 uni-list-chat avatar属性 在腾讯云版uniCloud下错误的问题 -## 1.2.6(2022-11-18) -- 修复 uni-list-chat note属性 支持:“草稿”字样功能 文本少1位的问题 -## 1.2.5(2022-11-15) -- 修复 uni-list-item 的 customStyle 属性 padding值在 H5端 无效的bug -## 1.2.4(2022-11-15) -- 修复 uni-list-item 的 customStyle 属性 padding值在nvue(vue2)下无效的bug -## 1.2.3(2022-11-14) -- uni-list-chat 新增 avatar 支持 fileId -## 1.2.2(2022-11-11) -- uni-list 新增属性 render-reverse 详情参考:[https://uniapp.dcloud.net.cn/component/list.html](https://uniapp.dcloud.net.cn/component/list.html) -- uni-list-chat note属性 支持:“草稿”字样 加红显示 详情参考uni-im:[https://ext.dcloud.net.cn/plugin?name=uni-im](https://ext.dcloud.net.cn/plugin?name=uni-im) -- uni-list-item 新增属性 customStyle 支持设置padding、backgroundColor -## 1.2.1(2022-03-30) -- 删除无用文件 -## 1.2.0(2021-11-23) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) -## 1.1.3(2021-08-30) -- 修复 在vue3中to属性在发行应用的时候报错的bug -## 1.1.2(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.1.1(2021-07-21) -- 修复 与其他组件嵌套使用时,点击失效的Bug -## 1.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.17(2021-05-12) -- 新增 组件示例地址 -## 1.0.16(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 1.0.15(2021-02-05) -- 调整为uni_modules目录规范 -- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue deleted file mode 100644 index b9349c2..0000000 --- a/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - - - diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss deleted file mode 100644 index 311f8d9..0000000 --- a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss +++ /dev/null @@ -1,58 +0,0 @@ -/** - * 这里是 uni-list 组件内置的常用样式变量 - * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 - * - */ - -// 背景色 -$background-color : #fff; -// 分割线颜色 -$divide-line-color : #e5e5e5; - -// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 -// nvue 页面不支持修改头像大小 -$avatar-width : 45px ; - -// 头像边框 -$avatar-border-radius: 5px; -$avatar-border-color: #eee; -$avatar-border-width: 1px; - -// 标题文字样式 -$title-size : 16px; -$title-color : #3b4144; -$title-weight : normal; - -// 描述文字样式 -$note-size : 12px; -$note-color : #999; -$note-weight : normal; - -// 右侧额外内容默认样式 -$right-text-size : 12px; -$right-text-color : #999; -$right-text-weight : normal; - -// 角标样式 -// nvue 页面不支持修改圆点位置以及大小 -// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 -$badge-left: 0px; -$badge-top: 0px; - -// 显示圆点时,圆点大小 -$dot-width: 10px; -$dot-height: 10px; - -// 显示角标时,角标大小和字体大小 -$badge-size : 18px; -$badge-font : 12px; -// 显示角标时,角标前景色 -$badge-color : #fff; -// 显示角标时,角标背景色 -$badge-background-color : #ff5a5f; -// 显示角标时,角标左右间距 -$badge-space : 6px; - -// 状态样式 -// 选中颜色 -$hover : #f5f5f5; diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue deleted file mode 100644 index 43e8542..0000000 --- a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue +++ /dev/null @@ -1,571 +0,0 @@ - - - - - diff --git a/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue deleted file mode 100644 index 06782c1..0000000 --- a/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue +++ /dev/null @@ -1,530 +0,0 @@ - - - - - \ No newline at end of file diff --git a/uni_modules/uni-list/components/uni-list/uni-list.vue b/uni_modules/uni-list/components/uni-list/uni-list.vue deleted file mode 100644 index 6ef5972..0000000 --- a/uni_modules/uni-list/components/uni-list/uni-list.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/uni_modules/uni-list/components/uni-list/uni-refresh.vue deleted file mode 100644 index 3b4c5a2..0000000 --- a/uni_modules/uni-list/components/uni-list/uni-refresh.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs deleted file mode 100644 index 818a6b7..0000000 --- a/uni_modules/uni-list/components/uni-list/uni-refresh.wxs +++ /dev/null @@ -1,87 +0,0 @@ -var pullDown = { - threshold: 95, - maxHeight: 200, - callRefresh: 'onrefresh', - callPullingDown: 'onpullingdown', - refreshSelector: '.uni-refresh' -}; - -function ready(newValue, oldValue, ownerInstance, instance) { - var state = instance.getState() - state.canPullDown = newValue; - // console.log(newValue); -} - -function touchStart(e, instance) { - var state = instance.getState(); - state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); - state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); - if (!state.canPullDown) { - return - } - - // console.log("touchStart"); - - state.height = 0; - state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; - state.refreshInstance.setStyle({ - 'height': 0 - }); - state.refreshInstance.callMethod("onchange", true); -} - -function touchMove(e, ownerInstance) { - var instance = e.instance; - var state = instance.getState(); - if (!state.canPullDown) { - return - } - - var oldHeight = state.height; - var endY = e.touches[0].pageY || e.changedTouches[0].pageY; - var height = endY - state.touchStartY; - if (height > pullDown.maxHeight) { - return; - } - - var refreshInstance = state.refreshInstance; - refreshInstance.setStyle({ - 'height': height + 'px' - }); - - height = height < pullDown.maxHeight ? height : pullDown.maxHeight; - state.height = height; - refreshInstance.callMethod(pullDown.callPullingDown, { - height: height - }); -} - -function touchEnd(e, ownerInstance) { - var state = e.instance.getState(); - if (!state.canPullDown) { - return - } - - state.refreshInstance.callMethod("onchange", false); - - var refreshInstance = state.refreshInstance; - if (state.height > pullDown.threshold) { - refreshInstance.callMethod(pullDown.callRefresh); - return; - } - - refreshInstance.setStyle({ - 'height': 0 - }); -} - -function propObserver(newValue, oldValue, instance) { - pullDown = newValue; -} - -module.exports = { - touchmove: touchMove, - touchstart: touchStart, - touchend: touchEnd, - propObserver: propObserver -} diff --git a/uni_modules/uni-list/package.json b/uni_modules/uni-list/package.json deleted file mode 100644 index 87b35d4..0000000 --- a/uni_modules/uni-list/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-list", - "displayName": "uni-list 列表", - "version": "1.2.10", - "description": "List 组件 ,帮助使用者快速构建列表。", - "keywords": [ - "", - "uni-ui", - "uniui", - "列表", - "", - "list" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-badge", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-list/readme.md b/uni_modules/uni-list/readme.md deleted file mode 100644 index 32c2865..0000000 --- a/uni_modules/uni-list/readme.md +++ /dev/null @@ -1,346 +0,0 @@ -## List 列表 -> **组件名:uni-list** -> 代码块: `uList`、`uListItem` -> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` - - -List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 - -在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 - -uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 - -uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 - -内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 - -涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 - -下文均有样例给出。 - -uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) - - -### 安装方式 - -本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 - -如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) - -> **注意事项** -> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 -> - 组件需要依赖 `sass` 插件 ,请自行手动安装 -> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 -> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` -> - 只有开启点击反馈后,会有点击选中效果 -> - 使用插槽时,可以完全自定义内容 -> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 -> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 -> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 -> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` -> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - -### 基本用法 - -- 设置 `title` 属性,可以显示列表标题 -- 设置 `disabled` 属性,可以禁用当前项 - -```html - - - - - -``` - -### 多行内容显示 - -- 设置 `note` 属性 ,可以在第二行显示描述文本信息 - -```html - - - - - -``` - -### 右侧显示角标、switch - -- 设置 `show-badge` 属性 ,可以显示角标内容 -- 设置 `show-switch` 属性,可以显示 switch 开关 - -```html - - - - - -``` - -### 左侧显示略缩图、图标 - -- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 -- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 - -```html - - - - -``` - -### 开启点击反馈和右侧箭头 -- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 -- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 -- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` - -```html - - - - - - - -``` - - -### 聊天列表示例 -- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 -- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` -- 设置 `to` 属性,可以跳转页面 -- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 -- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 -- 可以通过默认插槽自定义列表右侧内容 - -```html - - - - - - - - - - - - - - - - - 刚刚 - - - - - - - -``` - -```javascript - -export default { - components: {}, - data() { - return { - avatarList: [{ - url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' - }, { - url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' - }, { - url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' - }] - } - } -} - -``` - - -```css - -.chat-custom-right { - flex: 1; - /* #ifndef APP-NVUE */ - display: flex; - /* #endif */ - flex-direction: column; - justify-content: space-between; - align-items: flex-end; -} - -.chat-custom-text { - font-size: 12px; - color: #999; -} - -``` - -## API - -### List Props - -属性名 |类型 |默认值 | 说明 -:-: |:-: |:-: | :-: -border |Boolean |true | 是否显示边框 - - -### ListItem Props - -属性名 |类型 |默认值 | 说明 -:-: |:-: |:-: | :-: -title |String |- | 标题 -note |String |- | 描述 -ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 -thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 -thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; -showBadge |Boolean |false | 是否显示数字角标 -badgeText |String |- | 数字角标内容 -badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) -badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 -rightText |String |- | 右侧文字内容 -disabled |Boolean |false | 是否禁用 -showArrow |Boolean |true | 是否显示箭头图标 -link |String |navigateTo | 新页面跳转方式,可选值见下表 -to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 -clickable |Boolean |false | 是否开启点击反馈 -showSwitch |Boolean |false | 是否显示Switch -switchChecked |Boolean |false | Switch是否被选中 -showExtraIcon |Boolean |false | 左侧是否显示扩展图标 -extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) -direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 - - -#### Link Options - -属性名 | 说明 -:-: | :-: -navigateTo | 同 uni.navigateTo() -redirectTo | 同 uni.reLaunch() -reLaunch | 同 uni.reLaunch() -switchTab | 同 uni.switchTab() - -### ListItem Events - -事件称名 |说明 |返回参数 -:-: |:-: |:-: -click |点击 uniListItem 触发事件,需开启点击反馈 |- -switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} - - - -### ListItem Slots - -名称 | 说明 -:-: | :-: -header | 左/上内容插槽,可完全自定义默认显示 -body | 中间内容插槽,可完全自定义中间内容 -footer | 右/下内容插槽,可完全自定义右侧内容 - - -> **通过插槽扩展** -> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 -> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 -> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` -> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 -> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 -> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 - - -**示例** - -```html - - - - - - - - - 自定义插槽 - - - - -``` - - - - - -### ListItemChat Props - -属性名 |类型 |默认值 | 说明 -:-: |:-: |:-: | :-: -title |String |- | 标题 -note |String |- | 描述 -clickable |Boolean |false | 是否开启点击反馈 -badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 -badgePositon |String |right | 角标位置 -link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 -clickable |Boolean |false | 是否开启点击反馈 -to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 -time |String |- | 右侧时间显示 -avatarCircle |Boolean |false | 是否显示圆形头像 -avatar |String |- | 头像地址,avatarCircle 不填时生效 -avatarList |Array |- | 头像组,格式为 [{url:''}] - -#### Link Options - -属性名 | 说明 -:-: | :-: -navigateTo | 同 uni.navigateTo() -redirectTo | 同 uni.reLaunch() -reLaunch | 同 uni.reLaunch() -switchTab | 同 uni.switchTab() - -### ListItemChat Slots - -名称 | 说明 -:- | :- -default | 自定义列表右侧内容(包括时间和角标显示) - -### ListItemChat Events -事件称名 | 说明 | 返回参数 -:-: | :-: | :-: -@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 - - - - - - -## 基于uni-list扩展的页面模板 - -通过扩展插槽,可实现多种常见样式的列表 - -**新闻列表类** - -1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) -2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) -3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) -4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) -5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) -6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) -7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) - -**商品列表类** - -1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) -2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) -3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) - -## 组件示例 - -点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/uni_modules/uni-load-more/changelog.md b/uni_modules/uni-load-more/changelog.md deleted file mode 100644 index 8f03f1d..0000000 --- a/uni_modules/uni-load-more/changelog.md +++ /dev/null @@ -1,19 +0,0 @@ -## 1.3.3(2022-01-20) -- 新增 showText属性 ,是否显示文本 -## 1.3.2(2022-01-19) -- 修复 nvue 平台下不显示文本的bug -## 1.3.1(2022-01-19) -- 修复 微信小程序平台样式选择器报警告的问题 -## 1.3.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) -## 1.2.1(2021-08-24) -- 新增 支持国际化 -## 1.2.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.8(2021-05-12) -- 新增 组件示例地址 -## 1.1.7(2021-03-30) -- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug -## 1.1.6(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json deleted file mode 100644 index a4f14a5..0000000 --- a/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-load-more.contentdown": "Pull up to show more", - "uni-load-more.contentrefresh": "loading...", - "uni-load-more.contentnomore": "No more data" -} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json deleted file mode 100644 index f15d510..0000000 --- a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-load-more.contentdown": "上拉显示更多", - "uni-load-more.contentrefresh": "正在加载...", - "uni-load-more.contentnomore": "没有更多数据了" -} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json deleted file mode 100644 index a255c6d..0000000 --- a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-load-more.contentdown": "上拉顯示更多", - "uni-load-more.contentrefresh": "正在加載...", - "uni-load-more.contentnomore": "沒有更多數據了" -} diff --git a/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue deleted file mode 100644 index e5eff4d..0000000 --- a/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue +++ /dev/null @@ -1,399 +0,0 @@ - - - - - diff --git a/uni_modules/uni-load-more/package.json b/uni_modules/uni-load-more/package.json deleted file mode 100644 index 2fa6f04..0000000 --- a/uni_modules/uni-load-more/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id": "uni-load-more", - "displayName": "uni-load-more 加载更多", - "version": "1.3.3", - "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", - "keywords": [ - "uni-ui", - "uniui", - "加载更多", - "load-more" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-load-more/readme.md b/uni_modules/uni-load-more/readme.md deleted file mode 100644 index 54dc1fa..0000000 --- a/uni_modules/uni-load-more/readme.md +++ /dev/null @@ -1,14 +0,0 @@ - - -### LoadMore 加载更多 -> **组件名:uni-load-more** -> 代码块: `uLoadMore` - - -用于列表中,做滚动加载使用,展示 loading 的各种状态。 - - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-nav-bar/changelog.md b/uni_modules/uni-nav-bar/changelog.md deleted file mode 100644 index 4ff224d..0000000 --- a/uni_modules/uni-nav-bar/changelog.md +++ /dev/null @@ -1,47 +0,0 @@ -## 1.3.9(2022-10-13) -- 修复 条件编译错误的bug -## 1.3.8(2022-10-12) -- 修复 nvue 环境 fixed 为 true 的情况下,无法置顶的 bug -## 1.3.7(2022-08-11) -- 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug -## 1.3.6(2022-06-30) -- 修复 组件示例中插槽用法无法显示内容的bug -## 1.3.5(2022-05-24) -- 新增 stat 属性 ,可开启统计title 上报 ,仅使用了title 属性且项目开启了uni统计生效 -## 1.3.4(2022-01-24) -- 更新 组件示例 -## 1.3.3(2022-01-24) -- 新增 left-width/right-width属性 ,可修改左右两侧的宽度 -## 1.3.2(2022-01-18) -- 修复 在vue下,标题不垂直居中的bug -## 1.3.1(2022-01-18) -- 修复 height 属性类型错误 -## 1.3.0(2022-01-18) -- 新增 height 属性,可修改组件高度 -- 新增 dark 属性可可开启暗黑模式 -- 优化 标题字数过多显示省略号 -- 优化 插槽,插入内容可完全覆盖 -## 1.2.1(2022-01-10) -- 修复 color 属性不生效的bug -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-nav-bar](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.11(2021-05-12) -- 新增 组件示例地址 -## 1.0.10(2021-04-30) -- 修复 在nvue下fixed为true,宽度不能撑满的Bug -## 1.0.9(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.8(2021-04-14) -- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug - -## 1.0.7(2021-02-25) -- 修复 easycom 下,找不到 uni-status-bar 的bug - -## 1.0.6(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.5(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue deleted file mode 100644 index 2394cea..0000000 --- a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue +++ /dev/null @@ -1,357 +0,0 @@ - - - - - diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue deleted file mode 100644 index 6a68874..0000000 --- a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/uni_modules/uni-nav-bar/package.json b/uni_modules/uni-nav-bar/package.json deleted file mode 100644 index e4f5e29..0000000 --- a/uni_modules/uni-nav-bar/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "id": "uni-nav-bar", - "displayName": "uni-nav-bar 自定义导航栏", - "version": "1.3.9", - "description": "自定义导航栏组件,主要用于头部导航。", - "keywords": [ - "uni-ui", - "导航", - "导航栏", - "自定义导航栏" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-nav-bar/readme.md b/uni_modules/uni-nav-bar/readme.md deleted file mode 100644 index 3934b32..0000000 --- a/uni_modules/uni-nav-bar/readme.md +++ /dev/null @@ -1,15 +0,0 @@ - - -## NavBar 导航栏 -> **组件名:uni-nav-bar** -> 代码块: `uNavBar` - -导航栏组件,主要用于头部导航。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - - - - diff --git a/uni_modules/uni-notice-bar/changelog.md b/uni_modules/uni-notice-bar/changelog.md deleted file mode 100644 index d526811..0000000 --- a/uni_modules/uni-notice-bar/changelog.md +++ /dev/null @@ -1,18 +0,0 @@ -## 1.2.1(2022-09-05) -- 新增 属性 fontSize,可修改文字大小。 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) -## 1.1.1(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.9(2021-05-12) -- 新增 组件示例地址 -## 1.0.8(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.7(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.6(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue b/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue deleted file mode 100644 index 98d4720..0000000 --- a/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue +++ /dev/null @@ -1,426 +0,0 @@ - - - - - diff --git a/uni_modules/uni-notice-bar/package.json b/uni_modules/uni-notice-bar/package.json deleted file mode 100644 index 8d9b13c..0000000 --- a/uni_modules/uni-notice-bar/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-notice-bar", - "displayName": "uni-notice-bar 通告栏", - "version": "1.2.1", - "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", - "keywords": [ - "uni-ui", - "uniui", - "通告栏", - "公告", - "跑马灯" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-notice-bar/readme.md b/uni_modules/uni-notice-bar/readme.md deleted file mode 100644 index fb2ede2..0000000 --- a/uni_modules/uni-notice-bar/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## NoticeBar 通告栏 -> **组件名:uni-notice-bar** -> 代码块: `uNoticeBar` - - -通告栏组件 。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-number-box/changelog.md b/uni_modules/uni-number-box/changelog.md deleted file mode 100644 index 5925c32..0000000 --- a/uni_modules/uni-number-box/changelog.md +++ /dev/null @@ -1,25 +0,0 @@ -## 1.2.1(2021-11-22) -- 修复 vue3中某些scss变量无法找到的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box) -## 1.1.2(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -## 1.1.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-05-12) -- 新增 组件示例地址 -## 1.0.6(2021-04-20) -- 修复 uni-number-box 浮点数运算不精确的 bug -- 修复 uni-number-box change 事件触发不正确的 bug -- 新增 uni-number-box v-model 双向绑定 -## 1.0.5(2021-02-05) -- 调整为uni_modules目录规范 - -## 1.0.7(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 支持 v-model -- 新增 支持 focus、blur 事件 -- 新增 支持 PC 端 diff --git a/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue deleted file mode 100644 index 8d255fb..0000000 --- a/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue +++ /dev/null @@ -1,220 +0,0 @@ - - - diff --git a/uni_modules/uni-number-box/package.json b/uni_modules/uni-number-box/package.json deleted file mode 100644 index ad82336..0000000 --- a/uni_modules/uni-number-box/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "uni-number-box", - "displayName": "uni-number-box 数字输入框", - "version": "1.2.1", - "description": "NumberBox 带加减按钮的数字输入框组件,用户可以控制每次点击增加的数值,支持小数。", - "keywords": [ - "uni-ui", - "uniui", - "数字输入框" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-number-box/readme.md b/uni_modules/uni-number-box/readme.md deleted file mode 100644 index affc56f..0000000 --- a/uni_modules/uni-number-box/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## NumberBox 数字输入框 -> **组件名:uni-number-box** -> 代码块: `uNumberBox` - - -带加减按钮的数字输入框。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-number-box) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-pagination/changelog.md b/uni_modules/uni-pagination/changelog.md deleted file mode 100644 index 2e94adc..0000000 --- a/uni_modules/uni-pagination/changelog.md +++ /dev/null @@ -1,27 +0,0 @@ -## 1.2.4(2022-09-19) -- 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。 -- 修复,未对移动端当前页文字做主题色适配。 -## 1.2.3(2022-09-15) -- 修复未使用 uni-scss 主题色的 bug。 -## 1.2.2(2022-07-06) -- 修复 es 语言 i18n 错误 -## 1.2.1(2021-11-22) -- 修复 vue3中某些scss变量无法找到的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination) -## 1.1.2(2021-10-08) -- 修复 current 、value 属性未监听,导致高亮样式失效的 bug -## 1.1.1(2021-08-20) -- 新增 支持国际化 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-05-12) -- 新增 组件示例地址 -## 1.0.6(2021-04-12) -- 新增 PC 和 移动端适配不同的 ui -## 1.0.5(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json deleted file mode 100644 index d6e2897..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-pagination.prevText": "prev", - "uni-pagination.nextText": "next", - "uni-pagination.piecePerPage": "piece/page" -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json deleted file mode 100644 index 604a113..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-pagination.prevText": "anterior", - "uni-pagination.nextText": "prxima", - "uni-pagination.piecePerPage": "Artculo/Pgina" -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json deleted file mode 100644 index a7a0c77..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-pagination.prevText": "précédente", - "uni-pagination.nextText": "suivante", - "uni-pagination.piecePerPage": "Articles/Pages" -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js b/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js deleted file mode 100644 index 2469dd0..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import en from './en.json' -import es from './es.json' -import fr from './fr.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - es, - fr, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json deleted file mode 100644 index 782bbe4..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-pagination.prevText": "上一页", - "uni-pagination.nextText": "下一页", - "uni-pagination.piecePerPage": "条/页" -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json deleted file mode 100644 index 180fddb..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "uni-pagination.prevText": "上一頁", - "uni-pagination.nextText": "下一頁", - "uni-pagination.piecePerPage": "條/頁" -} diff --git a/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue b/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue deleted file mode 100644 index 5305b5f..0000000 --- a/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue +++ /dev/null @@ -1,465 +0,0 @@ - - - - - diff --git a/uni_modules/uni-pagination/package.json b/uni_modules/uni-pagination/package.json deleted file mode 100644 index 862d5ab..0000000 --- a/uni_modules/uni-pagination/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "id": "uni-pagination", - "displayName": "uni-pagination 分页器", - "version": "1.2.4", - "description": "Pagination 分页器组件,用于展示页码、请求数据等。", - "keywords": [ - "uni-ui", - "uniui", - "分页器", - "页码" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-scss","uni-icons"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-pagination/readme.md b/uni_modules/uni-pagination/readme.md deleted file mode 100644 index 97ea1d6..0000000 --- a/uni_modules/uni-pagination/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## Pagination 分页器 -> **组件名:uni-pagination** -> 代码块: `uPagination` - - -分页器组件,用于展示页码、请求数据等。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-popup/changelog.md b/uni_modules/uni-popup/changelog.md deleted file mode 100644 index 511915d..0000000 --- a/uni_modules/uni-popup/changelog.md +++ /dev/null @@ -1,64 +0,0 @@ -## 1.8.1(2022-12-01) -- 修复 nvue 下 v-show 报错 -## 1.8.0(2022-11-29) -- 优化 主题样式 -## 1.7.9(2022-04-02) -- 修复 弹出层内部无法滚动的bug -## 1.7.8(2022-03-28) -- 修复 小程序中高度错误的bug -## 1.7.7(2022-03-17) -- 修复 快速调用open出现问题的Bug -## 1.7.6(2022-02-14) -- 修复 safeArea 属性不能设置为false的bug -## 1.7.5(2022-01-19) -- 修复 isMaskClick 失效的bug -## 1.7.4(2022-01-19) -- 新增 cancelText \ confirmText 属性 ,可自定义文本 -- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 -- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 -## 1.7.3(2022-01-13) -- 修复 设置 safeArea 属性不生效的bug -## 1.7.2(2021-11-26) -- 优化 组件示例 -## 1.7.1(2021-11-26) -- 修复 vuedoc 文字错误 -## 1.7.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) -## 1.6.2(2021-08-24) -- 新增 支持国际化 -## 1.6.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.6.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.5.0(2021-06-23) -- 新增 mask-click 遮罩层点击事件 -## 1.4.5(2021-06-22) -- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug -## 1.4.4(2021-06-18) -- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug -## 1.4.3(2021-06-08) -- 修复 错误的 watch 字段 -- 修复 safeArea 属性不生效的问题 -- 修复 点击内容,再点击遮罩无法关闭的Bug -## 1.4.2(2021-05-12) -- 新增 组件示例地址 -## 1.4.1(2021-04-29) -- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 -## 1.4.0 (2021-04-29) -- 新增 type 属性的 left\right 值,支持左右弹出 -- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 -- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 -- 新增 safeArea 属性,是否适配底部安全区 -- 修复 App\h5\微信小程序底部安全区占位不对的Bug -- 修复 App 端弹出等待的Bug -- 优化 提升低配设备性能,优化动画卡顿问题 -- 优化 更简单的组件自定义方式 -## 1.2.9(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 -## 1.2.8(2021-02-05) -- 调整为uni_modules目录规范 -## 1.2.7(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 支持 PC 端 -- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端 diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js deleted file mode 100644 index 6ef26a2..0000000 --- a/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js +++ /dev/null @@ -1,45 +0,0 @@ -// #ifdef H5 -export default { - name: 'Keypress', - props: { - disable: { - type: Boolean, - default: false - } - }, - mounted () { - const keyNames = { - esc: ['Esc', 'Escape'], - tab: 'Tab', - enter: 'Enter', - space: [' ', 'Spacebar'], - up: ['Up', 'ArrowUp'], - left: ['Left', 'ArrowLeft'], - right: ['Right', 'ArrowRight'], - down: ['Down', 'ArrowDown'], - delete: ['Backspace', 'Delete', 'Del'] - } - const listener = ($event) => { - if (this.disable) { - return - } - const keyName = Object.keys(keyNames).find(key => { - const keyName = $event.key - const value = keyNames[key] - return value === keyName || (Array.isArray(value) && value.includes(keyName)) - }) - if (keyName) { - // 避免和其他按键事件冲突 - setTimeout(() => { - this.$emit(keyName, {}) - }, 0) - } - } - document.addEventListener('keyup', listener) - this.$once('hook:beforeDestroy', () => { - document.removeEventListener('keyup', listener) - }) - }, - render: () => {} -} -// #endif diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue deleted file mode 100644 index 86e12cd..0000000 --- a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue +++ /dev/null @@ -1,276 +0,0 @@ - - - - - diff --git a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue deleted file mode 100644 index 91370a8..0000000 --- a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - diff --git a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue deleted file mode 100644 index 5be7624..0000000 --- a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - - diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json deleted file mode 100644 index 7f1bd06..0000000 --- a/uni_modules/uni-popup/components/uni-popup/i18n/en.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "uni-popup.cancel": "cancel", - "uni-popup.ok": "ok", - "uni-popup.placeholder": "pleace enter", - "uni-popup.title": "Hint", - "uni-popup.shareTitle": "Share to" -} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/uni_modules/uni-popup/components/uni-popup/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-popup/components/uni-popup/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json deleted file mode 100644 index 5e3003c..0000000 --- a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "uni-popup.cancel": "取消", - "uni-popup.ok": "确定", - "uni-popup.placeholder": "请输入", - "uni-popup.title": "提示", - "uni-popup.shareTitle": "分享到" -} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json deleted file mode 100644 index 13e39eb..0000000 --- a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "uni-popup.cancel": "取消", - "uni-popup.ok": "確定", - "uni-popup.placeholder": "請輸入", - "uni-popup.title": "提示", - "uni-popup.shareTitle": "分享到" -} diff --git a/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni_modules/uni-popup/components/uni-popup/keypress.js deleted file mode 100644 index 62dda46..0000000 --- a/uni_modules/uni-popup/components/uni-popup/keypress.js +++ /dev/null @@ -1,45 +0,0 @@ -// #ifdef H5 -export default { - name: 'Keypress', - props: { - disable: { - type: Boolean, - default: false - } - }, - mounted () { - const keyNames = { - esc: ['Esc', 'Escape'], - tab: 'Tab', - enter: 'Enter', - space: [' ', 'Spacebar'], - up: ['Up', 'ArrowUp'], - left: ['Left', 'ArrowLeft'], - right: ['Right', 'ArrowRight'], - down: ['Down', 'ArrowDown'], - delete: ['Backspace', 'Delete', 'Del'] - } - const listener = ($event) => { - if (this.disable) { - return - } - const keyName = Object.keys(keyNames).find(key => { - const keyName = $event.key - const value = keyNames[key] - return value === keyName || (Array.isArray(value) && value.includes(keyName)) - }) - if (keyName) { - // 避免和其他按键事件冲突 - setTimeout(() => { - this.$emit(keyName, {}) - }, 0) - } - } - document.addEventListener('keyup', listener) - // this.$once('hook:beforeDestroy', () => { - // document.removeEventListener('keyup', listener) - // }) - }, - render: () => {} -} -// #endif diff --git a/uni_modules/uni-popup/components/uni-popup/popup.js b/uni_modules/uni-popup/components/uni-popup/popup.js deleted file mode 100644 index c4e5781..0000000 --- a/uni_modules/uni-popup/components/uni-popup/popup.js +++ /dev/null @@ -1,26 +0,0 @@ - -export default { - data() { - return { - - } - }, - created(){ - this.popup = this.getParent() - }, - methods:{ - /** - * 获取父元素实例 - */ - getParent(name = 'uniPopup') { - let parent = this.$parent; - let parentName = parent.$options.name; - while (parentName !== name) { - parent = parent.$parent; - if (!parent) return false - parentName = parent.$options.name; - } - return parent; - }, - } -} diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue deleted file mode 100644 index db90c59..0000000 --- a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue +++ /dev/null @@ -1,474 +0,0 @@ - - - - diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json deleted file mode 100644 index 6f5f72e..0000000 --- a/uni_modules/uni-popup/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-popup", - "displayName": "uni-popup 弹出层", - "version": "1.8.1", - "description": " Popup 组件,提供常用的弹层", - "keywords": [ - "uni-ui", - "弹出层", - "弹窗", - "popup", - "弹框" - ], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-transition" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md deleted file mode 100644 index fdad4b3..0000000 --- a/uni_modules/uni-popup/readme.md +++ /dev/null @@ -1,17 +0,0 @@ - - -## Popup 弹出层 -> **组件名:uni-popup** -> 代码块: `uPopup` -> 关联组件:`uni-transition` - - -弹出层组件,在应用中弹出一个消息提示窗口、提示框等 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - - - - diff --git a/uni_modules/uni-rate/changelog.md b/uni_modules/uni-rate/changelog.md deleted file mode 100644 index 8a98a61..0000000 --- a/uni_modules/uni-rate/changelog.md +++ /dev/null @@ -1,25 +0,0 @@ -## 1.3.1(2022-02-25) -- 修复 条件判断 `NaN` 错误的 bug -## 1.3.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate) -## 1.2.2(2021-09-10) -- 优化 默认值修改为 0 颗星 -## 1.2.1(2021-07-30) -- 优化 vue3下事件警告的问题 -## 1.2.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.2(2021-05-12) -- 新增 组件示例地址 -## 1.1.1(2021-04-21) -- 修复 布局变化后 uni-rate 星星计算不准确的 bug -- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 -## 1.1.0(2021-04-16) -- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug - -## 1.0.9(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.8(2021-02-05) -- 调整为uni_modules目录规范 -- 支持 pc 端 diff --git a/uni_modules/uni-rate/components/uni-rate/uni-rate.vue b/uni_modules/uni-rate/components/uni-rate/uni-rate.vue deleted file mode 100644 index 857f5f9..0000000 --- a/uni_modules/uni-rate/components/uni-rate/uni-rate.vue +++ /dev/null @@ -1,361 +0,0 @@ - - - - - diff --git a/uni_modules/uni-rate/package.json b/uni_modules/uni-rate/package.json deleted file mode 100644 index 64e8e33..0000000 --- a/uni_modules/uni-rate/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-rate", - "displayName": "uni-rate 评分", - "version": "1.3.1", - "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。", - "keywords": [ - "uni-ui", - "uniui", - "评分" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-rate/readme.md b/uni_modules/uni-rate/readme.md deleted file mode 100644 index eae7b5c..0000000 --- a/uni_modules/uni-rate/readme.md +++ /dev/null @@ -1,12 +0,0 @@ - - -## Rate 评分 -> **组件名:uni-rate** -> 代码块: `uRate` -> 关联组件:`uni-icons` - - -评分组件,多用于购买商品后,对商品进行评价等场景 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-row/changelog.md b/uni_modules/uni-row/changelog.md deleted file mode 100644 index 5b465bc..0000000 --- a/uni_modules/uni-row/changelog.md +++ /dev/null @@ -1,10 +0,0 @@ -## 1.0.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-row](https://uniapp.dcloud.io/component/uniui/uni-row) -## 0.1.0(2021-07-13) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 0.0.4(2021-05-12) -- 新增 组件示例地址 -## 0.0.3(2021-02-05) -- 调整为uni_modules目录规范 -- 新增uni-row组件 diff --git a/uni_modules/uni-row/components/uni-col/uni-col.vue b/uni_modules/uni-row/components/uni-col/uni-col.vue deleted file mode 100644 index 84e2deb..0000000 --- a/uni_modules/uni-row/components/uni-col/uni-col.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - - diff --git a/uni_modules/uni-row/components/uni-row/uni-row.vue b/uni_modules/uni-row/components/uni-row/uni-row.vue deleted file mode 100644 index f8e8542..0000000 --- a/uni_modules/uni-row/components/uni-row/uni-row.vue +++ /dev/null @@ -1,190 +0,0 @@ - - - - - diff --git a/uni_modules/uni-row/package.json b/uni_modules/uni-row/package.json deleted file mode 100644 index 3f52fa6..0000000 --- a/uni_modules/uni-row/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-row", - "displayName": "uni-row 布局-行", - "version": "1.0.0", - "description": "流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。", - "keywords": [ - "uni-ui", - "uniui", - "栅格", - "布局", - "layout" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "u" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-row/readme.md b/uni_modules/uni-row/readme.md deleted file mode 100644 index 3c9c8b9..0000000 --- a/uni_modules/uni-row/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -## Layout 布局 - -> **组件名 uni-row、uni-col** -> 代码块: `uRow`、`uCol` - - -流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-row) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md deleted file mode 100644 index b863bb0..0000000 --- a/uni_modules/uni-scss/changelog.md +++ /dev/null @@ -1,8 +0,0 @@ -## 1.0.3(2022-01-21) -- 优化 组件示例 -## 1.0.2(2021-11-22) -- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 -## 1.0.1(2021-11-22) -- 修复 vue3中scss语法兼容问题 -## 1.0.0(2021-11-18) -- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss deleted file mode 100644 index 1744a5f..0000000 --- a/uni_modules/uni-scss/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json deleted file mode 100644 index 7cc0ccb..0000000 --- a/uni_modules/uni-scss/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "id": "uni-scss", - "displayName": "uni-scss 辅助样式", - "version": "1.0.3", - "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", - "keywords": [ - "uni-scss", - "uni-ui", - "辅助样式" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "^3.1.0" - }, - "dcloudext": { - "category": [ - "JS SDK", - "通用 SDK" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "u" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "n", - "联盟": "n" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md deleted file mode 100644 index b7d1c25..0000000 --- a/uni_modules/uni-scss/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss deleted file mode 100644 index ffac4fe..0000000 --- a/uni_modules/uni-scss/styles/index.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import './setting/_variables.scss'; -@import './setting/_border.scss'; -@import './setting/_color.scss'; -@import './setting/_space.scss'; -@import './setting/_radius.scss'; -@import './setting/_text.scss'; -@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss deleted file mode 100644 index 12a11c3..0000000 --- a/uni_modules/uni-scss/styles/setting/_border.scss +++ /dev/null @@ -1,3 +0,0 @@ -.uni-border { - border: 1px $uni-border-1 solid; -} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss deleted file mode 100644 index 1ededd9..0000000 --- a/uni_modules/uni-scss/styles/setting/_color.scss +++ /dev/null @@ -1,66 +0,0 @@ - -// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 -// @mixin get-styles($k,$c) { -// @if $k == size or $k == weight{ -// font-#{$k}:#{$c} -// }@else{ -// #{$k}:#{$c} -// } -// } -$uni-ui-color:( - // 主色 - primary: $uni-primary, - primary-disable: $uni-primary-disable, - primary-light: $uni-primary-light, - // 辅助色 - success: $uni-success, - success-disable: $uni-success-disable, - success-light: $uni-success-light, - warning: $uni-warning, - warning-disable: $uni-warning-disable, - warning-light: $uni-warning-light, - error: $uni-error, - error-disable: $uni-error-disable, - error-light: $uni-error-light, - info: $uni-info, - info-disable: $uni-info-disable, - info-light: $uni-info-light, - // 中性色 - main-color: $uni-main-color, - base-color: $uni-base-color, - secondary-color: $uni-secondary-color, - extra-color: $uni-extra-color, - // 背景色 - bg-color: $uni-bg-color, - // 边框颜色 - border-1: $uni-border-1, - border-2: $uni-border-2, - border-3: $uni-border-3, - border-4: $uni-border-4, - // 黑色 - black:$uni-black, - // 白色 - white:$uni-white, - // 透明 - transparent:$uni-transparent -) !default; -@each $key, $child in $uni-ui-color { - .uni-#{"" + $key} { - color: $child; - } - .uni-#{"" + $key}-bg { - background-color: $child; - } -} -.uni-shadow-sm { - box-shadow: $uni-shadow-sm; -} -.uni-shadow-base { - box-shadow: $uni-shadow-base; -} -.uni-shadow-lg { - box-shadow: $uni-shadow-lg; -} -.uni-mask { - background-color:$uni-mask; -} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss deleted file mode 100644 index 9a0428b..0000000 --- a/uni_modules/uni-scss/styles/setting/_radius.scss +++ /dev/null @@ -1,55 +0,0 @@ -@mixin radius($r,$d:null ,$important: false){ - $radius-value:map-get($uni-radius, $r) if($important, !important, null); - // Key exists within the $uni-radius variable - @if (map-has-key($uni-radius, $r) and $d){ - @if $d == t { - border-top-left-radius:$radius-value; - border-top-right-radius:$radius-value; - }@else if $d == r { - border-top-right-radius:$radius-value; - border-bottom-right-radius:$radius-value; - }@else if $d == b { - border-bottom-left-radius:$radius-value; - border-bottom-right-radius:$radius-value; - }@else if $d == l { - border-top-left-radius:$radius-value; - border-bottom-left-radius:$radius-value; - }@else if $d == tl { - border-top-left-radius:$radius-value; - }@else if $d == tr { - border-top-right-radius:$radius-value; - }@else if $d == br { - border-bottom-right-radius:$radius-value; - }@else if $d == bl { - border-bottom-left-radius:$radius-value; - } - }@else{ - border-radius:$radius-value; - } -} - -@each $key, $child in $uni-radius { - @if($key){ - .uni-radius-#{"" + $key} { - @include radius($key) - } - }@else{ - .uni-radius { - @include radius($key) - } - } -} - -@each $direction in t, r, b, l,tl, tr, br, bl { - @each $key, $child in $uni-radius { - @if($key){ - .uni-radius-#{"" + $direction}-#{"" + $key} { - @include radius($key,$direction,false) - } - }@else{ - .uni-radius-#{$direction} { - @include radius($key,$direction,false) - } - } - } -} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss deleted file mode 100644 index 3c89528..0000000 --- a/uni_modules/uni-scss/styles/setting/_space.scss +++ /dev/null @@ -1,56 +0,0 @@ - -@mixin fn($space,$direction,$size,$n) { - @if $n { - #{$space}-#{$direction}: #{$size*$uni-space-root}px - } @else { - #{$space}-#{$direction}: #{-$size*$uni-space-root}px - } -} -@mixin get-styles($direction,$i,$space,$n){ - @if $direction == t { - @include fn($space, top,$i,$n); - } - @if $direction == r { - @include fn($space, right,$i,$n); - } - @if $direction == b { - @include fn($space, bottom,$i,$n); - } - @if $direction == l { - @include fn($space, left,$i,$n); - } - @if $direction == x { - @include fn($space, left,$i,$n); - @include fn($space, right,$i,$n); - } - @if $direction == y { - @include fn($space, top,$i,$n); - @include fn($space, bottom,$i,$n); - } - @if $direction == a { - @if $n { - #{$space}:#{$i*$uni-space-root}px; - } @else { - #{$space}:#{-$i*$uni-space-root}px; - } - } -} - -@each $orientation in m,p { - $space: margin; - @if $orientation == m { - $space: margin; - } @else { - $space: padding; - } - @for $i from 0 through 16 { - @each $direction in t, r, b, l, x, y, a { - .uni-#{$orientation}#{$direction}-#{$i} { - @include get-styles($direction,$i,$space,true); - } - .uni-#{$orientation}#{$direction}-n#{$i} { - @include get-styles($direction,$i,$space,false); - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss deleted file mode 100644 index 689afec..0000000 --- a/uni_modules/uni-scss/styles/setting/_styles.scss +++ /dev/null @@ -1,167 +0,0 @@ -/* #ifndef APP-NVUE */ - -$-color-white:#fff; -$-color-black:#000; -@mixin base-style($color) { - color: #fff; - background-color: $color; - border-color: mix($-color-black, $color, 8%); - &:not([hover-class]):active { - background: mix($-color-black, $color, 10%); - border-color: mix($-color-black, $color, 20%); - color: $-color-white; - outline: none; - } -} -@mixin is-color($color) { - @include base-style($color); - &[loading] { - @include base-style($color); - &::before { - margin-right:5px; - } - } - &[disabled] { - &, - &[loading], - &:not([hover-class]):active { - color: $-color-white; - border-color: mix(darken($color,10%), $-color-white); - background-color: mix($color, $-color-white); - } - } - -} -@mixin base-plain-style($color) { - color:$color; - background-color: mix($-color-white, $color, 90%); - border-color: mix($-color-white, $color, 70%); - &:not([hover-class]):active { - background: mix($-color-white, $color, 80%); - color: $color; - outline: none; - border-color: mix($-color-white, $color, 50%); - } -} -@mixin is-plain($color){ - &[plain] { - @include base-plain-style($color); - &[loading] { - @include base-plain-style($color); - &::before { - margin-right:5px; - } - } - &[disabled] { - &, - &:active { - color: mix($-color-white, $color, 40%); - background-color: mix($-color-white, $color, 90%); - border-color: mix($-color-white, $color, 80%); - } - } - } -} - - -.uni-btn { - margin: 5px; - color: #393939; - border:1px solid #ccc; - font-size: 16px; - font-weight: 200; - background-color: #F9F9F9; - // TODO 暂时处理边框隐藏一边的问题 - overflow: visible; - &::after{ - border: none; - } - - &:not([type]),&[type=default] { - color: #999; - &[loading] { - background: none; - &::before { - margin-right:5px; - } - } - - - - &[disabled]{ - color: mix($-color-white, #999, 60%); - &, - &[loading], - &:active { - color: mix($-color-white, #999, 60%); - background-color: mix($-color-white,$-color-black , 98%); - border-color: mix($-color-white, #999, 85%); - } - } - - &[plain] { - color: #999; - background: none; - border-color: $uni-border-1; - &:not([hover-class]):active { - background: none; - color: mix($-color-white, $-color-black, 80%); - border-color: mix($-color-white, $-color-black, 90%); - outline: none; - } - &[disabled]{ - &, - &[loading], - &:active { - background: none; - color: mix($-color-white, #999, 60%); - border-color: mix($-color-white, #999, 85%); - } - } - } - } - - &:not([hover-class]):active { - color: mix($-color-white, $-color-black, 50%); - } - - &[size=mini] { - font-size: 16px; - font-weight: 200; - border-radius: 8px; - } - - - - &.uni-btn-small { - font-size: 14px; - } - &.uni-btn-mini { - font-size: 12px; - } - - &.uni-btn-radius { - border-radius: 999px; - } - &[type=primary] { - @include is-color($uni-primary); - @include is-plain($uni-primary) - } - &[type=success] { - @include is-color($uni-success); - @include is-plain($uni-success) - } - &[type=error] { - @include is-color($uni-error); - @include is-plain($uni-error) - } - &[type=warning] { - @include is-color($uni-warning); - @include is-plain($uni-warning) - } - &[type=info] { - @include is-color($uni-info); - @include is-plain($uni-info) - } -} -/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss deleted file mode 100644 index a34d08f..0000000 --- a/uni_modules/uni-scss/styles/setting/_text.scss +++ /dev/null @@ -1,24 +0,0 @@ -@mixin get-styles($k,$c) { - @if $k == size or $k == weight{ - font-#{$k}:#{$c} - }@else{ - #{$k}:#{$c} - } -} - -@each $key, $child in $uni-headings { - /* #ifndef APP-NVUE */ - .uni-#{$key} { - @each $k, $c in $child { - @include get-styles($k,$c) - } - } - /* #endif */ - /* #ifdef APP-NVUE */ - .container .uni-#{$key} { - @each $k, $c in $child { - @include get-styles($k,$c) - } - } - /* #endif */ -} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss deleted file mode 100644 index 557d3d7..0000000 --- a/uni_modules/uni-scss/styles/setting/_variables.scss +++ /dev/null @@ -1,146 +0,0 @@ -// @use "sass:math"; -@import '../tools/functions.scss'; -// 间距基础倍数 -$uni-space-root: 2 !default; -// 边框半径默认值 -$uni-radius-root:5px !default; -$uni-radius: () !default; -// 边框半径断点 -$uni-radius: map-deep-merge( - ( - 0: 0, - // TODO 当前版本暂时不支持 sm 属性 - // 'sm': math.div($uni-radius-root, 2), - null: $uni-radius-root, - 'lg': $uni-radius-root * 2, - 'xl': $uni-radius-root * 6, - 'pill': 9999px, - 'circle': 50% - ), - $uni-radius -); -// 字体家族 -$body-font-family: 'Roboto', sans-serif !default; -// 文本 -$heading-font-family: $body-font-family !default; -$uni-headings: () !default; -$letterSpacing: -0.01562em; -$uni-headings: map-deep-merge( - ( - 'h1': ( - size: 32px, - weight: 300, - line-height: 50px, - // letter-spacing:-0.01562em - ), - 'h2': ( - size: 28px, - weight: 300, - line-height: 40px, - // letter-spacing: -0.00833em - ), - 'h3': ( - size: 24px, - weight: 400, - line-height: 32px, - // letter-spacing: normal - ), - 'h4': ( - size: 20px, - weight: 400, - line-height: 30px, - // letter-spacing: 0.00735em - ), - 'h5': ( - size: 16px, - weight: 400, - line-height: 24px, - // letter-spacing: normal - ), - 'h6': ( - size: 14px, - weight: 500, - line-height: 18px, - // letter-spacing: 0.0125em - ), - 'subtitle': ( - size: 12px, - weight: 400, - line-height: 20px, - // letter-spacing: 0.00937em - ), - 'body': ( - font-size: 14px, - font-weight: 400, - line-height: 22px, - // letter-spacing: 0.03125em - ), - 'caption': ( - 'size': 12px, - 'weight': 400, - 'line-height': 20px, - // 'letter-spacing': 0.03333em, - // 'text-transform': false - ) - ), - $uni-headings -); - - - -// 主色 -$uni-primary: #2979ff !default; -$uni-primary-disable:lighten($uni-primary,20%) !default; -$uni-primary-light: lighten($uni-primary,25%) !default; - -// 辅助色 -// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 -$uni-success: #18bc37 !default; -$uni-success-disable:lighten($uni-success,20%) !default; -$uni-success-light: lighten($uni-success,25%) !default; - -$uni-warning: #f3a73f !default; -$uni-warning-disable:lighten($uni-warning,20%) !default; -$uni-warning-light: lighten($uni-warning,25%) !default; - -$uni-error: #e43d33 !default; -$uni-error-disable:lighten($uni-error,20%) !default; -$uni-error-light: lighten($uni-error,25%) !default; - -$uni-info: #8f939c !default; -$uni-info-disable:lighten($uni-info,20%) !default; -$uni-info-light: lighten($uni-info,25%) !default; - -// 中性色 -// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 -$uni-main-color: #3a3a3a !default; // 主要文字 -$uni-base-color: #6a6a6a !default; // 常规文字 -$uni-secondary-color: #909399 !default; // 次要文字 -$uni-extra-color: #c7c7c7 !default; // 辅助说明 - -// 边框颜色 -$uni-border-1: #F0F0F0 !default; -$uni-border-2: #EDEDED !default; -$uni-border-3: #DCDCDC !default; -$uni-border-4: #B9B9B9 !default; - -// 常规色 -$uni-black: #000000 !default; -$uni-white: #ffffff !default; -$uni-transparent: rgba($color: #000000, $alpha: 0) !default; - -// 背景色 -$uni-bg-color: #f7f7f7 !default; - -/* 水平间距 */ -$uni-spacing-sm: 8px !default; -$uni-spacing-base: 15px !default; -$uni-spacing-lg: 30px !default; - -// 阴影 -$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; -$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; -$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; - -// 蒙版 -$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss deleted file mode 100644 index ac6f63e..0000000 --- a/uni_modules/uni-scss/styles/tools/functions.scss +++ /dev/null @@ -1,19 +0,0 @@ -// 合并 map -@function map-deep-merge($parent-map, $child-map){ - $result: $parent-map; - @each $key, $child in $child-map { - $parent-has-key: map-has-key($result, $key); - $parent-value: map-get($result, $key); - $parent-type: type-of($parent-value); - $child-type: type-of($child); - $parent-is-map: $parent-type == map; - $child-is-map: $child-type == map; - - @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ - $result: map-merge($result, ( $key: $child )); - }@else { - $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); - } - } - @return $result; -}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss deleted file mode 100644 index 80ee62f..0000000 --- a/uni_modules/uni-scss/theme.scss +++ /dev/null @@ -1,31 +0,0 @@ -// 间距基础倍数 -$uni-space-root: 2; -// 边框半径默认值 -$uni-radius-root:5px; -// 主色 -$uni-primary: #2979ff; -// 辅助色 -$uni-success: #4cd964; -// 警告色 -$uni-warning: #f0ad4e; -// 错误色 -$uni-error: #dd524d; -// 描述色 -$uni-info: #909399; -// 中性色 -$uni-main-color: #303133; -$uni-base-color: #606266; -$uni-secondary-color: #909399; -$uni-extra-color: #C0C4CC; -// 背景色 -$uni-bg-color: #f5f5f5; -// 边框颜色 -$uni-border-1: #DCDFE6; -$uni-border-2: #E4E7ED; -$uni-border-3: #EBEEF5; -$uni-border-4: #F2F6FC; - -// 常规色 -$uni-black: #000000; -$uni-white: #ffffff; -$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss deleted file mode 100644 index 1c062d4..0000000 --- a/uni_modules/uni-scss/variables.scss +++ /dev/null @@ -1,62 +0,0 @@ -@import './styles/setting/_variables.scss'; -// 间距基础倍数 -$uni-space-root: 2; -// 边框半径默认值 -$uni-radius-root:5px; - -// 主色 -$uni-primary: #2979ff; -$uni-primary-disable:mix(#fff,$uni-primary,50%); -$uni-primary-light: mix(#fff,$uni-primary,80%); - -// 辅助色 -// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 -$uni-success: #18bc37; -$uni-success-disable:mix(#fff,$uni-success,50%); -$uni-success-light: mix(#fff,$uni-success,80%); - -$uni-warning: #f3a73f; -$uni-warning-disable:mix(#fff,$uni-warning,50%); -$uni-warning-light: mix(#fff,$uni-warning,80%); - -$uni-error: #e43d33; -$uni-error-disable:mix(#fff,$uni-error,50%); -$uni-error-light: mix(#fff,$uni-error,80%); - -$uni-info: #8f939c; -$uni-info-disable:mix(#fff,$uni-info,50%); -$uni-info-light: mix(#fff,$uni-info,80%); - -// 中性色 -// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 -$uni-main-color: #3a3a3a; // 主要文字 -$uni-base-color: #6a6a6a; // 常规文字 -$uni-secondary-color: #909399; // 次要文字 -$uni-extra-color: #c7c7c7; // 辅助说明 - -// 边框颜色 -$uni-border-1: #F0F0F0; -$uni-border-2: #EDEDED; -$uni-border-3: #DCDCDC; -$uni-border-4: #B9B9B9; - -// 常规色 -$uni-black: #000000; -$uni-white: #ffffff; -$uni-transparent: rgba($color: #000000, $alpha: 0); - -// 背景色 -$uni-bg-color: #f7f7f7; - -/* 水平间距 */ -$uni-spacing-sm: 8px; -$uni-spacing-base: 15px; -$uni-spacing-lg: 30px; - -// 阴影 -$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); -$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); -$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); - -// 蒙版 -$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni_modules/uni-search-bar/changelog.md b/uni_modules/uni-search-bar/changelog.md deleted file mode 100644 index b41fdd3..0000000 --- a/uni_modules/uni-search-bar/changelog.md +++ /dev/null @@ -1,33 +0,0 @@ -## 1.2.3(2022-05-24) -- 新增 readonly 属性,组件只读 -## 1.2.2(2022-05-06) -- 修复 vue3 input 事件不生效的bug -## 1.2.1(2022-05-06) -- 修复 多余代码导致的bug -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar) -## 1.1.2(2021-08-30) -- 修复 value 属性与 modelValue 属性不兼容的Bug -## 1.1.1(2021-08-24) -- 新增 支持国际化 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.9(2021-05-12) -- 新增 项目示例地址 -## 1.0.8(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.7(2021-04-15) -- uni-ui 新增 uni-search-bar 的 focus 事件 - -## 1.0.6(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.5(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 支持双向绑定 -- 更改 input 事件的返回值,e={value:Number} --> e=value -- 新增 支持图标插槽 -- 新增 支持 clear、blur 事件 -- 新增 支持 focus 属性 -- 去掉组件背景色 diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json deleted file mode 100644 index dd083a5..0000000 --- a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-search-bar.cancel": "cancel", - "uni-search-bar.placeholder": "Search enter content" -} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js deleted file mode 100644 index de7509c..0000000 --- a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import en from './en.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json deleted file mode 100644 index d4e5c12..0000000 --- a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-search-bar.cancel": "cancel", - "uni-search-bar.placeholder": "请输入搜索内容" -} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json deleted file mode 100644 index 318b6ef..0000000 --- a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "uni-search-bar.cancel": "cancel", - "uni-search-bar.placeholder": "請輸入搜索內容" -} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue deleted file mode 100644 index 5a518a8..0000000 --- a/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - - - diff --git a/uni_modules/uni-search-bar/package.json b/uni_modules/uni-search-bar/package.json deleted file mode 100644 index 9352c57..0000000 --- a/uni_modules/uni-search-bar/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "id": "uni-search-bar", - "displayName": "uni-search-bar 搜索栏", - "version": "1.2.3", - "description": "搜索栏组件,通常用于搜索商品、文章等", - "keywords": [ - "uni-ui", - "uniui", - "搜索框", - "搜索栏" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/readme.md b/uni_modules/uni-search-bar/readme.md deleted file mode 100644 index 253092f..0000000 --- a/uni_modules/uni-search-bar/readme.md +++ /dev/null @@ -1,14 +0,0 @@ - - -## SearchBar 搜索栏 - -> **组件名:uni-search-bar** -> 代码块: `uSearchBar` - - -搜索栏组件 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-section/changelog.md b/uni_modules/uni-section/changelog.md deleted file mode 100644 index 738f2b3..0000000 --- a/uni_modules/uni-section/changelog.md +++ /dev/null @@ -1,2 +0,0 @@ -## 0.0.1(2022-07-22) -- 初始化 diff --git a/uni_modules/uni-section/components/uni-section/uni-section.vue b/uni_modules/uni-section/components/uni-section/uni-section.vue deleted file mode 100644 index 9a52e0b..0000000 --- a/uni_modules/uni-section/components/uni-section/uni-section.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - - diff --git a/uni_modules/uni-section/package.json b/uni_modules/uni-section/package.json deleted file mode 100644 index 0a31fb5..0000000 --- a/uni_modules/uni-section/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-section", - "displayName": "uni-section 标题栏", - "version": "0.0.1", - "description": "标题栏组件", - "keywords": [ - "uni-ui", - "uniui", - "标题栏" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-section/readme.md b/uni_modules/uni-section/readme.md deleted file mode 100644 index d47faab..0000000 --- a/uni_modules/uni-section/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -## Section 标题栏 -> **组件名:uni-section** -> 代码块: `uSection` - -uni-section 组件主要用于文章、列表详情等标题展示 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-section) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-segmented-control/changelog.md b/uni_modules/uni-segmented-control/changelog.md deleted file mode 100644 index a44385d..0000000 --- a/uni_modules/uni-segmented-control/changelog.md +++ /dev/null @@ -1,9 +0,0 @@ -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.5(2021-05-12) -- 新增 项目示例地址 -## 1.0.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue b/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue deleted file mode 100644 index 044a495..0000000 --- a/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - - - diff --git a/uni_modules/uni-segmented-control/package.json b/uni_modules/uni-segmented-control/package.json deleted file mode 100644 index 6cae41d..0000000 --- a/uni_modules/uni-segmented-control/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-segmented-control", - "displayName": "uni-segmented-control 分段器", - "version": "1.2.0", - "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示", - "keywords": [ - "uni-ui", - "uniui", - "分段器", - "segement", - "顶部选择" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-segmented-control/readme.md b/uni_modules/uni-segmented-control/readme.md deleted file mode 100644 index 3527b03..0000000 --- a/uni_modules/uni-segmented-control/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## SegmentedControl 分段器 -> **组件名:uni-segmented-control** -> 代码块: `uSegmentedControl` - - -用作不同视图的显示 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-steps/changelog.md b/uni_modules/uni-steps/changelog.md deleted file mode 100644 index cb9d367..0000000 --- a/uni_modules/uni-steps/changelog.md +++ /dev/null @@ -1,16 +0,0 @@ -## 1.1.1(2021-11-22) -- 修复 vue3中某些scss变量无法找到的问题 -## 1.1.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps) -## 1.0.8(2021-05-12) -- 新增 项目示例地址 -## 1.0.7(2021-05-06) -- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug -## 1.0.6(2021-04-21) -- 优化 添加依赖 uni-icons, 导入后自动下载依赖 -## 1.0.5(2021-02-05) -- 优化 组件引用关系,通过uni_modules引用组件 - -## 1.0.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-steps/components/uni-steps/uni-steps.vue b/uni_modules/uni-steps/components/uni-steps/uni-steps.vue deleted file mode 100644 index a6c8f28..0000000 --- a/uni_modules/uni-steps/components/uni-steps/uni-steps.vue +++ /dev/null @@ -1,269 +0,0 @@ - - - - - diff --git a/uni_modules/uni-steps/package.json b/uni_modules/uni-steps/package.json deleted file mode 100644 index c687b40..0000000 --- a/uni_modules/uni-steps/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "id": "uni-steps", - "displayName": "uni-steps 步骤条", - "version": "1.1.1", - "description": "步骤条组件,提供横向和纵向两种布局格式。", - "keywords": [ - "uni-ui", - "uniui", - "步骤条", - "时间轴" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": [ - "uni-scss", - "uni-icons" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-steps/readme.md b/uni_modules/uni-steps/readme.md deleted file mode 100644 index da7a4bf..0000000 --- a/uni_modules/uni-steps/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## Steps 步骤条 -> **组件名:uni-steps** -> 代码块: `uSteps` - - -步骤条,常用于显示进度 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-steps) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-swipe-action/changelog.md b/uni_modules/uni-swipe-action/changelog.md deleted file mode 100644 index c007cb5..0000000 --- a/uni_modules/uni-swipe-action/changelog.md +++ /dev/null @@ -1,41 +0,0 @@ -## 1.3.7(2022-06-06) -- 修复 vue3 下使用组件不能正常运行的Bug -## 1.3.6(2022-05-31) -- 修复 h5端点击click触发两次的Bug -## 1.3.5(2022-05-23) -- 修复 isPC 找不到的Bug -## 1.3.4(2022-05-19) -- 修复 在 nvue 下 disabled 失效的bug -## 1.3.3(2022-03-31) -- 修复 按钮字体大小不能设置的bug -## 1.3.2(2022-03-16) -- 修复 h5和app端下报el错误的bug -## 1.3.1(2022-03-07) -- 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug -## 1.3.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swipe-action](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) -## 1.2.4(2021-08-20) -- 优化 close-all 方法 -## 1.2.3(2021-08-20) -- 新增 close-all 方法,关闭所有已打开的组件 -## 1.2.2(2021-08-17) -- 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 -- 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 -- 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 -## 1.2.1(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -- 修复 跨页面修改组件数据 ,导致不能滑动的问题 -## 1.1.10(2021-06-17) -- 修复 按钮点击执行两次的bug -## 1.1.9(2021-05-12) -- 新增 项目示例地址 -## 1.1.8(2021-03-26) -- 修复 微信小程序 nv_navigator is not defined 报错的bug -## 1.1.7(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 左侧滑动 -- 新增 插槽使用方式 -- 新增 threshold 属性,可以控制滑动缺省值 -- 优化 长列表滚动性能 -- 修复 滚动页面时触发组件滑动的Bug diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js deleted file mode 100644 index 755c97c..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js +++ /dev/null @@ -1,302 +0,0 @@ -let bindIngXMixins = {} - -// #ifdef APP-NVUE -const BindingX = uni.requireNativePlugin('bindingx'); -const dom = uni.requireNativePlugin('dom'); -const animation = uni.requireNativePlugin('animation'); - -bindIngXMixins = { - data() { - return {} - }, - - watch: { - show(newVal) { - if (this.autoClose) return - if (this.stop) return - this.stop = true - if (newVal) { - this.open(newVal) - } else { - this.close() - } - }, - leftOptions() { - this.getSelectorQuery() - this.init() - }, - rightOptions(newVal) { - this.init() - } - }, - created() { - this.swipeaction = this.getSwipeAction() - if (this.swipeaction.children !== undefined) { - this.swipeaction.children.push(this) - } - }, - mounted() { - this.box = this.getEl(this.$refs['selector-box--hock']) - this.selector = this.getEl(this.$refs['selector-content--hock']); - this.leftButton = this.getEl(this.$refs['selector-left-button--hock']); - this.rightButton = this.getEl(this.$refs['selector-right-button--hock']); - this.init() - }, - // beforeDestroy() { - // this.swipeaction.children.forEach((item, index) => { - // if (item === this) { - // this.swipeaction.children.splice(index, 1) - // } - // }) - // }, - methods: { - init() { - this.$nextTick(() => { - this.x = 0 - this.button = { - show: false - } - setTimeout(() => { - this.getSelectorQuery() - }, 200) - }) - }, - onClick(index, item, position) { - this.$emit('click', { - content: item, - index, - position - }) - }, - touchstart(e) { - // fix by mehaotian 禁止滑动 - if (this.disabled) return - // 每次只触发一次,避免多次监听造成闪烁 - if (this.stop) return - this.stop = true - if (this.autoClose) { - this.swipeaction.closeOther(this) - } - - const leftWidth = this.button.left.width - const rightWidth = this.button.right.width - let expression = this.range(this.x, -rightWidth, leftWidth) - let leftExpression = this.range(this.x - leftWidth, -leftWidth, 0) - let rightExpression = this.range(this.x + rightWidth, 0, rightWidth) - - this.eventpan = BindingX.bind({ - anchor: this.box, - eventType: 'pan', - props: [{ - element: this.selector, - property: 'transform.translateX', - expression - }, { - element: this.leftButton, - property: 'transform.translateX', - expression: leftExpression - }, { - element: this.rightButton, - property: 'transform.translateX', - expression: rightExpression - }, ] - }, (e) => { - // nope - if (e.state === 'end') { - this.x = e.deltaX + this.x; - this.isclick = true - this.bindTiming(e.deltaX) - } - }); - }, - touchend(e) { - if (this.isopen !== 'none' && !this.isclick) { - this.open('none') - } - }, - bindTiming(x) { - const left = this.x - const leftWidth = this.button.left.width - const rightWidth = this.button.right.width - const threshold = this.threshold - if (!this.isopen || this.isopen === 'none') { - if (left > threshold) { - this.open('left') - } else if (left < -threshold) { - this.open('right') - } else { - this.open('none') - } - } else { - if ((x > -leftWidth && x < 0) || x > rightWidth) { - if ((x > -threshold && x < 0) || (x - rightWidth > threshold)) { - this.open('left') - } else { - this.open('none') - } - } else { - if ((x < threshold && x > 0) || (x + leftWidth < -threshold)) { - this.open('right') - } else { - this.open('none') - } - } - } - }, - - /** - * 移动范围 - * @param {Object} num - * @param {Object} mix - * @param {Object} max - */ - range(num, mix, max) { - return `min(max(x+${num}, ${mix}), ${max})` - }, - - /** - * 开启swipe - */ - open(type) { - this.animation(type) - }, - - /** - * 关闭swipe - */ - close() { - this.animation('none') - }, - - /** - * 开启关闭动画 - * @param {Object} type - */ - animation(type) { - const time = 300 - const leftWidth = this.button.left.width - const rightWidth = this.button.right.width - if (this.eventpan && this.eventpan.token) { - BindingX.unbind({ - token: this.eventpan.token, - eventType: 'pan' - }) - } - - switch (type) { - case 'left': - Promise.all([ - this.move(this.selector, leftWidth), - this.move(this.leftButton, 0), - this.move(this.rightButton, rightWidth * 2) - ]).then(() => { - this.setEmit(leftWidth, type) - }) - break - case 'right': - Promise.all([ - this.move(this.selector, -rightWidth), - this.move(this.leftButton, -leftWidth * 2), - this.move(this.rightButton, 0) - ]).then(() => { - this.setEmit(-rightWidth, type) - }) - break - default: - Promise.all([ - this.move(this.selector, 0), - this.move(this.leftButton, -leftWidth), - this.move(this.rightButton, rightWidth) - ]).then(() => { - this.setEmit(0, type) - }) - - } - }, - setEmit(x, type) { - const leftWidth = this.button.left.width - const rightWidth = this.button.right.width - this.isopen = this.isopen || 'none' - this.stop = false - this.isclick = false - // 只有状态不一致才会返回结果 - if (this.isopen !== type && this.x !== x) { - if (type === 'left' && leftWidth > 0) { - this.$emit('change', 'left') - } - if (type === 'right' && rightWidth > 0) { - this.$emit('change', 'right') - } - if (type === 'none') { - this.$emit('change', 'none') - } - } - this.x = x - this.isopen = type - }, - move(ref, value) { - return new Promise((resolve, reject) => { - animation.transition(ref, { - styles: { - transform: `translateX(${value})`, - }, - duration: 150, //ms - timingFunction: 'linear', - needLayout: false, - delay: 0 //ms - }, function(res) { - resolve(res) - }) - }) - - }, - - /** - * 获取ref - * @param {Object} el - */ - getEl(el) { - return el.ref - }, - /** - * 获取节点信息 - */ - getSelectorQuery() { - Promise.all([ - this.getDom('left'), - this.getDom('right'), - ]).then((data) => { - let show = 'none' - if (this.autoClose) { - show = 'none' - } else { - show = this.show - } - - if (show === 'none') { - // this.close() - } else { - this.open(show) - } - - }) - - }, - getDom(str) { - return new Promise((resolve, reject) => { - dom.getComponentRect(this.$refs[`selector-${str}-button--hock`], (data) => { - if (data) { - this.button[str] = data.size - resolve(data) - } else { - reject() - } - }) - }) - } - } -} - -// #endif - -export default bindIngXMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js deleted file mode 100644 index 917cb48..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js +++ /dev/null @@ -1,12 +0,0 @@ -export function isPC() { - var userAgentInfo = navigator.userAgent; - var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; - var flag = true; - for (let v = 0; v < Agents.length - 1; v++) { - if (userAgentInfo.indexOf(Agents[v]) > 0) { - flag = false; - break; - } - } - return flag; -} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js deleted file mode 100644 index 43cd56b..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js +++ /dev/null @@ -1,193 +0,0 @@ -export default { - data() { - return { - x: 0, - transition: false, - width: 0, - viewWidth: 0, - swipeShow: 0 - } - }, - watch: { - show(newVal) { - if (this.autoClose) return - if (newVal && newVal !== 'none') { - this.transition = true - this.open(newVal) - } else { - this.close() - } - } - }, - created() { - this.swipeaction = this.getSwipeAction() - if (this.swipeaction.children !== undefined) { - this.swipeaction.children.push(this) - } - }, - mounted() { - this.isopen = false - setTimeout(() => { - this.getQuerySelect() - }, 50) - }, - methods: { - appTouchStart(e) { - const { - clientX - } = e.changedTouches[0] - this.clientX = clientX - this.timestamp = new Date().getTime() - }, - appTouchEnd(e, index, item, position) { - const { - clientX - } = e.changedTouches[0] - // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 - let diff = Math.abs(this.clientX - clientX) - let time = (new Date().getTime()) - this.timestamp - if (diff < 40 && time < 300) { - this.$emit('click', { - content: item, - index, - position - }) - } - }, - /** - * 移动触发 - * @param {Object} e - */ - onChange(e) { - this.moveX = e.detail.x - this.isclose = false - }, - touchstart(e) { - this.transition = false - this.isclose = true - this.autoClose && this.swipeaction.closeOther(this) - }, - touchmove(e) {}, - touchend(e) { - // 0的位置什么都不执行 - if (this.isclose && this.isopen === 'none') return - if (this.isclose && this.isopen !== 'none') { - this.transition = true - this.close() - } else { - this.move(this.moveX + this.leftWidth) - } - }, - - /** - * 移动 - * @param {Object} moveX - */ - move(moveX) { - // 打开关闭的处理逻辑不太一样 - this.transition = true - // 未打开状态 - if (!this.isopen || this.isopen === 'none') { - if (moveX > this.threshold) { - this.open('left') - } else if (moveX < -this.threshold) { - this.open('right') - } else { - this.close() - } - } else { - if (moveX < 0 && moveX < this.rightWidth) { - const rightX = this.rightWidth + moveX - if (rightX < this.threshold) { - this.open('right') - } else { - this.close() - } - } else if (moveX > 0 && moveX < this.leftWidth) { - const leftX = this.leftWidth - moveX - if (leftX < this.threshold) { - this.open('left') - } else { - this.close() - } - } - - } - - }, - - /** - * 打开 - */ - open(type) { - this.x = this.moveX - this.animation(type) - }, - - /** - * 关闭 - */ - close() { - this.x = this.moveX - // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化 - this.$nextTick(() => { - this.x = -this.leftWidth - if (this.isopen !== 'none') { - this.$emit('change', 'none') - } - this.isopen = 'none' - }) - }, - - /** - * 执行结束动画 - * @param {Object} type - */ - animation(type) { - this.$nextTick(() => { - if (type === 'left') { - this.x = 0 - } else { - this.x = -this.rightWidth - this.leftWidth - } - - if (this.isopen !== type) { - this.$emit('change', type) - } - this.isopen = type - }) - - }, - getSlide(x) {}, - getQuerySelect() { - const query = uni.createSelectorQuery().in(this); - query.selectAll('.movable-view--hock').boundingClientRect(data => { - this.leftWidth = data[1].width - this.rightWidth = data[2].width - this.width = data[0].width - this.viewWidth = this.width + this.rightWidth + this.leftWidth - if (this.leftWidth === 0) { - // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点 - this.x = -0.1 - } else { - this.x = -this.leftWidth - } - this.moveX = this.x - this.$nextTick(() => { - this.swipeShow = 1 - }) - - if (!this.buttonWidth) { - this.disabledView = true - } - - if (this.autoClose) return - if (this.show !== 'none') { - this.transition = true - this.open(this.shows) - } - }).exec(); - - } - } -} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js deleted file mode 100644 index 9a8bcbb..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js +++ /dev/null @@ -1,259 +0,0 @@ -let otherMixins = {} - -// #ifndef APP-PLUS|| MP-WEIXIN || H5 -const MIN_DISTANCE = 10; -otherMixins = { - data() { - // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug - const elClass = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}` - return { - uniShow: false, - left: 0, - buttonShow: 'none', - ani: false, - moveLeft: '', - elClass - } - }, - watch: { - show(newVal) { - if (this.autoClose) return - this.openState(newVal) - }, - left() { - this.moveLeft = `translateX(${this.left}px)` - }, - buttonShow(newVal) { - if (this.autoClose) return - this.openState(newVal) - }, - leftOptions() { - this.init() - }, - rightOptions() { - this.init() - } - }, - mounted() { - this.swipeaction = this.getSwipeAction() - if (this.swipeaction.children !== undefined) { - this.swipeaction.children.push(this) - } - this.init() - }, - methods: { - init() { - clearTimeout(this.timer) - this.timer = setTimeout(() => { - this.getSelectorQuery() - }, 100) - // 移动距离 - this.left = 0 - this.x = 0 - }, - - closeSwipe(e) { - if (!this.autoClose) return - this.swipeaction.closeOther(this) - }, - appTouchStart(e) { - const { - clientX - } = e.changedTouches[0] - this.clientX = clientX - this.timestamp = new Date().getTime() - }, - appTouchEnd(e, index, item, position) { - const { - clientX - } = e.changedTouches[0] - // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 - let diff = Math.abs(this.clientX - clientX) - let time = (new Date().getTime()) - this.timestamp - if (diff < 40 && time < 300) { - this.$emit('click', { - content: item, - index, - position - }) - } - }, - touchstart(e) { - if (this.disabled) return - this.ani = false - this.x = this.left || 0 - this.stopTouchStart(e) - this.autoClose && this.closeSwipe() - }, - touchmove(e) { - if (this.disabled) return - // 是否可以滑动页面 - this.stopTouchMove(e); - if (this.direction !== 'horizontal') { - return; - } - this.move(this.x + this.deltaX) - return false - }, - touchend() { - if (this.disabled) return - this.moveDirection(this.left) - }, - /** - * 设置移动距离 - * @param {Object} value - */ - move(value) { - value = value || 0 - const leftWidth = this.leftWidth - const rightWidth = this.rightWidth - // 获取可滑动范围 - this.left = this.range(value, -rightWidth, leftWidth); - }, - - /** - * 获取范围 - * @param {Object} num - * @param {Object} min - * @param {Object} max - */ - range(num, min, max) { - return Math.min(Math.max(num, min), max); - }, - /** - * 移动方向判断 - * @param {Object} left - * @param {Object} value - */ - moveDirection(left) { - const threshold = this.threshold - const isopen = this.isopen || 'none' - const leftWidth = this.leftWidth - const rightWidth = this.rightWidth - if (this.deltaX === 0) { - this.openState('none') - return - } - if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > - 0 && rightWidth + - left < threshold)) { - // right - this.openState('right') - } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > - 0 && - leftWidth - left < threshold)) { - // left - this.openState('left') - } else { - // default - this.openState('none') - } - }, - - /** - * 开启状态 - * @param {Boolean} type - */ - openState(type) { - const leftWidth = this.leftWidth - const rightWidth = this.rightWidth - let left = '' - this.isopen = this.isopen ? this.isopen : 'none' - switch (type) { - case "left": - left = leftWidth - break - case "right": - left = -rightWidth - break - default: - left = 0 - } - - - if (this.isopen !== type) { - this.throttle = true - this.$emit('change', type) - } - - this.isopen = type - // 添加动画类 - this.ani = true - this.$nextTick(() => { - this.move(left) - }) - // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 - }, - close() { - this.openState('none') - }, - getDirection(x, y) { - if (x > y && x > MIN_DISTANCE) { - return 'horizontal'; - } - if (y > x && y > MIN_DISTANCE) { - return 'vertical'; - } - return ''; - }, - - /** - * 重置滑动状态 - * @param {Object} event - */ - resetTouchStatus() { - this.direction = ''; - this.deltaX = 0; - this.deltaY = 0; - this.offsetX = 0; - this.offsetY = 0; - }, - - /** - * 设置滑动开始位置 - * @param {Object} event - */ - stopTouchStart(event) { - this.resetTouchStatus(); - const touch = event.touches[0]; - this.startX = touch.clientX; - this.startY = touch.clientY; - }, - - /** - * 滑动中,是否禁止打开 - * @param {Object} event - */ - stopTouchMove(event) { - const touch = event.touches[0]; - this.deltaX = touch.clientX - this.startX; - this.deltaY = touch.clientY - this.startY; - this.offsetX = Math.abs(this.deltaX); - this.offsetY = Math.abs(this.deltaY); - this.direction = this.direction || this.getDirection(this.offsetX, this.offsetY); - }, - - getSelectorQuery() { - const views = uni.createSelectorQuery().in(this) - views - .selectAll('.' + this.elClass) - .boundingClientRect(data => { - if (data.length === 0) return - let show = 'none' - if (this.autoClose) { - show = 'none' - } else { - show = this.show - } - this.leftWidth = data[0].width || 0 - this.rightWidth = data[1].width || 0 - this.buttonShow = show - }) - .exec() - } - } -} - -// #endif - -export default otherMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js deleted file mode 100644 index 435e0fb..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js +++ /dev/null @@ -1,83 +0,0 @@ -let mpMixins = {} -let is_pc = null -// #ifdef H5 -import { - isPC -} from "./isPC" -is_pc = isPC() -// #endif -// #ifdef APP-VUE|| MP-WEIXIN || H5 - -mpMixins = { - data() { - return { - is_show: 'none' - } - }, - watch: { - show(newVal) { - this.is_show = this.show - } - }, - created() { - this.swipeaction = this.getSwipeAction() - if (this.swipeaction.children !== undefined) { - this.swipeaction.children.push(this) - } - }, - mounted() { - this.is_show = this.show - }, - methods: { - // wxs 中调用 - closeSwipe(e) { - if (!this.autoClose) return - this.swipeaction.closeOther(this) - }, - - change(e) { - this.$emit('change', e.open) - if (this.is_show !== e.open) { - this.is_show = e.open - } - }, - - appTouchStart(e) { - if (is_pc) return - const { - clientX - } = e.changedTouches[0] - this.clientX = clientX - this.timestamp = new Date().getTime() - }, - appTouchEnd(e, index, item, position) { - if (is_pc) return - const { - clientX - } = e.changedTouches[0] - // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 - let diff = Math.abs(this.clientX - clientX) - let time = (new Date().getTime()) - this.timestamp - if (diff < 40 && time < 300) { - this.$emit('click', { - content: item, - index, - position - }) - } - }, - onClickForPC(index, item, position) { - if (!is_pc) return - // #ifdef H5 - this.$emit('click', { - content: item, - index, - position - }) - // #endif - } - } -} - -// #endif -export default mpMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js deleted file mode 100644 index 78f0ec6..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js +++ /dev/null @@ -1,270 +0,0 @@ -const MIN_DISTANCE = 10; -export default { - showWatch(newVal, oldVal, ownerInstance, instance, self) { - var state = self.state - var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el - if (!$el) return - this.getDom(instance, ownerInstance, self) - if (newVal && newVal !== 'none') { - this.openState(newVal, instance, ownerInstance, self) - return - } - - if (state.left) { - this.openState('none', instance, ownerInstance, self) - } - this.resetTouchStatus(instance, self) - }, - - /** - * 开始触摸操作 - * @param {Object} e - * @param {Object} ins - */ - touchstart(e, ownerInstance, self) { - let instance = e.instance; - let disabled = instance.getDataset().disabled - let state = self.state; - this.getDom(instance, ownerInstance, self) - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = this.getDisabledType(disabled) - if (disabled) return - // 开始触摸时移除动画类 - instance.requestAnimationFrame(function() { - instance.removeClass('ani'); - ownerInstance.callMethod('closeSwipe'); - }) - - // 记录上次的位置 - state.x = state.left || 0 - // 计算滑动开始位置 - this.stopTouchStart(e, ownerInstance, self) - }, - - /** - * 开始滑动操作 - * @param {Object} e - * @param {Object} ownerInstance - */ - touchmove(e, ownerInstance, self) { - let instance = e.instance; - // 删除之后已经那不到实例了 - if (!instance) return; - let disabled = instance.getDataset().disabled - let state = self.state - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = this.getDisabledType(disabled) - if (disabled) return - // 是否可以滑动页面 - this.stopTouchMove(e, self); - if (state.direction !== 'horizontal') { - return; - } - if (e.preventDefault) { - // 阻止页面滚动 - e.preventDefault() - } - let x = state.x + state.deltaX - this.move(x, instance, ownerInstance, self) - }, - - /** - * 结束触摸操作 - * @param {Object} e - * @param {Object} ownerInstance - */ - touchend(e, ownerInstance, self) { - let instance = e.instance; - let disabled = instance.getDataset().disabled - let state = self.state - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = this.getDisabledType(disabled) - - if (disabled) return - // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 - // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 - this.moveDirection(state.left, instance, ownerInstance, self) - - }, - - /** - * 设置移动距离 - * @param {Object} value - * @param {Object} instance - * @param {Object} ownerInstance - */ - move(value, instance, ownerInstance, self) { - value = value || 0 - let state = self.state - let leftWidth = state.leftWidth - let rightWidth = state.rightWidth - // 获取可滑动范围 - state.left = this.range(value, -rightWidth, leftWidth); - instance.requestAnimationFrame(function() { - instance.setStyle({ - transform: 'translateX(' + state.left + 'px)', - '-webkit-transform': 'translateX(' + state.left + 'px)' - }) - }) - - }, - - /** - * 获取元素信息 - * @param {Object} instance - * @param {Object} ownerInstance - */ - getDom(instance, ownerInstance, self) { - var state = self.state - var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el - var leftDom = $el.querySelector('.button-group--left') - var rightDom = $el.querySelector('.button-group--right') - - state.leftWidth = leftDom.offsetWidth || 0 - state.rightWidth = rightDom.offsetWidth || 0 - state.threshold = instance.getDataset().threshold - }, - - getDisabledType(value) { - return (typeof(value) === 'string' ? JSON.parse(value) : value) || false; - }, - - /** - * 获取范围 - * @param {Object} num - * @param {Object} min - * @param {Object} max - */ - range(num, min, max) { - return Math.min(Math.max(num, min), max); - }, - - - /** - * 移动方向判断 - * @param {Object} left - * @param {Object} value - * @param {Object} ownerInstance - * @param {Object} ins - */ - moveDirection(left, ins, ownerInstance, self) { - var state = self.state - var threshold = state.threshold - var position = state.position - var isopen = state.isopen || 'none' - var leftWidth = state.leftWidth - var rightWidth = state.rightWidth - if (state.deltaX === 0) { - this.openState('none', ins, ownerInstance, self) - return - } - if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && - rightWidth + - left < threshold)) { - // right - this.openState('right', ins, ownerInstance, self) - } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && - leftWidth - left < threshold)) { - // left - this.openState('left', ins, ownerInstance, self) - } else { - // default - this.openState('none', ins, ownerInstance, self) - } - }, - - - /** - * 开启状态 - * @param {Boolean} type - * @param {Object} ins - * @param {Object} ownerInstance - */ - openState(type, ins, ownerInstance, self) { - let state = self.state - let leftWidth = state.leftWidth - let rightWidth = state.rightWidth - let left = '' - state.isopen = state.isopen ? state.isopen : 'none' - switch (type) { - case "left": - left = leftWidth - break - case "right": - left = -rightWidth - break - default: - left = 0 - } - - // && !state.throttle - - if (state.isopen !== type) { - state.throttle = true - ownerInstance.callMethod('change', { - open: type - }) - - } - - state.isopen = type - // 添加动画类 - ins.requestAnimationFrame(() => { - ins.addClass('ani'); - this.move(left, ins, ownerInstance, self) - }) - }, - - - getDirection(x, y) { - if (x > y && x > MIN_DISTANCE) { - return 'horizontal'; - } - if (y > x && y > MIN_DISTANCE) { - return 'vertical'; - } - return ''; - }, - - /** - * 重置滑动状态 - * @param {Object} event - */ - resetTouchStatus(instance, self) { - let state = self.state; - state.direction = ''; - state.deltaX = 0; - state.deltaY = 0; - state.offsetX = 0; - state.offsetY = 0; - }, - - /** - * 设置滑动开始位置 - * @param {Object} event - */ - stopTouchStart(event, ownerInstance, self) { - let instance = event.instance; - let state = self.state - this.resetTouchStatus(instance, self); - var touch = event.touches[0]; - state.startX = touch.clientX; - state.startY = touch.clientY; - }, - - /** - * 滑动中,是否禁止打开 - * @param {Object} event - */ - stopTouchMove(event, self) { - let instance = event.instance; - let state = self.state; - let touch = event.touches[0]; - - state.deltaX = touch.clientX - state.startX; - state.deltaY = touch.clientY - state.startY; - state.offsetY = Math.abs(state.deltaY); - state.offsetX = Math.abs(state.deltaX); - state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY); - } -} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue deleted file mode 100644 index d79c297..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue +++ /dev/null @@ -1,347 +0,0 @@ - - - - - - diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs deleted file mode 100644 index b394244..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs +++ /dev/null @@ -1,341 +0,0 @@ -var MIN_DISTANCE = 10; - -/** - * 判断当前是否为H5、app-vue - */ -var IS_HTML5 = false -if (typeof window === 'object') IS_HTML5 = true - -/** - * 监听页面内值的变化,主要用于动态开关swipe-action - * @param {Object} newValue - * @param {Object} oldValue - * @param {Object} ownerInstance - * @param {Object} instance - */ -function showWatch(newVal, oldVal, ownerInstance, instance) { - var state = instance.getState() - getDom(instance, ownerInstance) - if (newVal && newVal !== 'none') { - openState(newVal, instance, ownerInstance) - return - } - - if (state.left) { - openState('none', instance, ownerInstance) - } - resetTouchStatus(instance) -} - -/** - * 开始触摸操作 - * @param {Object} e - * @param {Object} ins - */ -function touchstart(e, ownerInstance) { - var instance = e.instance; - var disabled = instance.getDataset().disabled - var state = instance.getState(); - getDom(instance, ownerInstance) - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; - if (disabled) return - // 开始触摸时移除动画类 - instance.requestAnimationFrame(function() { - instance.removeClass('ani'); - ownerInstance.callMethod('closeSwipe'); - }) - - // 记录上次的位置 - state.x = state.left || 0 - // 计算滑动开始位置 - stopTouchStart(e, ownerInstance) -} - -/** - * 开始滑动操作 - * @param {Object} e - * @param {Object} ownerInstance - */ -function touchmove(e, ownerInstance) { - var instance = e.instance; - var disabled = instance.getDataset().disabled - var state = instance.getState() - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; - if (disabled) return - // 是否可以滑动页面 - stopTouchMove(e); - if (state.direction !== 'horizontal') { - return; - } - - if (e.preventDefault) { - // 阻止页面滚动 - e.preventDefault() - } - - move(state.x + state.deltaX, instance, ownerInstance) -} - -/** - * 结束触摸操作 - * @param {Object} e - * @param {Object} ownerInstance - */ -function touchend(e, ownerInstance) { - var instance = e.instance; - var disabled = instance.getDataset().disabled - var state = instance.getState() - // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 - disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; - - if (disabled) return - // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 - // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 - moveDirection(state.left, instance, ownerInstance) - -} - -/** - * 设置移动距离 - * @param {Object} value - * @param {Object} instance - * @param {Object} ownerInstance - */ -function move(value, instance, ownerInstance) { - value = value || 0 - var state = instance.getState() - var leftWidth = state.leftWidth - var rightWidth = state.rightWidth - // 获取可滑动范围 - state.left = range(value, -rightWidth, leftWidth); - instance.requestAnimationFrame(function() { - instance.setStyle({ - transform: 'translateX(' + state.left + 'px)', - '-webkit-transform': 'translateX(' + state.left + 'px)' - }) - }) - -} - -/** - * 获取元素信息 - * @param {Object} instance - * @param {Object} ownerInstance - */ -function getDom(instance, ownerInstance) { - var state = instance.getState() - var leftDom = ownerInstance.selectComponent('.button-group--left') - var rightDom = ownerInstance.selectComponent('.button-group--right') - var leftStyles = { - width: 0 - } - var rightStyles = { - width: 0 - } - leftStyles = leftDom.getBoundingClientRect() - rightStyles = rightDom.getBoundingClientRect() - - state.leftWidth = leftStyles.width || 0 - state.rightWidth = rightStyles.width || 0 - state.threshold = instance.getDataset().threshold -} - -/** - * 获取范围 - * @param {Object} num - * @param {Object} min - * @param {Object} max - */ -function range(num, min, max) { - return Math.min(Math.max(num, min), max); -} - - -/** - * 移动方向判断 - * @param {Object} left - * @param {Object} value - * @param {Object} ownerInstance - * @param {Object} ins - */ -function moveDirection(left, ins, ownerInstance) { - var state = ins.getState() - var threshold = state.threshold - var position = state.position - var isopen = state.isopen || 'none' - var leftWidth = state.leftWidth - var rightWidth = state.rightWidth - if (state.deltaX === 0) { - openState('none', ins, ownerInstance) - return - } - if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && - rightWidth + - left < threshold)) { - // right - openState('right', ins, ownerInstance) - } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && - leftWidth - left < threshold)) { - // left - openState('left', ins, ownerInstance) - } else { - // default - openState('none', ins, ownerInstance) - } -} - - -/** - * 开启状态 - * @param {Boolean} type - * @param {Object} ins - * @param {Object} ownerInstance - */ -function openState(type, ins, ownerInstance) { - var state = ins.getState() - var leftWidth = state.leftWidth - var rightWidth = state.rightWidth - var left = '' - state.isopen = state.isopen ? state.isopen : 'none' - switch (type) { - case "left": - left = leftWidth - break - case "right": - left = -rightWidth - break - default: - left = 0 - } - - // && !state.throttle - - if (state.isopen !== type) { - state.throttle = true - ownerInstance.callMethod('change', { - open: type - }) - - } - - state.isopen = type - // 添加动画类 - ins.requestAnimationFrame(function() { - ins.addClass('ani'); - move(left, ins, ownerInstance) - }) - // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 -} - - -function getDirection(x, y) { - if (x > y && x > MIN_DISTANCE) { - return 'horizontal'; - } - if (y > x && y > MIN_DISTANCE) { - return 'vertical'; - } - return ''; -} - -/** - * 重置滑动状态 - * @param {Object} event - */ -function resetTouchStatus(instance) { - var state = instance.getState(); - state.direction = ''; - state.deltaX = 0; - state.deltaY = 0; - state.offsetX = 0; - state.offsetY = 0; -} - -/** - * 设置滑动开始位置 - * @param {Object} event - */ -function stopTouchStart(event) { - var instance = event.instance; - var state = instance.getState(); - resetTouchStatus(instance); - var touch = event.touches[0]; - if (IS_HTML5 && isPC()) { - touch = event; - } - state.startX = touch.clientX; - state.startY = touch.clientY; -} - -/** - * 滑动中,是否禁止打开 - * @param {Object} event - */ -function stopTouchMove(event) { - var instance = event.instance; - var state = instance.getState(); - var touch = event.touches[0]; - if (IS_HTML5 && isPC()) { - touch = event; - } - state.deltaX = touch.clientX - state.startX; - state.deltaY = touch.clientY - state.startY; - state.offsetY = Math.abs(state.deltaY); - state.offsetX = Math.abs(state.deltaX); - state.direction = state.direction || getDirection(state.offsetX, state.offsetY); -} - -function isPC() { - var userAgentInfo = navigator.userAgent; - var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; - var flag = true; - for (var v = 0; v < Agents.length - 1; v++) { - if (userAgentInfo.indexOf(Agents[v]) > 0) { - flag = false; - break; - } - } - return flag; -} - -var movable = false - -function mousedown(e, ins) { - if (!IS_HTML5) return - if (!isPC()) return - touchstart(e, ins) - movable = true -} - -function mousemove(e, ins) { - if (!IS_HTML5) return - if (!isPC()) return - if (!movable) return - touchmove(e, ins) -} - -function mouseup(e, ins) { - if (!IS_HTML5) return - if (!isPC()) return - touchend(e, ins) - movable = false -} - -function mouseleave(e, ins) { - if (!IS_HTML5) return - if (!isPC()) return - movable = false -} - -module.exports = { - showWatch: showWatch, - touchstart: touchstart, - touchmove: touchmove, - touchend: touchend, - mousedown: mousedown, - mousemove: mousemove, - mouseup: mouseup, - mouseleave: mouseleave -} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue deleted file mode 100644 index 4971782..0000000 --- a/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/uni_modules/uni-swipe-action/package.json b/uni_modules/uni-swipe-action/package.json deleted file mode 100644 index c8998d9..0000000 --- a/uni_modules/uni-swipe-action/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-swipe-action", - "displayName": "uni-swipe-action 滑动操作", - "version": "1.3.7", - "description": "SwipeAction 滑动操作操作组件", - "keywords": [ - "", - "uni-ui", - "uniui", - "滑动删除", - "侧滑删除" - ], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "y", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} diff --git a/uni_modules/uni-swipe-action/readme.md b/uni_modules/uni-swipe-action/readme.md deleted file mode 100644 index 93a5cac..0000000 --- a/uni_modules/uni-swipe-action/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## SwipeAction 滑动操作 -> **组件名:uni-swipe-action** -> 代码块: `uSwipeAction`、`uSwipeActionItem` - - -通过滑动触发选项的容器 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/changelog.md b/uni_modules/uni-swiper-dot/changelog.md deleted file mode 100644 index 85cf54d..0000000 --- a/uni_modules/uni-swiper-dot/changelog.md +++ /dev/null @@ -1,12 +0,0 @@ -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.6(2021-05-12) -- 新增 示例地址 -- 修复 示例项目缺少组件的Bug -## 1.0.5(2021-02-05) -- 调整为uni_modules目录规范 -- 新增 clickItem 事件,支持指示点控制轮播 -- 新增 支持 pc 可用 diff --git a/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue b/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue deleted file mode 100644 index e66b6c7..0000000 --- a/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - - - diff --git a/uni_modules/uni-swiper-dot/package.json b/uni_modules/uni-swiper-dot/package.json deleted file mode 100644 index f2dd8d2..0000000 --- a/uni_modules/uni-swiper-dot/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-swiper-dot", - "displayName": "uni-swiper-dot 轮播图指示点", - "version": "1.2.0", - "description": "自定义轮播图指示点组件", - "keywords": [ - "uni-ui", - "uniui", - "轮播图指示点", - "dot", - "swiper" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/readme.md b/uni_modules/uni-swiper-dot/readme.md deleted file mode 100644 index 7d397e2..0000000 --- a/uni_modules/uni-swiper-dot/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## SwiperDot 轮播图指示点 -> **组件名:uni-swiper-dot** -> 代码块: `uSwiperDot` - - -自定义轮播图指示点 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-table/changelog.md b/uni_modules/uni-table/changelog.md deleted file mode 100644 index c711615..0000000 --- a/uni_modules/uni-table/changelog.md +++ /dev/null @@ -1,25 +0,0 @@ -## 1.2.2(2022-11-29) -- 优化 主题样式 -## 1.2.1(2022-06-06) -- 修复 微信小程序存在无使用组件的问题 -## 1.2.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-07-08) -- 新增 uni-th 支持 date 日期筛选范围 -## 1.0.6(2021-07-05) -- 新增 uni-th 支持 range 筛选范围 -## 1.0.5(2021-06-28) -- 新增 uni-th 筛选功能 -## 1.0.4(2021-05-12) -- 新增 示例地址 -- 修复 示例项目缺少组件的Bug -## 1.0.3(2021-04-16) -- 新增 sortable 属性,是否开启单列排序 -- 优化 表格多选逻辑 -## 1.0.2(2021-03-22) -- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 -## 1.0.1(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-table/components/uni-table/uni-table.vue b/uni_modules/uni-table/components/uni-table/uni-table.vue deleted file mode 100644 index 6ee871e..0000000 --- a/uni_modules/uni-table/components/uni-table/uni-table.vue +++ /dev/null @@ -1,455 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue deleted file mode 100644 index fbe1bdc..0000000 --- a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-td/uni-td.vue b/uni_modules/uni-table/components/uni-td/uni-td.vue deleted file mode 100644 index 9ce93e9..0000000 --- a/uni_modules/uni-table/components/uni-td/uni-td.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue deleted file mode 100644 index df22a71..0000000 --- a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue +++ /dev/null @@ -1,511 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue deleted file mode 100644 index 14889dd..0000000 --- a/uni_modules/uni-table/components/uni-th/uni-th.vue +++ /dev/null @@ -1,285 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/uni_modules/uni-table/components/uni-thead/uni-thead.vue deleted file mode 100644 index 0dd18cd..0000000 --- a/uni_modules/uni-table/components/uni-thead/uni-thead.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue deleted file mode 100644 index 1089187..0000000 --- a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/uni_modules/uni-table/components/uni-tr/uni-tr.vue deleted file mode 100644 index f9b9671..0000000 --- a/uni_modules/uni-table/components/uni-tr/uni-tr.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/uni_modules/uni-table/i18n/en.json b/uni_modules/uni-table/i18n/en.json deleted file mode 100644 index e32023c..0000000 --- a/uni_modules/uni-table/i18n/en.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "filter-dropdown.reset": "Reset", - "filter-dropdown.search": "Search", - "filter-dropdown.submit": "Submit", - "filter-dropdown.filter": "Filter", - "filter-dropdown.gt": "Greater or equal to", - "filter-dropdown.lt": "Less than or equal to", - "filter-dropdown.date": "Date" -} diff --git a/uni_modules/uni-table/i18n/es.json b/uni_modules/uni-table/i18n/es.json deleted file mode 100644 index 9afd04b..0000000 --- a/uni_modules/uni-table/i18n/es.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "filter-dropdown.reset": "Reiniciar", - "filter-dropdown.search": "Búsqueda", - "filter-dropdown.submit": "Entregar", - "filter-dropdown.filter": "Filtrar", - "filter-dropdown.gt": "Mayor o igual a", - "filter-dropdown.lt": "Menos que o igual a", - "filter-dropdown.date": "Fecha" -} diff --git a/uni_modules/uni-table/i18n/fr.json b/uni_modules/uni-table/i18n/fr.json deleted file mode 100644 index b006237..0000000 --- a/uni_modules/uni-table/i18n/fr.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "filter-dropdown.reset": "Réinitialiser", - "filter-dropdown.search": "Chercher", - "filter-dropdown.submit": "Soumettre", - "filter-dropdown.filter": "Filtre", - "filter-dropdown.gt": "Supérieur ou égal à", - "filter-dropdown.lt": "Inférieur ou égal à", - "filter-dropdown.date": "Date" -} diff --git a/uni_modules/uni-table/i18n/index.js b/uni_modules/uni-table/i18n/index.js deleted file mode 100644 index 2469dd0..0000000 --- a/uni_modules/uni-table/i18n/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import en from './en.json' -import es from './es.json' -import fr from './fr.json' -import zhHans from './zh-Hans.json' -import zhHant from './zh-Hant.json' -export default { - en, - es, - fr, - 'zh-Hans': zhHans, - 'zh-Hant': zhHant -} diff --git a/uni_modules/uni-table/i18n/zh-Hans.json b/uni_modules/uni-table/i18n/zh-Hans.json deleted file mode 100644 index 862af17..0000000 --- a/uni_modules/uni-table/i18n/zh-Hans.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "filter-dropdown.reset": "重置", - "filter-dropdown.search": "搜索", - "filter-dropdown.submit": "确定", - "filter-dropdown.filter": "筛选", - "filter-dropdown.gt": "大于等于", - "filter-dropdown.lt": "小于等于", - "filter-dropdown.date": "日期范围" -} diff --git a/uni_modules/uni-table/i18n/zh-Hant.json b/uni_modules/uni-table/i18n/zh-Hant.json deleted file mode 100644 index 64f8061..0000000 --- a/uni_modules/uni-table/i18n/zh-Hant.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "filter-dropdown.reset": "重置", - "filter-dropdown.search": "搜索", - "filter-dropdown.submit": "確定", - "filter-dropdown.filter": "篩選", - "filter-dropdown.gt": "大於等於", - "filter-dropdown.lt": "小於等於", - "filter-dropdown.date": "日期範圍" -} diff --git a/uni_modules/uni-table/package.json b/uni_modules/uni-table/package.json deleted file mode 100644 index 6d85dae..0000000 --- a/uni_modules/uni-table/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "id": "uni-table", - "displayName": "uni-table 表格", - "version": "1.2.2", - "description": "表格组件,多用于展示多条结构类似的数据,如", - "keywords": [ - "uni-ui", - "uniui", - "table", - "表格" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, -"dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": ["uni-scss","uni-datetime-picker"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "n" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "n", - "QQ": "y" - }, - "快应用": { - "华为": "n", - "联盟": "n" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-table/readme.md b/uni_modules/uni-table/readme.md deleted file mode 100644 index bb08c79..0000000 --- a/uni_modules/uni-table/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## Table 表单 -> 组件名:``uni-table``,代码块: `uTable`。 - -用于展示多条结构类似的数据 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - - - diff --git a/uni_modules/uni-tag/changelog.md b/uni_modules/uni-tag/changelog.md deleted file mode 100644 index c0c5839..0000000 --- a/uni_modules/uni-tag/changelog.md +++ /dev/null @@ -1,21 +0,0 @@ -## 2.1.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag) -## 2.0.0(2021-11-09) -- 新增 提供组件设计资源,组件样式调整 -- 移除 插槽 -- 移除 type 属性的 royal 选项 -## 1.1.1(2021-08-11) -- type 不是 default 时,size 为 small 字体大小显示不正确 -## 1.1.0(2021-07-30) -- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.0.7(2021-06-18) -- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug -## 1.0.6(2021-06-04) -- 修复 未定义 sass 变量 "$uni-color-royal" 的bug -## 1.0.5(2021-05-10) -- 修复 royal 类型无效的bug -- 修复 uni-tag 宽度不自适应的bug -- 新增 uni-tag 支持属性 custom-style 自定义样式 -## 1.0.4(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-tag/components/uni-tag/uni-tag.vue b/uni_modules/uni-tag/components/uni-tag/uni-tag.vue deleted file mode 100644 index 418c955..0000000 --- a/uni_modules/uni-tag/components/uni-tag/uni-tag.vue +++ /dev/null @@ -1,252 +0,0 @@ - - - - - diff --git a/uni_modules/uni-tag/package.json b/uni_modules/uni-tag/package.json deleted file mode 100644 index 1878088..0000000 --- a/uni_modules/uni-tag/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-tag", - "displayName": "uni-tag 标签", - "version": "2.1.0", - "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。", - "keywords": [ - "uni-ui", - "uniui", - "", - "tag", - "标签" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-tag/readme.md b/uni_modules/uni-tag/readme.md deleted file mode 100644 index 6e78ff5..0000000 --- a/uni_modules/uni-tag/readme.md +++ /dev/null @@ -1,13 +0,0 @@ - - -## Tag 标签 -> **组件名:uni-tag** -> 代码块: `uTag` - - -用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - diff --git a/uni_modules/uni-title/changelog.md b/uni_modules/uni-title/changelog.md deleted file mode 100644 index 7626216..0000000 --- a/uni_modules/uni-title/changelog.md +++ /dev/null @@ -1,10 +0,0 @@ -## 1.1.1(2022-05-19) -- 修改组件描述 -## 1.1.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-title](https://uniapp.dcloud.io/component/uniui/uni-title) -## 1.0.2(2021-05-12) -- 新增 示例地址 -- 修复 示例项目缺少组件的Bug -## 1.0.1(2021-02-05) -- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-title/components/uni-title/uni-title.vue b/uni_modules/uni-title/components/uni-title/uni-title.vue deleted file mode 100644 index bf4f926..0000000 --- a/uni_modules/uni-title/components/uni-title/uni-title.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/uni_modules/uni-title/package.json b/uni_modules/uni-title/package.json deleted file mode 100644 index 2249f5a..0000000 --- a/uni_modules/uni-title/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "id": "uni-title", - "displayName": "uni-title 章节标题", - "version": "1.1.1", - "description": "章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题", - "keywords": [ - "uni-ui", - "uniui", - "标题", - "章节", - "章节标题", - "" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-title/readme.md b/uni_modules/uni-title/readme.md deleted file mode 100644 index 0e60b1b..0000000 --- a/uni_modules/uni-title/readme.md +++ /dev/null @@ -1,14 +0,0 @@ - - -## Title 标题 -> **组件名:uni-title** -> 代码块: `uTitle` - - -章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 - - - diff --git a/uni_modules/uni-tooltip/changelog.md b/uni_modules/uni-tooltip/changelog.md deleted file mode 100644 index 00f1572..0000000 --- a/uni_modules/uni-tooltip/changelog.md +++ /dev/null @@ -1,10 +0,0 @@ -## 0.2.1(2022-05-09) -- 修复 content 为空时仍然弹出的bug -## 0.2.0(2022-05-07) -**注意:破坏性更新** -- 更新 text 属性变更为 content -- 更新 移除 width 属性 -## 0.1.1(2022-04-27) -- 修复 组件根 text 嵌套组件 warning -## 0.1.0(2022-04-21) -- 初始化 diff --git a/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue b/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue deleted file mode 100644 index ffbb6fa..0000000 --- a/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - diff --git a/uni_modules/uni-tooltip/package.json b/uni_modules/uni-tooltip/package.json deleted file mode 100644 index b626efb..0000000 --- a/uni_modules/uni-tooltip/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "id": "uni-tooltip", - "displayName": "uni-tooltip", - "version": "0.2.1", - "description": "Tooltip 提示文字", - "keywords": [ - "uni-tooltip", - "uni-ui", - "tooltip", - "tip", - "文字提示" -], - "repository": "", -"engines": { - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无 ", - "data": "无", - "permissions": "无" - }, - "npmurl": "" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "Vue": { - "vue2": "y", - "vue3": "y" - }, - "App": { - "app-vue": "y", - "app-nvue": "u" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "u", - "百度": "u", - "字节跳动": "u", - "QQ": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-tooltip/readme.md b/uni_modules/uni-tooltip/readme.md deleted file mode 100644 index faafa2e..0000000 --- a/uni_modules/uni-tooltip/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -## Badge 数字角标 -> **组件名:uni-tooltip** -> 代码块: `uTooltip` - -数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tooltip) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-transition/changelog.md b/uni_modules/uni-transition/changelog.md deleted file mode 100644 index b1a824b..0000000 --- a/uni_modules/uni-transition/changelog.md +++ /dev/null @@ -1,20 +0,0 @@ -## 1.3.1(2021-11-23) -- 修复 init 方法初始化问题 -## 1.3.0(2021-11-19) -- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) -## 1.2.1(2021-09-27) -- 修复 init 方法不生效的 Bug -## 1.2.0(2021-07-30) -- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -## 1.1.1(2021-05-12) -- 新增 示例地址 -- 修复 示例项目缺少组件的 Bug -## 1.1.0(2021-04-22) -- 新增 通过方法自定义动画 -- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 -- 优化 动画触发逻辑,使动画更流畅 -- 优化 支持单独的动画类型 -- 优化 文档示例 -## 1.0.2(2021-02-05) -- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js deleted file mode 100644 index 5f54365..0000000 --- a/uni_modules/uni-transition/components/uni-transition/createAnimation.js +++ /dev/null @@ -1,128 +0,0 @@ -// const defaultOption = { -// duration: 300, -// timingFunction: 'linear', -// delay: 0, -// transformOrigin: '50% 50% 0' -// } -// #ifdef APP-NVUE -const nvueAnimation = uni.requireNativePlugin('animation') -// #endif -class MPAnimation { - constructor(options, _this) { - this.options = options - this.animation = uni.createAnimation(options) - this.currentStepAnimates = {} - this.next = 0 - this.$ = _this - - } - - _nvuePushAnimates(type, args) { - let aniObj = this.currentStepAnimates[this.next] - let styles = {} - if (!aniObj) { - styles = { - styles: {}, - config: {} - } - } else { - styles = aniObj - } - if (animateTypes1.includes(type)) { - if (!styles.styles.transform) { - styles.styles.transform = '' - } - let unit = '' - if(type === 'rotate'){ - unit = 'deg' - } - styles.styles.transform += `${type}(${args+unit}) ` - } else { - styles.styles[type] = `${args}` - } - this.currentStepAnimates[this.next] = styles - } - _animateRun(styles = {}, config = {}) { - let ref = this.$.$refs['ani'].ref - if (!ref) return - return new Promise((resolve, reject) => { - nvueAnimation.transition(ref, { - styles, - ...config - }, res => { - resolve() - }) - }) - } - - _nvueNextAnimate(animates, step = 0, fn) { - let obj = animates[step] - if (obj) { - let { - styles, - config - } = obj - this._animateRun(styles, config).then(() => { - step += 1 - this._nvueNextAnimate(animates, step, fn) - }) - } else { - this.currentStepAnimates = {} - typeof fn === 'function' && fn() - this.isEnd = true - } - } - - step(config = {}) { - // #ifndef APP-NVUE - this.animation.step(config) - // #endif - // #ifdef APP-NVUE - this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) - this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin - this.next++ - // #endif - return this - } - - run(fn) { - // #ifndef APP-NVUE - this.$.animationData = this.animation.export() - this.$.timer = setTimeout(() => { - typeof fn === 'function' && fn() - }, this.$.durationTime) - // #endif - // #ifdef APP-NVUE - this.isEnd = false - let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref - if(!ref) return - this._nvueNextAnimate(this.currentStepAnimates, 0, fn) - this.next = 0 - // #endif - } -} - - -const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', - 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', - 'translateZ' -] -const animateTypes2 = ['opacity', 'backgroundColor'] -const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] -animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { - MPAnimation.prototype[type] = function(...args) { - // #ifndef APP-NVUE - this.animation[type](...args) - // #endif - // #ifdef APP-NVUE - this._nvuePushAnimates(type, args) - // #endif - return this - } -}) - -export function createAnimation(option, _this) { - if(!_this) return - clearTimeout(_this.timer) - return new MPAnimation(option, _this) -} diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue deleted file mode 100644 index 0d739bd..0000000 --- a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue +++ /dev/null @@ -1,277 +0,0 @@ - - - - - diff --git a/uni_modules/uni-transition/package.json b/uni_modules/uni-transition/package.json deleted file mode 100644 index d15fdf0..0000000 --- a/uni_modules/uni-transition/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id": "uni-transition", - "displayName": "uni-transition 过渡动画", - "version": "1.3.1", - "description": "元素的简单过渡动画", - "keywords": [ - "uni-ui", - "uniui", - "动画", - "过渡", - "过渡动画" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" - }, - "uni_modules": { - "dependencies": ["uni-scss"], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-transition/readme.md b/uni_modules/uni-transition/readme.md deleted file mode 100644 index 2f8a77e..0000000 --- a/uni_modules/uni-transition/readme.md +++ /dev/null @@ -1,11 +0,0 @@ - - -## Transition 过渡动画 -> **组件名:uni-transition** -> 代码块: `uTransition` - - -元素过渡动画 - -### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) -#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-ui/changelog.md b/uni_modules/uni-ui/changelog.md deleted file mode 100644 index 2eb27dd..0000000 --- a/uni_modules/uni-ui/changelog.md +++ /dev/null @@ -1,473 +0,0 @@ -## 1.4.23(2022-10-25) -- uni-datetime-picker 修复,支付宝小程序样式错乱,[详情](https://github.com/dcloudio/uni-app/issues/3861) - -- uni-nav-bar 修复 条件编译错误的bug -- uni-nav-bar 修复 nvue 环境 fixed 为 true 的情况下,无法置顶的 bug -## 1.4.22(2022-09-19) -- 优化 部分组件适配 uni-scss 主题色 -- uni-badge 修复 当 text 超过 max-num 时,badge 的宽度计算是根据 text 的长度计算,更改为 css 计算实际展示宽度,详见:[https://ask.dcloud.net.cn/question/150473](https://ask.dcloud.net.cn/question/150473) -- uni-calendar 修复 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件 -- uni-data-select 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框 -- uni-data-select 修复 点击的位置不准确 -- uni-data-select 新增 支持 disabled 属性 -- uni-datetime-picker 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) -- uni-datetime-picker 修复 close事件无效的 bug -- uni-datetime-picker 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false) -- uni-fab 修复 小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false) -- uni-fab 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310) -- uni-forms 优化 根据 rules 自动添加 required 的问题 -- uni-forms 修复 item 未设置 require 属性,rules 设置 require 后,星号也显示的 bug,详见:[https://ask.dcloud.net.cn/question/151540](https://ask.dcloud.net.cn/question/151540) -- uni-nav-bar 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug -- uni-notice-bar 新增 属性 fontSize,可修改文字大小。 -- uni-pagination 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。 -- uni-pagination 修复,未对移动端当前页文字做主题色适配。 -- uni-pagination 修复 es 语言 i18n 错误 -## 1.4.21(2022-09-19) -- 修复,安装时未导入 uni-data-select 和 uni-tooltip 的问题。 -## 1.4.20(2022-07-25) -- uni-section 新增组件 -- uni-forms 修复 model 需要校验的值没有声明对应字段时,导致第一次不触发校验的bug - -## 1.4.19(2022-07-07) -- uni-data-picker 优化 pc端图标位置不正确的问题 -- uni-data-select 修复 pc端宽度异常的bug -## 1.4.18(2022-07-06) -- uni-forms 【重要】组件逻辑重构,部分用法旧版本不兼容,请注意兼容问题 -- uni-forms 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力 -- uni-forms 新增 更多表单示例 -- uni-forms 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃 -- uni-forms 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效 -- uni-forms 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法 -- uni-forms 新增 子表单的 setRules 方法,配合自定义校验函数使用 -- uni-forms 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则 -- uni-forms 修复 由 1.4.0 引发的 label 插槽不生效的bug -- uni-forms 修复 子组件找不到 setValue 报错的bug -- uni-forms 修复 uni-data-picker 在 uni-forms-item 中报错的bug -- uni-forms 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug -- uni-forms 修复 表单校验顺序无序问题 -- uni-forms 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式 -- uni-forms 优化 动态表单校验方式,废弃拼接name的方式 -- uni-breadcrumb 修复 微信小程序 separator 不显示问题 -- uni-data-checkbox 优化 在 uni-forms 中的依赖注入方式 -- uni-data-picker 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug -- uni-data-picker 优化 显示样式 -- uni-data-select 优化 显示样式 -- uni-datetime-picker 修复 日历顶部年月及底部确认未国际化 bug -- uni-datetime-picker 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 -- uni-easyinput 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容 -- uni-easyinput 新增 clear 事件,点击右侧叉号图标触发 -- uni-easyinput 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发 -- uni-easyinput 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等 -- uni-easyinput 优化 clearable 显示策略 -- uni-file-picker 修复 在uni-forms下样式不生效的bug -- uni-nav-bar 修复 组件示例中插槽用法无法显示内容的bug -- uni-swipe-action 修复 vue3 下使用组件不能正常运行的Bug -- uni-swipe-action 修复 h5端点击click触发两次的Bug -- uni-table 修复 微信小程序存在无使用组件的问题 -## 1.4.17(2022-06-30) -- 支持 ios 安全区 -## 1.4.16(2022-06-06) -- uni-breadcrumb 新增 支持 uni.scss 修改颜色 -- uni-data-select 修复 localdata 赋值不生效的 bug -- uni-data-select 新增 支持选项禁用(数据选项设置 disabled: true 即禁用) -- uni-data-select 修复 当 value 为 0 时选择不生效的 bug -- uni-easyinput 修复 关闭图标某些情况下无法取消的bug -- uni-fav 新增 stat 属性 ,是否开启uni统计功能 -- uni-goods-nav 新增 stat属性,是否开启uni统计功能 -- uni-group 新增 stat属性,是否开启uni统计功能 -- uni-nav-bar 新增 stat 属性 ,可开启统计 title 上报 ,仅使用了title 属性且项目开启了uni统计生效 -- uni-search-bar 新增 readonly 属性,组件只读 -- uni-swipe-action 修复 isPC 找不到的Bug -- uni-swipe-action 修复 在 nvue 下 disabled 失效的bug -- uni-tooltip 修复 content 为空时仍然弹出的bug -## 1.4.15(2022-05-07) -- uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug -- uni-data-select 新增 记住上次的选项(仅 collection 存在时有效) -- uni-search-bar 修复 vue3 input 事件不生效的bug -- uni-search-bar 修复 多余代码导致的bug -- uni-tooltip 更新 text 属性变更为 content -- uni-tooltip 更新 移除 width 属性 -- uni-tooltip 修复 组件根 text 嵌套组件 warning -## 1.4.14(2022-04-18) -- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug -- uni-easyinput 修复 默认值不生效的bug -## 1.4.13(2022-04-02) -- uni-calendar 修复 条件编译 nvue 不支持的 css 样式 -- uni-calendar 修复 startDate、 endDate 属性失效的 bug -- uni-data-picker 修复 nvue 不支持的 v-show 的 bug -- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式 -- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug -- uni-easyinput 修复 value不能为0的bug -- uni-popup 修复 弹出层内部无法滚动的bug -- uni-popup 修复 小程序中高度错误的bug -- uni-popup 修复 快速调用open出现问题的Bug -- uni-rate 修复 条件判断 `NaN` 错误的 bug -- uni-swipe-action 修复 按钮字体大小不能设置的bug -- uni-swipe-action 修复 h5和app端下报el错误的bug -- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug -## 1.4.12(2022-02-19) -- uni-collapse 修复 初始化的时候 ,open 属性失效的bug -- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug -- uni-icons 优化 size 属性可以传入不带单位的字符串数值 -- uni-icons 优化 size 支持其他单位 -- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度 -- uni-popup 修复 safeArea 属性不能设置为false的bug -## 1.4.11(2022-01-21) -- uni-collapse 修复 微信小程序resize后组件收起的bug -- uni-countdown 修复 在微信小程序中样式不生效的bug -- uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 -- uni-load-more 新增 showText属性 ,是否显示文本 -- uni-load-more 修复 nvue 平台下不显示文本的bug -- uni-load-more 修复 微信小程序平台样式选择器报警告的问题 -- uni-nav-bar 修复 在vue下,标题不垂直居中的bug -- uni-nav-bar 修复 height 属性类型错误 -- uni-nav-bar 新增 height 属性,可修改组件高度 -- uni-nav-bar 新增 dark 属性可可开启暗黑模式 -- uni-nav-bar 优化 标题字数过多显示省略号 -- uni-nav-bar 优化 插槽,插入内容可完全覆盖 -- uni-popup 修复 isMaskClick 失效的bug -- uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 -- uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 -- uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 - -## 1.4.10(2022-01-17) -- uni-card 修复 在vue页面下略缩图显示不正常的bug -- uni-datetime-picker 修复 clear-icon 属性在小程序平台不生效的 bug -- uni-datetime-picker 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug -- uni-fab 更新 组件依赖 -- -- uni-icons 修复 nvue 有些图标不显示的bug,兼容老版本图标 -- uni-icons 优化 示例可复制图标名称 -- uni-nav-bar 修复 color 属性不生效的bug -- uni-popup 修复 设置 safeArea 属性不生效的bug -- uni-popup 优化 组件示例 -- uni-popup 修复 vuedoc 文字错误 -## 1.4.9(2021-11-23) -- uni-ui 修复 vue3中某些scss变量无法找到的问题 -- uni-combox 优化 label、label-width 属性 -- uni-data-picker 修复 由上个版本引发的map、v-model等属性不生效的bug -- uni-file-picker 修复 参数为对象的情况下,url在某些情况显示错误的bug -- uni-icons 优化 兼容旧组件 type 值 -- uni-list 修复 在vue3中to属性在发行应用的时候报错的bug -- uni-scss 修复 vue3中scss语法兼容问题 -- uni-transition 修复 init 方法初始化问题 -## 1.4.8(2021-11-19) -- uni-fab 修复 阴影颜色不正确的bug -## 1.4.7(2021-11-19) -- uni-ui 新增 支持国际化 -- uni-ui 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) -- uni-ui 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) -- uni-badge 修改 size 属性默认值调整为 small -- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default -- uni-badge 修复 在字节小程序上样式不生效的 bug -- uni-calendar 修复 弹出层被 tabbar 遮盖 bug -- uni-card 重构插槽的用法 ,header 替换为 title -- uni-card 新增 actions 插槽 -- uni-card 新增 cover 封面图属性和插槽 -- uni-card 新增 padding 内容默认内边距离 -- uni-card 新增 margin 卡片默认外边距离 -- uni-card 新增 spacing 卡片默认内边距 -- uni-card 新增 shadow 卡片阴影属性 -- uni-card 取消 mode 属性,可使用组合插槽代替 -- uni-card 取消 note 属性 ,使用actions插槽代替 -- uni-collapse 优化 show-arrow 属性默认为true -- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 -- uni-countdown 新增 font-size 支持自定义字体大小 -- uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 -- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 -- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 -- uni-dateformat 优化 默认时间不再是当前时间,而是显示'-'字符 -- uni-datetime-picker 修复 hide-second 在移动端的 bug -- uni-datetime-picker 修复 单选赋默认值时,赋值日期未高亮的 bug -- uni-datetime-picker 修复 赋默认值时,移动端未正确显示时间的 bug -- uni-datetime-picker 新增 hide-second 属性,支持只使用时分,隐藏秒 -- uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 -- uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 -- uni-datetime-picker 优化 调整字号大小,美化日历界面 -- uni-datetime-picker 优化 范围选择器在 pc 端过宽的问题 -- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 -- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug -- uni-datetime-picker 修复 type 属性动态赋值无效的 bug -- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug -- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug -- uni-datetime-picker 修复 范围选未正确显示当前值的 bug -- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug -- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug -- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 -- uni-file-picker 新增 参数中返回 fileID 字段 -- uni-file-picker 修复 腾讯云传入fileID 不能回显的bug -- uni-file-picker 修复 选择图片后,不能放大的问题 -- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug -- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 -- uni-file-picker 修复 v-model 值设为 null 报错的Bug -- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug -- uni-file-picker 修复 auto-upload 属性失效的Bug -- uni-forms 修复 label 插槽不生效的bug -- uni-forms 修复 没有添加校验规则的字段依然报错的Bug -- uni-forms 修复 重置表单错误信息无法清除的问题 -- uni-forms 修复 表单验证只生效一次的问题 -- uni-icons 新增 更多图标 -- uni-icons 优化 自定义图标使用方式 -- uni-link 修复 在 nvue 下不显示的 bug -- uni-pagination 修复 current 、value 属性未监听,导致高亮样式失效的 bug -- uni-rate 优化 默认值修改为 0 颗星 -- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug -- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 -- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 -- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 -- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 -- uni-tag 新增 提供组件设计资源,组件样式调整 -- uni-tag 移除 插槽 -- uni-tag 移除 type 属性的 royal 选项 -- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 -## 1.4.2(2021-08-20) -- 新增 uni-ui 组件支持国际化 i18n -- uni-collapse 优化 show-arrow 属性默认为true -- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 -- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 -- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug -- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug -- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 -- uni-file-picker 修复 v-model 值设为 null 报错的Bug -- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 -- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 -- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 -- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 -## 1.4.0(2021-08-13) -- uni-calendar 修复 弹出层被 tabbar 遮盖 bug -- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 -- uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 -- uni-datetime-picker 新增 适配 vue3 -- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 -- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug -- uni-datetime-picker 修复 type 属性动态赋值无效的 bug -- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug -- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug -- uni-datetime-picker 修复 范围选未正确显示当前值的 bug -- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug -- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 -- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug -- uni-file-picker 修复 auto-upload 属性失效的Bug -- uni-forms 修复 没有添加校验规则的字段依然报错的Bug -- uni-forms 修复 重置表单错误信息无法清除的问题 -- uni-forms 优化 组件文档 -- uni-forms 修复 表单验证只生效一次的问题 -- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 -## 1.3.9(2021-08-02) -- uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 -- uni-file-picker 修复 fileExtname属性不指定值报错的Bug -- uni-file-picker 修复 在某种场景下图片不回显的Bug -- uni-link 支持自定义插槽 -## 1.3.8(2021-07-31) -- uni-ui 组件兼容 vue3 -- uni-collapse 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug -- uni-collapse 优化 组件示例 -- uni-collapse 新增 组件折叠动画 -- uni-collapse 新增 value\v-model 属性 ,动态修改面板折叠状态 -- uni-collapse 新增 title 插槽 ,可定义面板标题 -- uni-collapse 新增 border 属性 ,显示隐藏面板内容分隔线 -- uni-collapse 新增 title-border 属性 ,显示隐藏面板标题分隔线 -- uni-collapse 修复 resize 方法失效的Bug -- uni-collapse 修复 change 事件返回参数不正确的Bug -- uni-collapse 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 -- uni-data-checkbox 优化 在uni-forms组件,与label不对齐的问题 -- uni-data-checkbox 修复 单选默认值为0不能选中的Bug -- uni-easyinput 优化 errorMessage 属性支持 Boolean 类型 -- uni-file-picker 修复 return-type为object下,返回值不正确的Bug -- uni-file-picker 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 -- uni-file-picker 优化 h5平台下上传文件导致页面卡死的问题 -- uni-forms 修复 vue2 下条件编译导致destroyed生命周期失效的Bug -- uni-forms 修复 1.2.1 引起的示例在小程序平台报错的Bug -- uni-forms 修复 动态校验表单,默认值为空的情况下校验失效的Bug -- uni-forms 修复 不指定name属性时,运行报错的Bug -- uni-forms 优化 label默认宽度从65调整至70,使required为true且四字时不换行 -- uni-forms 优化 组件示例,新增动态校验示例代码 -- uni-forms 优化 组件文档,使用方式更清晰 -- uni-list 修复 与其他组件嵌套使用时,点击失效的Bug -- uni-swipe-action 修复 跨页面修改组件数据 ,导致不能滑动的问题 -## 1.3.7(2021-07-16) -- uni-ui 兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) -- uni-datetime-picker 修复 单选日期类型,初始赋值后不在当前日历的 bug -- uni-datetime-picker 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) -- uni-datetime-picker 优化 移动端移除显示框的清空按钮,无实际用途 -- uni-datetime-picker 修复 组件赋值为空,界面未更新的 bug -- uni-datetime-picker 修复 start 和 end 不能动态赋值的 bug -- uni-datetime-picker 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug -## 1.3.6(2021-07-09) -- uni-data-checkbox 优化 删除无用日志 -- uni-data-checkbox 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 -- uni-data-checkbox 修复 nvue 黑框样式问题 -- uni-datetime-picker 修复 范围选择不能动态赋值的 bug -- uni-datetime-picker 修复 范围选择的初始时间在一个月内时,造成无法选择的bug -- uni-datetime-picker 优化 弹出层在超出视窗边缘定位不准确的问题 -- uni-datetime-picker 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug -- uni-datetime-picker 优化 弹出层在超出视窗边缘被遮盖的问题 -- uni-datetime-picker 新增 maskClick 事件 -- uni-datetime-picker 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px -- uni-datetime-picker 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] -- uni-datetime-picker 新增 日期时间显示框支持插槽 -- uni-file-picker 修复 sourceType 缺少默认值导致 ios 无法选择文件 -- uni-file-picker 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 -- uni-table 新增 uni-th 支持 date 日期筛选范围 -- uni-table 新增 uni-th 支持 range 筛选范围 -- uni-table 新增 uni-th 筛选功能 -## 1.3.5(2021-07-02) -- uni-card 优化 图文卡片无图片加载时,提供占位图标 -- uni-card 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) -- uni-card 修复 thumbnail 不存在仍然占位的 bug -- uni-data-checkbox 修复 selectedTextColor 属性不生效的Bug -- uni-datetime-picker 优化 添加 uni-icons 依赖 -- uni-easyinput 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug -- uni-file-picker 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 -- uni-file-picker 优化 文件上传后进度条消失时机 -- uni-file-picker 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug -- uni-forms 修复 pattern 属性在微信小程序平台无效的问题 -## 1.3.4(2021-06-25) -- uni-badge 优化 示例项目 -- uni-countdown 修复 uni-countdown 重复赋值跳两秒的 bug -- uni-easyinput 修复 passwordIcon 属性拼写错误的 bug -- uni-forms 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug -- uni-forms 修复 只写setRules方法而导致校验不生效的Bug -- uni-forms 修复 由上个办法引发的错误提示文字错位的Bug -- uni-forms 修复 不设置 label 属性 ,无法设置label插槽的问题 -- uni-forms 修复 不设置label属性,label-width属性不生效的bug -- uni-forms 修复 setRules 方法与rules属性冲突的问题 -- uni-link 新增 download 属性,H5平台下载文件名 -- uni-popup 新增 mask-click 遮罩层点击事件 -- uni-popup 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug -- uni-tag 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug -## 1.3.3(2021-06-18) -- uni-easyinput 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 -- uni-easyinput 修复 confirmType 属性不生效的问题 -- uni-easyinput 修复 disabled 状态可清出内容的 bug -- uni-file-picker 修复 删除文件时无法触发 v-model 的Bug -- uni-popup 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug -- uni-popup 修复 错误的 watch 字段 -- uni-popup 修复 safeArea 属性不生效的问题 -- uni-popup 修复 点击内容,再点击遮罩无法关闭的Bug -## 1.3.2(2021-06-04) -- uni-data-checkbox 新增 map 属性,可以方便映射text/value属性 -- uni-data-checkbox 修复 不关联服务空间的情况下组件报错的Bug -- uni-data-picker 修复 上个版本引出的本地数据无法选择带有children的2级节点 -- uni-forms 修复 动态删减数据导致报错的问题 -- uni-forms 新增 modelValue 属性 ,value 即将废弃 -- uni-forms 新增 uni-forms-item 可以设置单独的 rules -- uni-forms 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 -- uni-forms 优化 submit 事件重命名为 validate -- uni-data-picker 修复 无法加载云端数据的问题 -- uni-data-picker 修复 v-model无效问题 -- uni-data-picker 修复 loaddata 为空数据组时加载时间过长问题 -- uni-datetime-picker 修复 图标在小程序上不显示的 bug -- uni-datetime-picker 优化 重命名引用组件,避免潜在组件命名冲突 -- uni-datetime-picker 优化 代码目录扁平化 -- uni-tag 修复 未定义 sass 变量 "$uni-color-royal" 的bug -## 1.3.1(2021-05-14) -- uni-badge 新增 uni-badge 的 absolute 属性,支持定位 -- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移 -- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 -- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ -- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 -- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug -- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug -- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式 -- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug -- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影 -- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug -- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime -- uni-datetime-picker 支持日历形式的日期+时间的范围选择 -- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug -- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug -- uni-tag 修复 royal 类型无效的bug -- uni-tag 修复 uni-tag 宽度不自适应的bug -- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式 -- uni-link 新增 href 属性支持 tel:|mailto: -- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 -- uni-popup 新增 type 属性的 left\right 值,支持左右弹出 -- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 -- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 -- uni-popup 新增 safeArea 属性,是否适配底部安全区 -- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug -- uni-popup 修复 App 端弹出等待的Bug -- uni-popup 优化 提升低配设备性能,优化动画卡顿问题 -- uni-popup 优化 更简单的组件自定义方式 -- uni-table 修复 示例项目缺少组件的Bug -- uni-forms 修复 自定义检验器失效的问题 -- uni-title 修复 示例项目缺少组件的Bug -- uni-transition 修复 示例项目缺少组件的Bug -- uni-swiper-dot 修复 示例项目缺少组件的Bug -- uni-ui 新增 组件示例地址 -## 1.3.0(2021-04-23) -- uni-combox 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-data-picker 修复 非树形数据有 where 属性查询报错的问题 -- uni-fav 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-goods-nav 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-nav-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-notice-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-number-box 修复 uni-number-box 浮点数运算不精确的 bug -- uni-number-box 修复 uni-number-box change 事件触发不正确的 bug -- uni-number-box 新增 uni-number-box v-model 双向绑定 -- uni-rate 修复 布局变化后 uni-rate 星星计算不准确的 bug -- uni-rate 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 -- uni-search-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-steps 优化 添加依赖 uni-icons, 导入后自动下载依赖 -- uni-transition 新增 通过方法自定义动画 -- uni-transition 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 -- uni-transition 优化 动画触发逻辑,使动画更流畅 -- uni-transition 优化 支持单独的动画类型 -- uni-transition 优化 文档示例 -## 1.2.13(2021-04-16) -- uni-ui 新增 uni-data-picker 支持云端非树形表结构数据 -- uni-ui 修复 uni-data-checkbox nvue 下无法选中的问题 -- uni-ui 修复 uni-data-picker 根节点 parent_field 字段等于null时选择界面错乱问题 -- uni-ui 修复 uni-file-picker 选择的文件非 file-extname 字段指定的扩展名报错的Bug -- uni-ui 修复 uni-swipe-action 报错 nv_navigator is not defined 的bug -- uni-ui 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug -- uni-ui 优化 uni-file-picker file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 -- uni-ui 优化 uni-pagination PC 和 移动端适配不同的 ui -- uni-ui 更新 uni-file-picker 组件示例 -- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug -- uni-ui 新增 uni-search-bar 的 focus 事件 -- uni-ui 修复 uni-rate 属性 margin 值为 string 组件失效的 bug -- uni-data-picker 修复 本地数据概率无法回显时问题 -- uni-table 新增 sortable 属性,是否开启单列排序 -- uni-table 优化 表格多选逻辑 -## 1.2.12(2021-03-23) -- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性; -- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug, -- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug -- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug -- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 -- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue -- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据” -- uni-ui 优化 uni-data-checkbox 默认颜色显示 -- uni-ui 新增 uni-link href 属性支持 tel:|mailto: -- uni-ui 新增 uni-table 示例demo -- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题 -- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug -- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug -- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug -- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用 - -## 1.2.11(2021-02-24) -- 调整为uni_modules目录规范 -- uni-data-picker 新增 数据驱动的picker选择器 -- uni-file-picker 新增 文件选择上传 -- uni-row 新增 栅格系统 -- uni-data-checkbox 优化 支持 nvue -- uni-forms 修复 偶发性获取表单值错误的Bug -- uni-forms 修复 校验 uni-data-picker value 为 0 时,返回值错误的Bug -- uni-forms 修复 uni-forms-item 组件隐藏时依然触发校验的bug -- uni-forms 优化 实时校验 -- uni-forms 优化 兼容nvue页面 -- uni-easyinput 优化 兼容nvue页面 -- uni-group 优化 兼容nvue页面 -- uni-popup 优化 组件适配 PC -- uni-fab 优化 适配 PC -- uni-swiper-dot 优化 适配 PC -- uni-rate 优化 适配 PC -- uni-notice-bar 优化 适配 PC -- uni-indexed-list 优化 适配 PC -- uni-combox 优化 适配 PC -- uni-transition 优化 适配 PC -- uni-nav-bar 优化 适配 PC -- uni-swipe-action 优化 适配 PC diff --git a/uni_modules/uni-ui/components/uni-ui/uni-ui.vue b/uni_modules/uni-ui/components/uni-ui/uni-ui.vue deleted file mode 100644 index 0970892..0000000 --- a/uni_modules/uni-ui/components/uni-ui/uni-ui.vue +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/uni_modules/uni-ui/package.json b/uni_modules/uni-ui/package.json deleted file mode 100644 index 8407940..0000000 --- a/uni_modules/uni-ui/package.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "id": "uni-ui", - "displayName": "uni-ui", - "version": "1.4.23", - "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架", - "keywords": [ - "uni-ui", - "uniui", - "UI组件库", - "ui框架", - "ui库" -], - "repository": "https://github.com/dcloudio/uni-ui", - "engines": { - "HBuilderX": "^3.2.10" - }, - "directories": { - "example": "../../temps/example_temps" - }, - "dcloudext": { - "sale": { - "regular": { - "price": "0.00" - }, - "sourcecode": { - "price": "0.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", - "type": "component-vue" - }, - "uni_modules": { - "dependencies": [ - "uni-badge", - "uni-calendar", - "uni-card", - "uni-collapse", - "uni-combox", - "uni-countdown", - "uni-data-checkbox", - "uni-data-picker", - "uni-data-select", - "uni-dateformat", - "uni-datetime-picker", - "uni-drawer", - "uni-easyinput", - "uni-fab", - "uni-fav", - "uni-file-picker", - "uni-forms", - "uni-goods-nav", - "uni-grid", - "uni-group", - "uni-icons", - "uni-indexed-list", - "uni-link", - "uni-list", - "uni-load-more", - "uni-nav-bar", - "uni-notice-bar", - "uni-number-box", - "uni-pagination", - "uni-popup", - "uni-rate", - "uni-row", - "uni-search-bar", - "uni-section", - "uni-segmented-control", - "uni-steps", - "uni-swipe-action", - "uni-swiper-dot", - "uni-table", - "uni-tag", - "uni-title", - "uni-tooltip", - "uni-transition" - ], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "y", - "aliyun": "y" - }, - "client": { - "App": { - "app-vue": "y", - "app-nvue": "y" - }, - "H5-mobile": { - "Safari": "y", - "Android Browser": "y", - "微信浏览器(Android)": "y", - "QQ浏览器(Android)": "y" - }, - "H5-pc": { - "Chrome": "y", - "IE": "y", - "Edge": "y", - "Firefox": "y", - "Safari": "y" - }, - "小程序": { - "微信": "y", - "阿里": "y", - "百度": "y", - "字节跳动": "y", - "QQ": "y", - "京东": "u" - }, - "快应用": { - "华为": "u", - "联盟": "u" - }, - "Vue": { - "vue2": "y", - "vue3": "y" - } - } - } - } -} \ No newline at end of file diff --git a/uni_modules/uni-ui/readme.md b/uni_modules/uni-ui/readme.md deleted file mode 100644 index 23f8456..0000000 --- a/uni_modules/uni-ui/readme.md +++ /dev/null @@ -1,247 +0,0 @@ -> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看 -> -> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941) -> -> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge) -> -> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) - -# uni-ui 介绍 - -## uni-ui产品特点 - -### 1. 高性能 - -目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。 -- 自动差量更新数据 - -虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。 - -而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。 -- 优化逻辑层和视图层通讯折损 - -非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。 -比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。 - -这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验 -- 背景停止 - -很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。 - -而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。 - -### 2. 全端 - - `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。 - -比如导航栏navbar组件,会自动处理不同端的状态栏。 -比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。 - - `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui) - -未来 `uni-ui` 还会支持pc等大屏设备。 - -### 3. 与uni统计自动集成实现免打点 - -uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。 - -除了一张报表看全端,它的另一个重要特点是免打点。 -比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。 -当然你也可以关闭uni统计,这不是强制的。 - -### 4. 主题扩展 - - `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。 - -ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。 - -我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。 - - -## 快速开始 - -uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式 - -### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板 -![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg) - -由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。 - -在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。 - -光标放在组件名称上,按F1,可以查阅组件的文档。 - -![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg) - -### 通过 uni_modules 单独安装组件 -如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。 - -|组件名|组件说明| -|---|---| -|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)| -|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)| -|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)| -|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)| -|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)| -|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)| -|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)| -|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)| -|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)| -|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)| -|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)| -|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)| -|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)| -|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)| -|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)| -|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)| -|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)| -|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)| -|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)| -|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)| -|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)| -|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)| -|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)| -|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)| -|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)| -|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)| -|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)| -|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)| -|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)| -|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)| -|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)| -|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)| -|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)| -|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)| -|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)| -|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)| -|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)| -|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)| -|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)| -|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)| - - -使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55) - -**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本** - -如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。 - -例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可: - - -**目录示例** - -```json -┌─components 组件目录 -│ ├─uni-list list 列表目录 -│ │ └─uni-list.vue list 组件文件 -│ ├─uni-list-item list-item 列表目录 -│ │ └─uni-list-item.vue list 组件文件 -│ ├─uni-badge badge 角标目录 -│ │ └─uni-badge.vue badge 组件文件 -│ └─ //.... 更多组件文件 -├─pages 业务页面文件存放的目录 -│ ├─index -│ │ └─index.vue index示例页面 -├─main.js Vue初始化入口文件 -├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期 -├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 -└─pages.json 配置页 - -``` - -### 通过 `uni_modules` 导入全部组件 -如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。 - -如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。 - - - -### npm安装 -在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。 - -> **注意** -> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常 -> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常 -> ```javascript -> // vue.config.js -> module.exports = { -> transpileDependencies:['@dcloudio/uni-ui'] -> } -> ``` - - - -**准备 sass** - -`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。 - -- 安装 sass -``` - npm i sass -D 或 yarn add sass -D -``` - -- 安装 sass-loader -``` -npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D -``` - -> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function) -> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本 - -**安装 uni-ui** - -``` -npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui -``` - - - -**配置easycom** - -使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom` - -打开项目根目录下的 `pages.json` 并添加 `easycom` 节点: - -```javascript -// pages.json -{ - "easycom": { - "autoscan": true, - "custom": { - // uni-ui 规则如下配置 - "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" - } - }, - - // 其他内容 - pages:[ - // ... - ] -} - -``` - -在 ``template`` 中使用组件: - -```html - - - -``` - - **注意** - - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题 - - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决: - ```javascript - // 在根目录创建 vue.config.js 文件,并配置如下 - module.exports = { - transpileDependencies: ['@dcloudio/uni-ui'] - } - ``` - - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。 - - `uni-ui` 不支持使用 `Vue.use()` 的方式安装 - - -### 贡献代码 -在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls) \ No newline at end of file diff --git a/unpackage/dist/dev/.automator/mp-toutiao/.automator.json b/unpackage/dist/dev/.automator/mp-toutiao/.automator.json deleted file mode 100644 index e69de29..0000000 diff --git a/unpackage/dist/dev/.automator/mp-weixin/.automator.json b/unpackage/dist/dev/.automator/mp-weixin/.automator.json deleted file mode 100644 index e69de29..0000000 diff --git a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-toutiao/common/main.js.map deleted file mode 100644 index 67d8440..0000000 --- a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["uni-app:///main.js","webpack:///D:/项目/taihumeisu/App.vue?9191","webpack:///D:/项目/taihumeisu/App.vue?a22b","uni-app:///App.vue","webpack:///D:/项目/taihumeisu/App.vue?fad8","webpack:///D:/项目/taihumeisu/App.vue?bd3b"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","Vue","config","productionTip","App","mpType","app","store","$mount","onLaunch","console","onShow","onHide"],"mappings":";;;;;;;;;;;;;;AAAA;AAGA;AACA;AACA;AACA;AACA;AAAsC;AAAA;AANtC;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAO1DC,YAAG,CAACC,MAAM,CAACC,aAAa,GAAG,KAAK;AAEhCC,YAAG,CAACC,MAAM,GAAG,KAAK;AAElB,IAAMC,GAAG,GAAG,IAAIL,YAAG;EAClBM,KAAK,EAAEA;AAAK,GACNH,YAAG,EACR;AACF,UAAAE,GAAG,EAACE,MAAM,EAAE,C;;;;;;;;;;;;;ACjBZ;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACc;;;AAGhE;AAC6J;AAC7J,gBAAgB,6KAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAkkB,CAAgB,6mBAAG,EAAC,C;;;;;;;;;;;;;;;;;;eCCtlB;EACAC;IACAC;IACAA;EACA;EACAC;IACAD;EACA;EACAE;IACAF;EACA;AACA;AAAA,2B;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAqlC,CAAgB,4lCAAG,EAAC,C;;;;;;;;;;;ACAzmC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';\r\n// @ts-ignore\r\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\r\nimport Vue from 'vue'\r\nimport App from './App'\r\nimport store from './store'\r\nimport '@/static/js/request.js'\r\nimport '@/static/js/CommonFunction.js'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n\tstore: store,\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import mod from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1672107885695\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-toutiao/common/runtime.js.map deleted file mode 100644 index 0d12efd..0000000 --- a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/runtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[null],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-toutiao/common/vendor.js.map deleted file mode 100644 index 1c69819..0000000 --- a/unpackage/dist/dev/.sourcemap/mp-toutiao/common/vendor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-toutiao/dist/index.js?f266",null,"webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?4ea4","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js?278c","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js?c135","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?9b42","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?6613","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?5a43","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js?c240","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js?9523","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js?a395","webpack:///./node_modules/@babel/runtime/helpers/typeof.js?7037","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js?e50d","webpack:///./node_modules/@babel/runtime/helpers/construct.js?b17c","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js?4a4b","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?6f8f","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js?970b","webpack:///./node_modules/@babel/runtime/helpers/createClass.js?5bc3","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?448a","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?2236","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?11b0","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?0676","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///store/index.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js?26cb","uni-app:///store/modules/user.js","uni-app:///static/js/request.js","uni-app:///static/js/CommonFunction.js"],"names":["realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","indexOf","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","join","getCurrentUserInfo","token","tt","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isObject","obj","isPlainObject","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","locale","normalizeLocale","language","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","initVueI18n","t","i18nMixin","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","app","getApp","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","EventChannel","id","events","listener","emitCache","on","eventName","args","fns","opt","apply","filter","type","_addListener","_clearCache","cacheArgs","emit","shift","eventChannels","eventChannelStack","initEventChannel","eventChannel","getEventChannel","navigateTo","fromArgs","toArgs","url","fromRes","toRes","findExistsPageIndex","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","exists","delta","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","item","indicator","loop","UUID_KEY","deviceId","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","getSystemInfo","oName","nName","getUserProfile","canIUse","todos","canIUses","protocols","chooseImage","sizeType","connectSocket","chooseVideo","camera","scanCode","onlyFromCamera","scanType","startAccelerometer","interval","showToast","image","mask","showLoading","showModal","cancelColor","confirmColor","showActionSheet","itemColor","login","scopes","timeout","getUserInfo","requestPayment","pay","orderInfo","getFileInfo","digestAlgorithm","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$emit","eventApi","createMediaQueryObserver","mediaQueryObserver","windowHeight","orientation","observe","matches","itemValue","disconnect","tryCatch","e","getApiCallbacks","apiCallbacks","param","cid","cidErrMsg","enabled","normalizePushMessage","invokePushCallback","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","findVmByVueId","vm","vuePid","$children","childVm","$scope","_$vueId","parentVm","initBehavior","Behavior","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","includes","delete","initRefs","forComponents","handleLink","event","detail","vueOptions","parent","markMPComponent","IS_MP","configurable","enumerable","OB","SKIP","isExtensible","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","triggerEvent","newTriggerEvent","comType","_triggerEvent","initHook","isComponent","lifetimes","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","mocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","route","is","once","initEventChannel$1","getOpenerEventChannel","__eventChannel__","callHook","__id__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","globalData","_isMounted","isPage","__nodeid__","__nodeId__","initRefs$1","minorVersion","instances","initRelation","nodeId","webviewId","__webviewId__","handleLink$1","$root","parseApp","_$fallback","created","__route__","__init_injections","__init_provide","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","currentComponents","parseComponent","__lifetimes_attached","oldDetached","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","oldCreated","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","_interopRequireDefault","__esModule","module","exports","arrayWithHoles","require","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","arrayLikeToArray","_unsupportedIterableToArray","o","minLen","n","from","_arrayLikeToArray","arr2","_nonIterableRest","TypeError","toPropertyKey","_defineProperty","writable","_typeof","toPrimitive","_toPropertyKey","_toPrimitive","input","hint","prim","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","bind","a","Constructor","Function","instance","_setPrototypeOf","p","_isNativeReflectConstruct","sham","valueOf","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","use","Vuex","Store","modules","user","location","lat","lon","toPath","products","linkProducts","coupon","eshoppingCart","sshoppingCart","meetRoomReserve","date","people","mutations","changeUserInfo","setStorageSync","changeLoationInfo","changeLoginPath","currentPage","changeOrderInfo","changelinkProducts","choseCoupon","changeOrderECart","changeOrderSCart","changeMeetRoomReserve","NEWAPIURL","Post","apiurl","title","request","header","hideLoading","log","code","setTimeout","msg","icon","commit","formateRichText","reg","RegExp","getUrlPara","arrUrl","para","idChinaName","pattern","idCardNumber","IsTel","tel","IsTelMacau","IsCode","IsMail"],"mappings":"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AAC5Q,MAAM,CAAC;IACnB+Q,iBAAiB,CAAC/Q,MAAM,CAAC;IACzBuR,kBAAkB,CAACvR,MAAM,CAAC;EAC5B;AACF,CAAC;AAED,IAAMkV,KAAK,GAAG,aAAa;AAC3B,IAAMC,KAAK,GAAG,gBAAgB;AAE9B,IAAIC,cAAc,GAAG;EACnBhP,IAAI,EAAEnF,EAAE,CAACoU,OAAO,CAACF,KAAK,CAAC,GAAGA,KAAK,GAAGD;AACpC,CAAC;;AAED;AACA,IAAMI,KAAK,GAAG,CACZ,aAAa,EACb,eAAe,EACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACD;;AAED;AACA;AACA,IAAMC,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD;;AAED;AACA,IAAMC,SAAS,GAAG;EAChBC,WAAW,EAAE;IACXzH,IAAI,EAAE;MACJ0H,QAAQ,EAAE;IACZ;EACF,CAAC;EACD1G,UAAU,EAAVA,UAAU;EACVa,UAAU,EAAVA,UAAU;EACVI,YAAY,EAAZA,YAAY;EACZgF,aAAa,EAAbA,aAAa;EACbnM,iBAAiB,EAAEmM,aAAa;EAChCG,cAAc,EAAdA,cAAc;EACdO,aAAa,EAAE;IACb3H,IAAI,EAAE;MACJzI,MAAM,EAAE;IACV;EACF,CAAC;EACDqQ,WAAW,EAAE;IACX5H,IAAI,EAAE;MACJ6H,MAAM,EAAE;IACV;EACF,CAAC;EACDC,QAAQ,EAAE;IACR9H,IAAI,EAAE;MACJ+H,cAAc,EAAE,KAAK;MACrBC,QAAQ,EAAE;IACZ;E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ACf;IACJ;EACJ;EACA,OAAO,KAAK;AAChB;AAEA,SAASoxB,aAAa,CAACnqB,OAAO,EAAE;EAC5B,OAAO,UAACP,MAAM,EAAK;IACf,IAAI,CAACA,MAAM,EAAE;MACT,OAAOA,MAAM;IACjB;IACAA,MAAM,GAAGC,eAAe,CAACD,MAAM,CAAC,IAAIA,MAAM;IAC1C,OAAO2qB,kBAAkB,CAAC3qB,MAAM,CAAC,CAACsC,IAAI,CAAC,UAACtC,MAAM;MAAA,OAAKO,OAAO,CAACjK,OAAO,CAAC0J,MAAM,CAAC,GAAG,CAAC,CAAC;IAAA,EAAC;EACpF,CAAC;AACL;AACA,SAAS2qB,kBAAkB,CAAC3qB,MAAM,EAAE;EAChC,IAAM4qB,KAAK,GAAG,EAAE;EAChB,IAAM/C,MAAM,GAAG7nB,MAAM,CAACrJ,KAAK,CAAC,GAAG,CAAC;EAChC,OAAOkxB,MAAM,CAAC7xB,MAAM,EAAE;IAClB40B,KAAK,CAAC/vB,IAAI,CAACgtB,MAAM,CAAC7wB,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B6wB,MAAM,CAACgD,GAAG,EAAE;EAChB;EACA,OAAOD,KAAK;AAChB,C;;;;;;;;;;;;ACncA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,yIAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,yIAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,yIAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,yIAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC77LnB;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClHA;AACA;AAEA;AAEA1yB,YAAG,CAAC4yB,GAAG,CAACC,aAAI,CAAC;AAAC,eAEC,IAAIA,aAAI,CAACC,KAAK,CAAC;EAC5BC,OAAO,EAAE;IACPC,IAAI,EAAEA;EACR;AACF,CAAC,CAAC;AAAA,2B;;;;;;;;;;;ACXF;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG,GAAG,gBAAgB;;AAEtB;AACA;AACA,GAAG,GAAG,gBAAgB;AACtB;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,2BAA2B,EAAE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc,qBAAqB;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,oCAAoC,EAAE;AAClE;AACA;;AAEA;AACA,4BAA4B;AAC5B,uEAAuE,EAAE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS,qBAAqB;;AAE1D;AACA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,6BAA6B,oCAAoC,EAAE;;AAEnE;AACA,KAAK,KAAqC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD,+BAA+B,yCAAyC,EAAE;AAC1E,GAAG;AACH,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,yBAAyB,EAAE;AAC3E;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,wCAAwC,EAAE;AAC7E,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,+CAA+C,EAAE;AACpF,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC,aAAa;AACtD;AACA;;AAEA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA,6CAA6C,6CAA6C,EAAE;AAC5F;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA,yEAAyE,iCAAiC;AAC1G;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB,EAAE;AACjD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,yBAAyB,EAAE;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,aAAoB;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,uBAAuB,2CAA2C;AAClE,KAAK;AACL;AACA,wBAAwB,0CAA0C;AAClE;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,SAAS,IAAqC;AAC9C;AACA;AACA,GAAG,GAAG,yBAAyB;AAC/B;;AAEA;AACA,4CAA4C,mBAAmB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW;AACX;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC;AAChD;AACA;AACA;AACA;AACA;A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","file":"common/vendor.js","sourcesContent":["import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( tt).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isObject (obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () { }\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = tt.getSystemInfoSync(); // uni=>tt runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(tt.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n return normalizeLocale(tt.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = getApp();\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nclass EventChannel {\r\n constructor (id, events) {\r\n this.id = id;\r\n this.listener = {};\r\n this.emitCache = {};\r\n if (events) {\r\n Object.keys(events).forEach(name => {\r\n this.on(name, events[name]);\r\n });\r\n }\r\n }\r\n\r\n emit (eventName, ...args) {\r\n const fns = this.listener[eventName];\r\n if (!fns) {\r\n return (this.emitCache[eventName] || (this.emitCache[eventName] = [])).push(args)\r\n }\r\n fns.forEach(opt => {\r\n opt.fn.apply(opt.fn, args);\r\n });\r\n this.listener[eventName] = fns.filter(opt => opt.type !== 'once');\r\n }\r\n\r\n on (eventName, fn) {\r\n this._addListener(eventName, 'on', fn);\r\n this._clearCache(eventName);\r\n }\r\n\r\n once (eventName, fn) {\r\n this._addListener(eventName, 'once', fn);\r\n this._clearCache(eventName);\r\n }\r\n\r\n off (eventName, fn) {\r\n const fns = this.listener[eventName];\r\n if (!fns) {\r\n return\r\n }\r\n if (fn) {\r\n for (let i = 0; i < fns.length;) {\r\n if (fns[i].fn === fn) {\r\n fns.splice(i, 1);\r\n i--;\r\n }\r\n i++;\r\n }\r\n } else {\r\n delete this.listener[eventName];\r\n }\r\n }\r\n\r\n _clearCache (eventName) {\r\n const cacheArgs = this.emitCache[eventName];\r\n if (cacheArgs) {\r\n for (; cacheArgs.length > 0;) {\r\n this.emit.apply(this, [eventName].concat(cacheArgs.shift()));\r\n }\r\n }\r\n }\r\n\r\n _addListener (eventName, type, fn) {\r\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\r\n fn,\r\n type\r\n });\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nlet id = 0;\r\n\r\nfunction initEventChannel (events, cache = true) {\r\n id++;\r\n const eventChannel = new EventChannel(id, events);\r\n if (cache) {\r\n eventChannels[id] = eventChannel;\r\n eventChannelStack.push(eventChannel);\r\n }\r\n return eventChannel\r\n}\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nvar navigateTo = {\r\n args (fromArgs, toArgs) {\r\n const id = initEventChannel(fromArgs.events).id;\r\n if (fromArgs.url) {\r\n fromArgs.url = fromArgs.url + (fromArgs.url.indexOf('?') === -1 ? '?' : '&') + '__id__=' + id;\r\n }\r\n },\r\n returnValue (fromRes, toRes) {\r\n fromRes.eventChannel = getEventChannel();\r\n }\r\n};\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || tt.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n tt.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-toutiao\".indexOf('quickapp-webview') !== -1\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = \"mp-toutiao\".split('-')[1];\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n { _hostName = result.appName; }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nconst oName = 'getUserInfo';\r\nconst nName = 'getUserProfile';\r\n\r\nvar getUserProfile = {\r\n name: tt.canIUse(nName) ? nName : oName\r\n};\r\n\r\n// 不支持的 API 列表\r\nconst todos = [\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n // 'createCameraContext',\r\n // 'createLivePlayerContext',\r\n // 'getSavedFileInfo',\r\n // 'createMapContext',\r\n // 'onMemoryWarning',\r\n // 'onGyroscopeChange',\r\n // 'startGyroscope',\r\n // 'stopGyroscope',\r\n // 'setScreenBrightness',\r\n // 'getScreenBrightness',\r\n // 'addPhoneContact',\r\n // 'openBluetoothAdapter',\r\n // 'startBluetoothDevicesDiscovery',\r\n // 'onBluetoothDeviceFound',\r\n // 'stopBluetoothDevicesDiscovery',\r\n // 'onBluetoothAdapterStateChange',\r\n // 'getConnectedBluetoothDevices',\r\n // 'getBluetoothDevices',\r\n // 'getBluetoothAdapterState',\r\n // 'closeBluetoothAdapter',\r\n // 'writeBLECharacteristicValue',\r\n // 'readBLECharacteristicValue',\r\n // 'onBLEConnectionStateChange',\r\n // 'onBLECharacteristicValueChange',\r\n // 'notifyBLECharacteristicValueChange',\r\n // 'getBLEDeviceServices',\r\n // 'getBLEDeviceCharacteristics',\r\n // 'createBLEConnection',\r\n // 'closeBLEConnection',\r\n // 'onBeaconServiceChange',\r\n // 'onBeaconUpdate',\r\n // 'getBeacons',\r\n // 'startBeaconDiscovery',\r\n // 'stopBeaconDiscovery',\r\n // 'showNavigationBarLoading',\r\n // 'hideNavigationBarLoading',\r\n // 'setTabBarItem',\r\n // 'setTabBarStyle',\r\n // 'hideTabBar',\r\n // 'showTabBar',\r\n // 'setTabBarBadge',\r\n // 'removeTabBarBadge',\r\n // 'showTabBarRedDot',\r\n // 'hideTabBarRedDot',\r\n // 'setBackgroundColor',\r\n // 'setBackgroundTextStyle',\r\n // 'chooseInvoiceTitle',\r\n // 'addTemplate',\r\n // 'deleteTemplate',\r\n // 'getTemplateLibraryById',\r\n // 'getTemplateLibraryList',\r\n // 'getTemplateList',\r\n // 'sendTemplateMessage',\r\n // 'setEnableDebug',\r\n // 'onWindowResize',\r\n // 'offWindowResize',\r\n // 'createOffscreenCanvas',\r\n // 'vibrate'\r\n];\r\n\r\n// 存在兼容性的 API 列表\r\n// 头条小程序自1.35.0+支持canIUses\r\nconst canIUses = [\r\n // 'createIntersectionObserver',\r\n // 'getSavedFileList',\r\n // 'removeSavedFile',\r\n // 'hideKeyboard',\r\n // 'getImageInfo',\r\n // 'createVideoContext',\r\n // 'onSocketOpen',\r\n // 'onSocketError',\r\n // 'sendSocketMessage',\r\n // 'onSocketMessage',\r\n // 'closeSocket',\r\n // 'onSocketClose',\r\n // 'getExtConfig',\r\n // 'getExtConfigSync',\r\n // 'navigateToMiniProgram',\r\n // 'navigateBackMiniProgram',\r\n // 'compressImage',\r\n // 'chooseLocation',\r\n // 'openDocument',\r\n // 'onUserCaptureScreen',\r\n // 'getBackgroundAudioManager',\r\n // 'setNavigationBarColor',\r\n];\r\n\r\n// 需要做转换的 API 列表\r\nconst protocols = {\r\n chooseImage: {\r\n args: {\r\n sizeType: false\r\n }\r\n },\r\n navigateTo,\r\n redirectTo,\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n getUserProfile,\r\n connectSocket: {\r\n args: {\r\n method: false\r\n }\r\n },\r\n chooseVideo: {\r\n args: {\r\n camera: false\r\n }\r\n },\r\n scanCode: {\r\n args: {\r\n onlyFromCamera: false,\r\n scanType: false\r\n }\r\n },\r\n startAccelerometer: {\r\n args: {\r\n interval: false\r\n }\r\n },\r\n showToast: {\r\n args: {\r\n image: false,\r\n mask: false\r\n }\r\n },\r\n showLoading: {\r\n args: {\r\n mask: false\r\n }\r\n },\r\n showModal: {\r\n args: {\r\n cancelColor: false,\r\n confirmColor: false\r\n }\r\n },\r\n showActionSheet: {\r\n args: {\r\n itemColor: false\r\n }\r\n },\r\n login: {\r\n args: {\r\n scopes: false,\r\n timeout: false\r\n }\r\n },\r\n getUserInfo: {\r\n args: {\r\n lang: false,\r\n timeout: false\r\n }\r\n },\r\n requestPayment: {\r\n name: tt.pay ? 'pay' : 'requestPayment',\r\n args: {\r\n orderInfo: tt.pay ? 'orderInfo' : 'data'\r\n }\r\n },\r\n getFileInfo: {\r\n args: {\r\n digestAlgorithm: false\r\n }\r\n }\r\n};\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '头条小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '头条小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = tt[methodName].apply(tt, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['toutiao'],\r\n share: ['toutiao'],\r\n payment: ['toutiao'],\r\n push: ['toutiao']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\nfunction createMediaQueryObserver () {\r\n const mediaQueryObserver = {};\r\n const {\r\n windowWidth,\r\n windowHeight\r\n } = tt.getSystemInfoSync();\r\n\r\n const orientation = windowWidth < windowHeight ? 'portrait' : 'landscape';\r\n\r\n mediaQueryObserver.observe = (options, callback) => {\r\n let matches = true;\r\n for (const item in options) {\r\n const itemValue = item === 'orientation' ? options[item] : Number(options[item]);\r\n if (options[item] !== '') {\r\n if (item === 'width') {\r\n if (itemValue === windowWidth) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n if (item === 'minWidth') {\r\n if (windowWidth >= itemValue) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n if (item === 'maxWidth') {\r\n if (windowWidth <= itemValue) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n\r\n if (item === 'height') {\r\n if (itemValue === windowHeight) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n if (item === 'minHeight') {\r\n if (windowHeight >= itemValue) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n if (item === 'maxHeight') {\r\n if (windowHeight <= itemValue) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n\r\n if (item === 'orientation') {\r\n if (options[item] === orientation) {\r\n matches = true;\r\n } else {\r\n matches = false;\r\n callback(matches);\r\n return matches\r\n }\r\n }\r\n }\r\n }\r\n callback(matches);\r\n\r\n return matches\r\n };\r\n\r\n mediaQueryObserver.disconnect = () => {\r\n };\r\n\r\n return mediaQueryObserver\r\n}\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'uniPush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n createMediaQueryObserver: createMediaQueryObserver,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector) || [];\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || toSkip(component);\r\n });\r\n}\r\n\r\nfunction syncRefs (refs, newRefs) {\r\n const oldKeys = new Set(...Object.keys(refs));\r\n const newKeys = Object.keys(newRefs);\r\n newKeys.forEach(key => {\r\n const oldValue = refs[key];\r\n const newValue = newRefs[key];\r\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\r\n return\r\n }\r\n refs[key] = newValue;\r\n oldKeys.delete(key);\r\n });\r\n oldKeys.forEach(key => {\r\n delete refs[key];\r\n });\r\n return refs\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n const refs = {};\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n return syncRefs(refs, $refs)\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction markMPComponent (component) {\r\n // 在 Vue 中标记为小程序组件\r\n const IS_MP = '__v_isMPComponent';\r\n Object.defineProperty(component, IS_MP, {\r\n configurable: true,\r\n enumerable: false,\r\n value: true\r\n });\r\n return component\r\n}\r\n\r\nfunction toSkip (obj) {\r\n const OB = '__ob__';\r\n const SKIP = '__v_skip';\r\n if (isObject(obj) && Object.isExtensible(obj)) {\r\n // 避免被 @vue/composition-api 观测\r\n Object.defineProperty(obj, OB, {\r\n configurable: true,\r\n enumerable: false,\r\n value: {\r\n [SKIP]: true\r\n }\r\n });\r\n }\r\n return obj\r\n}\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\r\n if (this.$vm || (this.dataset && this.dataset.comType)) {\r\n event = customize(event);\r\n }\r\n return oldTriggerEvent.apply(this, [event, ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n {\r\n // fix by Lxh 字节自定义组件Component构造器文档上写有created,但是实测只触发了lifetimes上的created\r\n isComponent && options.lifetimes && options.lifetimes[name] && (options = options.lifetimes);\r\n }\r\n const oldHook = options[name];\r\n options[name] = function (...args) {\r\n markMPComponent(this);\r\n initTriggerEvent(this);\r\n if (oldHook) {\r\n return oldHook.apply(this, args)\r\n }\r\n };\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options, true);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\r\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\r\n}\r\n\r\nfunction findHooks (vueOptions, hooks = []) {\r\n if (vueOptions) {\r\n Object.keys(vueOptions).forEach((name) => {\r\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\r\n hooks.push(name);\r\n }\r\n });\r\n }\r\n return hooks\r\n}\r\n\r\nfunction initHook$1 (mpOptions, hook, excludes) {\r\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) { }\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"tt\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n // 用于字节跳动小程序模拟抽象节点\r\n properties.generic = {\r\n type: Object,\r\n value: null\r\n };\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) { }\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event, __args__) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n\r\n // fixed 用户直接触发 mpInstance.triggerEvent\r\n const __args__ = isPlainObject(event.detail)\r\n ? event.detail.__args__ || [event.detail]\r\n : [event.detail];\r\n\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return __args__\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event, __args__);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel$1 () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n if (!this.__eventChannel__) {\r\n this.__eventChannel__ = new EventChannel();\r\n }\r\n return this.__eventChannel__\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel$1();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-toutiao\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(tt.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n initUnknownHooks(appOptions, vm.$options);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__webviewId__', '__nodeid__', '__nodeId__'];\r\n\r\nfunction isPage () {\r\n return this.__nodeid__ === 0 || this.__nodeId__ === 0\r\n}\r\n\r\nfunction initRefs$1 (vm) {\r\n const mpInstance = vm.$scope;\r\n /* eslint-disable no-undef */\r\n const minorVersion = parseInt(tt.getSystemInfoSync().SDKVersion.split('.')[1]);\r\n if (minorVersion > 16) {\r\n initRefs(vm);\r\n } else {\r\n mpInstance.selectAllComponents('.vue-ref', (components) => {\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n vm.$refs[ref] = component.$vm || toSkip(component);\r\n });\r\n });\r\n mpInstance.selectAllComponents('.vue-ref-in-for', (forComponents) => {\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!vm.$refs[ref]) {\r\n vm.$refs[ref] = [];\r\n }\r\n vm.$refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst instances = Object.create(null);\r\nconst components = Object.create(null);\r\n\r\nfunction initRelation ({\r\n vuePid,\r\n mpInstance\r\n}) {\r\n // 头条 triggerEvent 后,接收事件时机特别晚,已经到了 ready 之后\r\n const nodeId = (mpInstance.__nodeId__ || mpInstance.__nodeid__) + '';\r\n const webviewId = mpInstance.__webviewId__ + '';\r\n\r\n instances[webviewId + '_' + nodeId] = mpInstance.$vm;\r\n\r\n this.triggerEvent('__l', {\r\n vuePid,\r\n nodeId,\r\n webviewId\r\n });\r\n}\r\n\r\nfunction handleLink$1 ({\r\n detail: {\r\n vuePid,\r\n nodeId,\r\n webviewId\r\n }\r\n}) {\r\n const vm = instances[webviewId + '_' + nodeId];\r\n if (!vm) {\r\n return\r\n }\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vm.$parent = parentVm;\r\n vm.$root = parentVm.$root;\r\n parentVm.$children.push(vm);\r\n\r\n vm.__call_hook('created');\r\n vm.__call_hook('beforeMount');\r\n vm._isMounted = true;\r\n vm.__call_hook('mounted');\r\n vm.__call_hook('onReady');\r\n}\r\n\r\nfunction parseApp (vm) {\r\n Vue.prototype._$fallback = true; // 降级(调整原 vue 的部分生命周期,如 created,beforeMount,inject,provide)\r\n\r\n Vue.mixin({\r\n created () { // 处理 injections,头条 triggerEvent 是异步,且触发时机很慢,故延迟 relation 设置\r\n if (this.mpType !== 'app') {\r\n if (\r\n this.mpType === 'page' &&\r\n !this.$scope.route &&\r\n this.$scope.__route__\r\n ) {\r\n this.$scope.route = this.$scope.__route__;\r\n }\r\n\r\n initRefs$1(this);\r\n\r\n this.__init_injections(this);\r\n this.__init_provide(this);\r\n }\r\n }\r\n });\r\n\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs: function () {} // attached 时,可能查询不到\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}, needVueOptions) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (needVueOptions) {\r\n return [componentOptions, vueOptions, VueComponent]\r\n }\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction currentComponents (mpInstance, callback) {\r\n const webviewId = mpInstance.__webviewId__;\r\n const currentComponents = components[webviewId];\r\n if (currentComponents) {\r\n callback(currentComponents);\r\n }\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions, needVueOptions) {\r\n const [componentOptions, vueOptions, VueComponent] = parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n }, true);\r\n const lifetimes = componentOptions.lifetimes;\r\n\r\n // 基础库 2.0 以上 attached 顺序错乱,按照 created 顺序强制纠正\r\n lifetimes.created = function created () {\r\n currentComponents(this, components => {\r\n components.push(this);\r\n });\r\n };\r\n\r\n lifetimes.attached = function attached () {\r\n this.__lifetimes_attached = function () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n mpInstance: this\r\n });\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n };\r\n currentComponents(this, components => {\r\n let component = this;\r\n while (component && component.__lifetimes_attached && components[0] && component === components[0]) {\r\n components.shift();\r\n component.__lifetimes_attached();\r\n delete component.__lifetimes_attached;\r\n component = components[0];\r\n }\r\n });\r\n };\r\n\r\n const oldDetached = lifetimes.detached;\r\n lifetimes.detached = function detached () {\r\n if (typeof oldDetached === 'function') {\r\n oldDetached.call(this);\r\n }\r\n currentComponents(this, components => {\r\n const index = components.indexOf(this);\r\n if (index >= 0) {\r\n components.splice(index, 1);\r\n }\r\n });\r\n };\r\n\r\n // ready 比 handleLink 还早,初始化逻辑放到 handleLink 中\r\n delete lifetimes.ready;\r\n\r\n componentOptions.methods.__l = handleLink$1;\r\n\r\n return needVueOptions ? [componentOptions, vueOptions] : componentOptions\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions) {\r\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vueOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n {\r\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\r\n }\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n const pageOptions = parseBasePage(vuePageOptions);\r\n const lifetimes = pageOptions.lifetimes;\r\n const oldCreated = lifetimes.created;\r\n lifetimes.created = function created () {\r\n const webviewId = this.__webviewId__;\r\n components[webviewId] = [];\r\n if (typeof oldCreated === 'function') {\r\n oldCreated.call(this);\r\n }\r\n };\r\n // 页面需要在 ready 中触发,其他组件是在 handleLink 中触发\r\n lifetimes.ready = function ready () {\r\n if (this.$vm && this.$vm.mpType === 'page') {\r\n this.$vm.__call_hook('created');\r\n this.$vm.__call_hook('beforeMount');\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n } else {\r\n this.is && console.warn(this.is + ' is not ready');\r\n }\r\n };\r\n const oldDetached = lifetimes.detached;\r\n lifetimes.detached = function detached () {\r\n if (typeof oldDetached === 'function') {\r\n oldDetached.call(this);\r\n }\r\n // 清理\r\n const webviewId = this.__webviewId__;\r\n webviewId && Object.keys(instances).forEach(key => {\r\n if (key.indexOf(webviewId + '_') === 0) {\r\n delete instances[key];\r\n }\r\n });\r\n delete components[webviewId];\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && tt.onAppShow) {\r\n tt.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && tt.onAppHide) {\r\n tt.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = tt.getLaunchOptionsSync && tt.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && tt.onAppShow) {\r\n tt.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && tt.onAppHide) {\r\n tt.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = tt.getLaunchOptionsSync && tt.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!tt.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-toutiao\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (typeof tt[name] !== 'function' && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, tt[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(tt).forEach(name => {\r\n if (hasOwn(tt, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, tt[name]));\r\n }\r\n });\r\n}\r\n\r\ntt.createApp = createApp;\r\ntt.createPage = createPage;\r\ntt.createComponent = createComponent;\r\ntt.createSubpackageApp = createSubpackageApp;\r\ntt.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isArray = Array.isArray;\r\nconst isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n [locale, messages] = [\r\n messages,\r\n locale,\r\n ];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.