This commit is contained in:
parent
73b4a0e3ef
commit
3382462036
|
@ -0,0 +1,17 @@
|
||||||
|
import {http} from "../utils/http.js"
|
||||||
|
|
||||||
|
|
||||||
|
export function loginByCode(data){
|
||||||
|
return http({
|
||||||
|
url:"/api/wxLogin",
|
||||||
|
data,
|
||||||
|
method:'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function userInfo(){
|
||||||
|
return http({
|
||||||
|
url:"/api/getUserInfo",
|
||||||
|
method:'get'
|
||||||
|
})
|
||||||
|
}
|
3
main.js
3
main.js
|
@ -3,10 +3,13 @@ import App from './App'
|
||||||
// #ifndef VUE3
|
// #ifndef VUE3
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import './uni.promisify.adaptor'
|
import './uni.promisify.adaptor'
|
||||||
|
import msg from "./utils/msg.js"
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
App.mpType = 'app'
|
App.mpType = 'app'
|
||||||
|
Vue.prototype.$msg = msg
|
||||||
import uviewPlus from 'uview-plus'
|
import uviewPlus from 'uview-plus'
|
||||||
|
|
||||||
|
|
||||||
const app = new Vue({
|
const app = new Vue({
|
||||||
...App
|
...App
|
||||||
})
|
})
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
"quickapp" : {},
|
"quickapp" : {},
|
||||||
/* 小程序特有相关 */
|
/* 小程序特有相关 */
|
||||||
"mp-weixin" : {
|
"mp-weixin" : {
|
||||||
"appid" : "",
|
"appid" : "wx0beef2b22e05d3d1",
|
||||||
"setting" : {
|
"setting" : {
|
||||||
"urlCheck" : false
|
"urlCheck" : false
|
||||||
},
|
},
|
||||||
|
|
|
@ -28,6 +28,13 @@
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"disableScroll": false
|
"disableScroll": false
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/user/login",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "登录",
|
||||||
|
"navigationStyle": "default"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"globalStyle": {
|
"globalStyle": {
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
<template>
|
||||||
|
<view class="main">
|
||||||
|
<view class="" style="width: 80%;margin: 0 auto;">
|
||||||
|
<up-button type="primary" @click="login" text="登录"></up-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
loginByCode
|
||||||
|
} from "@/comm/api.js"
|
||||||
|
import {setToken} from "@/utils/Auth.js"
|
||||||
|
async function login() {
|
||||||
|
const __this = this
|
||||||
|
uni.login({
|
||||||
|
provider: "weixin",
|
||||||
|
async success(e) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const resp = await loginByCode({
|
||||||
|
code: e.code
|
||||||
|
})
|
||||||
|
console.log(resp)
|
||||||
|
uni.showToast({
|
||||||
|
icon:"none",
|
||||||
|
title:"登录成功"
|
||||||
|
})
|
||||||
|
setToken(resp.token)
|
||||||
|
setTimeout(()=>{
|
||||||
|
uni.switchTab({
|
||||||
|
url:"/pages/user/user"
|
||||||
|
})
|
||||||
|
},800)
|
||||||
|
}catch(err){
|
||||||
|
uni.showToast({
|
||||||
|
icon:"none",
|
||||||
|
title:"登录失败"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.main {
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -4,10 +4,10 @@
|
||||||
reactive
|
reactive
|
||||||
} from 'vue';
|
} from 'vue';
|
||||||
import {
|
import {
|
||||||
onLoad
|
onLoad,onShow
|
||||||
} from "@dcloudio/uni-app"
|
} from "@dcloudio/uni-app"
|
||||||
|
import {isLogin,getToken} from "../../utils/Auth.js"
|
||||||
|
import {loginByCode,userInfo} from "@/comm/api.js"
|
||||||
const serviceList = reactive([{
|
const serviceList = reactive([{
|
||||||
title: "个人信息",
|
title: "个人信息",
|
||||||
thumb: '/static/icon/icon_wdgrxx.png',
|
thumb: '/static/icon/icon_wdgrxx.png',
|
||||||
|
@ -25,9 +25,24 @@
|
||||||
avatar: "/static/icon/tx.png",
|
avatar: "/static/icon/tx.png",
|
||||||
nickName: "点击登录"
|
nickName: "点击登录"
|
||||||
})
|
})
|
||||||
|
function gologin(){
|
||||||
|
console.log(getToken())
|
||||||
|
if(isLogin()){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
uni.navigateTo({
|
||||||
|
url:"/pages/user/login"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
async function getUserInfo(){
|
||||||
|
const resp = await userInfo()
|
||||||
|
console.log(resp)
|
||||||
|
user.value = resp.data
|
||||||
|
}
|
||||||
|
onShow(()=>{
|
||||||
|
getUserInfo()
|
||||||
|
})
|
||||||
onLoad(() => {
|
onLoad(() => {
|
||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -36,13 +51,13 @@
|
||||||
<view class="top-back">
|
<view class="top-back">
|
||||||
<text class="page-title">我的</text>
|
<text class="page-title">我的</text>
|
||||||
<view class="info-box" @click="gologin">
|
<view class="info-box" @click="gologin">
|
||||||
<image :src="user.avatar||'/static/icon/tx.png'" mode="scaleToFill"></image>
|
<image :src="user.profilePicture||'/static/icon/tx.png'" mode="scaleToFill"></image>
|
||||||
<view class="text-box">
|
<view class="text-box">
|
||||||
<text class="nick-name">
|
<text class="nick-name">
|
||||||
{{user.nickName}}
|
{{user.username}}
|
||||||
</text>
|
</text>
|
||||||
<view class="tag">
|
<view class="tag">
|
||||||
{{user.phonenumber}}
|
{{user.phoneNumber}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -5,6 +5,7 @@ if (!Math) {
|
||||||
"./pages/index/index.js";
|
"./pages/index/index.js";
|
||||||
"./pages/news/news.js";
|
"./pages/news/news.js";
|
||||||
"./pages/user/user.js";
|
"./pages/user/user.js";
|
||||||
|
"./pages/user/login.js";
|
||||||
}
|
}
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
onLaunch: function() {
|
onLaunch: function() {
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
"pages": [
|
"pages": [
|
||||||
"pages/index/index",
|
"pages/index/index",
|
||||||
"pages/news/news",
|
"pages/news/news",
|
||||||
"pages/user/user"
|
"pages/user/user",
|
||||||
|
"pages/user/login"
|
||||||
],
|
],
|
||||||
"window": {
|
"window": {
|
||||||
"navigationBarTextStyle": "black",
|
"navigationBarTextStyle": "black",
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
"use strict";
|
||||||
|
const utils_http = require("../utils/http.js");
|
||||||
|
function loginByCode(data) {
|
||||||
|
return utils_http.http({
|
||||||
|
url: "/api/wxLogin",
|
||||||
|
data,
|
||||||
|
method: "post"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function userInfo() {
|
||||||
|
return utils_http.http({
|
||||||
|
url: "/api/getUserInfo",
|
||||||
|
method: "get"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.loginByCode = loginByCode;
|
||||||
|
exports.userInfo = userInfo;
|
|
@ -6872,6 +6872,7 @@ const createSubpackageApp = initCreateSubpackageApp();
|
||||||
const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
|
const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
|
||||||
!isInSSRComponentSetup && injectHook(lifecycle, hook, target);
|
!isInSSRComponentSetup && injectHook(lifecycle, hook, target);
|
||||||
};
|
};
|
||||||
|
const onShow = /* @__PURE__ */ createHook(ON_SHOW);
|
||||||
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
|
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
|
||||||
const version = "3";
|
const version = "3";
|
||||||
{
|
{
|
||||||
|
@ -8416,7 +8417,7 @@ const defProps = {
|
||||||
...Transition,
|
...Transition,
|
||||||
...Upload
|
...Upload
|
||||||
};
|
};
|
||||||
const props$d = {
|
const props$e = {
|
||||||
props: {
|
props: {
|
||||||
// 搜索框形状,round-圆形,square-方形
|
// 搜索框形状,round-圆形,square-方形
|
||||||
shape: {
|
shape: {
|
||||||
|
@ -9275,7 +9276,7 @@ const mixin = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$c = {
|
const props$d = {
|
||||||
props: {
|
props: {
|
||||||
// 列表数组,元素可为字符串,如为对象可通过keyName指定目标属性名
|
// 列表数组,元素可为字符串,如为对象可通过keyName指定目标属性名
|
||||||
list: {
|
list: {
|
||||||
|
@ -9400,7 +9401,7 @@ const props$c = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$b = {
|
const props$c = {
|
||||||
props: {
|
props: {
|
||||||
// 宫格的name
|
// 宫格的name
|
||||||
name: {
|
name: {
|
||||||
|
@ -9414,7 +9415,7 @@ const props$b = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$a = {
|
const props$b = {
|
||||||
props: {
|
props: {
|
||||||
// 分成几列
|
// 分成几列
|
||||||
col: {
|
col: {
|
||||||
|
@ -9433,7 +9434,7 @@ const props$a = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$9 = {
|
const props$a = {
|
||||||
props: {
|
props: {
|
||||||
// 主题颜色
|
// 主题颜色
|
||||||
type: {
|
type: {
|
||||||
|
@ -9655,7 +9656,7 @@ const openType = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$8 = {
|
const props$9 = {
|
||||||
props: {
|
props: {
|
||||||
// 头像图片路径(不能为相对路径)
|
// 头像图片路径(不能为相对路径)
|
||||||
src: {
|
src: {
|
||||||
|
@ -9733,7 +9734,7 @@ const props$8 = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$7 = {
|
const props$8 = {
|
||||||
props: {
|
props: {
|
||||||
// 标题
|
// 标题
|
||||||
title: {
|
title: {
|
||||||
|
@ -9843,7 +9844,7 @@ const props$7 = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$6 = {
|
const props$7 = {
|
||||||
props: {
|
props: {
|
||||||
// 用于滚动到指定item
|
// 用于滚动到指定item
|
||||||
anchor: {
|
anchor: {
|
||||||
|
@ -9852,7 +9853,7 @@ const props$6 = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const props$5 = {
|
const props$6 = {
|
||||||
props: {
|
props: {
|
||||||
// 控制是否出现滚动条,仅nvue有效
|
// 控制是否出现滚动条,仅nvue有效
|
||||||
showScrollbar: {
|
showScrollbar: {
|
||||||
|
@ -9951,6 +9952,176 @@ const props$5 = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const props$5 = {
|
||||||
|
props: {
|
||||||
|
// 是否细边框
|
||||||
|
hairline: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.hairline
|
||||||
|
},
|
||||||
|
// 按钮的预置样式,info,primary,error,warning,success
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.type
|
||||||
|
},
|
||||||
|
// 按钮尺寸,large,normal,small,mini
|
||||||
|
size: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.size
|
||||||
|
},
|
||||||
|
// 按钮形状,circle(两边为半圆),square(带圆角)
|
||||||
|
shape: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.shape
|
||||||
|
},
|
||||||
|
// 按钮是否镂空
|
||||||
|
plain: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.plain
|
||||||
|
},
|
||||||
|
// 是否禁止状态
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.disabled
|
||||||
|
},
|
||||||
|
// 是否加载中
|
||||||
|
loading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.loading
|
||||||
|
},
|
||||||
|
// 加载中提示文字
|
||||||
|
loadingText: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.loadingText
|
||||||
|
},
|
||||||
|
// 加载状态图标类型
|
||||||
|
loadingMode: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.loadingMode
|
||||||
|
},
|
||||||
|
// 加载图标大小
|
||||||
|
loadingSize: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.loadingSize
|
||||||
|
},
|
||||||
|
// 开放能力,具体请看uniapp稳定关于button组件部分说明
|
||||||
|
// https://uniapp.dcloud.io/component/button
|
||||||
|
openType: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.openType
|
||||||
|
},
|
||||||
|
// 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
|
||||||
|
// 取值为submit(提交表单),reset(重置表单)
|
||||||
|
formType: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.formType
|
||||||
|
},
|
||||||
|
// 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效
|
||||||
|
// 只微信小程序、QQ小程序有效
|
||||||
|
appParameter: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.appParameter
|
||||||
|
},
|
||||||
|
// 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效
|
||||||
|
hoverStopPropagation: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.hoverStopPropagation
|
||||||
|
},
|
||||||
|
// 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效
|
||||||
|
lang: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.lang
|
||||||
|
},
|
||||||
|
// 会话来源,open-type="contact"时有效。只微信小程序有效
|
||||||
|
sessionFrom: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.sessionFrom
|
||||||
|
},
|
||||||
|
// 会话内消息卡片标题,open-type="contact"时有效
|
||||||
|
// 默认当前标题,只微信小程序有效
|
||||||
|
sendMessageTitle: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.sendMessageTitle
|
||||||
|
},
|
||||||
|
// 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效
|
||||||
|
// 默认当前分享路径,只微信小程序有效
|
||||||
|
sendMessagePath: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.sendMessagePath
|
||||||
|
},
|
||||||
|
// 会话内消息卡片图片,open-type="contact"时有效
|
||||||
|
// 默认当前页面截图,只微信小程序有效
|
||||||
|
sendMessageImg: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.sendMessageImg
|
||||||
|
},
|
||||||
|
// 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,
|
||||||
|
// 用户点击后可以快速发送小程序消息,open-type="contact"时有效
|
||||||
|
showMessageCard: {
|
||||||
|
type: Boolean,
|
||||||
|
default: () => defProps.button.showMessageCard
|
||||||
|
},
|
||||||
|
// 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取
|
||||||
|
dataName: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.dataName
|
||||||
|
},
|
||||||
|
// 节流,一定时间内只能触发一次
|
||||||
|
throttleTime: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.throttleTime
|
||||||
|
},
|
||||||
|
// 按住后多久出现点击态,单位毫秒
|
||||||
|
hoverStartTime: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.hoverStartTime
|
||||||
|
},
|
||||||
|
// 手指松开后点击态保留时间,单位毫秒
|
||||||
|
hoverStayTime: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.hoverStayTime
|
||||||
|
},
|
||||||
|
// 按钮文字,之所以通过props传入,是因为slot传入的话
|
||||||
|
// nvue中无法控制文字的样式
|
||||||
|
text: {
|
||||||
|
type: [String, Number],
|
||||||
|
default: () => defProps.button.text
|
||||||
|
},
|
||||||
|
// 按钮图标
|
||||||
|
icon: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.icon
|
||||||
|
},
|
||||||
|
// 按钮图标
|
||||||
|
iconColor: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.icon
|
||||||
|
},
|
||||||
|
// 按钮颜色,支持传入linear-gradient渐变色
|
||||||
|
color: {
|
||||||
|
type: String,
|
||||||
|
default: () => defProps.button.color
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let flag;
|
||||||
|
function throttle(func2, wait = 500, immediate = true) {
|
||||||
|
if (immediate) {
|
||||||
|
if (!flag) {
|
||||||
|
flag = true;
|
||||||
|
typeof func2 === "function" && func2();
|
||||||
|
setTimeout(() => {
|
||||||
|
flag = false;
|
||||||
|
}, wait);
|
||||||
|
}
|
||||||
|
} else if (!flag) {
|
||||||
|
flag = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
flag = false;
|
||||||
|
typeof func2 === "function" && func2();
|
||||||
|
}, wait);
|
||||||
|
}
|
||||||
|
}
|
||||||
const icons = {
|
const icons = {
|
||||||
"uicon-level": "",
|
"uicon-level": "",
|
||||||
"uicon-column-line": "",
|
"uicon-column-line": "",
|
||||||
|
@ -10502,6 +10673,7 @@ exports._export_sfc = _export_sfc;
|
||||||
exports.addStyle = addStyle;
|
exports.addStyle = addStyle;
|
||||||
exports.addUnit = addUnit;
|
exports.addUnit = addUnit;
|
||||||
exports.button = button;
|
exports.button = button;
|
||||||
|
exports.color = color;
|
||||||
exports.colorGradient = colorGradient;
|
exports.colorGradient = colorGradient;
|
||||||
exports.config = config;
|
exports.config = config;
|
||||||
exports.createSSRApp = createSSRApp;
|
exports.createSSRApp = createSSRApp;
|
||||||
|
@ -10517,22 +10689,24 @@ exports.mpMixin = mpMixin;
|
||||||
exports.n = n;
|
exports.n = n;
|
||||||
exports.o = o;
|
exports.o = o;
|
||||||
exports.onLoad = onLoad;
|
exports.onLoad = onLoad;
|
||||||
|
exports.onShow = onShow;
|
||||||
exports.openType = openType;
|
exports.openType = openType;
|
||||||
exports.p = p;
|
exports.p = p;
|
||||||
exports.props = props$d;
|
exports.props = props$e;
|
||||||
exports.props$1 = props$c;
|
exports.props$1 = props$d;
|
||||||
exports.props$10 = props$3;
|
exports.props$10 = props$4;
|
||||||
exports.props$11 = props$2;
|
exports.props$11 = props$3;
|
||||||
exports.props$12 = props$1;
|
exports.props$12 = props$2;
|
||||||
exports.props$13 = props;
|
exports.props$13 = props$1;
|
||||||
exports.props$2 = props$b;
|
exports.props$14 = props;
|
||||||
exports.props$3 = props$a;
|
exports.props$2 = props$c;
|
||||||
exports.props$4 = props$9;
|
exports.props$3 = props$b;
|
||||||
exports.props$5 = props$8;
|
exports.props$4 = props$a;
|
||||||
exports.props$6 = props$7;
|
exports.props$5 = props$9;
|
||||||
exports.props$7 = props$6;
|
exports.props$6 = props$8;
|
||||||
exports.props$8 = props$5;
|
exports.props$7 = props$7;
|
||||||
exports.props$9 = props$4;
|
exports.props$8 = props$6;
|
||||||
|
exports.props$9 = props$5;
|
||||||
exports.random = random;
|
exports.random = random;
|
||||||
exports.reactive = reactive;
|
exports.reactive = reactive;
|
||||||
exports.ref = ref;
|
exports.ref = ref;
|
||||||
|
@ -10542,5 +10716,6 @@ exports.sleep = sleep;
|
||||||
exports.sys = sys;
|
exports.sys = sys;
|
||||||
exports.t = t;
|
exports.t = t;
|
||||||
exports.test = test;
|
exports.test = test;
|
||||||
|
exports.throttle = throttle;
|
||||||
exports.toast = toast;
|
exports.toast = toast;
|
||||||
exports.value = value;
|
exports.value = value;
|
||||||
|
|
199
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js
vendored
Normal file
199
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.js
vendored
Normal file
|
@ -0,0 +1,199 @@
|
||||||
|
"use strict";
|
||||||
|
const common_vendor = require("../../../../common/vendor.js");
|
||||||
|
const _sfc_main = {
|
||||||
|
name: "u-button",
|
||||||
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.button, common_vendor.openType, common_vendor.props$9],
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
// 生成bem风格的类名
|
||||||
|
bemClass() {
|
||||||
|
if (!this.color) {
|
||||||
|
return this.bem(
|
||||||
|
"button",
|
||||||
|
["type", "shape", "size"],
|
||||||
|
["disabled", "plain", "hairline"]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return this.bem(
|
||||||
|
"button",
|
||||||
|
["shape", "size"],
|
||||||
|
["disabled", "plain", "hairline"]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
loadingColor() {
|
||||||
|
if (this.plain) {
|
||||||
|
return this.color ? this.color : common_vendor.color[`u-${this.type}`];
|
||||||
|
}
|
||||||
|
if (this.type === "info") {
|
||||||
|
return "#c9c9c9";
|
||||||
|
}
|
||||||
|
return "rgb(200, 200, 200)";
|
||||||
|
},
|
||||||
|
iconColorCom() {
|
||||||
|
if (this.iconColor)
|
||||||
|
return this.iconColor;
|
||||||
|
if (this.plain) {
|
||||||
|
return this.color ? this.color : this.type;
|
||||||
|
} else {
|
||||||
|
return this.type === "info" ? "#000000" : "#ffffff";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
baseColor() {
|
||||||
|
let style = {};
|
||||||
|
if (this.color) {
|
||||||
|
style.color = this.plain ? this.color : "white";
|
||||||
|
if (!this.plain) {
|
||||||
|
style["background-color"] = this.color;
|
||||||
|
}
|
||||||
|
if (this.color.indexOf("gradient") !== -1) {
|
||||||
|
style.borderTopWidth = 0;
|
||||||
|
style.borderRightWidth = 0;
|
||||||
|
style.borderBottomWidth = 0;
|
||||||
|
style.borderLeftWidth = 0;
|
||||||
|
if (!this.plain) {
|
||||||
|
style.backgroundImage = this.color;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
style.borderColor = this.color;
|
||||||
|
style.borderWidth = "1px";
|
||||||
|
style.borderStyle = "solid";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return style;
|
||||||
|
},
|
||||||
|
// nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置
|
||||||
|
nvueTextStyle() {
|
||||||
|
let style = {};
|
||||||
|
if (this.type === "info") {
|
||||||
|
style.color = "#323233";
|
||||||
|
}
|
||||||
|
if (this.color) {
|
||||||
|
style.color = this.plain ? this.color : "white";
|
||||||
|
}
|
||||||
|
style.fontSize = this.textSize + "px";
|
||||||
|
return style;
|
||||||
|
},
|
||||||
|
// 字体大小
|
||||||
|
textSize() {
|
||||||
|
let fontSize = 14, { size } = this;
|
||||||
|
if (size === "large")
|
||||||
|
fontSize = 16;
|
||||||
|
if (size === "normal")
|
||||||
|
fontSize = 14;
|
||||||
|
if (size === "small")
|
||||||
|
fontSize = 12;
|
||||||
|
if (size === "mini")
|
||||||
|
fontSize = 10;
|
||||||
|
return fontSize;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
emits: [
|
||||||
|
"click",
|
||||||
|
"getphonenumber",
|
||||||
|
"getuserinfo",
|
||||||
|
"error",
|
||||||
|
"opensetting",
|
||||||
|
"launchapp",
|
||||||
|
"agreeprivacyauthorization"
|
||||||
|
],
|
||||||
|
methods: {
|
||||||
|
addStyle: common_vendor.addStyle,
|
||||||
|
clickHandler() {
|
||||||
|
if (!this.disabled && !this.loading) {
|
||||||
|
common_vendor.throttle(() => {
|
||||||
|
this.$emit("click");
|
||||||
|
}, this.throttleTime);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 下面为对接uniapp官方按钮开放能力事件回调的对接
|
||||||
|
getphonenumber(res) {
|
||||||
|
this.$emit("getphonenumber", res);
|
||||||
|
},
|
||||||
|
getuserinfo(res) {
|
||||||
|
this.$emit("getuserinfo", res);
|
||||||
|
},
|
||||||
|
error(res) {
|
||||||
|
this.$emit("error", res);
|
||||||
|
},
|
||||||
|
opensetting(res) {
|
||||||
|
this.$emit("opensetting", res);
|
||||||
|
},
|
||||||
|
launchapp(res) {
|
||||||
|
this.$emit("launchapp", res);
|
||||||
|
},
|
||||||
|
agreeprivacyauthorization(res) {
|
||||||
|
this.$emit("agreeprivacyauthorization", res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (!Array) {
|
||||||
|
const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon");
|
||||||
|
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
|
||||||
|
(_easycom_u_loading_icon2 + _easycom_u_icon2)();
|
||||||
|
}
|
||||||
|
const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js";
|
||||||
|
const _easycom_u_icon = () => "../u-icon/u-icon.js";
|
||||||
|
if (!Math) {
|
||||||
|
(_easycom_u_loading_icon + _easycom_u_icon)();
|
||||||
|
}
|
||||||
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
|
return common_vendor.e({
|
||||||
|
a: _ctx.loading
|
||||||
|
}, _ctx.loading ? {
|
||||||
|
b: common_vendor.p({
|
||||||
|
mode: _ctx.loadingMode,
|
||||||
|
size: _ctx.loadingSize * 1.15,
|
||||||
|
color: $options.loadingColor
|
||||||
|
}),
|
||||||
|
c: common_vendor.t(_ctx.loadingText || _ctx.text),
|
||||||
|
d: common_vendor.s({
|
||||||
|
fontSize: $options.textSize + "px"
|
||||||
|
})
|
||||||
|
} : common_vendor.e({
|
||||||
|
e: _ctx.icon
|
||||||
|
}, _ctx.icon ? {
|
||||||
|
f: common_vendor.p({
|
||||||
|
name: _ctx.icon,
|
||||||
|
color: $options.iconColorCom,
|
||||||
|
size: $options.textSize * 1.35,
|
||||||
|
customStyle: {
|
||||||
|
marginRight: "2px"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} : {}, {
|
||||||
|
g: common_vendor.t(_ctx.text),
|
||||||
|
h: common_vendor.s({
|
||||||
|
fontSize: $options.textSize + "px"
|
||||||
|
})
|
||||||
|
}), {
|
||||||
|
i: Number(_ctx.hoverStartTime),
|
||||||
|
j: Number(_ctx.hoverStayTime),
|
||||||
|
k: _ctx.formType,
|
||||||
|
l: _ctx.openType,
|
||||||
|
m: _ctx.appParameter,
|
||||||
|
n: _ctx.hoverStopPropagation,
|
||||||
|
o: _ctx.sendMessageTitle,
|
||||||
|
p: _ctx.sendMessagePath,
|
||||||
|
q: _ctx.lang,
|
||||||
|
r: _ctx.dataName,
|
||||||
|
s: _ctx.sessionFrom,
|
||||||
|
t: _ctx.sendMessageImg,
|
||||||
|
v: _ctx.showMessageCard,
|
||||||
|
w: common_vendor.o((...args) => $options.getphonenumber && $options.getphonenumber(...args)),
|
||||||
|
x: common_vendor.o((...args) => $options.getuserinfo && $options.getuserinfo(...args)),
|
||||||
|
y: common_vendor.o((...args) => $options.error && $options.error(...args)),
|
||||||
|
z: common_vendor.o((...args) => $options.opensetting && $options.opensetting(...args)),
|
||||||
|
A: common_vendor.o((...args) => $options.launchapp && $options.launchapp(...args)),
|
||||||
|
B: common_vendor.o((...args) => $options.agreeprivacyauthorization && $options.agreeprivacyauthorization(...args)),
|
||||||
|
C: !_ctx.disabled && !_ctx.loading ? "u-button--active" : "",
|
||||||
|
D: common_vendor.s($options.baseColor),
|
||||||
|
E: common_vendor.s($options.addStyle(_ctx.customStyle)),
|
||||||
|
F: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
|
||||||
|
G: common_vendor.n($options.bemClass)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-461e713c"], ["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/node_modules/uview-plus/components/u-button/u-button.vue"]]);
|
||||||
|
wx.createComponent(Component);
|
7
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json
vendored
Normal file
7
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.json
vendored
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"component": true,
|
||||||
|
"usingComponents": {
|
||||||
|
"u-loading-icon": "../u-loading-icon/u-loading-icon",
|
||||||
|
"u-icon": "../u-icon/u-icon"
|
||||||
|
}
|
||||||
|
}
|
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml
vendored
Normal file
1
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<button hover-start-time="{{i}}" hover-stay-time="{{j}}" form-type="{{k}}" open-type="{{l}}" app-parameter="{{m}}" hover-stop-propagation="{{n}}" send-message-title="{{o}}" send-message-path="{{p}}" lang="{{q}}" data-name="{{r}}" session-from="{{s}}" send-message-img="{{t}}" show-message-card="{{v}}" bindgetphonenumber="{{w}}" bindgetuserinfo="{{x}}" binderror="{{y}}" bindopensetting="{{z}}" bindlaunchapp="{{A}}" bindagreeprivacyauthorization="{{B}}" hover-class="{{C}}" style="{{D + ';' + E}}" bindtap="{{F}}" class="{{['u-button', 'u-reset-button', 'data-v-461e713c', G]}}"><block wx:if="{{a}}"><u-loading-icon wx:if="{{b}}" class="data-v-461e713c" u-i="461e713c-0" bind:__l="__l" u-p="{{b}}"></u-loading-icon><text class="u-button__loading-text data-v-461e713c" style="{{d}}">{{c}}</text></block><block wx:else><u-icon wx:if="{{e}}" class="data-v-461e713c" u-i="461e713c-1" bind:__l="__l" u-p="{{f}}"></u-icon><block wx:if="{{$slots.d}}"><slot></slot></block><block wx:else><text class="u-button__text data-v-461e713c" style="{{h}}">{{g}}</text></block></block></button>
|
188
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss
vendored
Normal file
188
unpackage/dist/dev/mp-weixin/node-modules/uview-plus/components/u-button/u-button.wxss
vendored
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
/**
|
||||||
|
* 这里是uni-app内置的常用样式变量
|
||||||
|
*
|
||||||
|
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||||
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||||
|
*
|
||||||
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||||
|
*/
|
||||||
|
/* 颜色变量 */
|
||||||
|
/* 行为相关颜色 */
|
||||||
|
/* 文字基本颜色 */
|
||||||
|
/* 背景颜色 */
|
||||||
|
/* 边框颜色 */
|
||||||
|
/* 尺寸变量 */
|
||||||
|
/* 文字尺寸 */
|
||||||
|
/* 图片尺寸 */
|
||||||
|
/* Border Radius */
|
||||||
|
/* 水平间距 */
|
||||||
|
/* 垂直间距 */
|
||||||
|
/* 透明度 */
|
||||||
|
/* 文章场景相关 */
|
||||||
|
.u-empty.data-v-461e713c,
|
||||||
|
.u-empty__wrap.data-v-461e713c,
|
||||||
|
.u-tabs.data-v-461e713c,
|
||||||
|
.u-tabs__wrapper.data-v-461e713c,
|
||||||
|
.u-tabs__wrapper__scroll-view-wrapper.data-v-461e713c,
|
||||||
|
.u-tabs__wrapper__scroll-view.data-v-461e713c,
|
||||||
|
.u-tabs__wrapper__nav.data-v-461e713c,
|
||||||
|
.u-tabs__wrapper__nav__line.data-v-461e713c {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex-shrink: 0;
|
||||||
|
flex-grow: 0;
|
||||||
|
flex-basis: auto;
|
||||||
|
align-items: stretch;
|
||||||
|
align-content: flex-start;
|
||||||
|
}
|
||||||
|
.u-button.data-v-461e713c {
|
||||||
|
width: 100%;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.u-button__text.data-v-461e713c {
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
.u-button.data-v-461e713c:before {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: inherit;
|
||||||
|
border-radius: inherit;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
opacity: 0;
|
||||||
|
content: " ";
|
||||||
|
background-color: #000;
|
||||||
|
border-color: #000;
|
||||||
|
}
|
||||||
|
.u-button--active.data-v-461e713c:before {
|
||||||
|
opacity: 0.15;
|
||||||
|
}
|
||||||
|
.u-button__icon + .u-button__text.data-v-461e713c:not(:empty), .u-button__loading-text.data-v-461e713c {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.u-button--plain.u-button--primary.data-v-461e713c {
|
||||||
|
color: #3c9cff;
|
||||||
|
}
|
||||||
|
.u-button--plain.u-button--info.data-v-461e713c {
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
.u-button--plain.u-button--success.data-v-461e713c {
|
||||||
|
color: #5ac725;
|
||||||
|
}
|
||||||
|
.u-button--plain.u-button--error.data-v-461e713c {
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
.u-button--plain.u-button--warning.data-v-461e713c {
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
.u-button.data-v-461e713c {
|
||||||
|
height: 40px;
|
||||||
|
position: relative;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
box-sizing: border-box;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
.u-button__text.data-v-461e713c {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.u-button__loading-text.data-v-461e713c {
|
||||||
|
font-size: 15px;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.u-button--large.data-v-461e713c {
|
||||||
|
width: 100%;
|
||||||
|
height: 50px;
|
||||||
|
padding: 0 15px;
|
||||||
|
}
|
||||||
|
.u-button--normal.data-v-461e713c {
|
||||||
|
padding: 0 12px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.u-button--small.data-v-461e713c {
|
||||||
|
min-width: 60px;
|
||||||
|
height: 30px;
|
||||||
|
padding: 0px 8px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.u-button--mini.data-v-461e713c {
|
||||||
|
height: 22px;
|
||||||
|
font-size: 10px;
|
||||||
|
min-width: 50px;
|
||||||
|
padding: 0px 8px;
|
||||||
|
}
|
||||||
|
.u-button--disabled.data-v-461e713c {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
.u-button--info.data-v-461e713c {
|
||||||
|
color: #323233;
|
||||||
|
background-color: #fff;
|
||||||
|
border-color: #ebedf0;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.u-button--success.data-v-461e713c {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #5ac725;
|
||||||
|
border-color: #5ac725;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.u-button--primary.data-v-461e713c {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #3c9cff;
|
||||||
|
border-color: #3c9cff;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.u-button--error.data-v-461e713c {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #f56c6c;
|
||||||
|
border-color: #f56c6c;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.u-button--warning.data-v-461e713c {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #f9ae3d;
|
||||||
|
border-color: #f9ae3d;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
}
|
||||||
|
.u-button--block.data-v-461e713c {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.u-button--circle.data-v-461e713c {
|
||||||
|
border-top-right-radius: 100px;
|
||||||
|
border-top-left-radius: 100px;
|
||||||
|
border-bottom-left-radius: 100px;
|
||||||
|
border-bottom-right-radius: 100px;
|
||||||
|
}
|
||||||
|
.u-button--square.data-v-461e713c {
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.u-button__icon.data-v-461e713c {
|
||||||
|
min-width: 1em;
|
||||||
|
line-height: inherit !important;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.u-button--plain.data-v-461e713c {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
.u-button--hairline.data-v-461e713c {
|
||||||
|
border-width: 0.5px !important;
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ const _sfc_main = {
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
emits: ["click"],
|
emits: ["click"],
|
||||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$9],
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10],
|
||||||
computed: {
|
computed: {
|
||||||
uClasses() {
|
uClasses() {
|
||||||
let classes = [];
|
let classes = [];
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
const common_vendor = require("../../../../common/vendor.js");
|
const common_vendor = require("../../../../common/vendor.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "u-line",
|
name: "u-line",
|
||||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$13],
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$14],
|
||||||
computed: {
|
computed: {
|
||||||
lineStyle() {
|
lineStyle() {
|
||||||
const style = {};
|
const style = {};
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
const common_vendor = require("../../../../common/vendor.js");
|
const common_vendor = require("../../../../common/vendor.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "u-link",
|
name: "u-link",
|
||||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$12],
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$13],
|
||||||
computed: {
|
computed: {
|
||||||
linkStyle() {
|
linkStyle() {
|
||||||
const style = {
|
const style = {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
const common_vendor = require("../../../../common/vendor.js");
|
const common_vendor = require("../../../../common/vendor.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "u-loading-icon",
|
name: "u-loading-icon",
|
||||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$10],
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$11],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// Array.form可以通过一个伪数组对象创建指定长度的数组
|
// Array.form可以通过一个伪数组对象创建指定长度的数组
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
const common_vendor = require("../../../../common/vendor.js");
|
const common_vendor = require("../../../../common/vendor.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "u-swiper-indicator",
|
name: "u-swiper-indicator",
|
||||||
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$11],
|
mixins: [common_vendor.mpMixin, common_vendor.mixin, common_vendor.props$12],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
lineWidth: 22
|
lineWidth: 22
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
"use strict";
|
||||||
|
const common_vendor = require("../../common/vendor.js");
|
||||||
|
const comm_api = require("../../comm/api.js");
|
||||||
|
const utils_Auth = require("../../utils/Auth.js");
|
||||||
|
require("../../utils/http.js");
|
||||||
|
if (!Array) {
|
||||||
|
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
|
||||||
|
_easycom_up_button2();
|
||||||
|
}
|
||||||
|
const _easycom_up_button = () => "../../node-modules/uview-plus/components/u-button/u-button.js";
|
||||||
|
if (!Math) {
|
||||||
|
_easycom_up_button();
|
||||||
|
}
|
||||||
|
const _sfc_main = {
|
||||||
|
__name: "login",
|
||||||
|
setup(__props) {
|
||||||
|
async function login() {
|
||||||
|
common_vendor.index.login({
|
||||||
|
provider: "weixin",
|
||||||
|
async success(e) {
|
||||||
|
try {
|
||||||
|
const resp = await comm_api.loginByCode({
|
||||||
|
code: e.code
|
||||||
|
});
|
||||||
|
console.log(resp);
|
||||||
|
common_vendor.index.showToast({
|
||||||
|
icon: "none",
|
||||||
|
title: "登录成功"
|
||||||
|
});
|
||||||
|
utils_Auth.setToken(resp.token);
|
||||||
|
setTimeout(() => {
|
||||||
|
common_vendor.index.switchTab({
|
||||||
|
url: "/pages/user/user"
|
||||||
|
});
|
||||||
|
}, 800);
|
||||||
|
} catch (err) {
|
||||||
|
common_vendor.index.showToast({
|
||||||
|
icon: "none",
|
||||||
|
title: "登录失败"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return (_ctx, _cache) => {
|
||||||
|
return {
|
||||||
|
a: common_vendor.o(login),
|
||||||
|
b: common_vendor.p({
|
||||||
|
type: "primary",
|
||||||
|
text: "登录"
|
||||||
|
})
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "C:/Users/33043/Desktop/文件/work/newStud学习/greenStu/pages/user/login.vue"]]);
|
||||||
|
wx.createPage(MiniProgramPage);
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"navigationBarTitleText": "登录",
|
||||||
|
"navigationStyle": "default",
|
||||||
|
"usingComponents": {
|
||||||
|
"up-button": "../../node-modules/uview-plus/components/u-button/u-button"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
<view class="main"><view class="" style="width:80%;margin:0 auto"><up-button wx:if="{{b}}" bindclick="{{a}}" u-i="35531eb2-0" bind:__l="__l" u-p="{{b}}"></up-button></view></view>
|
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
.main {
|
||||||
|
height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
|
@ -1,5 +1,8 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
const common_vendor = require("../../common/vendor.js");
|
const common_vendor = require("../../common/vendor.js");
|
||||||
|
const utils_Auth = require("../../utils/Auth.js");
|
||||||
|
const comm_api = require("../../comm/api.js");
|
||||||
|
require("../../utils/http.js");
|
||||||
if (!Array) {
|
if (!Array) {
|
||||||
const _easycom_up_avatar2 = common_vendor.resolveComponent("up-avatar");
|
const _easycom_up_avatar2 = common_vendor.resolveComponent("up-avatar");
|
||||||
const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell");
|
const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell");
|
||||||
|
@ -33,14 +36,31 @@ const _sfc_main = {
|
||||||
avatar: "/static/icon/tx.png",
|
avatar: "/static/icon/tx.png",
|
||||||
nickName: "点击登录"
|
nickName: "点击登录"
|
||||||
});
|
});
|
||||||
|
function gologin() {
|
||||||
|
console.log(utils_Auth.getToken());
|
||||||
|
if (utils_Auth.isLogin()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
common_vendor.index.navigateTo({
|
||||||
|
url: "/pages/user/login"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function getUserInfo() {
|
||||||
|
const resp = await comm_api.userInfo();
|
||||||
|
console.log(resp);
|
||||||
|
user.value = resp.data;
|
||||||
|
}
|
||||||
|
common_vendor.onShow(() => {
|
||||||
|
getUserInfo();
|
||||||
|
});
|
||||||
common_vendor.onLoad(() => {
|
common_vendor.onLoad(() => {
|
||||||
});
|
});
|
||||||
return (_ctx, _cache) => {
|
return (_ctx, _cache) => {
|
||||||
return {
|
return {
|
||||||
a: user.value.avatar || "/static/icon/tx.png",
|
a: user.value.profilePicture || "/static/icon/tx.png",
|
||||||
b: common_vendor.t(user.value.nickName),
|
b: common_vendor.t(user.value.username),
|
||||||
c: common_vendor.t(user.value.phonenumber),
|
c: common_vendor.t(user.value.phoneNumber),
|
||||||
d: common_vendor.o((...args) => _ctx.gologin && _ctx.gologin(...args)),
|
d: common_vendor.o(gologin),
|
||||||
e: common_vendor.f(serviceList, (item, index, i0) => {
|
e: common_vendor.f(serviceList, (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: "0f7520f0-3-" + i0 + "," + ("0f7520f0-2-" + i0),
|
a: "0f7520f0-3-" + i0 + "," + ("0f7520f0-2-" + i0),
|
||||||
|
|
|
@ -15,11 +15,12 @@
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"disablePlugins": [],
|
"disablePlugins": [],
|
||||||
"outputPath": ""
|
"outputPath": ""
|
||||||
}
|
},
|
||||||
|
"ignoreUploadUnusedFiles": false
|
||||||
},
|
},
|
||||||
"compileType": "miniprogram",
|
"compileType": "miniprogram",
|
||||||
"libVersion": "3.4.6",
|
"libVersion": "3.4.6",
|
||||||
"appid": "touristappid",
|
"appid": "wx0beef2b22e05d3d1",
|
||||||
"projectname": "greenStu",
|
"projectname": "greenStu",
|
||||||
"condition": {},
|
"condition": {},
|
||||||
"editorSetting": {
|
"editorSetting": {
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
"use strict";
|
||||||
|
const common_vendor = require("../common/vendor.js");
|
||||||
|
var Admin = "token";
|
||||||
|
function setToken(token) {
|
||||||
|
common_vendor.index.setStorageSync(Admin, token);
|
||||||
|
}
|
||||||
|
function getToken() {
|
||||||
|
return common_vendor.index.getStorageSync(Admin);
|
||||||
|
}
|
||||||
|
function isLogin() {
|
||||||
|
return common_vendor.index.getStorageSync(Admin) ? true : false;
|
||||||
|
}
|
||||||
|
exports.getToken = getToken;
|
||||||
|
exports.isLogin = isLogin;
|
||||||
|
exports.setToken = setToken;
|
|
@ -0,0 +1,37 @@
|
||||||
|
"use strict";
|
||||||
|
const common_vendor = require("../common/vendor.js");
|
||||||
|
const utils_Auth = require("./Auth.js");
|
||||||
|
const baseUrl = "http://127.0.0.1:8085";
|
||||||
|
const http = (option) => {
|
||||||
|
if (!option instanceof Object) {
|
||||||
|
throw "参数非法";
|
||||||
|
}
|
||||||
|
const { url, data } = option;
|
||||||
|
const token = utils_Auth.getToken();
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
common_vendor.index.request({
|
||||||
|
header: {
|
||||||
|
Authorization: token,
|
||||||
|
...option.header
|
||||||
|
},
|
||||||
|
url: baseUrl + url,
|
||||||
|
data,
|
||||||
|
method: option.method,
|
||||||
|
success(res) {
|
||||||
|
resolve(res.data);
|
||||||
|
if (res.data.code == 401) {
|
||||||
|
common_vendor.index.showToast({
|
||||||
|
icon: "none",
|
||||||
|
title: "请登录后使用该功能"
|
||||||
|
});
|
||||||
|
common_vendor.index.removeStorageSync("token");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log(err);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
exports.http = http;
|
|
@ -0,0 +1,14 @@
|
||||||
|
var Admin = "token"
|
||||||
|
export function setToken(token){
|
||||||
|
uni.setStorageSync(Admin,token)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export function getToken(){
|
||||||
|
return uni.getStorageSync(Admin)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isLogin(){
|
||||||
|
return uni.getStorageSync(Admin)?true:false
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
// export const baseUrl = "https://9miao.fun/prod-api/"
|
||||||
|
import {getToken} from "./Auth.js"
|
||||||
|
export const baseUrl = "http://127.0.0.1:8085"
|
||||||
|
export const http = (option) =>{
|
||||||
|
if (!option instanceof Object){
|
||||||
|
throw "参数非法"
|
||||||
|
}
|
||||||
|
const {url,data} = option
|
||||||
|
const token = getToken()
|
||||||
|
return new Promise((resolve,reject)=>{
|
||||||
|
|
||||||
|
uni.request({
|
||||||
|
header:{
|
||||||
|
Authorization:token,
|
||||||
|
...option.header
|
||||||
|
},
|
||||||
|
url:baseUrl+url,
|
||||||
|
data,
|
||||||
|
method:option.method,
|
||||||
|
|
||||||
|
success(res) {
|
||||||
|
resolve(res.data)
|
||||||
|
if(res.data.code==401){
|
||||||
|
uni.showToast({
|
||||||
|
icon:"none",
|
||||||
|
title:"请登录后使用该功能"
|
||||||
|
})
|
||||||
|
uni.removeStorageSync("token")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.log(err)
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function uploadFile(file) {
|
||||||
|
const token = uni.getStorageSync("token");
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
uni.uploadFile({
|
||||||
|
url: `${baseUrl}/common/alibabaUpload`,
|
||||||
|
filePath: file,
|
||||||
|
name: 'file',
|
||||||
|
header: {
|
||||||
|
Authorization: token,
|
||||||
|
},
|
||||||
|
success: (res) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve(res.data);
|
||||||
|
}, 1000);
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
console.log(err);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
import {
|
||||||
|
http
|
||||||
|
} from "./http.js"
|
||||||
|
const key = "ae9fa14b945ed3a3ff054e5a189a7478"
|
||||||
|
export function coordinateToLocation(longitude, latitude) {
|
||||||
|
return new Promise((resolve,reject)=>{
|
||||||
|
uni.request({
|
||||||
|
url: "https://restapi.amap.com/v3/geocode/regeo",
|
||||||
|
method: "get",
|
||||||
|
data: {
|
||||||
|
key: key,
|
||||||
|
location: `${longitude},${latitude}`
|
||||||
|
// coordsys: "gps"
|
||||||
|
},
|
||||||
|
success(res) {
|
||||||
|
console.log(res)
|
||||||
|
resolve(res)
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
reject(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
const showtitle =(msg)=>{
|
||||||
|
uni.showToast({
|
||||||
|
icon:"none",
|
||||||
|
title:msg
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default{
|
||||||
|
showtitle
|
||||||
|
}
|
Loading…
Reference in New Issue