Przeglądaj źródła

完成基础架构!

release/210823_需求对对碰
王饶冀 3 lat temu
commit
4f5d7d8af1

+ 28
- 0
app.js Wyświetl plik

@@ -0,0 +1,28 @@
// app.js
App({
onLaunch() {
// 展示本地存储能力
const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)

// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
},
globalData: {
userInfo: null,
openid: "",
appid: "",
sessionKey: "",
suiteCode: "",
customerId: "",
},
// mangerUrl: 'http://test2.hhrchina.com',
mangerUrl: "http://192.168.18.156",
// mangerUrl: "https://www.hhrchina.com",
// mangerUrlPath: "https://www.hhrchina.com",
})

+ 21
- 0
app.json Wyświetl plik

@@ -0,0 +1,21 @@
{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"usingComponents": {
"tabBar": "/components/tabbar/tabbar"
},
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"useExtendedLib": {
"kbone": true,
"weui": true
}
}

+ 11
- 0
app.wxss Wyświetl plik

@@ -0,0 +1,11 @@
/**app.wxss**/

.container {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
}

+ 43
- 0
components/tabbar/tabbar.js Wyświetl plik

@@ -0,0 +1,43 @@
// components/tabbar/tabbar.js
const app = getApp()
Component({
/**
* 组件的属性列表
*/
properties: {
currentIndex: {
type: String,
value: '0',
}
},

/**
* 组件的初始数据
*/
data: {
list: [
{
text: "对话",
iconPath: "/images/tabbar/tabbar_1.png",
selectedIconPath: "/images/tabbar/tabbar_1.png",
dot: true
},
{
text: "设置",
iconPath: "/images/tabbar/tabbar_2.png",
selectedIconPath: "/images/tabbar/tabbar_2.png",
badge: '99+'
}
]
},

/**
* 组件的方法列表
*/
methods: {
tabChange(e) {
console.log('tab change--aa', e)
}
}
})


+ 6
- 0
components/tabbar/tabbar.json Wyświetl plik

@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"mp-tabbar": "/miniprogram_npm/weui-miniprogram/tabbar/tabbar"
}
}

+ 3
- 0
components/tabbar/tabbar.wxml Wyświetl plik

@@ -0,0 +1,3 @@
<view class="page">
<mp-tabbar style="position:fixed;bottom:0;width:100%;left:0;right:0;" list="{{list}}" bindchange="tabChange"></mp-tabbar>
</view>

+ 1
- 0
components/tabbar/tabbar.wxss Wyświetl plik

@@ -0,0 +1 @@
/* components/tabbar/tabbar.wxss */

BIN
images/tabbar/tabbar_1.png Wyświetl plik


BIN
images/tabbar/tabbar_2.png Wyświetl plik


BIN
images/tabbar/tabbar_3.png Wyświetl plik


+ 49
- 0
pages/index/index.js Wyświetl plik

@@ -0,0 +1,49 @@
// index.js
// 获取应用实例
const app = getApp()

Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo'),
canIUseGetUserProfile: false,
canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName'), // 如需尝试获取用户信息可改为false
currentIndex: 0
},
// 事件处理函数
bindViewTap() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad() {
if (wx.getUserProfile) {
this.setData({
canIUseGetUserProfile: true
})
}
},
getUserProfile(e) {
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
wx.getUserProfile({
desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res)
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
},
getUserInfo(e) {
// 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息
console.log(e)
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})

+ 4
- 0
pages/index/index.json Wyświetl plik

@@ -0,0 +1,4 @@
{
"usingComponents": {
}
}

+ 6
- 0
pages/index/index.wxml Wyświetl plik

@@ -0,0 +1,6 @@
<!--index.wxml-->
<view class="container">
康慧慧V8
<tabBar currentIndex="{{currentIndex}}"></tabBar>
</view>


+ 19
- 0
pages/index/index.wxss Wyświetl plik

@@ -0,0 +1,19 @@
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
color: #aaa;
}

.userinfo-avatar {
overflow: hidden;
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}

.usermotto {
margin-top: 200px;
}

+ 18
- 0
pages/logs/logs.js Wyświetl plik

@@ -0,0 +1,18 @@
// logs.js
const util = require('../../utils/util.js')

Page({
data: {
logs: []
},
onLoad() {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(log => {
return {
date: util.formatTime(new Date(log)),
timeStamp: log
}
})
})
}
})

+ 4
- 0
pages/logs/logs.json Wyświetl plik

@@ -0,0 +1,4 @@
{
"navigationBarTitleText": "查看启动日志",
"usingComponents": {}
}

+ 6
- 0
pages/logs/logs.wxml Wyświetl plik

@@ -0,0 +1,6 @@
<!--logs.wxml-->
<view class="container log-list">
<block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log">
<text class="log-item">{{index + 1}}. {{log.date}}</text>
</block>
</view>

+ 8
- 0
pages/logs/logs.wxss Wyświetl plik

@@ -0,0 +1,8 @@
.log-list {
display: flex;
flex-direction: column;
padding: 40rpx;
}
.log-item {
margin: 10rpx;
}

+ 74
- 0
project.config.json Wyświetl plik

@@ -0,0 +1,74 @@
{
"description": "项目配置文件",
"packOptions": {
"ignore": []
},
"setting": {
"urlCheck": true,
"es6": true,
"enhance": false,
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": false,
"coverView": true,
"nodeModules": false,
"autoAudits": false,
"showShadowRootInWxmlPanel": true,
"scopeDataCheck": false,
"uglifyFileName": false,
"checkInvalidKey": true,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"lazyloadPlaceholderEnable": false,
"useMultiFrameRuntime": true,
"useApiHook": true,
"useApiHostProcess": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"enableEngineNative": false,
"useIsolateContext": true,
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": [],
"minifyWXSS": true,
"showES6CompileOption": false
},
"compileType": "miniprogram",
"libVersion": "2.18.1",
"appid": "wx2fb79bf1a0f4a450",
"projectname": "communication_app",
"debugOptions": {
"hidedInDevtools": []
},
"scripts": {},
"staticServerOptions": {
"baseURL": "",
"servePath": ""
},
"isGameTourist": false,
"condition": {
"search": {
"list": []
},
"conversation": {
"list": []
},
"game": {
"list": []
},
"plugin": {
"list": []
},
"gamePlugin": {
"list": []
},
"miniprogram": {
"list": []
}
}
}

+ 7
- 0
sitemap.json Wyświetl plik

@@ -0,0 +1,7 @@
{
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
"rules": [{
"action": "allow",
"page": "*"
}]
}

+ 77
- 0
utils/request.js Wyświetl plik

@@ -0,0 +1,77 @@
// wx.request封装
const app = getApp()
const request = async (url, options, contentType) => {
let openId
await new Promise(resolve => {
let tiems = setInterval(() => {
// 如果此时openid已被赋值
openId = app.globalData.openid; // data里要固定添加openid(项目需要)
if (!!app.globalData.openid) {
clearInterval(tiems)
resolve()
}
}, 500);
})
!!contentType?contentType:contentType="application/json"
return new Promise( (resolve, reject) => {
wx.request({
url: `${app.mangerUrl}${url}?openId=${openId}`,//获取域名接口地址
method: options.method, //配置method方法
data:options.data,
//如果是GET,GET自动让数据成为query String,其他方法需要让options.data转化为字符串
header: {
'Content-Type': contentType,
'Cookie':wx.getStorageSync('cookieKey')||''
},
success(request) {
if (request && request.header && request.header['Set-Cookie']) {
if(request.header['Set-Cookie'].indexOf("SESSION")==0){
wx.setStorageSync('cookieKey', request.header['Set-Cookie']); //保存Cookie到Storage
}
}
//监听成功后的操作
resolve(request.data)
},
fail(error) {
//返回失败也同样传入reject()方法
reject(error.data)
}
})
})
}
//封装get方法
const get = (url, options = {}) => {
return request(url, {
method: 'GET',
data: options
})
}
//封装post方法
const post = (url, options,contentType) => {
return request(url, {
method: 'POST',
data: options
},contentType)
}
//封装put方法
const put = (url, options) => {
return request(url, {
method: 'PUT',
data: options
})
}
//封装remove方法
// 不能声明DELETE(关键字)
const remove = (url, options) => {
return request(url, {
method: 'DELETE',
data: options
})
}
//抛出wx.request的post,get,put,remove方法
module.exports = {
get,
post,
put,
remove
}

+ 19
- 0
utils/util.js Wyświetl plik

@@ -0,0 +1,19 @@
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()

return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatNumber = n => {
n = n.toString()
return n[1] ? n : `0${n}`
}

module.exports = {
formatTime
}

Ładowanie…
Anuluj
Zapisz