From df6bceda052d525a7fa09e233b0d83dbdfcd1d31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B0=8F=E6=9C=AF?= Date: Thu, 13 May 2021 11:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=96=B0=E5=A2=9E=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=89=AA=E5=88=87=E6=9D=BF=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ldcake-ui/libs/utils/clipboard.js | 90 ++++++++++++++------ pages.json | 16 ++-- pages/components/captcha/captcha.vue | 5 ++ pages/components/date-picker/date-picker.vue | 5 ++ pages/components/fabutton/fabutton.vue | 5 ++ pages/components/mp-tips/mp-tips.vue | 5 ++ pages/components/spin/spin.vue | 5 ++ pages/index/index.vue | 6 +- pages/tools/cache/cache.vue | 5 ++ pages/tools/copy/copy.vue | 17 +++- pages/tools/storage/storage.vue | 5 ++ 11 files changed, 124 insertions(+), 40 deletions(-) diff --git a/ldcake-ui/libs/utils/clipboard.js b/ldcake-ui/libs/utils/clipboard.js index 6e0ca20..2549256 100644 --- a/ldcake-ui/libs/utils/clipboard.js +++ b/ldcake-ui/libs/utils/clipboard.js @@ -1,31 +1,67 @@ -export const setClipboardData = (content) => { - // #ifdef H5 - try{ - let textarea = document.createElement("textarea") - textarea.value = content - textarea.readOnly = "readOnly" - document.body.appendChild(textarea) - textarea.select() // 选择对象 - textarea.setSelectionRange(0, content.length) //核心 - let result = document.execCommand("Copy") // 执行浏览器复制命令 - textarea.remove() - uni.showToast({ - title: '内容已复制', - icon: 'none', - duration: 2000 - }); - return result - }catch(e){ - return null - } - // #endif - // #ifndef H5 - uni.setClipboardData({ - data: content - }); - // #endif +/** + * 获取系统剪贴板内容 + * @returns {Promise} 剪贴板内容 + */ +export const getClipboardData = () => { + return new Promise((success, fail) => { + // #ifndef H5 + uni.getClipboardData({ + success: ({ + data + }) => success(data), + fail + }) + // #endif + + // #ifdef H5 + try { + navigator.clipboard.readText().then(success).catch(fail) + } catch (error) { + fail(error) + } + // #endif + }) +} + +/** + * 设置系统剪贴板的内容 + * @param {string} data 需要设置的内容 + * @returns {Promise} 设置的内容 + */ +export const setClipboardData = (data) => { + return new Promise((success, fail) => { + // #ifndef H5 + uni.setClipboardData({ + data, + success, + fail + }) + // #endif + + // #ifdef H5 + try { + const textarea = document.createElement('textarea') + textarea.value = data + textarea.readOnly = true + document.body.appendChild(textarea) + textarea.select() + textarea.setSelectionRange(0, data.length) + document.execCommand('copy') + uni.showToast({ + title: '内容已复制', + icon: 'none', + duration: 2000 + }); + textarea.remove() + success(data) + } catch (error) { + fail(error) + } + // #endif + }) } export default { + getClipboardData, setClipboardData -} \ No newline at end of file +} diff --git a/pages.json b/pages.json index 70675e7..75dbfce 100644 --- a/pages.json +++ b/pages.json @@ -10,56 +10,56 @@ }, { "path": "pages/components/date-picker/date-picker", "style": { - "navigationBarTitleText": "日期选择器(date-picker)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/spin/spin", "style": { - "navigationBarTitleText": "Spin(加载中)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/fabutton/fabutton", "style": { - "navigationBarTitleText": "悬浮按钮(fabutton)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/mp-tips/mp-tips", "style": { - "navigationBarTitleText": "右上角引导(mp-tips)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/components/captcha/captcha", "style": { - "navigationBarTitleText": "获取验证码(captcha)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/storage/storage", "style": { - "navigationBarTitleText": "数据缓存(storage)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/cache/cache", "style": { - "navigationBarTitleText": "定时缓存(cache)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } }, { "path": "pages/tools/copy/copy", "style": { - "navigationBarTitleText": "复制(setClipboardData)", + "navigationBarTitleText": "", "enablePullDownRefresh": false } diff --git a/pages/components/captcha/captcha.vue b/pages/components/captcha/captcha.vue index a090f39..1978252 100644 --- a/pages/components/captcha/captcha.vue +++ b/pages/components/captcha/captcha.vue @@ -20,6 +20,11 @@ second: 20 } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ handleSend(val) { this.isStart = val diff --git a/pages/components/date-picker/date-picker.vue b/pages/components/date-picker/date-picker.vue index 2c1a7aa..ba11c4b 100644 --- a/pages/components/date-picker/date-picker.vue +++ b/pages/components/date-picker/date-picker.vue @@ -18,6 +18,11 @@ isShow: false, } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { confirm(e){ this.result = e; diff --git a/pages/components/fabutton/fabutton.vue b/pages/components/fabutton/fabutton.vue index 49c78e0..72306c6 100644 --- a/pages/components/fabutton/fabutton.vue +++ b/pages/components/fabutton/fabutton.vue @@ -30,6 +30,11 @@ isDock: true } }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ handleChange(val) { this.isDock = !val diff --git a/pages/components/mp-tips/mp-tips.vue b/pages/components/mp-tips/mp-tips.vue index cbb42cd..a5fb6aa 100644 --- a/pages/components/mp-tips/mp-tips.vue +++ b/pages/components/mp-tips/mp-tips.vue @@ -24,6 +24,11 @@ }; }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods:{ close(){ console.log("close") diff --git a/pages/components/spin/spin.vue b/pages/components/spin/spin.vue index 61fb1c9..31237a9 100644 --- a/pages/components/spin/spin.vue +++ b/pages/components/spin/spin.vue @@ -49,6 +49,11 @@ isFullscreen: false }; }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { handleChange(val) { this.isShow = !val diff --git a/pages/index/index.vue b/pages/index/index.vue index d917801..ebe5fb9 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -11,13 +11,13 @@ 基础组件 - {{item.name}} 工具库 - {{item.name}} @@ -62,7 +62,7 @@ url: '/pages/tools/cache/cache' }, { - name: '复制(setClipboardData)', + name: '剪贴板(clipboard)', url: '/pages/tools/copy/copy' }, ] diff --git a/pages/tools/cache/cache.vue b/pages/tools/cache/cache.vue index dcfde4b..222f103 100644 --- a/pages/tools/cache/cache.vue +++ b/pages/tools/cache/cache.vue @@ -25,6 +25,11 @@ data() { return {} }, + onLoad(options) { + uni.setNavigationBarTitle({ + title: options.title + }); + }, methods: { setCache(){ this.$c.setCache("cache", "定时缓存10秒", 10) diff --git a/pages/tools/copy/copy.vue b/pages/tools/copy/copy.vue index 8fd6e3a..9fe7269 100644 --- a/pages/tools/copy/copy.vue +++ b/pages/tools/copy/copy.vue @@ -4,7 +4,10 @@ 演示效果 - 复制内容(this.$c.setClipboardData) + 复制内容(this.$c.setClipboardData) + + + 获取内容(this.$c.getClipboardData) @@ -13,9 +16,19 @@