Commit 18b0b11d by zhonghao

无人值守屏保

parent 8c76f0c0
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -13,10 +13,17 @@ import Touch from '../components/Touch';
import counterText from '../assets/Vertical/counterText.png';
import img24h from '../assets/Vertical/24h.png';
import phone from '../assets/Vertical/phone.png';
import guide from '../assets/Vertical/guide.jpg';
import {login} from '../utils/config';
import {colors} from '../utils/common';
import WxFacepay from '../utils/WxFacepay';
import {width, setSpText, scaleSize, scaleHeight} from '../utils/screen';
import {
width,
setSpText,
scaleSize,
scaleHeight,
// height,
} from '../utils/screen';
import Speech from '../utils/Speech';
import delay from '../utils/delay';
import Printer from '../utils/Printer';
......@@ -354,6 +361,11 @@ class VerticalPage extends Component {
});
};
onNoBuy = async () => {
const {data} = await this.props.dispatch({type: 'store/noBuyGoGoGo'});
Speech.speak(data.msg);
};
closeHint = () => {
this.setState({
hintVisible: false,
......@@ -533,7 +545,14 @@ class VerticalPage extends Component {
imgArr,
adType,
} = this.props;
let {contact, hintVisible, logoVisible, logo, priceVisible} = this.state;
let {
contact,
hintVisible,
logoVisible,
logo,
priceVisible,
dtype,
} = this.state;
pageSize =
goods && goods.bags.length > 0
? goods && goods.bags.length > 3
......@@ -573,6 +592,25 @@ class VerticalPage extends Component {
this.state.faceType === 'wxpay' ? this.wxFacepay : this.smilepay;
return (
<View style={styles.main}>
{goodsArr.length === 0 && dtype === 'guard' ? (
<View style={styles.guardModal}>
<View style={styles.guardModal_image}>
<Image source={guide} />
</View>
<View style={styles.guardModal_button}>
<Touch onPress={() => this.onCall()}>
<View style={styles.guardModal_button_call}>
<Text style={styles.callText}>呼叫客服</Text>
</View>
</Touch>
<Touch onPress={() => this.onNoBuy()}>
<View style={styles.guardModal_button_nobuy}>
<Text style={styles.callText}>无购物出店</Text>
</View>
</Touch>
</View>
</View>
) : null}
<HintPhone
visible={hintVisible}
contact={contact}
......@@ -1093,6 +1131,7 @@ const styles = {
main: {
backgroundColor: '#F0F0F0',
height: '100%',
position: 'relative',
},
header: {
flexDirection: 'row',
......@@ -1551,6 +1590,58 @@ const styles = {
marginRight: '5%',
marginBottom: '2.5%',
},
guardModal: {
position: 'absolute',
top: 0,
left: 0,
zIndex: 999999999999999,
elevation: 6,
display: 'flex',
width: '100%',
height: '100%',
backgroundColor: '#000000',
},
guardModal_image: {
height: '70%',
width: '100%',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
},
guardModal_button: {
height: '30%',
width: '100%',
display: 'flex',
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
},
guardModal_button_call: {
backgroundColor: '#fc4000',
borderRadius: 100,
color: '#ffffff',
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
width: scaleSize(350),
height: scaleSize(125),
fontSize: scaleSize(75),
marginRight: 50,
},
guardModal_button_nobuy: {
borderWidth: 5,
borderColor: '#ffffff',
borderRadius: 100,
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
width: scaleSize(350),
height: scaleSize(125),
},
callText: {
fontSize: scaleSize(45),
color: '#ffffff',
},
};
export default CounterMixins(VerticalPage);
import qs from 'qs';
import axios from 'axios';
import AsyncStorage from '@react-native-community/async-storage';
const pack = require('../../package.json');
export function token({host = '', key, secret, device}) {
return axios.post(`${host}/store/auth`, qs.stringify({key, secret, device}));
}
export async function refreshToken() {
const auth = await AsyncStorage.getItem('auth');
if (auth) {
try {
const {refresh_token} = JSON.parse(auth);
return await axios.get('/auth/refresh', {
headers: {Authorization: `Bearer ${refresh_token}`},
});
} catch (e) {
return {data: null};
}
}
return {data: null};
}
export function version() {
return axios.put('/store/version', qs.stringify({version: pack.version}));
}
export function region() {
return axios.get('/store/region');
}
export function door({userId}) {
return axios.post('/store/door', qs.stringify({userId}));
}
export function wxdoor({
userId,
openid,
wxtoken,
nickname,
alipayUid,
fToken,
phone,
sense,
orderId,
authCode,
}) {
return axios.post(
'/store/wxdoor',
qs.stringify({
userId,
openid,
wxtoken,
nickname,
alipayUid,
fToken,
phone,
sense,
orderId,
authCode,
}),
);
}
export function scaleData() {
return axios.get('/store/scaleData');
}
export function sendsms({phone, faceType}) {
return axios.post('/store/sendsms', qs.stringify({phone, faceType}));
}
export function verifysms({phone, code, userId, faceType}) {
return axios.post(
'/store/verifysms',
qs.stringify({phone, code, userId, faceType}),
);
}
export function getAdvertising(action) {
return axios.get(`/store/advertising?${qs.stringify(action)}`);
}
export function getStore({group}) {
return axios.get(`/store/setting/${group}`);
}
export function findModuleSetting({group}) {
return axios.get(`/store/module/setting/${group}`);
}
import qs from 'qs';
import axios from 'axios';
import AsyncStorage from '@react-native-community/async-storage';
const pack = require('../../package.json');
export function token({host = '', key, secret, device}) {
return axios.post(`${host}/store/auth`, qs.stringify({key, secret, device}));
}
export async function refreshToken() {
const auth = await AsyncStorage.getItem('auth');
if (auth) {
try {
const {refresh_token} = JSON.parse(auth);
return await axios.get('/auth/refresh', {
headers: {Authorization: `Bearer ${refresh_token}`},
});
} catch (e) {
return {data: null};
}
}
return {data: null};
}
export function version() {
return axios.put('/store/version', qs.stringify({version: pack.version}));
}
export function region() {
return axios.get('/store/region');
}
export function door({userId}) {
return axios.post('/store/door', qs.stringify({userId}));
}
export function wxdoor({
userId,
openid,
wxtoken,
nickname,
alipayUid,
fToken,
phone,
sense,
orderId,
authCode,
}) {
return axios.post(
'/store/wxdoor',
qs.stringify({
userId,
openid,
wxtoken,
nickname,
alipayUid,
fToken,
phone,
sense,
orderId,
authCode,
}),
);
}
export function scaleData() {
return axios.get('/store/scaleData');
}
export function sendsms({phone, faceType}) {
return axios.post('/store/sendsms', qs.stringify({phone, faceType}));
}
export function verifysms({phone, code, userId, faceType}) {
return axios.post(
'/store/verifysms',
qs.stringify({phone, code, userId, faceType}),
);
}
export function getAdvertising(action) {
return axios.get(`/store/advertising?${qs.stringify(action)}`);
}
export function getStore({group}) {
return axios.get(`/store/setting/${group}`);
}
export function findModuleSetting({group}) {
return axios.get(`/store/module/setting/${group}`);
}
export function noBuyGoGoGo() {
return axios.post('/store/counter/nobuy');
}
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