Commit aae0124a authored by leiqingsong's avatar leiqingsong

Merge branch 'dev_lqs' into 'master'

Dev lqs

See merge request !11
parents d693210f b122638b
//notation: js file can only use this kind of comments
//since comments will cause error when use in webview.loadurl,
//comments will be remove by java use regexp
(function() {
if (window.WebViewJavascriptBridge) {
return;
}
var receiveMessageQueue = [];
var messageHandlers = {};
var responseCallbacks = {};
var uniqueId = 1;
//set default messageHandler 初始化默认的消息线程
function init(messageHandler) {
if (WebViewJavascriptBridge._messageHandler) {
throw new Error('WebViewJavascriptBridge.init called twice');
}
WebViewJavascriptBridge._messageHandler = messageHandler;
var receivedMessages = receiveMessageQueue;
receiveMessageQueue = null;
for (var i = 0; i < receivedMessages.length; i++) {
_dispatchMessageFromNative(receivedMessages[i]);
}
}
// 发送
function send(data, responseCallback) {
_doSend('send', data, responseCallback);
}
// 注册线程 往数组里面添加值
function registerHandler(handlerName, handler) {
messageHandlers[handlerName] = handler;
}
// 调用线程
function callHandler(handlerName, data, responseCallback) {
_doSend(handlerName, data, responseCallback);
}
//sendMessage add message, 触发native处理 sendMessage
function _doSend(handlerName, message, responseCallback) {
var callbackId;
if(typeof responseCallback === 'string'){
callbackId = responseCallback;
} else if (responseCallback) {
callbackId = 'cb_' + (uniqueId++) + '_' + new Date().getTime();
responseCallbacks[callbackId] = responseCallback;
}else{
callbackId = '';
}
try {
var fn = eval('window.android.' + handlerName);
} catch(e) {
console.log(e);
}
if (typeof fn === 'function'){
var responseData = fn.call(this, JSON.stringify(message), callbackId);
if(responseData){
console.log('response message: '+ responseData);
responseCallback = responseCallbacks[callbackId];
if (!responseCallback) {
return;
}
responseCallback(responseData);
delete responseCallbacks[callbackId];
}
}
}
//提供给native使用,
function _dispatchMessageFromNative(messageJSON) {
setTimeout(function() {
var message = JSON.parse(messageJSON);
var responseCallback;
//java call finished, now need to call js callback function
if (message.responseId) {
responseCallback = responseCallbacks[message.responseId];
if (!responseCallback) {
return;
}
responseCallback(message.responseData);
delete responseCallbacks[message.responseId];
} else {
//直接发送
if (message.callbackId) {
var callbackResponseId = message.callbackId;
responseCallback = function(responseData) {
_doSend('response', responseData, callbackResponseId);
};
}
var handler = WebViewJavascriptBridge._messageHandler;
if (message.handlerName) {
handler = messageHandlers[message.handlerName];
}
//查找指定handler
try {
handler(message.data, responseCallback);
} catch (exception) {
if (typeof console != 'undefined') {
console.log("WebViewJavascriptBridge: WARNING: javascript handler threw.", message, exception);
}
}
}
});
}
//提供给native调用,receiveMessageQueue 在会在页面加载完后赋值为null,所以
function _handleMessageFromNative(messageJSON) {
console.log('handle message: '+ messageJSON);
if (receiveMessageQueue) {
receiveMessageQueue.push(messageJSON);
}
_dispatchMessageFromNative(messageJSON);
}
var WebViewJavascriptBridge = window.WebViewJavascriptBridge = {
init: init,
send: send,
registerHandler: registerHandler,
callHandler: callHandler,
_handleMessageFromNative: _handleMessageFromNative
};
var doc = document;
var readyEvent = doc.createEvent('Events');
readyEvent.initEvent('WebViewJavascriptBridgeReady');
readyEvent.bridge = WebViewJavascriptBridge;
doc.dispatchEvent(readyEvent);
})();
...@@ -9,7 +9,7 @@ export function getMoneyPackage(params) { ...@@ -9,7 +9,7 @@ export function getMoneyPackage(params) {
url: "/wallet/getMoneyPackage", url: "/wallet/getMoneyPackage",
method: "get", method: "get",
params params
}) });
} }
/** /**
...@@ -21,7 +21,7 @@ export function getWithdrawalAmount(params) { ...@@ -21,7 +21,7 @@ export function getWithdrawalAmount(params) {
url: "getWithdrawalAmount", url: "getWithdrawalAmount",
method: "get", method: "get",
params params
}) });
} }
/** /**
...@@ -34,7 +34,7 @@ export function getWithdrawalRecord(params) { ...@@ -34,7 +34,7 @@ export function getWithdrawalRecord(params) {
url: "/wallet/getWithdrawalRecord", url: "/wallet/getWithdrawalRecord",
method: "get", method: "get",
params params
}) });
} }
/** /**
...@@ -46,7 +46,7 @@ export function queryIncomeDetail(params) { ...@@ -46,7 +46,7 @@ export function queryIncomeDetail(params) {
url: "/wallet/queryIncomeDetail", url: "/wallet/queryIncomeDetail",
method: "get", method: "get",
params params
}) });
} }
/** /**
...@@ -59,5 +59,5 @@ export function showIncomeRecord(params) { ...@@ -59,5 +59,5 @@ export function showIncomeRecord(params) {
url: "/wallet/showIncomeRecord", url: "/wallet/showIncomeRecord",
method: "get", method: "get",
params params
}) });
} }
var u = navigator.userAgent; var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
// 注册jsbridge // 注册jsbridge
function connectWebViewJavascriptBridge(callback) { function connectWebViewJavascriptBridge(callback) {
if (isAndroid) { if (isAndroid) {
if (window.WebViewJavascriptBridge) { if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge) callback(WebViewJavascriptBridge);
} else { } else {
document.addEventListener( document.addEventListener(
'WebViewJavascriptBridgeReady', "WebViewJavascriptBridgeReady",
function () { function() {
callback(WebViewJavascriptBridge) callback(WebViewJavascriptBridge);
}, },
false false
); );
...@@ -25,21 +25,20 @@ function connectWebViewJavascriptBridge(callback) { ...@@ -25,21 +25,20 @@ function connectWebViewJavascriptBridge(callback) {
return window.WVJBCallbacks.push(callback); return window.WVJBCallbacks.push(callback);
} }
window.WVJBCallbacks = [callback]; window.WVJBCallbacks = [callback];
var WVJBIframe = document.createElement('iframe'); var WVJBIframe = document.createElement("iframe");
WVJBIframe.style.display = 'none'; WVJBIframe.style.display = "none";
WVJBIframe.src = 'https://__bridge_loaded__'; WVJBIframe.src = "https://__bridge_loaded__";
document.documentElement.appendChild(WVJBIframe); document.documentElement.appendChild(WVJBIframe);
setTimeout(function () { setTimeout(function() {
document.documentElement.removeChild(WVJBIframe) document.documentElement.removeChild(WVJBIframe);
}, 0) }, 0);
} }
} }
// 调用注册方法 // 调用注册方法
connectWebViewJavascriptBridge(function (bridge) { connectWebViewJavascriptBridge(function(bridge) {
if (isAndroid) { if (isAndroid) {
bridge.init(function (message, responseCallback) { bridge.init(function(message, responseCallback) {
responseCallback(data); responseCallback(data);
}); });
} }
}); });
...@@ -4,14 +4,13 @@ import { Toast } from "vant"; ...@@ -4,14 +4,13 @@ import { Toast } from "vant";
let loading = null; let loading = null;
const service = axios.create({ const service = axios.create({
baseURL: "http://192.168.204.152:8997", baseURL: "http://8.131.244.76:8997",
timeout: 5000 timeout: 5000
}); });
service.interceptors.request.use( service.interceptors.request.use(
config => { config => {
config.headers["Authorization"] = config.headers["Authorization"] = "b6cd4e221fdc4e46a6825c236c912fa6";
"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJpZFwiOjEsXCJpbnZpdGVDb2RlXCI6XCIxXCIsXCJwYXNzd29yZFwiOlwiMTIzXCIsXCJ1c2VySWRcIjpcIjFcIixcInVzZXJMZXZlbFwiOjR9IiwiaWF0IjoxNjE0MzI3OTY0fQ.f9RPBOMo0BMMbWPnQIhvfLe535as60dk_SZoXMYOT3bHYjoYST-mivTcKC-u4grEpYZMax9RgyuHXCYydZPzQw";
if (!config.loading) { if (!config.loading) {
loading = Toast.loading({ loading = Toast.loading({
forbidClick: true, forbidClick: true,
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<div class="panel-box"> <div class="panel-box">
<div class="panel-content"> <div class="panel-content">
<div class="title">客服二维码</div> <div class="title">客服二维码</div>
<img src="@/assets/images/logo.png" class="qrCode" alt=""> <img src="@/assets/images/logo.png" class="qrCode" alt="" />
<div class="save-code"> <div class="save-code">
<p>保存二维码</p> <p>保存二维码</p>
<p>打开微信扫一扫添加客服</p> <p>打开微信扫一扫添加客服</p>
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
<van-button>保存</van-button> <van-button>保存</van-button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
...@@ -28,9 +27,7 @@ ...@@ -28,9 +27,7 @@
export default { export default {
name: "customerService", name: "customerService",
data() { data() {
return { return {};
};
}, },
methods: { methods: {
handleUrl(urlName) { handleUrl(urlName) {
...@@ -70,20 +67,19 @@ $white: #ffffff; ...@@ -70,20 +67,19 @@ $white: #ffffff;
font-size: 16px; font-size: 16px;
} }
} }
.panel-box{ .panel-box {
height: calc(100vh - 86px); height: calc(100vh - 86px);
padding: 0 15px; padding: 0 15px;
margin-top: 15px; margin-top: 15px;
.panel-content{ .panel-content {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #ffffff; background-color: #ffffff;
box-shadow: 0px 2px 12px 0px box-shadow: 0px 2px 12px 0px rgba(6, 0, 1, 0.04);
rgba(6, 0, 1, 0.04);
border-radius: 4px; border-radius: 4px;
padding-top: 45px; padding-top: 45px;
box-sizing: border-box; box-sizing: border-box;
.title{ .title {
font-size: 18px; font-size: 18px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
...@@ -92,13 +88,13 @@ $white: #ffffff; ...@@ -92,13 +88,13 @@ $white: #ffffff;
color: #333333; color: #333333;
text-align: center; text-align: center;
} }
.qrCode{ .qrCode {
width: 128px; width: 128px;
height: 130px; height: 130px;
margin: 80px auto 30px; margin: 80px auto 30px;
display: block; display: block;
} }
.save-code{ .save-code {
font-size: 14px; font-size: 14px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
...@@ -106,19 +102,17 @@ $white: #ffffff; ...@@ -106,19 +102,17 @@ $white: #ffffff;
letter-spacing: 0px; letter-spacing: 0px;
color: #999999; color: #999999;
} }
.van-button{ .van-button {
width: 160px; width: 160px;
height: 36px; height: 36px;
background-color: #88c678; background-color: #88c678;
border-radius: 4px; border-radius: 4px;
font-size: 18px; font-size: 18px;
color: #ffffff; color: #ffffff;
margin: 85px auto 0 ; margin: 85px auto 0;
display: block; display: block;
} }
} }
} }
} }
</style> </style>
<template> <template>
<div class="register-container"> <div class="register-container">
<van-icon name="arrow-left" @click="$router.go(-1)" /> <van-icon name="arrow-left" @click="$router.go(-1)" />
<img src="@/assets/images/logo.png" class="logo-img" alt=""> <img src="@/assets/images/logo.png" class="logo-img" alt="" />
<div class="form-content"> <div class="form-content">
<van-cell-group> <van-cell-group>
<van-field <van-field
...@@ -10,7 +10,12 @@ ...@@ -10,7 +10,12 @@
:border="hasBorder" :border="hasBorder"
bind:change="onChange" bind:change="onChange"
> >
<img class="icon-user" src="@/assets/images/icon-user.png" slot="left-icon" alt=""> <img
class="icon-user"
src="@/assets/images/icon-user.png"
slot="left-icon"
alt=""
/>
</van-field> </van-field>
<van-field <van-field
:value="value" :value="value"
...@@ -18,8 +23,19 @@ ...@@ -18,8 +23,19 @@
:border="hasBorder" :border="hasBorder"
bind:change="onChange" bind:change="onChange"
> >
<img class="icon-user" src="@/assets/images/icon-code.png" slot="left-icon" alt=""> <img
<van-button slot="button" size="small" type="primary" class="verify-code">发送验证码</van-button> class="icon-user"
src="@/assets/images/icon-code.png"
slot="left-icon"
alt=""
/>
<van-button
slot="button"
size="small"
type="primary"
class="verify-code"
>发送验证码</van-button
>
</van-field> </van-field>
<van-field <van-field
:value="value" :value="value"
...@@ -27,55 +43,56 @@ ...@@ -27,55 +43,56 @@
:border="hasBorder" :border="hasBorder"
bind:change="onChange" bind:change="onChange"
> >
<img class="icon-user" src="@/assets/images/icon-invite-code.png" slot="left-icon" alt=""> <img
class="icon-user"
src="@/assets/images/icon-invite-code.png"
slot="left-icon"
alt=""
/>
</van-field> </van-field>
</van-cell-group> </van-cell-group>
<van-button class="btn-submit" @click="register">注册</van-button> <van-button class="btn-submit" @click="register">注册</van-button>
</div> </div>
<van-overlay <van-overlay :show="show" class-name="registerEorr" @click="onClickHide">
:show="show"
class-name="registerEorr"
@click="onClickHide">
<div class="wrapper" @click.stop> <div class="wrapper" @click.stop>
<div class="title">{{title}}</div> <div class="title">{{ title }}</div>
<div class="error-tip"></div> <div class="error-tip"></div>
<div class="tip">{{tip}}</div> <div class="tip">{{ tip }}</div>
<van-button>确定</van-button> <van-button>确定</van-button>
</div> </div>
</van-overlay> </van-overlay>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name:'register', name: "register",
data(){ data() {
return { return {
value:'', value: "",
hasBorder:false, hasBorder: false,
show: true, show: true,
title:'注册失败', title: "注册失败",
tip:'该推荐人邀请码不存在,请重新填写' tip: "该推荐人邀请码不存在,请重新填写"
} };
}, },
methods: { methods: {
register(){ register() {
// this.show = true // this.show = true
}, },
onClickHide(){ onClickHide() {
this.show = false this.show = false;
}
} }
} }
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.register-container{ .register-container {
height: 100vh; height: 100vh;
background-color: #ffffff; background-color: #ffffff;
padding: 54px 15px 0 15px; padding: 54px 15px 0 15px;
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
.van-icon-arrow-left{ .van-icon-arrow-left {
position: absolute; position: absolute;
left: 15px; left: 15px;
top: 9px; top: 9px;
...@@ -84,62 +101,57 @@ export default { ...@@ -84,62 +101,57 @@ export default {
// color: #333; // color: #333;
// margin: 13px 0 0 15px; // margin: 13px 0 0 15px;
} }
.logo-img{ .logo-img {
width: 102px; width: 102px;
height: 102px; height: 102px;
display: block; display: block;
margin: 0 auto 50px; margin: 0 auto 50px;
} }
.form-content{ .form-content {
padding: 0 15px; padding: 0 15px;
.van-field__left-icon{ .van-field__left-icon {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.van-cell-group::after{ .van-cell-group::after {
display: none; display: none;
} }
.van-cell{ .van-cell {
background-color: #f9f9f9; background-color: #f9f9f9;
border-radius: 25px; border-radius: 25px;
margin-bottom: 20px; margin-bottom: 20px;
} }
} }
.icon-user{ .icon-user {
width: 18px; width: 18px;
height:18px; height: 18px;
} }
.icon-code{ .icon-code {
width: 16px; width: 16px;
height:18px; height: 18px;
} }
.icon-code{ .icon-code {
width: 17px; width: 17px;
height:17px; height: 17px;
} }
.btn-submit{ .btn-submit {
width: 100%; width: 100%;
height: 44px; height: 44px;
background-image: linear-gradient(72deg, background-image: linear-gradient(72deg, #88c678 0%, #95e87f 100%),
#88c678 0%, linear-gradient(#999999, #999999);
#95e87f 100%), background-blend-mode: normal, normal;
linear-gradient(
#999999,
#999999);
background-blend-mode: normal,
normal;
border-radius: 22px; border-radius: 22px;
color: #ffffff; color: #ffffff;
font-size: 18px; font-size: 18px;
margin-top: 20px; margin-top: 20px;
} }
.verify-code{ .verify-code {
background-color: transparent; background-color: transparent;
border: none; border: none;
color: #88c677; color: #88c677;
} }
.van-overlay.registerEorr{ .van-overlay.registerEorr {
.wrapper{ .wrapper {
width: 315px; width: 315px;
height: 293px; height: 293px;
position: absolute; position: absolute;
...@@ -151,7 +163,7 @@ export default { ...@@ -151,7 +163,7 @@ export default {
text-align: center; text-align: center;
box-sizing: border-box; box-sizing: border-box;
border-radius: 4px; border-radius: 4px;
.title{ .title {
font-size: 20px; font-size: 20px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
...@@ -159,43 +171,44 @@ export default { ...@@ -159,43 +171,44 @@ export default {
letter-spacing: 0px; letter-spacing: 0px;
color: #333333; color: #333333;
} }
.error-tip{ .error-tip {
width: 72px; width: 72px;
height: 72px; height: 72px;
border: 6px solid #ff0000; border: 6px solid #ff0000;
border-radius: 50%; border-radius: 50%;
font-size: 48px; font-size: 48px;
font-weight:bold; font-weight: bold;
color: #ff0000; color: #ff0000;
margin: 25px auto; margin: 25px auto;
position: relative; position: relative;
&:before,&:after{ &:before,
&:after {
content: ""; content: "";
display: inline-block; display: inline-block;
width: 6px; width: 6px;
height: 30px; height: 30px;
background-color: #ff0000; background-color: #ff0000;
border-radius: 4px; border-radius: 4px;
transform-origin:center ; transform-origin: center;
position: absolute; position: absolute;
left: 50%; left: 50%;
top: 50%; top: 50%;
} }
&:before{ &:before {
transform:translate(-50%,-50%) rotate(45deg); transform: translate(-50%, -50%) rotate(45deg);
} }
&:after{ &:after {
transform:translate(-50%,-50%) rotate(-45deg); transform: translate(-50%, -50%) rotate(-45deg);
} }
} }
.tip{ .tip {
font-size: 14px; font-size: 14px;
font-weight: normal; font-weight: normal;
font-stretch: normal; font-stretch: normal;
line-height: 20px; line-height: 20px;
color: #999999; color: #999999;
} }
.van-button{ .van-button {
width: 160px; width: 160px;
height: 36px; height: 36px;
background-color: #88c678; background-color: #88c678;
...@@ -204,7 +217,6 @@ export default { ...@@ -204,7 +217,6 @@ export default {
margin-top: 25px; margin-top: 25px;
} }
} }
} }
} }
</style> </style>
const name = "西田森App"; const name = "西田森App";
module.exports = { module.exports = {
publicPath: "/font",
css: { css: {
loaderOptions: { loaderOptions: {
postcss: { postcss: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment