no message

SPY×FAMILY
鹿和sa0ChunLuyu 4 years ago
parent ba148cefc8
commit 32e0b4de6e

@ -1,5 +1,5 @@
{
"name" : "鹿和开发套件",
"name" : "uniapp_default",
"appid" : "__UNI__4C3CB5F",
"description" : "",
"versionName" : "1.0.0",

@ -15,12 +15,6 @@
"subPackages": [{
"root": "pages/dev",
"pages": [{
"path": "tool/tool",
"style": {
"navigationBarTitleText": "开发工具",
"enablePullDownRefresh": false
}
}, {
"path": "dev/dev",
"style": {
"navigationBarTitleText": "示例",

@ -0,0 +1,52 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 09:02:17
*/
import {
ref
} from 'vue'
const pat_test = ref('')
const pat_test_show = ref(false)
const payTest = (e) => {
pat_test_show.value = true
}
const payTestDo = () => {
let pay_info = JSON.parse(pat_test.value);
wx.requestPayment({
'timeStamp': pay_info.timeStamp,
'nonceStr': pay_info.nonceStr,
'package': pay_info.package,
'signType': 'RSA',
'paySign': pay_info.paySign,
'success': function(res) {
console.log(res)
},
'fail': function(res) {
console.log(res)
},
'complete': function(res) {}
});
}
</script>
<template>
<u-modal title="内容" v-model="pat_test_show" :show-cancel-button="true" confirm-text="" cancel-text=""
@confirm="payTestDo">
<view class="slot-content">
<textarea :maxlength="-1" class="textarea_wrapper" v-model="pat_test" />
</view>
</u-modal>
<u-tr>
<u-td>支付测试</u-td>
<u-td></u-td>
<u-td>
<u-button size="mini" @click="payTest()"></u-button>
</u-td>
</u-tr>
</template>
<style scoped>
.textarea_wrapper {
height: 200rpx;
}
</style>

@ -26,7 +26,7 @@
<u-td>子父组件</u-td>
<u-td>
<u-input v-model="fa_value" :border="true"/>
<u-input v-model="son_ref.son_value" :border="true"/>
<u-input class="son_input_wrapper" v-model="son_ref.son_value" :border="true"/>
</u-td>
<u-td>
<u-button size="mini" @click="sonFunc()"></u-button>
@ -34,3 +34,8 @@
</u-tr>
<SonComponent @faFunc="faFunc" :fa_value="fa_value" :ref="SonRef"></SonComponent>
</template>
<style scoped>
.son_input_wrapper{
margin-top: 5rpx;
}
</style>

@ -31,10 +31,15 @@
<u-td></u-td>
<u-td>
<u-input disabled v-model="props.fa_value" :border="true" />
<u-input v-model="son_value" :border="true" />
<u-input class="son_input_wrapper" v-model="son_value" :border="true" />
</u-td>
<u-td>
<u-button size="mini" @click="faFuncClick()"></u-button>
</u-td>
</u-tr>
</template>
</template>
<style scoped>
.son_input_wrapper {
margin-top: 5rpx;
}
</style>

@ -0,0 +1,63 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 08:38:17
*/
import {
ref
} from 'vue'
const user_avatar = ref('')
const onChooseAvatar = (e) => {
let avatar = e.detail.avatarUrl
if (avatar.indexOf('thirdwx.qlogo.cn') === -1) {
wx.getFileSystemManager().readFile({
filePath: avatar,
encoding: 'base64',
success: res => {
let base64 = 'data:image/png;base64,' + res.data;
user_avatar.value = base64
}
});
} else {
uni.request({
url: avatar,
method: 'GET',
responseType: 'arraybuffer',
success: res => {
let base64 = 'data:image/png;base64,' + uni.arrayBufferToBase64(res.data);
user_avatar.value = base64
}
});
}
}
</script>
<template>
<u-tr>
<u-td>用户头像</u-td>
<u-td>
<view class="avatar_wrapper">
<u-image v-if="user_avatar" :showLoading="true" :src="user_avatar" width="140rpx" height="140rpx">
</u-image>
</view>
</u-td>
<u-td>
<button class="open_type_button_wrapper" open-type="chooseAvatar"
@chooseavatar="onChooseAvatar">获取头像</button>
</u-td>
</u-tr>
</template>
<style scoped>
.open_type_button_wrapper {
width: 140rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 16rpx;
}
.avatar_wrapper {
width: 140rpx;
height: 140rpx;
position: relative;
}
</style>

@ -0,0 +1,59 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 09:02:17
*/
import {
ref
} from 'vue'
const user_code = ref('')
const user_code_show = ref(false)
const wxGetUserInfo = (res) => {
if (!res.detail.iv) {
this.$sa0.toast("您取消了授权,登录失败");
return false;
}
uni.login({
provider: 'weixin',
success: (loginRes) => {
let d = loginRes
user_code.value = JSON.stringify(d, null, 4)
user_code_show.value = true
},
});
}
const copyContent = () => {
uni.setClipboardData({
data: user_code.value
})
}
</script>
<template>
<u-modal title="内容" v-model="user_code_show" :show-cancel-button="true" confirm-text="复制" cancel-text="关闭" @confirm="copyContent">
<view class="slot-content">
<textarea :maxlength="-1" class="textarea_wrapper" v-model="user_code" />
</view>
</u-modal>
<u-tr>
<u-td>用户Code</u-td>
<u-td></u-td>
<u-td>
<button class="open_type_button_wrapper" open-type="getUserInfo" @getuserinfo="wxGetUserInfo"
withCredentials="true">获取Code</button>
</u-td>
</u-tr>
</template>
<style scoped>
.textarea_wrapper {
height: 200rpx;
}
.open_type_button_wrapper {
width: 140rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 16rpx;
}
</style>

@ -0,0 +1,54 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 09:02:17
*/
import {
ref
} from 'vue'
const user_info = ref('')
const user_info_show = ref(false)
const updateUserInfo = (res) => {
wx.getUserProfile({
desc: '新用户完善用户资料',
success: (res) => {
let d = res.userInfo
user_info.value = JSON.stringify(d, null, 4)
user_info_show.value = true
}
})
}
const copyContent = () => {
uni.setClipboardData({
data: user_info.value
})
}
</script>
<template>
<u-modal title="内容" v-model="user_info_show" :show-cancel-button="true" confirm-text="" cancel-text=""
@confirm="copyContent">
<view class="slot-content">
<textarea :maxlength="-1" class="textarea_wrapper" v-model="user_info" />
</view>
</u-modal>
<u-tr>
<u-td>用户信息</u-td>
<u-td></u-td>
<u-td>
<button class="open_type_button_wrapper" @tap="updateUserInfo" withCredentials="true">获取信息</button>
</u-td>
</u-tr>
</template>
<style scoped>
.textarea_wrapper {
height: 200rpx;
}
.open_type_button_wrapper {
width: 140rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 16rpx;
}
</style>

@ -0,0 +1,20 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 08:51:52
*/
import {
ref
} from 'vue'
const user_nickname = ref('')
</script>
<template>
<u-tr>
<u-td>用户昵称</u-td>
<u-td>
<input type="nickname" v-model="user_nickname" placeholder="请输入昵称" />
</u-td>
<u-td></u-td>
</u-tr>
</template>

@ -0,0 +1,59 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-20 09:02:17
*/
import {
ref
} from 'vue'
const user_phone = ref('')
const user_phone_show = ref(false)
const phoneLoginButtonClick = (e) => {
uni.login({
provider: 'weixin',
success: (loginRes) => {
let d = {
code: loginRes.code,
iv: e.detail.iv,
encrypted_data: e.detail.encryptedData,
}
user_phone.value = JSON.stringify(d, null, 4)
user_phone_show.value = true
},
});
}
const copyContent = () => {
uni.setClipboardData({
data: user_phone.value
})
}
</script>
<template>
<u-modal title="内容" v-model="user_phone_show" :show-cancel-button="true" confirm-text="" cancel-text=""
@confirm="copyContent">
<view class="slot-content">
<textarea :maxlength="-1" class="textarea_wrapper" v-model="user_phone" />
</view>
</u-modal>
<u-tr>
<u-td>用户手机号</u-td>
<u-td></u-td>
<u-td>
<button class="open_type_button_wrapper" open-type="getPhoneNumber" @getphonenumber="phoneLoginButtonClick"
withCredentials="true">获取手机号</button>
</u-td>
</u-tr>
</template>
<style scoped>
.textarea_wrapper {
height: 200rpx;
}
.open_type_button_wrapper {
width: 140rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 16rpx;
}
</style>

@ -4,14 +4,20 @@
* usersa0ChunLuyu
* date2022-04-19 15:23:08
*/
import NavbarComponent from './Navbar/Navbar.vue' // Navbar
import RouterQueryComponent from './RouterQuery/RouterQuery.vue' //
import ApiComponent from './Api/Api.vue' //
import VuexComponent from './Vuex/Vuex.vue' // Vuex
import RouterPushComponent from './RouterPush/RouterPush.vue' //
import FatherComponent from './SonFather/Father.vue' //
import NavbarComponent from './Navbar/Navbar.vue' // Navbar
import RouterQueryComponent from './RouterQuery/RouterQuery.vue' //
import ApiComponent from './Api/Api.vue' //
import VuexComponent from './Vuex/Vuex.vue' // Vuex
import RouterPushComponent from './RouterPush/RouterPush.vue' //
import FatherComponent from './SonFather/Father.vue' //
import UserAvatarComponent from './UserAvatar/UserAvatar.vue' //
import UserNicknameComponent from './UserNickname/UserNickname.vue' //
import UserInfoComponent from './UserInfo/UserInfo.vue' //
import UserCodeComponent from './UserCode/UserCode.vue' //
import UserPhoneComponent from './UserPhone/UserPhone.vue' //
import PayTestComponent from './PayTest/PayTest.vue' //
//
//
// URL
const props = defineProps({
name: {
@ -29,10 +35,16 @@
<u-th>内容</u-th>
<u-th>操作</u-th>
</u-tr>
<RouterQueryComponent :name="props.name"></RouterQueryComponent>
<ApiComponent></ApiComponent>
<VuexComponent></VuexComponent>
<RouterPushComponent></RouterPushComponent>
<FatherComponent></FatherComponent>
<RouterQueryComponent :name="props.name"></RouterQueryComponent>
<ApiComponent></ApiComponent>
<VuexComponent></VuexComponent>
<RouterPushComponent></RouterPushComponent>
<FatherComponent></FatherComponent>
<UserAvatarComponent></UserAvatarComponent>
<UserNicknameComponent></UserNicknameComponent>
<UserInfoComponent></UserInfoComponent>
<UserCodeComponent></UserCodeComponent>
<UserPhoneComponent></UserPhoneComponent>
<PayTestComponent></PayTestComponent>
</u-table>
</template>

@ -1,14 +0,0 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-19 14:58:23
*/
</script>
<template>
用户头像
用户昵称
用户定位
用户手机号
支付测试
</template>

@ -15,7 +15,7 @@
url: '/pages/dev/dev/dev?name=' + name.value
})
} else {
uni.$lu.toast("请至少输点东西")
uni.$lu.toast("多少输点东西行不行")
}
}
</script>

@ -1,10 +1,37 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-19 14:58:23
*/
</script>
<template>
User
</template>
<script setup>
/**
* name
* usersa0ChunLuyu
* date2022-04-19 14:58:23
*/
import {
ref
} from 'vue'
import config from '@/config.js'
</script>
<template>
<view class="home_wrapper u-text-center">
<view class="home_logo_wrapper">
<u-image width="200rpx" height="200rpx" src="/static/logo.png"></u-image>
</view>
<view class="home_title_wrapper">{{ config.title }}</view>
</view>
</template>
<style scoped>
.home_title_wrapper {
margin: 10rpx 0;
}
.home_logo_wrapper {
width: 200rpx;
height: 200rpx;
margin: 0 auto;
}
.home_wrapper {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style>

Loading…
Cancel
Save