From f5a7cf27910584d75a16d85be2d90b9fd292a6c8 Mon Sep 17 00:00:00 2001 From: jia <1451658316@qq.com> Date: Sat, 14 Oct 2023 21:25:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .hbuilderx/launch.json | 36 +- api/api.js | 55 + components/qiqb-share/img/1.png | Bin 0 -> 3610 bytes components/qiqb-share/img/2.png | Bin 0 -> 3825 bytes components/qiqb-share/img/3.png | Bin 0 -> 3217 bytes components/qiqb-share/img/close.png | Bin 0 -> 1986 bytes components/qiqb-share/qiqb-share.vue | 742 +++++ components/qiqb-share/qiqb-share1.vue | 444 +++ config/app.js | 44 + config/request.js | 79 + config/requesta.js | 80 + js_sdk/mmmm-image-tools/index.js | 196 ++ js_sdk/mmmm-image-tools/package.json | 11 + manifest.json | 16 +- pages.json | 3 +- pages/index/index.vue | 2724 +++++++++++++---- static/icon/ai.gif | Bin 0 -> 8133 bytes static/icon/ai1.png | Bin 0 -> 33356 bytes static/icon/ai10.png | Bin 0 -> 1640 bytes static/icon/ai2.png | Bin 0 -> 8854 bytes static/icon/ai3.png | Bin 0 -> 10143 bytes static/icon/ai6.png | Bin 0 -> 7172 bytes static/icon/ai7.png | Bin 0 -> 3784 bytes static/icon/ai8.png | Bin 0 -> 756 bytes static/icon/ai9.png | Bin 0 -> 2309 bytes static/icon/airight.png | Bin 0 -> 4189 bytes static/icon/bg1.png | Bin 0 -> 31045 bytes static/icon/den.png | Bin 0 -> 5160 bytes static/icon/fa.png | Bin 0 -> 5492 bytes static/icon/fa1.png | Bin 0 -> 3560 bytes static/icon/hua.png | Bin 0 -> 7073 bytes static/icon/ioc.gif | Bin 0 -> 9293 bytes static/icon/jia.png | Bin 0 -> 5379 bytes .../output/Apifox-Agent-Chrome/adapter.js | 6 + .../output/Apifox-Agent-Chrome/background.js | 7 + .../output/Apifox-Agent-Chrome/logo-128.png | Bin 0 -> 12550 bytes .../output/Apifox-Agent-Chrome/logo-96.png | Bin 0 -> 8096 bytes .../output/Apifox-Agent-Chrome/manifest.json | 41 + .../output/Apifox-Agent-Chrome/runtime.js | 1 + test.js | 141 + uni_modules/uni-popup/changelog.md | 37 + .../components/uni-popup-dialog/keypress.js | 45 + .../uni-popup-dialog/uni-popup-dialog.vue | 263 ++ .../uni-popup-message/uni-popup-message.vue | 143 + .../uni-popup-share/uni-popup-share.vue | 185 ++ .../components/uni-popup/i18n/en.json | 7 + .../components/uni-popup/i18n/index.js | 8 + .../components/uni-popup/i18n/zh-Hans.json | 7 + .../components/uni-popup/i18n/zh-Hant.json | 7 + .../components/uni-popup/keypress.js | 45 + .../uni-popup/components/uni-popup/popup.js | 26 + .../components/uni-popup/uni-popup.vue | 403 +++ uni_modules/uni-popup/package.json | 89 + uni_modules/uni-popup/readme.md | 296 ++ 55 files changed, 5505 insertions(+), 683 deletions(-) create mode 100644 api/api.js create mode 100644 components/qiqb-share/img/1.png create mode 100644 components/qiqb-share/img/2.png create mode 100644 components/qiqb-share/img/3.png create mode 100644 components/qiqb-share/img/close.png create mode 100644 components/qiqb-share/qiqb-share.vue create mode 100644 components/qiqb-share/qiqb-share1.vue create mode 100644 config/app.js create mode 100644 config/request.js create mode 100644 config/requesta.js create mode 100644 js_sdk/mmmm-image-tools/index.js create mode 100644 js_sdk/mmmm-image-tools/package.json create mode 100644 static/icon/ai.gif create mode 100644 static/icon/ai1.png create mode 100644 static/icon/ai10.png create mode 100644 static/icon/ai2.png create mode 100644 static/icon/ai3.png create mode 100644 static/icon/ai6.png create mode 100644 static/icon/ai7.png create mode 100644 static/icon/ai8.png create mode 100644 static/icon/ai9.png create mode 100644 static/icon/airight.png create mode 100644 static/icon/bg1.png create mode 100644 static/icon/den.png create mode 100644 static/icon/fa.png create mode 100644 static/icon/fa1.png create mode 100644 static/icon/hua.png create mode 100644 static/icon/ioc.gif create mode 100644 static/icon/jia.png create mode 100644 static/icon/output/Apifox-Agent-Chrome/adapter.js create mode 100644 static/icon/output/Apifox-Agent-Chrome/background.js create mode 100644 static/icon/output/Apifox-Agent-Chrome/logo-128.png create mode 100644 static/icon/output/Apifox-Agent-Chrome/logo-96.png create mode 100644 static/icon/output/Apifox-Agent-Chrome/manifest.json create mode 100644 static/icon/output/Apifox-Agent-Chrome/runtime.js create mode 100644 test.js create mode 100644 uni_modules/uni-popup/changelog.md create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/keypress.js create mode 100644 uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue create mode 100644 uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue create mode 100644 uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/en.json create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/index.js create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json create mode 100644 uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json create mode 100644 uni_modules/uni-popup/components/uni-popup/keypress.js create mode 100644 uni_modules/uni-popup/components/uni-popup/popup.js create mode 100644 uni_modules/uni-popup/components/uni-popup/uni-popup.vue create mode 100644 uni_modules/uni-popup/package.json create mode 100644 uni_modules/uni-popup/readme.md diff --git a/.gitignore b/.gitignore index 45dca11..46ca683 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .DS_Store node_modules +unpackage* /dist .hbuilderx diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index 582561b..f83558e 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -1,16 +1,24 @@ -{ // 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": [{ - "app-plus" : - { - "launchtype" : "local" - }, - "default" : - { - "launchtype" : "local" - }, - "type" : "uniCloud" - } +{ + // 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" : [ + { + "app-plus" : { + "launchtype" : "local" + }, + "default" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "playground" : "standard", + "type" : "uni-app:app-android" + }, + { + "playground" : "custom", + "type" : "uni-app:app-ios" + } ] } diff --git a/api/api.js b/api/api.js new file mode 100644 index 0000000..29f717d --- /dev/null +++ b/api/api.js @@ -0,0 +1,55 @@ +import request from "@/config/request.js"; +import requesta from "@/config/requesta.js"; + +export function xuiat(data) { + return request.post(`xun_fei/tts`, data); +} + +export function feiiat(data) { + return request.post(`xun_fei/iat`, data); +} + +export function iatWss(data) { + return request.post(`xun_fei/iatWss`, data); +} +// http://chat.lihaink.cn/index/tts +//文字转语音 +export function ttWss(data) { + return requesta.post(`index/tts`, data); +} + +// -防抖 +export function debounce(fn, wait) { + let delay = wait || 500 + let timer + return function() { + let args = arguments; + if (timer) { + clearTimeout(timer) + console.log('拦截') + } + let callNow = !timer + timer = setTimeout(() => { + console.log('发送') + timer = null + }, delay) + if (callNow) fn.apply(this, args) + } +} + +// -节流 +export function throttle(fn, wait) { + let delay = wait || 500 + let timer = null + return function() { + if (timer) { + console.log('拦截'); + return + } + timer = setTimeout(() => { + console.log('发送'); + fn.apply(this, arguments) + timer = null + }, delay) + } +} \ No newline at end of file diff --git a/components/qiqb-share/img/1.png b/components/qiqb-share/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..519a4a94ae413b93a02def046d715a7f4f4638f5 GIT binary patch literal 3610 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 literal 0 HcmV?d00001 diff --git a/components/qiqb-share/img/3.png b/components/qiqb-share/img/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd526039c9d12292cf64cfee947740a63f9b681 GIT binary patch literal 3217 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 + + + + + + + + + + + + + 分享至 + 长按海报可转发分享 + + + 保存图片 + + + 取消 + + + + + + \ No newline at end of file diff --git a/components/qiqb-share/qiqb-share1.vue b/components/qiqb-share/qiqb-share1.vue new file mode 100644 index 0000000..0dc3ca9 --- /dev/null +++ b/components/qiqb-share/qiqb-share1.vue @@ -0,0 +1,444 @@ + + + + + + \ No newline at end of file diff --git a/config/app.js b/config/app.js new file mode 100644 index 0000000..fcdb9e7 --- /dev/null +++ b/config/app.js @@ -0,0 +1,44 @@ + +let httpApi + +// 在打包之前请检查当前环境是否正确 +const env = 'dev'; // 开发 +// const env = 'prod'; // 生产 +// const env = 'prew'; // 预上线 + +switch (env) { + case 'prod': + httpApi = 'https://worker-task.lihaink.cn' // 生产 + + break; + case 'prew': + httpApi ='https://preview-worker-task.lihaink.cn' //预发布环境 + + break; + default: + httpApi = "https://ceshi-worker-task.lihaink.cn" // 测试 + httpApione = "https://chat.lihaink.cn" // 测试 + +} + + + +module.exports = { + // 请求域名 格式: https://您的域名 + + HTTP_REQUEST_URL: httpApi, + HTTP_REQUEST_URL_ONE: httpApione, + HEADER: { + 'content-type': 'application/json', + //#ifdef MP + 'Form-type': 'routine', + //#endif + //#ifdef APP-PLUS + 'Form-type': 'app', + //#endif + }, + // 回话密钥名称 请勿修改此配置 + TOKENNAME: 'X-Token', + // 缓存时间 0 永久 + EXPIRE: 0, +}; \ No newline at end of file diff --git a/config/request.js b/config/request.js new file mode 100644 index 0000000..4bac5f7 --- /dev/null +++ b/config/request.js @@ -0,0 +1,79 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +import { + HTTP_REQUEST_URL, + HEADER, + TOKENNAME +} from '@/config/app'; + + + + + +/** + * 发送请求 + */ +function baseRequest(url, method, data, { + noAuth = false, + noVerify = false +}) { + let Url = HTTP_REQUEST_URL, + header = HEADER; + + + + // if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token; + + return new Promise((reslove, reject) => { + uni.request({ + url: Url + '/api/' + url, + method: method || 'GET', + header: header, + data: data || {}, + success: (res) => { + // #ifdef APP-PLUS + // console.log('app', Url + '/api/' + url, res.data); + + // #endif + if (noVerify) + reslove(res.data, res); + else if (res.data.status == 200) + reslove(res.data, res); + else if ([410000, 410001, 410002, 40000].indexOf(res.data.status) !== -1) { + + reject(res.data); + }else if (res.data.code == 0||1) { + + reslove(res.data, res); + } else if (res.data.status == 501) { + uni.reLaunch({ + url: '/pages/error/index' + }) + reject(res.data); + } else + reject(res.data.message || '系统错误'); + }, + fail: (message) => { + console.log(message,'3333333333'); + reject('请求失败'); + } + }) + }); +} + +const request = {}; + +['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => { + request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {}) +}); + + + +export default request; \ No newline at end of file diff --git a/config/requesta.js b/config/requesta.js new file mode 100644 index 0000000..df13df9 --- /dev/null +++ b/config/requesta.js @@ -0,0 +1,80 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB赋能开发者,助力企业发展 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +import { + HTTP_REQUEST_URL_ONE, + HEADER, + TOKENNAME +} from '@/config/app'; + + + + + +/** + * 发送请求 + */ +function baseRequest(url, method, data, { + noAuth = false, + noVerify = false +}) { + let Url = HTTP_REQUEST_URL_ONE, + header = HEADER; + + + + // if (store.state.app.token) header[TOKENNAME] = 'Bearer ' + store.state.app.token; + + return new Promise((reslove, reject) => { + uni.request({ + url: Url + '/' + url, + method: method || 'GET', + header: header, + data: data || {}, + success: (res) => { + + // #ifdef APP-PLUS + // console.log('app', Url + '/api/' + url, res.data); + + // #endif + if (noVerify) + reslove(res.data, res); + else if (res.data.status == 200) + reslove(res.data, res); + else if ([410000, 410001, 410002, 40000].indexOf(res.data.status) !== -1) { + + reject(res.data); + }else if (res.data.code == 0||res.data.code ==1) { + + reslove(res.data, res); + } else if (res.data.status == 501) { + uni.reLaunch({ + url: '/pages/error/index' + }) + reject(res.data); + } else + reject(res.data.message || '系统错误'); + }, + fail: (message) => { + console.log(message,'3333333333'); + reject('请求失败'); + } + }) + }); +} + +const request = {}; + +['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => { + request[method] = (api, data, opt) => baseRequest(api, method, data, opt || {}) +}); + + + +export default request; \ No newline at end of file diff --git a/js_sdk/mmmm-image-tools/index.js b/js_sdk/mmmm-image-tools/index.js new file mode 100644 index 0000000..acf40bc --- /dev/null +++ b/js_sdk/mmmm-image-tools/index.js @@ -0,0 +1,196 @@ +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/js_sdk/mmmm-image-tools/package.json b/js_sdk/mmmm-image-tools/package.json new file mode 100644 index 0000000..e8b9c0a --- /dev/null +++ b/js_sdk/mmmm-image-tools/package.json @@ -0,0 +1,11 @@ +{ + "id": "mmmm-image-tools", + "name": "image-tools", + "version": "1.4.0", + "description": "图像转换工具,可用于图像和base64的转换", + "keywords": [ + "base64", + "保存", + "图像" + ] +} \ No newline at end of file diff --git a/manifest.json b/manifest.json index 72fd697..5d70fb9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { - "name" : "养殖分析", - "appid" : "__UNI__EEA7DC9", + "name" : "农业咨询", + "appid" : "__UNI__3A527D1", "description" : "", "versionName" : "1.0.0", "versionCode" : "100", @@ -17,7 +17,11 @@ "delay" : 0 }, /* 模块配置 */ - "modules" : {}, + "modules" : { + "Record" : {}, + "Speech" : {}, + "Camera" : {} + }, /* 应用发布信息 */ "distribute" : { /* android打包配置 */ @@ -47,7 +51,9 @@ }, /* SDK配置 */ "sdkConfigs" : { - "ad" : {} + "ad" : {}, + "speech" : {}, + "share" : {} } } }, @@ -55,7 +61,7 @@ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "", + "appid" : "wx3267f87bc81f2890", "setting" : { "urlCheck" : false }, diff --git a/pages.json b/pages.json index 7b90ae6..488ed3c 100644 --- a/pages.json +++ b/pages.json @@ -3,7 +3,8 @@ { "path": "pages/index/index", "style": { - "navigationBarTitleText": "养殖分析", + "navigationBarTitleText": "农业咨询", + "navigationStyle": "custom", "bounce": "none" // "softinputMode": "adjustResize" } diff --git a/pages/index/index.vue b/pages/index/index.vue index aa1b7e2..dac1628 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,717 +1,2115 @@ \ No newline at end of file diff --git a/static/icon/ai.gif b/static/icon/ai.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6aedd812af377ea599e9c24ce76f7065d2c30f5 GIT binary patch literal 8133 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 literal 0 HcmV?d00001 diff --git a/static/icon/airight.png b/static/icon/airight.png new file mode 100644 index 0000000000000000000000000000000000000000..559b51f039630cd5328730cab380494ebd4e22fa GIT binary patch literal 4189 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 literal 0 HcmV?d00001 diff --git a/static/icon/bg1.png b/static/icon/bg1.png new file mode 100644 index 0000000000000000000000000000000000000000..14862c2c1db996f7c6b281b1e6e90b8ab97b3296 GIT binary patch literal 31045 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%0D4D8 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 LNkvXXu0mjf;;)X* literal 0 HcmV?d00001 diff --git a/static/icon/ioc.gif b/static/icon/ioc.gif new file mode 100644 index 0000000000000000000000000000000000000000..44e50fe8e339a94b68e05f37839fc829b859297c GIT binary patch literal 9293 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 (https://github.com/fjc0k) + * Released under the MIT License. + */var e,t,r,n=function(){this.listeners=Object.create(null)};function s(e){return new Promise((t,r)=>{const n=new FileReader;n.onload=()=>{t(function(e,t,r){let n="";const s=new Uint8Array(e),o=s.byteLength;for(let e=0;er(e),n.readAsArrayBuffer(e)})}function o(e,t,r){return new Promise((n,s)=>{const o=new FileReader;o.onload=()=>{n(o.result)},o.onerror=e=>s(e);const a=new Blob([e]);"dataUrl"===t&&o.readAsDataURL(a),"text"===t&&o.readAsText(a,r)})}n.prototype.on=function(e,t){var r=this;this.listeners[e]||(this.listeners[e]=[]);var n=this.listeners[e];return-1===n.indexOf(t)&&n.push(t),function(){return r.off(e,t)}},n.prototype.once=function(e,t){var r=this.on(e,(function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];r(),t.apply(void 0,e)}));return r},n.prototype.off=function(e,t){if(t){var r=this.listeners[e],n=r.indexOf(t);n>-1&&r.splice(n,1)}else delete this.listeners[e]},n.prototype.emit=function(e){for(var t=[],r=arguments.length-1;r-- >0;)t[r]=arguments[r+1];return(this.listeners[e]||[]).map((function(e){return e.apply(void 0,t)}))},function(e){e.open="open",e.closed="closed",e.leftOpenRightClosed="leftOpenRightClosed",e.leftClosedRightOpen="leftClosedRightOpen"}(e||(e={})),function(e){e.css="css",e.js="js",e.img="img",e.video="video",e.audio="audio"}(t||(t={})),function(e){e.desc="desc",e.asc="asc"}(r||(r={}));let a=0;const i=new n;document.addEventListener("__APP_AGENT_HTTP_RESPONSE_LISTENER__",e=>{const t=JSON.parse(JSON.stringify(e.detail||{}));t.response.arrayBuffer=e.detail.response.arrayBuffer,i.emit("response",t)}),document.addEventListener("__APP_AGENT_HTTP_RESPONSE_START_LISTENER__",e=>{const t=JSON.parse(JSON.stringify(e.detail||{}));i.emit("onstart",t)}),document.addEventListener("__APP_AGENT_HTTP_RESPONSE_DATA_LISTENER__",e=>{const t=JSON.parse(JSON.stringify(e.detail||{}));i.emit("ondata",t)});window.foxAgentCrossRequestVersion=function(){return{version:"0.0.1"}},window.foxAgentCrossRequest=async function(e){const t=e.headers["Content-Type"]||e.headers["content-type"]||e.headers["Content-type"]||"text/plain",r=null==e.data?void 0:(e=>"application/x-www-form-urlencoded"===e?"form":e.startsWith("multipart/form-data")?"file":"application/json"===e?"json":"application/x-msgpack"===e?"arraybuffer":"raw")(t);let n;n="arraybuffer"===r?{__ARRAY_BUFFER_KEY__:!0,data:Array.from(e.data)}:"file"!==r?e.data:{__APP_AGENT_FILE_BODY__:!0,...e.data||{},...Object.fromEntries(await Promise.all(Object.entries(e.files||{}).map(async([e,t])=>Array.isArray(t)?[e,await Promise.all(t.map(s))]:[e,t&&await s(t)])))};const d=`${location.href}____${a++}`,u=i.on("onstart",async({id:t,request:r,response:n})=>{var s;t===d&&(null===(s=e.onstart)||void 0===s||s.call(e,{request:r,response:n}),u())}),l=i.on("ondata",async({id:t,data:r})=>{var n;t===d&&(null===(n=e.ondata)||void 0===n||n.call(e,r))}),c=i.on("response",async({id:t,response:r})=>{if(t===d){if(r.error)return e.error("",void 0,new Error(r.error.message)),c(),u(),void l();const t={header:r.headers,status:r.status,statusText:r.statusText,body:r.arrayBuffer,getBodyAsDataUrl:async()=>o(r.arrayBuffer,"dataUrl"),async getBodyAsText(){var e;return o(r.arrayBuffer,"text",(null===(e=(r.headers["content-type"]||"").match(/charset=(.*)\b/i))||void 0===e?void 0:e[1])||"utf-8")}},n={req:e,res:t,runTime:(new Date).getTime()};r.ok?e.success(t.body,t.header,n):e.error(t.statusText,t.header,n),c(),u(),l()}}),{timeout:_=3e5}=e;return document.dispatchEvent(new CustomEvent("__APP_AGENT_HTTP_REQUEST_LISTENER__",{detail:{id:d,options:{url:e.url,method:e.method,headers:{...e.headers,"Content-Type":t},requestBodyType:r,requestBody:n},runtimeOptions:{requestId:d,timeout:_}}})),{version:"0.0.1",requestId:d,abort:()=>{document.dispatchEvent(new CustomEvent("__APP_AGENT_HTTP_REQUEST_ABORT_LISTENER__",{detail:{id:d,runtimeOptions:{requestId:d,timeout:_}}}))}}}}(); diff --git a/static/icon/output/Apifox-Agent-Chrome/background.js b/static/icon/output/Apifox-Agent-Chrome/background.js new file mode 100644 index 0000000..467ffe0 --- /dev/null +++ b/static/icon/output/Apifox-Agent-Chrome/background.js @@ -0,0 +1,7 @@ +!function(){"use strict";function e(e){if(!e||"object"!=typeof e)return!1;var t=Object.getPrototypeOf(e);if(null===t)return!0;var o=t.constructor;return"function"==typeof o&&o instanceof o}var t,o,n;!function(e){e.open="open",e.closed="closed",e.leftOpenRightClosed="leftOpenRightClosed",e.leftClosedRightOpen="leftClosedRightOpen"}(t||(t={})),function(e){e.css="css",e.js="js",e.img="img",e.video="video",e.audio="audio"}(o||(o={})),function(e){e.desc="desc",e.asc="asc"}(n||(n={}));const r={},s=t=>e(t)?!0===t.__APP_AGENT_BASE64_FILE__?function(e){const t=atob(e.base64);let o=t.length;const n=new Uint8Array(o);for(;o--;)n[o]=t.charCodeAt(o);return new File([n],e.name,{type:e.type})}(t):JSON.stringify(t):t;chrome.runtime.onMessage.addListener((t,o,n)=>{ +/*! + * vtils v2.59.0 + * (c) Jay Fong (https://github.com/fjc0k) + * Released under the MIT License. + */ +var a;return(a=async()=>{var a,i,c,d;switch(t.type){case"__APP_AGENT_BACKGROUND_HTTP_REQUEST__":const _=null===(a=o.tab)||void 0===a?void 0:a.id;if(e(t.options.body)&&!0===t.options.body.__APP_AGENT_FILE_BODY__){const{__APP_AGENT_FILE_BODY__:e,...o}=t.options.body,n=new FormData;for(const[e,t]of Object.entries(o))Array.isArray(t)?t.forEach(t=>n.append(e,s(t))):n.append(e,s(t));t.options.body=n;const r=t.options.headers;r&&delete r["Content-Type"]}if(e(t.options.body)&&!0===t.options.body.__ARRAY_BUFFER_KEY__){const{data:e}=t.options.body;t.options.body=new Uint8Array(e).buffer,t.options.headers}const l=new URL(t.options.url).origin;t.options.headers&&(t.options.headers["Referrer-Policy"]="no-referrer, strict-origin-when-cross-origin",t.options.headers.Referer=l,t.options.headers.Origin=l,t.options.mode="cors",delete t.options.headers.cookie);const p=new AbortController,{requestId:u=0,timeout:f=3e4}=null!==(i=t.runtimeOptions)&&void 0!==i?i:{},y=setTimeout(()=>p.abort(),f);r[u]={abortId:y,abortController:p};const h=await fetch(t.options.url,{...t.options,redirect:"follow",signal:p.signal});clearTimeout(y);const A=new Headers(h.headers),b=A.get("x-app-agent-http-headers");if(null!=b){A.delete("x-app-agent-http-headers");for(const[e,t]of Object.entries(JSON.parse(b)))A.set(e,t)}const T=Object.fromEntries(A.entries()),E="file",g=T["content-type"]||"application/octet-stream";let P=new Uint8Array;h.body?(_&&chrome.tabs.sendMessage(_,{type:"__APP_AGENT_HTTP_RESPONSE_START_LISTENER__",id:u,request:{url:t.options.url},response:{headers:T,status:h.status,statusText:h.statusText,url:h.url,ok:h.ok,redirected:h.redirected,type:h.type}}),await async function(e,t,o){const n=(e,t)=>{const o=new Uint8Array(e.length+t.length);return o.set(e,0),o.set(t,e.length),o};let r=new Uint8Array;const s=e.getReader();for(;;){const{done:e,value:a}=await s.read();if(e){o(r);break}r=n(r,a),t(a)}}(h.body,e=>{_&&chrome.tabs.sendMessage(_,{type:"__APP_AGENT_HTTP_RESPONSE_DATA_LISTENER__",id:u,data:[...e]})},e=>{P=e})):P=await h.arrayBuffer(),delete r[u];const m=function(e,t,o){let n="";const r=new Uint8Array(e),s=r.byteLength;for(let e=0;e{n({error:{message:String(e)}})}),!0}),chrome.action.onClicked.addListener((function(e){chrome.tabs.create({url:"https://app.apifox.com"})}))}(); diff --git a/static/icon/output/Apifox-Agent-Chrome/logo-128.png b/static/icon/output/Apifox-Agent-Chrome/logo-128.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e72fc5ef4dbc83f1a9a82cc177870f85aa4297 GIT binary patch literal 12550 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 o=new FileReader;o.onload=()=>{r(o.result)},o.onerror=e=>a(e);const s=function(e){const t=atob(e.base64);let n=t.length;const r=new Uint8Array(n);for(;n--;)r[n]=t.charCodeAt(n);return new File([r],e.name,{type:e.type})}(e);"dataUrl"===t?o.readAsDataURL(s):"arrayBuffer"===t?o.readAsArrayBuffer(s):o.readAsText(s,n)})}!function(e){const t=document.createElement("script");t.src=chrome.runtime.getURL(e),t.onload=()=>t.remove(),(document.head||document.documentElement).appendChild(t)}("adapter.js"),chrome.runtime.onMessage.addListener(e=>{e&&"object"==typeof e&&"string"==typeof e.type&&["__APP_AGENT_HTTP_RESPONSE_START_LISTENER__","__APP_AGENT_HTTP_RESPONSE_DATA_LISTENER__"].includes(e.type)&&document.dispatchEvent(new CustomEvent(e.type,{detail:e}))}),document.addEventListener("__APP_AGENT_HTTP_REQUEST_LISTENER__",async t=>{var n;const r=t.detail||{};let a;try{a=await async function(t,n){const r={url:t.url,method:t.method.toUpperCase(),headers:t.headers||{},body:t.requestBody};return await new Promise((t,a)=>{chrome.runtime.sendMessage({type:"__APP_AGENT_BACKGROUND_HTTP_REQUEST__",options:r,runtimeOptions:n},(async function(n){null==n?a(chrome.runtime.lastError):null!=n.error?a(n.error):(n.data.arrayBuffer=await e(n.data.base64File,"arrayBuffer",n.data.base64File.type),t(n.data))}))})}(r.options,r.runtimeOptions)}catch(e){a={error:{message:String(null!==(n=e.message)&&void 0!==n?n:e)}}}document.dispatchEvent(new CustomEvent("__APP_AGENT_HTTP_RESPONSE_LISTENER__",{detail:{id:r.id,response:a}}))}),document.addEventListener("__APP_AGENT_HTTP_REQUEST_ABORT_LISTENER__",async e=>{const{runtimeOptions:t}=JSON.parse(JSON.stringify(e.detail||{}));chrome.runtime.sendMessage({type:"__APP_AGENT_HTTP_REQUEST_ABORT_LISTENER__",runtimeOptions:t})})}(); diff --git a/test.js b/test.js new file mode 100644 index 0000000..fd1413f --- /dev/null +++ b/test.js @@ -0,0 +1,141 @@ + $.ajax({ +                url: host, +                data: data, +                type: "POST", +                dataType: "json", +                headers: headers, +                complete: () => { +                    let message = ai.lastMessage(chat); +                    if (!chat.loading || message.id !== lastId) { +                        return; +                    } +                    chat.lastChunkIndex = 0; +                    chat.loading = false; +                    lastMessage.completed = true; +                    ai.saveData(); +                }, +                success: function (res) { +                    let message = ai.lastMessage(chat); +                    if (!chat.loading || message.id !== lastId) { +                        return; +                    } +                    if (res && res.error && res.error.message) { +                        ai.lastMessage(chat).choices[0].delta.content = res.error.message; +                    } else if (res && res.data && res.data[0] && res.data[0].url) { +                        ai.lastMessage(chat).choices[0].delta.content = `![](${res.data[0].url})`; +                    } else { +                        console.log(res); +                    } +                }, +                xhr: this.xhrOnProgress(function (event) { +                    let message = ai.lastMessage(chat); +                    // 已经取消 +                    if (!chat.loading || message.id !== lastId) { +                        return; +                    } +                    const xhr = event.target; +                    const {responseText} = xhr; +                    let thunks = responseText.substring(chat.lastChunkIndex); +                    chat.lastChunkIndex = responseText.length; +                    const arr = thunks.split("\n"); +                    arr.forEach(function (chunk) { +                        if (chunk === "") return; +                        chunk = chunk.substring(6).trim(); +                        if (chunk === "" || chunk === "[DONE]") return; +                        tr + + + + + + +// uni.request({ + // url: 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些', + // method: 'GET', + // responseType: 'arraybuffer', + // success: res => { + // console.log(res); + // }, + // fail: err => { + // // 处理请求失败 + // console.error(err); + // } + // }); + + // let that = this; + // this.talkList.push({ + // "id":new Date().getTime(), + // "content":'', + // "type":2, + // "pic":"/static/avatar.png" + // }); + // var xhr = new XMLHttpRequest(); + // xhr.open('GET', 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些', true); // 设置请求方法、URL 和是否异步 + + // xhr.setRequestHeader('Content-Type', 'application/json'); // 设置请求头 + + // xhr.onreadystatechange = function() { + // console.log('请求成功:', xhr.responseText); + // that.talkList[that.talkList.length-1].content += xhr.responseText; + // }; + // xhr.send(); + + // fetch('https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些') + // .then(response => response.body) + // .then(data => { + // // 在这里处理返回的数据 + // console.log(data); + // }) + // .catch(error => { + // // 在这里处理请求错误 + // console.error(error); + // }); + + // let that = this; + // this.talkList.push({ + // "id":new Date().getTime(), + // "content":'', + // "type":2, + // "pic":"/static/avatar.png" + // }); + // axios({ + // method: 'get', + // url: 'https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些', + // responseType: 'text' + // }) + // .then(response => { + + // response.data.on('data', (chunk) => { + // // 处理流数据的逻辑 + // console.log(chunk); + // }); + + // response.data.on('end', () => { + // // 数据接收完成的逻辑 + // console.log('完成'); + // }); + + // }); + // fetch('https://ceshi-worker-task.lihaink.cn/api/xun_fei/chat?content=uniapp中js的回调有哪些') // 通过fetch获取一个Response对象 + // .then(response => response.body.getReader()) // 获取ReadableStreamDefaultReader对象 + // .then(reader => { + // function read() { + // return reader.read().then(({ done, value }) => { + // if (done) { + // console.log('读取完成'); + // return; + // } + + // const decoder = new TextDecoder(); + // console.log(decoder.decode(value)); + // that.talkList[that.talkList.length-1].content += decoder.decode(value); + // // console.log(value); // 输出读取到的数据 + // // 继续读取下一块数据 + // return read(); + // }); + // } + + // return read(); // 开始读取数据 + // }) + // .catch(error => console.error(error)); + // return ; \ No newline at end of file diff --git a/uni_modules/uni-popup/changelog.md b/uni_modules/uni-popup/changelog.md new file mode 100644 index 0000000..99454ba --- /dev/null +++ b/uni_modules/uni-popup/changelog.md @@ -0,0 +1,37 @@ +## 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 new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js @@ -0,0 +1,45 @@ +// #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 new file mode 100644 index 0000000..291634c --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue @@ -0,0 +1,263 @@ + + + + + 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 new file mode 100644 index 0000000..f4c85e2 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue @@ -0,0 +1,143 @@ + + + + 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 new file mode 100644 index 0000000..705902d --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue @@ -0,0 +1,185 @@ + + + + diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json new file mode 100644 index 0000000..7f1bd06 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/en.json @@ -0,0 +1,7 @@ +{ + "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 new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/index.js @@ -0,0 +1,8 @@ +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 new file mode 100644 index 0000000..5e3003c --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json @@ -0,0 +1,7 @@ +{ + "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 new file mode 100644 index 0000000..13e39eb --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json @@ -0,0 +1,7 @@ +{ + "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 new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/keypress.js @@ -0,0 +1,45 @@ +// #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 new file mode 100644 index 0000000..c4e5781 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/popup.js @@ -0,0 +1,26 @@ + +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 new file mode 100644 index 0000000..59698b7 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,403 @@ + + + + diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json new file mode 100644 index 0000000..1385af7 --- /dev/null +++ b/uni_modules/uni-popup/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.6.2", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "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-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": "u" + } + } + } + } +} diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md new file mode 100644 index 0000000..7c4de64 --- /dev/null +++ b/uni_modules/uni-popup/readme.md @@ -0,0 +1,296 @@ + + +## Popup 弹出层 +> **组件名:uni-popup** +> 代码块: `uPopup` +> 关联组件:`uni-popup-dialog`,`uni-popup-message`,`uni-popup-share`,`uni-transition` + + +弹出层组件,在应用中弹出一个消息提示窗口、提示框等 + + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - `uni-popup-message` 、 `uni-popup-dialog` 等扩展ui组件,需要和 `uni-popup` 配套使用,暂不支持单独使用 +> - `nvue` 中使用 `uni-popup` 时,尽量将组件置于其他元素后面,避免出现层级问题 +> - `uni-popup` 并不能完全阻止页面滚动,可在打开 `uni-popup` 的时候手动去做一些处理,禁止页面滚动 +> - 如果想在页面渲染完毕后就打开 `uni-popup` ,请在 `onReady` 或 `mounted` 生命周期内调用,确保组件渲染完毕 +> - 在微信小程序开发者工具中,启用真机调试,popup 会延时出现,是因为 setTimeout 在真机调试中的延时问题导致的,预览和发布小程序不会出现此问题 +> - 使用 `npm` 方式引入组件,如果确认引用正确,但是提示未注册组件或显示不正常,请尝试重新编译项目 +> - `uni-popup` 中尽量不要使用 `scroll-view` 嵌套过多的内容,可能会影响组件的性能,导致组件无法打开或者打开卡顿 +> - `uni-popup` 不会覆盖原生 tabbar 和原生导航栏 +> - 组件支持 nvue ,需要在 `manifest.json > app-plus` 节点下配置 `"nvueStyleCompiler" : "uni-app"` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + +### 安装方式 + +本组件符合[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) + + +### 基本用法 + +**示例** + +```html + +底部弹出 Popup +``` + +```javascript +export default { + methods:{ + open(){ + // 通过组件定义的ref调用uni-popup方法 ,如果传入参数 ,type 属性将失效 ,仅支持 ['top','left','bottom','right','center'] + this.$refs.popup.open('top') + } + } +} + +``` + +### 设置主窗口背景色 + +在大多数场景下,并不需要设置 `background-color` 属性,因为`uni-popup`的主窗口默认是透明的,在向里面插入内容的时候 ,样式完全交由用户定制,如果设置了背景色 ,例如 `uni-popup-dialog` 中的圆角就很难去实现,不设置背景色,更适合用户去自由发挥。 + +而也有特例,需要我们主动去设置背景色,例如 `type = 'bottom'` 的时候 ,在异型屏中遇到了底部安全区问题(如 iphone 11),因为 `uni-popup`的主要内容避开了安全区(设置`safe-area:true`),导致底部的颜色我们无法自定义,这时候使用 `background-color` 就可以解决这个问题。 + +**示例** + +```html + +底部弹出 Popup +``` + +### 禁用打开动画 +在某些场景 ,可能不希望弹层有动画效果 ,只需要将 `animation` 属性设置为 `false` 即可以关闭动画。 + +**示例** + +```html + +中间弹出 Popup +``` + +### 禁用点击遮罩关闭 +默认情况下,点击遮罩会自动关闭`uni-popup`,如不想点击关闭,只需将`mask-click`设置为`false`,这时候要关闭`uni-popup`,只能手动调用 `close` 方法。 + +**示例** + +```html + + + Popup + + +``` + +```javascript +export default { + data() { + return {} + }, + onReady() {}, + methods: { + open() { + this.$refs.popup.open('top') + }, + close() { + this.$refs.popup.close() + } + } +} + +``` + +## API + +### Popup Props + +|属性名|类型|默认值|说明| +|:-:|:-:|:-:|:-:| +|animation|Boolean|true|是否开启动画| +|type|String|'center'|弹出方式| +|mask-click|Boolean|true|蒙版点击是否关闭弹窗| +|background-color|String|'none'|主窗口背景色| +|safe-area|Boolean|true|是否适配底部安全区| + +#### Type Options + +|属性名|说明| +|:-:| :-:| +|top|顶部弹出 | +|center|居中弹出| +|bottom|底部弹出| +|left|左侧弹出| +|right|右侧弹出| +|message|预置样式 :消息提示| +|dialog|预置样式 :对话框| +|share|预置样式 :底部弹出分享示例 | + + +### Popup Methods + +|方法称名 |说明|参数| +|:-:|:-:|:-:| +|open|打开弹出层|open(String:type) ,如果参数可代替 type 属性| +|close|关闭弹出层 |-| + + +### Popup Events + +|事件称名|说明|返回值| +|:-:|:-:|:-:| +|change|组件状态发生变化触发|e={show: true|false,type:当前模式}| +|maskClick|点击遮罩层触发|-| + + +## 扩展组件说明 +`uni-popup` 其实并没有任何样式,只提供基础的动画效果,给用户一个弹出层解决方案,仅仅是这样并不能满足开发需求,所以我们提供了三种基础扩展样式 + +### uni-popup-message 提示信息 + +将 `uni-popup` 的`type`属性改为 `message`,并引入对应组件即可使用消息提示 ,*该组件不支持单独使用* + +**示例** + +```html + + + +``` + +### PopupMessage Props + +|属性名|类型|默认值|说明| +|:-:|:-:|:-:|:-:| +|type|String|success|消息提示主题| +|message|String|-|消息提示文字| +|duration|Number|3000|消息显示时间,超过显示时间组件自动关闭,设置为0 将不会关闭,需手动调用 close 方法关闭| + +#### Type Options + +|属性名|说明| +|:-:| :-:| +|success|成功 | +|warn|警告| +|error|失败| +|info|消息| + +### PopupMessage Slots + +|名称|说明| +|:-:|:-:| +|default|消息内容,会覆盖 message 属性| + +### uni-popup-dialog 对话框 + +将 `uni-popup` 的`type`属性改为 `dialog`,并引入对应组件即可使用对话框 ,*该组件不支持单独使用* + +**示例** + +```html + + + + +``` + +```javascript +export default { + methods: { + open() { + this.$refs.popup.open() + }, + /** + * 点击取消按钮触发 + * @param {Object} done + */ + close() { + // TODO 做一些其他的事情,before-close 为true的情况下,手动执行 close 才会关闭对话框 + // ... + this.$refs.popup.close() + }, + /** + * 点击确认按钮触发 + * @param {Object} done + * @param {Object} value + */ + confirm(value) { + // 输入框的值 + // console.log(value) + // TODO 做一些其他的事情,手动执行 close 才会关闭对话框 + // ... + this.$refs.popup.close() + } + } +} +``` + +### PopupDialog Props + +|属性名|类型|默认值|说明| +|:-:|:-:|:-:|:-:| +|type|String|success|对话框标题主题,可选值: success/warn/info/error| +|mode|String|base| 对话框模式,可选值:base(提示对话框)/input(可输入对话框)| +|title|String|-|对话框标题| +|content|String|-|对话框内容,base模式下生效| +|value| String\Number|-|输入框默认值,input模式下生效| +|placeholder|String|-|输入框提示文字,input模式下生效| +|before-close|Boolean|false | 是否拦截按钮事件,如为true,则不会关闭对话框,关闭需要手动执行 uni-popup 的 close 方法| + +#### PopupDialog Events + +|事件称名 |说明|返回值| +|:-:|:-:|:-:| +|close|点击dialog取消按钮触发|-| +|confirm|点击dialog确定按钮触发|e={value:input模式下输入框的值}| + +### PopupDialog Slots + +|名称|说明| +|:-:|:-:| +|default|自定义内容,回覆盖原有的内容显示| + +### uni-popup-share 分享示例 + +分享示例,不作为最终可使用的组件,只做为样式组件,供用户自行修改,`后续的开发计划是实现实际的分享逻辑,参数可配置`。 + +将 `uni-popup` 的 `type` 属性改为 `share`,并引入对应组件即可使用 ,*该组件不支持单独使用* + +**示例** + +```html + + + +``` + +### PopupShare Props + +|属性名|类型|默认值|说明| +|:-:|:-:|:-:| :-: | +|title|String|-|分享弹窗标题| +|before-close|Boolean|false | 是否拦截按钮事件,如为true,则不会关闭对话框,关闭需要手动执行 uni-popup 的 close 方法| + +### PopupShare Events + +|事件称名|说明|返回值| +|:-:|:-:|:-:| +|select|选择触发|e = {item,index}:所选参数| + +**Tips** +- share 分享组件,只是作为一个扩展示例,如果需要修改数据源,请到组件内修改 + +## 帮助 +在使用中如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们。 + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/popup/popup](https://hellouniapp.dcloud.net.cn/pages/extUI/popup/popup) \ No newline at end of file