From e4bc100e00845f62b6c83dd28fc216ff78c62031 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Thu, 16 Jan 2025 10:04:46 +0800 Subject: [PATCH] 下拉选择,移除URL调整的代码 --- /dev/null | 82 ----------------------------------------- forms/select/CSelect.vue | 37 ++++-------------- 2 files changed, 9 insertions(+), 110 deletions(-) diff --git a/common/PagePoster.js b/common/PagePoster.js deleted file mode 100644 index ec7267c..0000000 --- a/common/PagePoster.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * 页面间通讯 - * @author Tevin - */ - -import Taro from '@tarojs/taro'; -import { Tools } from '@components/common/Tools'; - -export class PagePoster { - - constructor() { - this._data = { - eventors: {}, - events: {}, - }; - } - - save(data) { - const guid = Tools.createGUID(); - Taro.setStorageSync(guid, JSON.stringify(data)); - return guid; - } - - read(id) { - const data = Taro.getStorageSync(id); - Taro.removeStorage({ key: id }); - return JSON.parse(data); - } - - createEventor() { - const that = this; - const guid = Tools.createGUID(); - this._data.eventors[guid] = { - id: guid, - events: new Taro.Events(), - on(name, callback) { - if (!this.events) { - return; - } - this.events.on(name, callback); - }, - emit(name, data) { - if (!this.events) { - return; - } - this.events.trigger(name, data); - }, - destroy() { - if (!this.events) { - return; - } - // 移除所有监听 - this.events.off(); - this.events = null; - // 解除 link 的绑定 - if (this.linkCB) { - this.linkCB(null); - } - // 解除引用 - delete that._data.eventors[this.id]; - }, - linkCB: null, - }; - return this._data.eventors[guid]; - } - - linkEventor(guid, linkCB) { - if (typeof this._data.eventors[guid] === 'undefined') { - linkCB(null); - } else { - const eventor = this._data.eventors[guid]; - eventor.linkCB = linkCB; - linkCB(eventor); - setTimeout(() => { - eventor.emit('@linked'); - }, 0); - } - } - -} - -export const $pagePoster = new PagePoster(); \ No newline at end of file diff --git a/forms/select/CSelect.vue b/forms/select/CSelect.vue index 9c7a349..5183bb9 100644 --- a/forms/select/CSelect.vue +++ b/forms/select/CSelect.vue @@ -67,7 +67,6 @@ <script> import Taro from '@tarojs/taro'; import { AtInput } from 'taro-ui-vue'; -import { $pagePoster } from '@components/common/PagePoster'; import './cSelect.scss'; export default { @@ -87,11 +86,8 @@ type: Boolean, default: false, }, - // 开启选择菜单跳转选择页面模式,并指定功能页面,url or 'on' - // url 模式已经废弃,即将删除代码,请勿再使用 + // 开启选择菜单跳转选择页面模式,值为 'on' selectByPage: String, - // 页面跳转URL模式下,选择完成后的回调 - onSelectFromPage: Function, // 页面跳转on模式下,发起选择的回调 onOpenSelectorPage: Function, }, @@ -140,30 +136,15 @@ this.onOpenSelectorPage && this.onOpenSelectorPage(); return; } - // 页面跳转URL模式,已废弃,即将删除代码 - console.warn('CSelect:警告,url跳转已废弃,即将删除代码,请勿使用!'); - let url = this.selectByPage; - if (this.selectByPage.indexOf('?') > 0) { - url += '&mode=CSelect'; - } else { - url += '?mode=CSelect'; - } - if (this._eventor) { - // 销毁上次事件收发器 - this._eventor.destroy(); - } - this._eventor = $pagePoster.createEventor(); - this._eventor.on('@linked', () => { - this._eventor.emit('lastValue', this.choose.value); - }); - this._eventor.on('selected', data => { - this.choose.name = data.name; - this.choose.value = data.value; - this.itemRes.onChange(data.value); - this.onSelectFromPage && this.onSelectFromPage(data.value); - }); - Taro.navigateTo({ url: url + '&eventorId=' + this._eventor.id }); + // 页面跳转URL模式已废弃 + console.warn('CSelect:警告,url跳转已废弃,无法再使用!'); }, }, + mounted() { + if (this.selectByPage && this.selectByPage !== 'on') { + // 页面跳转URL模式已废弃 + console.warn('CSelect:警告,url跳转已废弃,无法再使用!'); + } + }, }; </script> \ No newline at end of file -- Gitblit v1.9.1