uniapp 工作常用整理

vue3+vant4新界面模板:带底部浮动按钮

<template>
  <div class="page-bg">
    <section class="tl-section-0 mb-10">
      <van-row justify="center">
        <van-col class="tl-font-14-666-400">基本信息</van-col>
        <van-col class="tl-font-14-475-500 ml-91">预检信息</van-col>
      </van-row>
      <div class="tl-flex-center" style="height: 21px">
        <div class="tl-point-7"></div>
        <div class="line-w130"></div>
        <img src="@/assets/icon/now.png" class="tl-img-11" alt="" />
      </div>
    </section>

    <div class="height-120"></div>
    <div class="tl-footer tl-flex-bwt">
      <div class="tl-btn-164">返回上一步</div>
      <div class="tl-btn-164-yes">下一步</div>
    </div>
  </div>
</template>

<script lang="ts" setup>
import { ref, onMounted } from "vue";
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
.page-bg {
  width: 100vw;
  overflow-y: scroll;
  background-color: #f0f2f4;
}
.tl-section-0 {
  height: 46px;
  background: #ffffff;
  padding: 6px 0;
}
.tl-font-14-475-500 {
  font-size: 14px;
  font-family: PingFang SC-Medium, PingFang SC;
  font-weight: 500;
  color: #0b457f;
}
.tl-img-11 {
  width: 11px;
  height: 11px;
}
.line-w130 {
  width: 130px;
  height: 1px;
  background: #d8d8d8;
}
.tl-point-7 {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #cccccc;
}
.ml-91 {
  margin-left: 91px;
}
.tl-section {
  height: auto;
  background: #ffffff;
  padding: 12px 15px 18px 12px;
}
.tl-footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  height: 54px;
  background: #ffffff;
  padding: 0 15px;
  .tl-btn-164 {
    width: 164px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    background: #ffffff;
    border-radius: 24px 24px 24px 24px;
    border: 1px solid #999999;
    font-size: 16px;
    font-family: PingFang SC-Regular, PingFang SC;
    font-weight: 400;
    color: #333333;
  }

  .tl-btn-164-yes {
    width: 164px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    background: #0b457f;
    border-radius: 24px 24px 24px 24px;
    font-size: 16px;
    font-family: PingFang SC-Regular, PingFang SC;
    font-weight: 400;
    color: #ffffff;
  }
}

/*重置默认样式,间距处理*/
::v-deep .van-cell-group {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
}
::v-deep .van-cell {
  padding-left: 0;
  padding-right: 0;
  margin-left: 0;
  margin-right: 0;
  line-height: 29px;
  /*border-bottom: 1px solid #e6e6e6;*/
}
::v-deep .van-field__control {
  padding: 0 10px;
}
.tl-border-1 {
  border-bottom: 1px solid #e6e6e6;
}
::v-deep .van-cell:after {
  position: relative;
}
</style>


vue3+vant4新界面模板:

<template>
  <div class="page-bg">
    <section class="tl-section mb-10">
      <div class="tl-font-14-333-500 mb-14">基本信息</div>
      <van-row justify="space-between" class="mb-16">
        <van-col class="tl-font-14-999-400">车主姓名</van-col>
        <van-col class="tl-font-14-333-400">王菲</van-col>
      </van-row>
    </section>
    <div class="height-120"></div>
    <div class="tl-footer tl-flex-bwt">
      <div class="tl-font-16-3d3-400">
        支付金额:<span class="tl-font-20-3d3-500">¥290</span>
      </div>
      <div class="tl-btn-193 active">立即支付</div>
    </div>
  </div>
</template>

<script lang="ts" setup>
import { ref, onMounted } from "vue";
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
.page-bg {
  width: 100vw;
  overflow-y: scroll;
  background-color: #f0f2f4;
}
.tl-section {
  height: auto;
  background: #ffffff;
  padding: 12px 15px 18px 12px;
}
.tl-footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  height: 54px;
  background: #ffffff;
  padding: 0 15px;

  .tl-btn-193 {
    width: 193px;
    height: 38px;
    line-height: 38px;
    text-align: center;
    background: #f3f3f3;
    border-radius: 24px 24px 24px 24px;
    font-size: 16px;
    font-family: PingFang SC-Regular, PingFang SC;
    font-weight: 400;
    color: #999999;
  }
  .active {
    background: #0b457f;
    color: #ffffff;
  }
}
</style>


03阻止事件冒泡

@click.stop  阻止事件冒泡

02 存取操作:

uni.setStorageSync('storage_key', 'hello');

uni.getStorageSync('storage_key');

01 新模板:

<template>
  <view class="page-bg">
    <view class="main-container">

    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {

    }
  },
  methods: {

  }
}
</script>

<style lang="less" scoped>
.page-bg {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background-size: 750rpx auto;
  background-color: #F9F9F9;
}

.main-container {
  width: 694rpx;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
</style>



再次确认框

let self = this;
   uni.showModal({
   title: '提示信息',
   content: '是否取消关注当前疾病?',
   cancelText: "取消",
   confirmText: "确认",
   confirmColor: '#2851F3',
   cancelColor: '#9E9E9E',
   success: function (res) {
   if (res.confirm) {
   self.saveDra(item);
   } else if (res.cancel) {
   console.log('用户点击取消');
   }
   }
   });

git回滚到某次提交

git reset --hard xxx
git push origin HEAD --force

git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard commit_id 退到/进到 指定commit的sha码

强推到远程:

$ git push origin HEAD --force

作者:CgySHFF
链接:https://www.jianshu.com/p/5eb2227d5546
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

02.定时器:

setTimeout(() => {
                this.getList();
              }, 2000)

9.超出显示省略号:

.tl-word-120 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 120rpx;
}
.tl-word {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 580rpx;
}
.tl-flex{
  display: flex;
}

8.创建新页面模板:2021-06-15

<template>
    <view class="page-bg">
        <view class="main-container">
        
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                
            }
        },
        methods: {
            
        }
    }
</script>

<style>
    .page-bg {
        width: 100vw;
        height: auto;
        overflow: hidden;
        background-size: 750rpx auto;
        background-color: #fff;
    }

    .main-container {
        width: 710rpx;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
    }
</style>


  1. uniapp 动态监听按钮
    https://www.jianshu.com/p/2cd8bc592b22

9.ajax封装


getData() {
        this.$http.post('getMyResidentialInfo', {}).then(([error, res]) => {
          if(res.data.code == 200) {
            let data = res.data.data;
            this.myHome = data.community_info.name;
            //this.cateLists = this.formCate(data.cate)
          } else {
            this.$common.toast(res.data.message)
          }
        })
      },

10.携带多参数界面跳转操作


//跳转界面操作
let params = {
          id: '',
          avatar: '',
          nickname: '',
        }
let tempData = JSON.stringify(params)


uni.navigateTo({
    url: '/pages/publish/preview?tempData=' + encodeURIComponent(tempData),
})



//落脚界面接受处理
onLoad(options){
    let self = this;
    //debugger
    let params = JSON.parse(decodeURIComponent(options.tempData));
    self.showData = params; //界面回显的数据源
    self.showTime = self.timeStamp(params.start_time);

    },

7.异步调用

let code = await self.getCode(); //获取一个异步调用的返回值,有了才继续执行

async getCode() {
                return new Promise((resolve) => {
                    uni.login({
                        provider: 'weixin',
                        success: function(loginRes) {
                            let code = loginRes.code; //重新获取一次code参数
                            resolve(code);
                        }
                    });
                });
            },


9.flex 布局 保持横排不并排操作:


image.png

.box {
flex-direction: row | row-reverse | column | column-reverse;
}

.tl-section{
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
                width:100%;
    }


<view class="tl-section">
                <view class="tl-font-28-686">当前糖果</view>
                <view class="tl-font-48-900">157.54</view>
                <view>
                    <button class="tl-btn tl-font-28-red">兑换</button>
                </view>
            </view>

image.png

8 验证码 倒计时


// 验证码
            navCheck() {
                if (this.codetime > 0) return; //校验短信倒计时
                if (!(/^1[3456789]\d{9}$/.test(this.mobile))) {
                    uni.showToast({
                        icon: 'none',
                        mask: true,
                        title: '手机号有误'
                    });
                    return;
                }

                let params = {
                    mobile: this.mobile
                };
                //todo 待对接验证码接口
                this.$http.post('sendCode', params,{token: 'token'}).then(([error, res])=>{
                    if(res.data.code == 1) {
                        uni.showToast({
                            title:'验证码发送成功',
                            icon:'none',
                        })
                        //验证码倒计时
                        this.codetime = 120;
                        let timer = setInterval(() => {
                            this.codetime--;
                            if (this.codetime < 1) {
                                clearInterval(timer);
                                this.codetime = 0;
                            }
                        }, 1000);
                    }else {
                        uni.showModal({
                            title: '提示',
                            showCancel: false,
                            content: res.data.msg,
                            success: function (res) {
                                if (res.confirm) {
                                    console.log('用户点击确定');
                                } else if (res.cancel) {
                                    console.log('用户点击取消');
                                }
                            }
                        });
                        /*uni.showToast({
                            icon: 'none',
                            mask: true,
                            title: res.data.msg,
                            duration: 2500
                        });*/
                    }

                })
            },

    if(res.data.code == 1){

}else if(res.data.code != 1){
    uni.showToast({
    title: res.data.msg,
    icon:'none',
    duration: 2000
  })
}


{
    name: '张三三',
    time: '2020-2-5 12:50',
    profit: '2.5'
}

6.css3 勾勾特效

image.png
.feature i {
    width: 14px;
    height: 6px;
    display: inline-block;
    border: 1px solid #23b8ff;
    border-width: 0 0 2px 2px;
    transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg); 
    -o-transform: rotate(-45deg);
    vertical-align: baseline;
}

5.扫码进入或者用户点击分享进入(2020-12-12):

if(options && options.serviceId){ //用户点击分享连接进入
                self.serviceId = options.serviceId;
            }else if(options && options.q){
                let url = decodeURIComponent(options.q);
                let serviceId = (url.match(/serviceId=(\w+)/) ? url.match(/serviceId=(\w+)/)[1] : null);
                console.log("serviceId===================serviceId==",serviceId);
                this.serviceId = serviceId;
            }

4.消息提示框:

uni.showToast({
                            title: res.data.msg,
                            icon:'none',
                            duration: 2000//延迟显示
                        })

1.线上ajax操作

//查询当前订单是否送券
            getCoupons(orderId){
                request({
                    url: inter.getConsumerCouponStatus,
                    data: {
                        orderId: orderId
                    },
                    callback: (res) => {
                        if(res.CODE==-1){
                            uni.showToast({
                                title: res.MESSAGE,
                                icon: false
                            });
                            return false;
                        }

                        if(!res.RESULT.hasConsumerCoupon){ // true 用户获取了优惠券
                            uni.showToast({
                                title: '本次消费已获赠消费券',
                                icon: 'none',
                                mask: true,
                                duration: 1500
                            });
                        }

                        setTimeout(() => {
                            uni.reLaunch({
                                url: '/pages/home/home'
                            })
                        }, 2000)
                    }
                })

            }

  1. 暂时去掉的菜单栏:
{
            "pagePath": "pages/exam/exam",
            "iconPath": "static/index_84.png",
            "selectedIconPath": "static/order_06.png",
            "text": "考试"
        }

3.定时函数:

setTimeout(() => {
                                        
                                    }, 300)

66.map

let list = data.data.map(item => {
                            item.goods_advertise_price = parseFloat(item.goods_advertise_price)
                            item.goods_price = parseFloat(item.goods_price)
                            return item
                        })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容