企业微信uni-app开发准备

一、下载安装 HbuilderX

https://www.dcloud.io/

image.png

二、环境准备

1.可以选择配置自己习惯的使用环境


图片1.png

2.安装插件包,工具-插件安装
---安装scss/sass编译
---安装npm


图片2.png

三、uni-app开发介绍

1.目录结构

图片3.png

2.页面配置、生命周期
① pages.json配置 ---
https://uniapp.dcloud.io/collocation/pages?id=pages

{
    "path": "pages/login/index", 
    "style": {
        "navigationBarTitleText": "页面顶部显示导航",
         "enablePullDownRefresh": "值为true/false,配置是否开启下拉刷新功能",
    }
}

注:开启下拉刷新需要在 pages.json做相应的配置


图片4.png

图片5.png

四、项目准备

Git地址:http://git.aylsonclub.com/aihama/uniapp-oa-wap.git
五、页面代码

页面或组件由三部分组成

<template> ---xml代码,类似html代码
<scrpit> ---js代码
<style> --样式代码

Script代码中都需要导出一个 响应对象
里面主要包含有
(1)Props组件传入的参数对象数据
(2)Data 一般用于储存页面对应绑定的数据
(3)Methods 主要放置自定义函数方法

ddd.png

六、常用语法

示例数据

    export default {
        data() {
            return {
                mobile: '1234',
                password: '123',
                datas: [{
                    text: 'xxxxxx'
                }, {
                    text: 'xxxxxx'
                }, {
                    text: 'xxxxxx'
                }],
                objects: {
                    a: 1,
                    b: 2,
                    c: 3
                }
            }
        },
        methods: {
            submit: () => {
                console.log('-----------提交')
            }
        }
    }

1.集合遍历 v-for

<view>
    <text v-for="(item,index) in datas">{{item.text}}</text>
</view>

2.集合遍历 map

<view>
    <text v-for="(val,key) in objs">{{val}} {{key}}</text>
</view>

2.v-if 判断语句

<view>
    <text v-for="(item,index) in datas" v-if="index==0">{{item.text}}</text>
</view>

3.:class 处理

<view>
    <text v-for="(item,index) in datas"  :class="index==0?'text-red':''">{{item.text}}</text>
</view>

4.事件绑定,在移动端使用tap触摸事件一般不使用click


<template>
    <view class="padding flex flex-direction">
        <button class="cu-btn bg-blue margin-tb-sm lg" @tap="submit">提交</button>
    </view>
</template>
<script>
    export default {
        data() {return{}},
        methods: {
            submit: () => {
                console.log('-----------提交')
            }
        }
    }
</script>

4.表单提交

// xml代码
<template>
    <form @submit="formSubmitConfirm">
        <view class="cu-form-group margin-top">
            <view class="title">手机号</view>
            <input placeholder="手机号" name="mobile" :value="mobile"></input>
        </view>
        <view class="cu-form-group">
            <view class="title">密码</view>
            <input placeholder="密码" name="password" :value="password"></input>
        </view>
                <view class="padding flex flex-direction">
                <button formType="submit" class="cu-btn bg-blue margin-tb-sm lg" @tap="submit">提交</button>
            </view>
    </form>
</template>
//js代码
<script>
    export default {
        data() {
            return {
                mobile: '15986391019',
                password: '123456'
            }
        },
        methods: {
            formSubmitConfirm: (e) => {
                //--------------提交数据逻辑-------

                //获取表单数据对象
                let formData = e.detail.value
                console.log(formData.mobile) //15986391019
                console.log(formData.password) //123456
                let params = {
                    mobile: formData.mobile,
                    password: formData.password
                }
                http.login({}).then(res => {
                    //请求成功回调
                })


            }
        }
    }
</script>

七、数据请求

     let params = {
          Code: 'xxx',
          Password: 'pwd'
      };
      http.login(params).then(res => {
          uni.hideLoading();
          if (res.statusCode !== 200) return;
          if (res.data.code === "ok") {
            setCurLoginPage();
            uni.showToast({
              title: "登录成功444"
            });
            // 储存用户信息到缓存
            let adminWapUserInfo = res.data.data;
            uni.setStorageSync("adminWapUserInfo", adminWapUserInfo);
            // #ifdef APP-PLUS
            this.updateDeviceInfo(adminWapUserInfo);
            // #endif
            // 跳转到首页
            uni.switchTab({
              url: "/pages/home/home"
            });
          } else {
            uni.showModal({
              content: res.data.msg
            });
          }
        });

多个请求同时处理

        
let promise1 = new Promise((resolve, reject) => {
    http.getList1({id:'xxx'}).then(res => {
        resolve(res)
    }).catch(err => {
        reject(err)
    })
})
        
let promise2 = new Promise((resolve, reject) => {
    http.getList2({id:'xxx'}).then(res => {
        resolve(res)
    }).catch(err => {
        reject(err)
    })
})

Promise.all([promise1, promise2]).then(args => {
    //请求成功逻辑,请求回来的数据在  args 数组中
}).catch(err=>{
    //请求失败报错逻辑
})

七、消息弹窗

官网参考https://uniapp.dcloud.io/api/ui/prompt?id=showmodal

效果参考

uni.showToast({
    title:'消息提示框'
})
image.png
uni.showLoading({
    title:'加载中'
})
image.png

类似于标准 html 的消息框:alert、confirm。

uni.showModal({
    title: '提示',
    content: '这是一个模态弹窗',
    success: function (res) {
        if (res.confirm) {
            console.log('用户点击确定');
        } else if (res.cancel) {
            console.log('用户点击取消');
        }
    }
});
image.png

七、常用方法

页面路由跳转:https://uniapp.dcloud.io/api/router?id=navigateto
理解uniapp页面跳转-页面栈:https://uniapp.dcloud.io/frame?id=%e9%a1%b5%e9%9d%a2%e6%a0%88

主页面tabBar 切换:https://uniapp.dcloud.io/api/router?id=switchtab


常用组件:https://uniapp.dcloud.io/component/README
组件实际显示效果可新建项目--uni-app--Hello uni-app 项目运行查看效果

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

推荐阅读更多精彩内容

  • uni-app跨平台框架官方教程 链接:https://ke.qq.com/course/343370 一、框架简...
    Neyo_凉阅读 36,213评论 0 43
  • 官方文档:https://uniapp.dcloud.io/README 什么是uni-app 使用 Vue.js...
    w_wx_x阅读 1,956评论 0 1
  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 513评论 0 1
  • 某些时候,我宁可相信自己已经长大。倒不是因为年纪小而带来的幼稚可笑,而是希望有朝一日自己可以独立于人间,独立于父母...
    Chosing_春幸阅读 431评论 0 1
  • 1.感恩父母给我生命,将我带到这个世界,并将我养大。父母教会我穿衣服,教会我走第一步路,教会我说第一句话。 2.感...
    空空dj阅读 101评论 0 0