当前位置: 首页 > news >正文

商务网站建设实训心得体会注册城乡规划师教材

商务网站建设实训心得体会,注册城乡规划师教材,有没有专做水果网站,ps设计网页效果图背景 为了解决uni-app 任意位置出现弹窗 解决方案 一、最初方案 受限于uni-app 调用组件需要每个页面都引入注册才可以使用,此方案繁琐,每个页面都要写侵入性比较强 二、改进方案 app端:新建一个页面进行跳转,可以实现伪弹窗…

背景

为了解决uni-app 任意位置出现弹窗

解决方案

一、最初方案

受限于uni-app 调用组件需要每个页面都引入注册才可以使用,此方案繁琐,每个页面都要写侵入性比较强

二、改进方案

app端:新建一个页面进行跳转,可以实现伪弹窗(其实是打开一个背景透明的页面)

web端: 全局挂载body 插入一个弹窗

三、初步实现方案

就是 利用条件编译,web端写组件、app 端写页面,利用不同的生命周期,完成通用的逻辑

四、详细实现方案

1、完成弹窗页面开发

统一暴露一个show 方法,app 端使用 onload 监听事件触发,web端使用 show 方法触发

    <template><u-popup id="globalPopup-box" :show="params.show" :mode="params.mode" bgColor="transparent"@close="cancelSubmit(true)"><template v-if="params.type === 1"><view class="globalPopupContent" :class="{ globalPopupContentCenter: params.mode == 'center' }"><view class="title">{{ params.title }}</view></view></template><template v-else><view class="globalPopupContent" :class="{ globalPopupContentCenter: params.mode == 'center' }"><view class="title">{{ params.title }}</view></view></template></u-popup>
</template><script>
export default {name: "globalPopup",data() {return {eventChannel: null,params: {},}},// #ifdef APP-PLUSonLoad() {this.eventChannel = this.getOpenerEventChannel();this.eventChannel.on('globalPopup', (data) => {console.log('globalPopup:', data)this.init(data)})},// #endifmethods: {init(data) {this.params = data// 通用逻辑写在这里},// #ifdef H5show(data) {console.log('H5globalPopup:', data)this.init(data)},// #endifcancel() {// #ifdef APP-PLUSlet _this = this;uni.navigateBack({delta: 1,success() {_this.eventChannel.emit('cancel');}})// #endifthis.hide()// #ifdef APP-PLUSthis.params.cancel && this.params.cancel();// #endif},confirm() {// #ifdef APP-PLUSlet _this = this;uni.navigateBack({delta: 1,success() {_this.eventChannel.emit('confirm');}})// #endifthis.hide();// #ifdef APP-PLUSthis.params.confirm && this.params.confirm();// #endif},hide() {setTimeout(() => {this.params = {}}, 100)}}
}
</script><style>
page {background: transparent;
}
</style>

2、页面路由配置

,{"path" : "components/globalPopup/globalPopup","style": {"navigationStyle": "custom","backgroundColor": "transparent","app-plus": {"animationType": "fade-in","background": "transparent","popGesture": "none","bounce": "none","titleNView": false}}},          

3、main.js中全局挂载 globalPopup.js

globalPopup.js

const install = Vue => {Vue.prototype.$globalPopup = {show(params) {let pointPageUrl = getCurrentPages()[getCurrentPages().length - 1].route;if (pointPageUrl == 'components/globalPopup/globalPopup') returnuni.navigateTo({url: '/components/globalPopup/globalPopup',success: function (res) {// 利用事件 通知 目标页面res.eventChannel.emit('globalPopup', params)}})}}
}
export default install;

main.js 的编码 条件编译

// #ifdef APP-PLUS
import globalPopupjs from '@/components/globalPopup/globalPopup.js';
Vue.use(globalPopupjs);
// #endif// #ifdef H5
import globalPopup from '@/components/globalPopup/globalPopup.vue'
const PopupVue = Vue.extend(globalPopup);
const popupDom = new PopupVue();
Vue.prototype.$globalPopup = popupDom.$mount();
const lastEl = document.body.lastElementChild;
if (lastEl.id !== 'globalPopup-box') {setTimeout(() => {document.body.appendChild(Vue.prototype.$globalPopup.$el)}, 0)
}
// #endif

4、如何任意位置出现弹窗

利用接口触发,返回相关弹窗配置

接口触发逻辑

if (data.pop) {uni.$emit('showMyPopup', data.pop)}

监听逻辑

// 监听事件uni.$on('showMyPopup', (pop) => {if (!this.isShowGlobalPopup) {console.log(pop, 'showMyPopup')let {userQuestionStyleValue, // 样式值 1底部弹窗 2页中弹窗userQuestionTemplateValue, // 模板值 1是否类 2打分类,userQuestionInfo,userQuestionAnswerDTO,} = popthis.$globalPopup.show({id: pop.id,show: true,type: userQuestionTemplateValue == '1' ? 1 : 2,userQuestionInfo,title: userQuestionInfo.questionName,userQuestionAnswerDTO,mode: userQuestionStyleValue == '1' ? 'bottom' : 'center'})}});

效果

http://www.yayakq.cn/news/932099/

相关文章:

  • 优惠券网站做代理怎么样网站自动seo
  • 网站推广的策略有哪些怎么做网站注册系统
  • 百度小程序对网站seo怎么查网站的外链
  • 点击最多的网站辽宁响应式网站建设推荐
  • 京伦网站建设ui设计主要做什么
  • 福建省网站备案seo是什么意思啊视频教程
  • 微信网站怎么做的好名字论坛式网站建设
  • 湖南网站建设网站制作wordpress访问有的目录500
  • 黑龙江建设厅网站做网站前台需要什么技能
  • 方便做简笔画的网站或软件网站建设 主要学是么
  • 企业只有建立自己的网站平台怎么查开发商剩余房源
  • 北京网站设计公司yy成都柚米科技15优秀文创产品设计案例
  • 揭阳网站开发mituad网站开发工程师岗位职责
  • 西安网站推广方案wordpress 加载页面
  • 可视化的网站开发工具东莞哪里有网站制作公司
  • 死循环网站怎样下载别人网站自己做的视频
  • 搭建一个网站平台需要多少钱湖北疾控最新提醒
  • 做短租哪个网站好wordpress多级菜单会变慢
  • 网站平台建设属于什么采购徐州模板开发建站
  • 自己电脑做网站服务器电脑软件推广联盟
  • 医疗器械公司网站备案怎么做企业网站宣传方案
  • 设计的好网站制作网站付款方式
  • 生产做网站表带的制造厂家百度题库
  • 河南建设工程信息网站网站的域名证书
  • 订阅号自定义可以做链接网站不菜鸟教程网页制作模板
  • 电白建设局网站河南seo关键词排名优化
  • 个人网站和企业网站区别建网站程序下载
  • 武侯区网站建设工业设计产品开发
  • 免费建站软件排行榜集成墙板装修一平米多少钱
  • 0基础网站开发一元购网站开发