Commit 2141fd7c 吴良建

移除无用代码

1 个父辈 f877171c
此文件的差异太大,无法显示。
{
"name": "jinqiusports",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "npm run dev:h5",
"build": "npm run build:h5",
"build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",
"build:custom": "cross-env NODE_ENV=production uniapp-cli custom",
"build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",
"build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build",
"build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build",
"build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build",
"build:mp-jd": "cross-env NODE_ENV=production UNI_PLATFORM=mp-jd vue-cli-service uni-build",
"build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build",
"build:mp-lark": "cross-env NODE_ENV=production UNI_PLATFORM=mp-lark vue-cli-service uni-build",
"build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build",
"build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build",
"build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build",
"build:mp-xhs": "cross-env NODE_ENV=production UNI_PLATFORM=mp-xhs vue-cli-service uni-build",
"build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build",
"build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build",
"build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build",
"build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build",
"dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch",
"dev:custom": "cross-env NODE_ENV=development uniapp-cli custom",
"dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve",
"dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch",
"dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch",
"dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch",
"dev:mp-jd": "cross-env NODE_ENV=development UNI_PLATFORM=mp-jd vue-cli-service uni-build --watch",
"dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch",
"dev:mp-lark": "cross-env NODE_ENV=development UNI_PLATFORM=mp-lark vue-cli-service uni-build --watch",
"dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch",
"dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch",
"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
"dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch",
"dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch",
"dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch",
"dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch",
"dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch",
"info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js",
"serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js",
"test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i",
"test:h5": "cross-env UNI_PLATFORM=h5 jest -i",
"test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i",
"test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i",
"test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i"
},
"dependencies": {
"@dcloudio/uni-app": "2.0.2-3070320230222001",
"@dcloudio/uni-app-plus": "2.0.2-3070320230222001",
"@dcloudio/uni-h5": "2.0.2-3070320230222001",
"@dcloudio/uni-i18n": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-360": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-alipay": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-baidu": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-jd": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-kuaishou": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-lark": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-qq": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-toutiao": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-vue": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-weixin": "2.0.2-3070320230222001",
"@dcloudio/uni-mp-xhs": "2.0.2-3070320230222001",
"@dcloudio/uni-quickapp-native": "2.0.2-3070320230222001",
"@dcloudio/uni-quickapp-webview": "2.0.2-3070320230222001",
"@dcloudio/uni-stacktracey": "2.0.2-3070320230222001",
"@dcloudio/uni-stat": "2.0.2-3070320230222001",
"@vue/shared": "3.2.47",
"core-js": "^3.6.5",
"flyio": "0.6.14",
"image-tools": "^1.4.0",
"moment": "^2.29.1",
"node-sass-install": "^1.0.2",
"sass-loader": "^7.3.1",
"uuid": "^3.3.2",
"vue": "^2.6.11",
"vue-property-decorator": "^8.0.0",
"vuex": "3.6.2"
},
"devDependencies": {
"@babel/plugin-syntax-typescript": "^7.2.0",
"@dcloudio/types": "^3.0.4",
"@dcloudio/uni-automator": "2.0.2-3070320230222001",
"@dcloudio/uni-cli-i18n": "2.0.2-3070320230222001",
"@dcloudio/uni-cli-shared": "2.0.2-3070320230222001",
"@dcloudio/uni-helper-json": "*",
"@dcloudio/uni-migration": "2.0.2-3070320230222001",
"@dcloudio/uni-template-compiler": "2.0.2-3070320230222001",
"@dcloudio/vue-cli-plugin-hbuilderx": "2.0.2-3070320230222001",
"@dcloudio/vue-cli-plugin-uni": "2.0.2-3070320230222001",
"@dcloudio/vue-cli-plugin-uni-optimize": "2.0.2-3070320230222001",
"@dcloudio/webpack-uni-mp-loader": "2.0.2-3070320230222001",
"@dcloudio/webpack-uni-pages-loader": "2.0.2-3070320230222001",
"@vue/cli-plugin-babel": "~4.5.19",
"@vue/cli-plugin-typescript": "~4.5.19",
"@vue/cli-service": "~4.5.19",
"babel-plugin-import": "1.13.6",
"cross-env": "7.0.3",
"jest": "25.5.4",
"mini-types": "*",
"miniprogram-api-typings": "*",
"postcss-comment": "^2.0.0",
"typescript": "~4.1.5",
"vue-template-compiler": "^2.6.11"
},
"browserslist": [
"Android >= 4.4",
"ios >= 9"
],
"uni-app": {
"scripts": {}
}
}
......@@ -55,7 +55,8 @@
"path": "pages/suggest/suggest",
"style": {
"navigationBarTitleText": "提建议",
"enablePullDownRefresh": false
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
......@@ -96,20 +97,20 @@
}
}
,{
"path" : "pages/test/test",
,{
"path" : "pages/login_apple/login_apple",
"style" :
{
"navigationBarTitleText": "",
"navigationBarTitleText": "登陆/注册",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/login_apple/login_apple",
"path" : "pages/user_agreement/user_agreement",
"style" :
{
"navigationBarTitleText": "登陆/注册",
"navigationBarTitleText": "隐私政策",
"enablePullDownRefresh": false
}
......
<template>
<view>
<view class="head-bg" :style="{'padding-top': statusBarHeight +'px'}">
<view style="align-items: center; display: flex; width: 100v; height: 5vh;">
<image src="../../static/common/icon_back.png" style="width: 34rpx; height: 34rpx; padding: 25rpx;"
v-on:click="onBack()" />
<text style="margin-left: 10rpx; color: white; align-self: center; font-size: 40rpx;">账号密码登陆</text>
</view>
</view>
<view class="input-group" style="margin-left: 35rpx; margin-right: 35rpx;">
<view class="input-row border">
<input class="m-input" type="text" clearable focus v-model="username" placeholder="请输入用户名/手机号"
style="padding-top: 20rpx; padding-bottom: 20rpx;" />
<view style=" height: 1px; background: #C6C6C6; "></view>
</view>
<view class="input-row border" style="padding-top: 10rpx;">
<input type="password" displayable v-model="password" placeholder="请输入密码"
style="padding-top: 20rpx; padding-bottom: 20rpx;" />
<view style=" height: 1px; background: #C6C6C6; "></view>
</view>
</view>
<view style="margin-top: 15rpx; margin-left: 35rpx;" @click="gotoCodeLogin()">
<text style="color: #4169E1; font-size: 28rpx;">切换验证码登陆</text>
</view>
<view class="btn-row">
<button style="background-color: transparent; color: white; " :loading="loginBtnLoading" @tap="bindLogin">
登录
</button>
</view>
<view style=" margin-left: 35rpx; display: flex; margin-top: 35rpx; align-items: center;">
<view @click="checkboxSelected()" :checked="agreeState"
:class="agreeState === true ? 'checkbox-check' : 'checkbox-uncheck'" />
<text style="font-size: 28rpx; color: #333333;">阅读并同意</text>
<text style="color: #4d90ff; font-size: 28rpx;" @click="onUserAgreement()">用户协议</text>
<text style="font-size: 28rpx; color: #333333;"></text>
<text style="color: #4d90ff; font-size: 28rpx;" @click="onPrivacyPolicy()">隐私政策</text>
</view>
</view>
</template>
<script>
import {
transformImageCodeToUri
} from "@/utils/image_utils.js";
import {
default as http
} from "@/utils/http.js";
import loginHelper from "../../utils/loginHelper.js"
export default {
data() {
return {
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
agreeState: false,
username: "",
password: "",
loginBtnLoading: false,
}
},
methods: {
async bindLogin() {
if (this.username.length < 3) {
uni.showToast({
icon: "none",
title: "账号最短为 3 个字符",
});
return;
}
if (this.password.length < 4) {
uni.showToast({
icon: "none",
title: "密码最短为 4 个字符",
});
return;
}
if (!this.agreeState) {
uni.showToast({
icon: "none",
title: "您还没有同意用户协议",
});
return;
}
this.loginBtnLoading = true;
let query_data = `mutation{
ydn_login(name:${JSON.stringify(this.username)},pass:${JSON.stringify(this.password)})
}`;
let result = await http.gql({
query: query_data
})
this.loginBtnLoading = false;
//处理返回请求
console.log("result:" + JSON.stringify(result))
if (result && result.data && result.data.ydn_login) {
if (!result.data.ydn_login.Error) {
result.data.ydn_login.Result.FaceImageCode = transformImageCodeToUri(result.data.ydn_login
.Result
.FaceImageCode);
loginHelper.login(result.data.ydn_login.Result , result.data.ydn_login.AppToken)
console.log("login")
uni.navigateBack();
return
} else {
uni.showToast({
icon: "none",
title: result.data.ydn_login.Error,
});
}
} else {
uni.showToast({
icon: "none",
title: "登录异常",
});
return;
}
},
onBack() {
uni.navigateBack()
},
gotoCodeLogin() {
uni.redirectTo({
url: '/pages/login_yzm/login_yzm'
})
},
checkboxSelected(e) {
this.agreeState = !this.agreeState;
},
onUserAgreement() {
let tempData = {
url: 'http://www.qianhaiyilan.cn/ppolicy_user.html',
title: "用户协议"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
})
},
onPrivacyPolicy() {
let tempData = {
url: 'http://www.qianhaiyilan.cn/ppolicy_app.html',
title: "隐私政策"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
})
}
}
}
</script>
<style>
</style>
<style>
.login-type-btn.act {
color: #ecab80;
border-bottom: solid 1px #ecab80;
}
.send-code-btn {
width: 120px;
text-align: center;
background-color: #ecab80;
color: #ffffff;
margin: 12px;
padding: 4px;
}
.action-row {
display: flex;
flex-direction: row;
justify-content: center;
margin-top: 15px;
}
.oauth-row {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-around;
flex-wrap: wrap;
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.oauth-image {
position: relative;
width: 50px;
height: 50px;
border: 1px solid #dddddd;
border-radius: 50px;
background-color: #ffffff;
}
.oauth-image image {
width: 30px;
height: 30px;
margin: 10px;
}
.oauth-image button {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: 0;
}
.btn-row {
margin-top: 15px;
margin-left: 35rpx;
margin-right: 35rpx;
background: linear-gradient(to right, #58B8FF, #32CDFF);
border-radius: 15rpx;
}
.head-bg {
flex-direction: column;
background: url('~@/static/login/head_zm.webp');
background-color: transparent;
background-repeat: no-repeat;
background-size: 50% 100%;
width: 100vh;
height: 15vh;
display: flex;
}
.uni-status-bar {
// width: 750rpx;
height: 20px;
// height: var(--status-bar-height);
}
.checkbox-check {
background-image: url(../../static/common/authsdk_checkbox_checked_bg.png);
background-repeat: no-repeat;
background-size: cover;
margin-right: 15rpx;
width: 35rpx;
height: 35rpx;
}
.checkbox-uncheck {
background-image: url(../../static/common/authsdk_checkbox_uncheck_bg.png);
width: 35rpx;
height: 35rpx;
margin-right: 15rpx;
background-repeat: no-repeat;
background-size: cover;
}
.m-input::input-placeholder {
color: #0000EE;
}
</style>
<template>
<view>
<view class="head-bg" :style="{'padding-top': statusBarHeight +'px'}">
<view style="align-items: center; display: flex; width: 100vh; height: 5vh;">
<image src="../../static/common/icon_back.png" style="width: 34rpx; height: 34rpx; padding: 25rpx;"
v-on:click="onBack()" />
<text style="margin-left: 10rpx; color: white; font-size: 40rpx;">验证码登陆</text>
</view>
</view>
<view class="input-group" style="margin-left: 35rpx; margin-right: 35rpx;">
<view class="input-row border">
<input class="m-input" type="text" clearable focus v-model="phoneNumber" placeholder="请输入手机号"
style="padding-top: 20rpx; padding-bottom: 20rpx;" />
<view style=" height: 1px; background: #C6C6C6; "></view>
</view>
<view class="input-row border" style=" display: flex; padding-top: 30rpx; padding-bottom: 20rpx;">
<input type="number" displayable v-model="phone_code" placeholder="请输入验证码" />
<button size="mini" style="background-color: #787878; font-size: 20; color: #FFFFFF; "
@click="getPhoneCode()" :disabled="disabled">{{phoneCodeStr}}</button>
</view>
<view style="height: 1px; background: #C6C6C6;"></view>
</view>
<view style="margin-top: 15rpx; margin-left: 35rpx;" @click="gotoAccountLogin()">
<text style="color: #4169E1; font-size: 28rpx;">切换密码登陆</text>
</view>
<view class="btn-row">
<button style="background-color: transparent; color: white; " :loading="loginBtnLoading" @tap="bindLogin">
登录
</button>
</view>
<view style=" margin-left: 35rpx; display: flex; margin-top: 35rpx; align-items: center;">
<view @click="checkboxSelected()" :checked="agreeState"
:class="agreeState === true ? 'checkbox-check' : 'checkbox-uncheck'" />
<text style="font-size: 28rpx; color: #333333;">阅读并同意</text>
<text style="color: #4d90ff; font-size: 28rpx;" @click="onUserAgreement()">用户协议</text>
<text style="font-size: 28rpx; color: #333333;"></text>
<text style="color: #4d90ff; font-size: 28rpx;" @click="onPrivacyPolicy()">隐私政策</text>
</view>
</view>
</template>
<script>
import {
transformImageCodeToUri
} from "@/utils/image_utils.js";
import {
default as http
} from "@/utils/http.js";
import loginHelper from "../../utils/loginHelper.js"
export default {
data() {
return {
disabled: false,
phoneCodeStr: "获取验证码",
phoneCodeTime: 60,
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
phoneNumber: "",
password: "",
phone_code: "",
loginBtnLoading: false,
timer: null,
agreeState: false,
}
},
methods: {
async getPhoneCode() {
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
var this_ = this;
if (this.phoneNumber.length != 11) {
uni.showToast({
icon: "none",
title: "请输入手机号码",
});
return;
}
if (!myreg.test(this.phoneNumber)) {
uni.showToast({
icon: "none",
title: "电话号码格式不对",
});
return;
}
this.phoneCodeTime = 60;
this.timer = setInterval(() => {
console.log(this_.phoneCodeTime)
if (this_.phoneCodeTime <= 0) {
clearInterval(this_.timer);
this_.phoneCodeStr = "获取验证码";
this_.disabled = false;
} else {
this_.phoneCodeStr = this_.phoneCodeTime + "s";
this_.phoneCodeTime--;
this_.disabled = true;
}
}, 1000);
this_.disabled = true;
let query_data = `query{
getMobileCode(mobile:${JSON.stringify(this.phoneNumber)},type:7)
}`;
let result = await http.gql({
query: query_data
})
console.info(result);
//处理返回请求
if (result && result.data && result.data.getMobileCode) {
if (result.data.getMobileCode.Error) {
clearInterval(this.timer);
this_.disabled = false;
uni.showToast({
icon: "none",
title: result.data.getMobileCode.Error,
});
} else {
}
} else {
clearInterval(this.timer);
this_.disabled = false;
uni.showToast({
icon: "none",
title: "请求异常",
});
return;
}
},
async bindLogin() {
if (this.phoneNumber.length < 11) {
uni.showToast({
icon: "none",
title: "请输入手机号码",
});
return;
}
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
if (!myreg.test(this.phoneNumber)) {
uni.showToast({
icon: "none",
title: "电话号码格式不对",
});
return;
}
if (this.phone_code.length <= 0) {
uni.showToast({
icon: "none",
title: "请输入验证码",
});
return;
}
if (!this.agreeState) {
uni.showToast({
icon: "none",
title: "您还没有同意用户协议",
});
return;
}
this.loginBtnLoading = true;
let query_data = `mutation{
ydn_sms_login(mobile:${JSON.stringify(this.phoneNumber)},code:${JSON.stringify(this.phone_code)},type:"web")
}`;
let result = await http.gql({
query: query_data
})
this.loginBtnLoading = false;
console.info(result);
//处理返回请求
if (result && result.data && result.data.ydn_sms_login) {
if (result.data.ydn_sms_login.Error) {
uni.showToast({
icon: "none",
title: result.data.ydn_sms_login.Error,
});
} else {
result.data.ydn_sms_login.Result.FaceImageCode = transformImageCodeToUri(result.data
.ydn_sms_login.Result
.FaceImageCode);
loginHelper.login(result.data.ydn_sms_login.Result,result.data.ydn_sms_login.AppToken)
uni.navigateBack();
}
} else {
uni.showToast({
icon: "none",
title: "登录异常",
});
return;
}
},
onBack() {
uni.navigateBack()
},
gotoAccountLogin() {
uni.redirectTo({
url: '/pages/login_pwd/login_pwd'
})
},
onUserAgreement() {
let tempData = {
url: 'http://www.qianhaiyilan.cn/ppolicy_user.html',
title: "用户协议"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
})
},
onPrivacyPolicy() {
let tempData = {
url: 'http://www.qianhaiyilan.cn/ppolicy_app.html',
title: "隐私政策"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
})
},
checkboxSelected(e) {
this.agreeState = !this.agreeState;
}
}
}
</script>
<style>
.action-row {
display: flex;
flex-direction: row;
justify-content: center;
margin-top: 15rpx;
}
.btn-row {
margin-top: 15rpx;
margin-left: 35rpx;
margin-right: 35rpx;
background: linear-gradient(to right, #FDB559, #FF7E31);
border-radius: 15rpx;
}
.head-bg {
flex-direction: column;
background-image: url('~@/static/login/head.png');
background-size: 50% 100%;
width: 100vh;
height: 15vh;
display: flex;
background-color: transparent;
background-repeat: no-repeat;
}
.checkbox-check {
background-image: url(../../static/common/authsdk_checkbox_checked_bg.png);
background-repeat: no-repeat;
background-size: cover;
margin-right: 15rpx;
width: 30rpx;
height: 30rpx;
}
.checkbox-uncheck {
background-image: url(../../static/common/authsdk_checkbox_uncheck_bg.png);
width: 30rpx;
height: 30rpx;
margin-right: 15rpx;
background-repeat: no-repeat;
background-size: cover;
}
</style>
......@@ -7,18 +7,9 @@
<image src="@/static/mine_icons/arrow_right.png"
style="width: 50rpx; height: 50rpx; margin-right: 30rpx;" />
</view>
<view class="qh-list-c" @click="onUserAgreement()">
<view style="display: flex;">
<text class="list-text">用户协议</text>
</view>
<image src="@/static/mine_icons/arrow_right.png"
style="width: 50rpx; height: 50rpx; margin-right: 30rpx;" />
</view>
<view class="qh-list-c" @click="onPrivacyPolicy()">
<view style="display: flex;">
<text class="list-text">隐私政策</text>
<text class="list-text">用户隐私政策</text>
</view>
<image src="@/static/mine_icons/arrow_right.png"
style="width: 50rpx; height: 50rpx; margin-right: 30rpx;" />
......@@ -85,23 +76,12 @@
});
}
},
onUserAgreement() {
let tempData = {
url: app_config.ppolicy_user,
title: "用户协议"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
})
},
onPrivacyPolicy() {
let tempData = {
url: app_config.ppolicy_app,
title: "隐私政策"
}
uni.navigateTo({
url: `/pages/normal_webview/normal_webview?info=${encodeURIComponent(JSON.stringify(tempData))}`
url:'/pages/user_agreement/user_agreement'
})
},
showUpdateVersion() {
if(this.versionData) {
......
......@@ -11,24 +11,11 @@
<input class="uni-input" type="text" focus placeholder="欢迎提交您宝贵的建议" style="background-color:white; margin-top: 20rpx; padding: 35rpx;
height: 20;" v-model="suggest_content" />
<view class="uni-uploader-body">
<view class="uni-uploader__files">
<block v-for="(image, index) in imageList" :key="index">
<view class="uni-uploader__file" style="position: relative">
<view class="uni-close-view" @click="clear(index)">x</view>
<image class="uni-uploader__img" :src="image" @tap="previewImage(index)"></image>
</view>
</block>
<view class="uni-uploader__input-box" v-show="(imageList.length < 3)">
<view class="uni-uploader__input" @tap="chooseImg"></view>
</view>
</view>
</view>
</view>
</template>
<script>
import { pathToBase64 } from "image-tools";
import http from "@/utils/http";
export default {
......
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!