Commit 27eee281 by 姜雷

Merge branch 'test'

parents 5400ee7f 4fe780bc
{ {
"name": "wx-school-app", "name": "wx-school-app",
"version": "1.0.6", "version": "1.0.9",
"private": true, "private": true,
"description": "", "description": "",
"scripts": { "scripts": {
...@@ -20,21 +20,21 @@ ...@@ -20,21 +20,21 @@
"author": "", "author": "",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@tarojs/async-await": "1.2.13", "@tarojs/async-await": "1.3.4",
"@tarojs/components": "1.2.13", "@tarojs/components": "1.3.4",
"@tarojs/redux": "1.2.13", "@tarojs/redux": "1.3.4",
"@tarojs/redux-h5": "1.2.13", "@tarojs/redux-h5": "1.3.4",
"@tarojs/router": "1.2.13", "@tarojs/router": "1.3.4",
"@tarojs/taro": "1.2.13", "@tarojs/taro": "1.3.4",
"@tarojs/taro-alipay": "1.2.13", "@tarojs/taro-alipay": "1.3.4",
"@tarojs/taro-h5": "1.2.13", "@tarojs/taro-h5": "1.3.4",
"@tarojs/taro-swan": "1.2.13", "@tarojs/taro-swan": "1.3.4",
"@tarojs/taro-tt": "1.2.13", "@tarojs/taro-tt": "1.3.4",
"@tarojs/taro-weapp": "1.2.13", "@tarojs/taro-weapp": "1.3.4",
"crypto-js": "^3.1.9-1", "crypto-js": "^3.1.9-1",
"jsbarcode": "^3.11.0", "jsbarcode": "^3.11.0",
"nerv-devtools": "^1.3.9", "nerv-devtools": "^1.4.3",
"nervjs": "^1.3.9", "nervjs": "^1.4.3",
"npm": "^6.8.0", "npm": "^6.8.0",
"redux": "^4.0.0", "redux": "^4.0.0",
"redux-logger": "^3.0.6", "redux-logger": "^3.0.6",
...@@ -42,12 +42,11 @@ ...@@ -42,12 +42,11 @@
"wxbarcode": "^1.0.2" "wxbarcode": "^1.0.2"
}, },
"devDependencies": { "devDependencies": {
"@tarojs/cli": "^1.2.13", "@tarojs/plugin-babel": "1.3.4",
"@tarojs/plugin-babel": "1.2.13", "@tarojs/plugin-csso": "1.3.4",
"@tarojs/plugin-csso": "1.2.13", "@tarojs/plugin-sass": "1.3.4",
"@tarojs/plugin-sass": "1.2.13", "@tarojs/plugin-uglifyjs": "1.3.4",
"@tarojs/plugin-uglifyjs": "1.2.13", "@tarojs/webpack-runner": "1.3.4",
"@tarojs/webpack-runner": "1.2.13",
"@types/react": "^16.4.8", "@types/react": "^16.4.8",
"@types/webpack-env": "^1.13.6", "@types/webpack-env": "^1.13.6",
"babel-eslint": "^8.2.3", "babel-eslint": "^8.2.3",
...@@ -58,10 +57,10 @@ ...@@ -58,10 +57,10 @@
"babel-preset-env": "^1.6.1", "babel-preset-env": "^1.6.1",
"cross-env": "^5.2.0", "cross-env": "^5.2.0",
"eslint": "^4.19.1", "eslint": "^4.19.1",
"eslint-config-taro": "1.2.13", "eslint-config-taro": "1.3.4",
"eslint-plugin-import": "^2.12.0", "eslint-plugin-import": "^2.12.0",
"eslint-plugin-react": "^7.8.2", "eslint-plugin-react": "^7.8.2",
"eslint-plugin-taro": "1.2.13", "eslint-plugin-taro": "1.3.4",
"eslint-plugin-typescript": "^0.12.0", "eslint-plugin-typescript": "^0.12.0",
"typescript": "^3.0.1" "typescript": "^3.0.1"
} }
......
import { ResponseDataEntity, baseFetch, customerFetch } from './index';
import { number } from 'prop-types';
export type PayConfigParams = {
areaId: number;
customerId: number;
};
export type PayTypeVo = {
/** id */
id: number;
/** name */
name: string;
};
export type PayConfig = {
id: number;
giveId: number; //赠送服务id
giveMoney: number; // 赠送金额
giveName: string; // 赠送服务名称
rechargeMoney: number; // 充值金额
};
type PayConfigResponse = {
isFirstRecharge: number;
listPayList: PayTypeVo[];
listRechargeConfDetail: PayConfig[];
};
export const fetchPayConfig = (
params: PayConfigParams,
): Promise<ResponseDataEntity<PayConfigResponse>> =>
baseFetch({
url: '/dcxy/api/paymentAndActiveConf/getRechargeConf',
data: params,
});
type RechargeOrderParams = {
customerId: number;
id: number;
isFirstRecharge: number;
rechargeType: string;
};
export const rechargeOrder = (
params: RechargeOrderParams,
): Promise<{
canCall: number;
code: number;
msg: string;
outTradeNo: string;
payStr: string;
}> =>
customerFetch({
url: '/dcxy/app/rechargeOrder/rechargeOrder/smallProPay',
method: 'POST',
data: params,
});
type CreditInfo = {
amount: number;
areaId: number;
operateId: number;
showType: string;
};
export const fetchCreditDeposites = (params: {
areaId: number;
}): Promise<ResponseDataEntity<CreditInfo>> =>
baseFetch({
url: '/dcxy/api/creditDeposits',
data: params,
});
export const fetchOperationMode = (params: {
areaId: number;
}): Promise<
ResponseDataEntity<{
mode: string;
}>
> =>
baseFetch({
url: '/dcxy/api/operationModeConf',
data: params,
});
import { customerFetch } from './index'; import { customerFetch, ResponseDataEntity } from './index';
import Order from '@/types/Order/Order';
export class Params { export class Params {
/** 会员id */ /** 会员id */
...@@ -66,3 +67,99 @@ export const confirmPay = (data: ConfirmpayParams) => ...@@ -66,3 +67,99 @@ export const confirmPay = (data: ConfirmpayParams) =>
url: '/consumeOrder/confirmPay', url: '/consumeOrder/confirmPay',
data: data, data: data,
}); });
type RechargeParams = {
customerId: number;
lastOrderId?: number;
pageSize?: number;
};
export type RechargeOrder = {
/** 充值金额 */
actualAmount: number;
/** 充值后金额 */
afterAmount?: number;
/** 区域id */
areaId: number;
/** 区域名称 */
areaName: string;
/** 充值前金额 */
beforeAmount?: number;
/** 业务类型 APP充值=01 后台充值=02 后台退款=03 割接数据=04 后台平账记录=05 */
businessType?: string;
/** 订单完成时间 */
completeAt?: string;
/** 充值时间 */
createAt?: string;
/** 会员帐号 */
customerId: number;
/** 会员名称 */
customerName: string;
/** 会员手机 */
customerPhone: string;
/** 失败原因 */
failReason?: string;
/** 充值赠送豆数量 */
giveMoney?: number;
/** 操作人 */
handler?: string;
/** 主键id */
id: number;
/** 操作类型 1入账 2出账 */
operType?: string;
/** 运营商Id */
operateId: number;
/** 运营商名称 */
operateName: string;
/** 订单号 (xx:线下,wx:微信支付,zfb:支付宝)+年月日时分秒随机数5位 */
orderNum: string;
/** 订单状态(1:waitingPay待付款、2:paying支付中、3:success支付成功、4:failure支付失败 */
orderState?: string;
/** 支付类型(1:线下支付 2:微信支付 3 :支付宝支付 4:京东支付 5:招行一网通支付 6:艾米币 7:专用豆 8通用豆) */
payType?: string;
rechargeRemark: string;
/** 充值赠送服务id */
serviceId?: number;
/** 充值赠送服务名称 */
serviceName?: string;
/** 更新时间 */
updateAt?: string;
};
export type RechargeOrderItem = {
data: RechargeOrder[];
groupName: string;
sortNum: number;
};
export const fetchRechargeOrders = (
data: RechargeParams,
): Promise<ResponseDataEntity<RechargeOrderItem[]>> =>
customerFetch({
url: '/dcxy/app/rechargeOrder/pageAllListRecharge',
data,
});
import { showerFetch } from './index'; import { showerFetch, ResponseDataEntity } from './index';
export enum OperationMode {
beanFirst = 1,
aimiFirst = 2,
onlyAimi = 3,
}
type ShowerParams = { type ShowerParams = {
deviceCode: string; deviceCode: string;
...@@ -8,12 +14,15 @@ type ShowerParams = { ...@@ -8,12 +14,15 @@ type ShowerParams = {
export type DeviceInfoResponse = { export type DeviceInfoResponse = {
code: string; code: string;
isOnlyBluetooth: number; isOnlyBluetooth: number;
operationMode: OperationMode;
position: string; position: string;
}; };
/** /**
* 通过设备码获取设备信息 * 通过设备码获取设备信息
*/ */
export const fetchShowerInfo = (params: ShowerParams) => export const fetchShowerInfo = (
params: ShowerParams,
): Promise<ResponseDataEntity<DeviceInfoResponse>> =>
showerFetch({ showerFetch({
url: `/dcxy/api/shower/devices/${params.deviceCode}`, url: `/dcxy/api/shower/devices/${params.deviceCode}`,
data: params, data: params,
...@@ -46,3 +55,21 @@ export const startShowerEquipment = (params: StartParams) => ...@@ -46,3 +55,21 @@ export const startShowerEquipment = (params: StartParams) =>
method: 'POST', method: 'POST',
data: params, data: params,
}); });
type ControllerParams = {
customerId: number;
campusId: number;
};
type ControllerResponse = {
beanAmount: number;
money: number;
thresholdPrompt: string;
thresholdValue: number;
};
export const getShowerController = (
params: ControllerParams,
): Promise<ResponseDataEntity<ControllerResponse>> =>
showerFetch({
url: '/dcxy/api/shower/controllerConfigs',
data: params,
});
...@@ -103,13 +103,3 @@ button[disabled]:not([type]) { ...@@ -103,13 +103,3 @@ button[disabled]:not([type]) {
.blur { .blur {
filter: blur(10px); filter: blur(10px);
} }
.OrderBox {
box-sizing: border-box;
position: absolute;
top: 0;
width: 100%;
height: 100%;
padding: 0 32px;
z-index: 100;
background-color: rgba(255, 255, 255, 0.5);
}
...@@ -41,6 +41,7 @@ class App extends Component { ...@@ -41,6 +41,7 @@ class App extends Component {
'pages/WebPage/WebPage', 'pages/WebPage/WebPage',
'pages/Shower/Shower', 'pages/Shower/Shower',
'pages/WaterDispenser/WaterDispenser', 'pages/WaterDispenser/WaterDispenser',
'pages/Account/Account',
], ],
window: { window: {
backgroundTextStyle: 'light', backgroundTextStyle: 'light',
......
.OrderBox {
box-sizing: border-box;
position: absolute;
top: 0;
width: 100%;
height: 100%;
padding: 0 32px;
z-index: 100;
background-color: rgba(255, 255, 255, 0.5);
}
import './WaitPayOrder.scss';
import { View } from '@tarojs/components';
import OrderTitle from '@/pages/Order/components/OrderTitle/OrderTitle';
import OrderInfo from '@/pages/Order/components/OrderInfo/OrderInfo';
import OrderPayway from '@/pages/Order/components/OrderPayway/OrderPayway';
import useWaitPayOrderState from '@/hooks/useWaitPayOrderState';
import { useSelector, useDispatch } from '@tarojs/redux';
import { Customer } from '@/types/Customer/Customer';
import { updateOrderState } from '@/store/rootReducers/orderState';
import { PayOrderState } from '@/store/rootReducers/orderState';
const WaitPayOrderComponent = () => {
const dispatch = useDispatch();
const userinfo = useSelector(
(state: { userinfo: Customer }) => state.userinfo,
);
const payOrderState = useSelector(
(state: { orderState: PayOrderState }) =>
state.orderState.waitPayOrderState,
);
const { payInfos, accountList, orderInfo } = useWaitPayOrderState(
userinfo.customerId,
);
const payDoneHandle = () => {
dispatch(updateOrderState(false));
};
return payOrderState ? (
<View className='OrderBox'>
<OrderTitle price={orderInfo.payableMoney} />
<OrderInfo orderInfo={orderInfo} />
<OrderPayway
onPayDoneCallback={payDoneHandle}
userinfo={userinfo}
accounts={accountList}
orderInfo={orderInfo}
payInfos={payInfos}
/>
</View>
) : null;
};
export default WaitPayOrderComponent;
import { useEffect, useState } from '@tarojs/taro';
import { fetchBeanCount } from '@/api/bean';
import { CustomerBeanAccountVo } from '@/api/baseClass';
import { Service } from '@/api/home';
import { Customer } from '@/types/Customer/Customer';
export enum BeanType {
aimi = 'aimi',
common = 'common',
shower = 'shower',
hairDryer = 'hairDryer',
water = 'water',
}
type BeanAccount = {
money: number;
serviceId: string;
};
let initBeanList: BeanAccount[] = [];
const useAllBeanCount = (
userinfo: Customer,
serviceList: Service[],
): [
BeanAccount[],
(
customerId: number,
areaId: number,
customerPhone: string,
) => Promise<CustomerBeanAccountVo[]>
] => {
const [filterBeanList, setFilterBeanList] = useState(initBeanList);
const getFilterBeanList = (
beanAccount: CustomerBeanAccountVo[],
): BeanAccount[] => {
let aimiItem = beanAccount.find(item => item.serviceId === '0');
let cfItem = beanAccount.find(
item => item.serviceId === '4' || item.serviceId === '12',
);
let xyItem = beanAccount.find(
item => item.serviceId === '5' || item.serviceId === '10',
);
let ysItem = beanAccount.find(
item =>
item.serviceId === '3' ||
item.serviceId === '11' ||
item.serviceId === '9',
);
// let commonItem = beanAccount.find(item => item.serviceId === '1');
let beanMap = {
[BeanType.aimi]: aimiItem ? aimiItem.money : 0,
// [BeanType.common]: commonItem ? commonItem.money : 0,
};
for (let index = 0; index < serviceList.length; index++) {
const service = serviceList[index];
if (
service.serviceId === 3 ||
service.serviceId === 11 ||
service.serviceId === 9
) {
beanMap[BeanType.water] = ysItem ? ysItem.money : 0;
} else if (service.serviceId === 4 || service.serviceId === 12) {
beanMap[BeanType.hairDryer] = cfItem ? cfItem.money : 0;
} else if (service.serviceId === 5 || service.serviceId === 10) {
beanMap[BeanType.shower] = xyItem ? xyItem.money : 0;
}
}
let arr: BeanAccount[] = Object.keys(beanMap).map(k => ({
serviceId: k,
money: beanMap[k],
}));
return arr;
};
const fetchDate = (
customerId: number,
areaId: number,
customerPhone: string,
) =>
fetchBeanCount({
id: customerId,
areaId: areaId,
customerPhone: customerPhone,
serviceIdList: [],
})
.then(res => {
const data = res.data;
let list = getFilterBeanList(data);
setFilterBeanList(list);
return data;
})
.catch(err => {
console.log(err);
throw err;
});
useEffect(() => {
fetchDate(userinfo.customerId, userinfo.areaId, userinfo.customerPhone);
}, [userinfo.customerId, userinfo.areaId, userinfo.customerPhone]);
return [filterBeanList, fetchDate];
};
export default useAllBeanCount;
import { fetchCreditDeposites, fetchOperationMode } from '@/api/account';
import { useEffect, useReducer } from '@tarojs/taro';
import Actions from '@/types/Store/Actions';
type CreditDepositsState = {
amount: number; // 金额
areaId: number; // 区域id
operateId: number; // 运营商id
showType: string; //展示类型 1授信额度 2保证金
};
const reducer = (state: CreditDepositsState, action: Actions) => {
switch (action.type) {
case 'updateCreditInfo':
return action.payload;
default:
return state;
}
};
const initState = {
amount: 0,
areaId: 0,
operateId: 0,
showType: '',
};
const useCreditDeposits = (areaId: number): CreditDepositsState => {
const [state, dispatch] = useReducer(reducer, initState);
useEffect(() => {
fetchOperationMode({
areaId: areaId,
}).then(res => {
if (res.data.mode === '1' || res.data.mode === '2') {
fetchCreditDeposites({
areaId: areaId,
}).then(res => {
if (res.data) {
dispatch({ type: 'updateCreditInfo', payload: res.data });
}
});
}
});
}, [areaId]);
return state;
};
export default useCreditDeposits;
import { useEffect, useReducer } from '@tarojs/taro';
import { fetchPayConfig, PayConfig, PayTypeVo } from '@/api/account';
import Actions from '@/types/Store/Actions';
enum FirstRechargeState {
isFirstRecharge = 1,
notFirstRecharge = 0,
}
type RechargePayState = {
paywayList: PayTypeVo[];
payConfigList: PayConfig[];
isFirstRecharge: FirstRechargeState;
};
const reducer = (state: RechargePayState, action: Actions) => {
switch (action.type) {
case 'updateRechargeInfo':
return action.payload;
default:
return state;
}
};
const usePaywayList = (
areaId: number,
customerId: number,
): RechargePayState => {
const [state, dispatch] = useReducer(reducer, {
paywayList: [],
payConfigList: [],
isFirstRecharge: 0,
});
const fetchDate = (areaId: number, customerId: number) => {
fetchPayConfig({
areaId,
customerId,
})
.then(res => {
console.log(res);
const {
isFirstRecharge,
listPayList,
listRechargeConfDetail,
} = res.data;
dispatch({
type: 'updateRechargeInfo',
payload: {
isFirstRecharge,
payConfigList: listRechargeConfDetail,
paywayList: listPayList,
},
});
})
.catch(console.error);
};
useEffect(() => {
fetchDate(areaId, customerId);
}, [areaId, customerId]);
return state;
};
export default usePaywayList;
import { useEffect, useReducer } from '@tarojs/taro';
import { fetchPayOrder, fetchOrderDetailAndPay } from '@/api/order';
import { PaymentAndActiveInfo, CustomerBeanAccountVo } from '@/api/baseClass';
import Order from '@/types/Order/Order';
import Actions from '@/types/Store/Actions';
import { useDispatch } from '@tarojs/redux';
import { updateOrderState } from '@/store/rootReducers/orderState';
type PayOrderData = {
accountList: CustomerBeanAccountVo[];
orderInfo: Order;
payInfos: {
paymentAndActiveInfos: PaymentAndActiveInfo[];
paymentConfId: number;
};
};
const initPayOrderData = {
accountList: [],
orderInfo: {
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
},
payInfos: {
paymentAndActiveInfos: [],
paymentConfId: 0,
},
};
const reducer = (state: PayOrderData, action: Actions) => {
switch (action.type) {
case 'updateOrderData':
return {
...state,
...action.payload,
};
default:
return state;
}
};
const useWaitPayOrderState = (customerId: number): PayOrderData => {
const [state, dispatch] = useReducer(reducer, initPayOrderData);
const dispatchAction = useDispatch();
useEffect(() => {
fetchPayOrder({
customerId: customerId,
})
.then(res => {
if (res.data.length) {
dispatchAction(updateOrderState(true));
fetchOrderDetailAndPay({ id: res.data[0].id })
.then(({ accounts, orderInfo, payInfos }) => {
dispatch({
type: 'updateOrderData',
payload: {
accountList: accounts,
orderInfo: orderInfo,
payInfos: payInfos,
},
});
})
.catch(err => {
console.log(err);
});
}
})
.catch(err => {
console.log(err);
});
}, [customerId]);
return state;
};
export default useWaitPayOrderState;
.Account {
.Account-Card-warp {
padding: 40px 32px;
border-bottom: 1px solid #eee;
.Account-Card {
position: relative;
height: 360px;
.Account-Card-money {
padding: 60px 80px 36px;
color: #fff;
display: flex;
.Account-Card-label {
font-size: 24px;
margin-bottom: 16px;
}
.Account-Card-num {
font-size: 44px;
}
.Account-Card-Aimi {
width: 248px;
}
.Account-Card-credit {
position: relative;
padding-left: 66px;
&::after {
content: ' ';
position: absolute;
top: 46px;
left: 0;
height: 40px;
border-right: 1px solid #b5bffa;
}
}
}
.Account-line {
border-bottom: 1px solid #b5bffa;
margin: 0 40px;
}
.Account-Card-Bean {
padding: 30px 40px 0;
display: flex;
flex-flow: wrap;
font-size: 24px;
color: #fff;
.Account-Card-BeanItem {
width: 40%;
display: flex;
align-items: center;
margin: 0 5% 16px;
.Account-Card-BeanIcon {
width: 24px;
height: 24px;
margin-right: 16px;
}
.Account-Card-BeanCount {
width: 105px;
font-size: 28px;
}
}
}
}
}
.Account-Money {
padding: 60px 32px 20px;
display: flex;
// justify-content: space-between;
flex-wrap: wrap;
.Account-Money-Item {
display: flex;
flex-direction: column;
justify-content: center;
box-sizing: border-box;
width: 218px;
height: 160px;
text-align: center;
border: 4px solid #e6ebfd;
border-radius: 24px;
margin-bottom: 20px;
margin-right: 15px;
font-size: 32px;
&:nth-child(3n + 3) {
margin-right: 0;
}
&.selected {
background-color: #6180f4;
border-color: #6180f4;
color: #fff;
}
.giveText {
font-size: 24px;
}
}
}
.Account-Payway {
padding: 0 32px;
.Account-Payway-Item {
display: flex;
align-items: center;
.Account-Payway-Item-icon {
width: 56px;
height: 56px;
margin-right: 20px;
}
.Account-Payway-Item-name {
flex: 1;
}
.Account-Payway-Item-state {
width: 40px;
height: 40px;
margin-right: 18px;
}
}
}
.Account-Paybtn {
margin: 60px 32px 40px;
}
}
import './Account.scss';
import AccountCardBg from '../../images/account/bg_zhanghu@2x.png';
import TBeanIcon from '../../images/home/icon_tongyongdou@2x.png';
import HBeanIcon from '../../images/home/icon_chuifengdou@2x.png';
import WBeanIcon from '../../images/home/ic_yinshui@2x.png';
import SBeanIcon from '../../images/home/ic_xiyu@2x.png';
import WechatIcon from '../../images/payway/img_wechat@2x.png';
import PaySelectedIcon from '../../images/payway/pc_sel_icon@2x.png';
import radioIcon from '../../images/login/pc_nor_icon@2x.png';
import { View, Button, Image, Text } from '@tarojs/components';
import Taro, { useState } from '@tarojs/taro';
import { useSelector } from '@tarojs/redux';
import { Customer } from '@/types/Customer/Customer';
import { Service } from '@/api/home';
import useRechargePay from '@/hooks/useRechargePay';
import useAllBeanCount, { BeanType } from '@/hooks/useAllBeanCount';
import { rechargeOrder } from '@/api/account';
import AES from 'crypto-js/aes';
import Utf8 from 'crypto-js/enc-utf8';
import ECBmode from 'crypto-js/mode-ecb';
import PaddingPkcs7 from 'crypto-js/pad-pkcs7';
import useCreditDeposits from '@/hooks/useCreditDeposits';
enum PaywayCode {
wx = 2,
}
export const AccountComponent = () => {
const [payConfigId, setPayConfigId] = useState(0);
const [paywayId, setPaywayId] = useState(PaywayCode.wx);
const userinfo = useSelector(
(state: { userinfo: Customer }) => state.userinfo,
);
const serviceList = useSelector(
(state: { serviceList: Service[] }) => state.serviceList,
);
const { paywayList, payConfigList, isFirstRecharge } = useRechargePay(
userinfo.areaId,
userinfo.customerId,
);
const [filterBeanList, fetchNewBeanList] = useAllBeanCount(
userinfo,
serviceList,
);
const creditInfo = useCreditDeposits(userinfo.areaId);
const clickPayBtn = () => {
if (!payConfigId) {
Taro.showToast({
title: '请选择充值金额',
icon: 'none',
});
return;
}
if (!paywayId) {
Taro.showToast({
title: '请选择支付方式',
icon: 'none',
});
return;
}
let preAimiItem = filterBeanList.find(
item => item.serviceId === BeanType.aimi,
);
let preAimi = preAimiItem ? preAimiItem.money : 0;
console.log('in recharge: preAimi', preAimiItem, preAimi);
rechargeOrder({
id: payConfigId,
customerId: userinfo.customerId,
isFirstRecharge: isFirstRecharge,
rechargeType: paywayId.toString(),
})
.then(res => {
const { canCall, payStr } = res;
console.log(res);
if (canCall) {
if (payStr) {
const key = userinfo.customerId.toString().padEnd(16, '0');
const payData = JSON.parse(
AES.decrypt(payStr, Utf8.parse(key), {
mode: ECBmode,
padding: PaddingPkcs7,
}).toString(Utf8),
);
console.log(payData);
Taro.requestPayment({
timeStamp: payData.msg.timeStamp.toString(),
nonceStr: payData.msg.nonceStr,
package: payData.msg.package,
signType: payData.msg.signType,
paySign: payData.msg.paySign,
})
.then(res => {
console.log(res);
fetchNewBeanList(
userinfo.customerId,
userinfo.areaId,
userinfo.customerPhone,
)
.then(beanAccount => {
let aimiItem = beanAccount.find(
item => item.serviceId === '0',
);
console.log(aimiItem, preAimi);
if (aimiItem && aimiItem.money === preAimi) {
Taro.showModal({
title: '提示',
content:
'由于网络原因,本次充值可能延迟到账,请稍后查看余额',
});
}
})
.catch(console.error);
})
.catch(err => {
Taro.showToast({
title: err.msg || '发起支付失败',
icon: 'none',
});
});
}
} else {
Taro.showToast({
title: res.msg,
icon: 'none',
});
}
})
.catch(err => {
Taro.showToast({
title: err.msg || '呼起失败!',
icon: 'none',
});
});
};
return (
<View className='Account'>
<View className='Account-Card-warp'>
<View className='Account-Card'>
<Image className='bg' src={AccountCardBg} />
<View className='Account-Card-money'>
<View className='Account-Card-Aimi'>
<View className='Account-Card-label'>艾米余额</View>
{filterBeanList.length &&
filterBeanList.map(beanItem =>
beanItem.serviceId === BeanType.aimi ? (
<View key={beanItem.serviceId} className='Account-Card-num'>
{beanItem.money.toFixed(2)}
</View>
) : null,
)}
</View>
{creditInfo.showType && (
<View className='Account-Card-credit'>
<View className='Account-Card-label'>
{creditInfo.showType == '1' ? '我的授信' : '我的保证金'}
</View>
<View className='Account-Card-num'>
{creditInfo.amount.toFixed(2)}
</View>
</View>
)}
</View>
<View className='Account-line' />
<View className='Account-Card-Bean'>
{filterBeanList.length &&
filterBeanList.map(beanItem =>
beanItem.serviceId === BeanType.common ? (
<View
key={beanItem.serviceId}
className='Account-Card-BeanItem'>
<Image className='Account-Card-BeanIcon' src={TBeanIcon} />
<Text>通用豆:</Text>
<Text className='Account-Card-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.water ? (
<View
key={beanItem.serviceId}
className='Account-Card-BeanItem'>
<Image className='Account-Card-BeanIcon' src={WBeanIcon} />
<Text>饮水豆:</Text>
<Text className='Account-Card-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.hairDryer ? (
<View
key={beanItem.serviceId}
className='Account-Card-BeanItem'>
<Image className='Account-Card-BeanIcon' src={HBeanIcon} />
<Text>吹风豆:</Text>
<Text className='Account-Card-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.shower ? (
<View
key={beanItem.serviceId}
className='Account-Card-BeanItem'>
<Image className='Account-Card-BeanIcon' src={SBeanIcon} />
<Text>洗浴豆:</Text>
<Text className='Account-Card-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : null,
)}
</View>
</View>
</View>
<View className='Account-Money'>
{payConfigList.map(item => (
<View
key={item.id}
className={`Account-Money-Item ${
payConfigId === item.id ? 'selected' : ''
}`}
onClick={() => setPayConfigId(item.id)}>
<View>{item.rechargeMoney.toFixed(2)}</View>
{item.giveId && (
<View className='giveText'>
{item.giveName}
{item.giveMoney}
</View>
)}
</View>
))}
</View>
<View className='Account-Payway'>
{paywayList.map(item =>
item.id === 2 ? (
<View
key={item.id}
className='Account-Payway-Item'
onClick={() => setPaywayId(item.id)}>
<Image className='Account-Payway-Item-icon' src={WechatIcon} />
<View className='Account-Payway-Item-name'>{item.name}</View>
{paywayId === item.id ? (
<Image
className='Account-Payway-Item-state'
src={PaySelectedIcon}
/>
) : (
<Image className='Account-Payway-Item-state' src={radioIcon} />
)}
</View>
) : null,
)}
</View>
<Button className='Account-Paybtn' onClick={clickPayBtn}>
确定充值
</Button>
</View>
);
};
import Taro, { Component } from '@tarojs/taro'; import Taro, { Component, useEffect } from '@tarojs/taro';
import { ComponentClass } from 'react'; import { ComponentClass } from 'react';
import { View, Canvas, Image, Text } from '@tarojs/components'; import { View, Canvas, Image, Text } from '@tarojs/components';
...@@ -10,19 +10,13 @@ import wxbarcode from 'wxbarcode'; ...@@ -10,19 +10,13 @@ import wxbarcode from 'wxbarcode';
import './BarCode.scss'; import './BarCode.scss';
import { UserState, updateUserInfo } from '../../store/rootReducers/userinfo'; import { UserState, updateUserInfo } from '../../store/rootReducers/userinfo';
import { connect } from '@tarojs/redux'; import { connect, useSelector } from '@tarojs/redux';
import { fetchPayOrder, fetchOrderDetailAndPay } from '../../api/order';
import OrderInfo from '../Order/components/OrderInfo/OrderInfo';
import OrderTitle from '../Order/components/OrderTitle/OrderTitle';
import OrderPayway from '../Order/components/OrderPayway/OrderPayway';
import {
PaymentAndActiveInfo,
CustomerBeanAccountVo,
} from '../../api/baseClass';
import { Customer } from '../../types/Customer/Customer'; import { Customer } from '../../types/Customer/Customer';
import { refreshCodeBar } from '../../api/customer'; import { refreshCodeBar } from '../../api/customer';
import Order from '@/types/Order/Order';
import { shareHandle } from '@/common/shareMethod'; import { shareHandle } from '@/common/shareMethod';
import { PayOrderState } from '@/store/rootReducers/orderState';
import WaitPayOrderComponent from '@/components/WaitPayOrder/WaitPayOrder';
import widthWaitPayOrderComponent from '@/components/WaitPayOrder/WaitPayOrder';
type PageStateProps = { type PageStateProps = {
userinfo: Customer; userinfo: Customer;
...@@ -34,25 +28,7 @@ type PageDispatchProps = { ...@@ -34,25 +28,7 @@ type PageDispatchProps = {
type PageOwnProps = {}; type PageOwnProps = {};
type PageState = { type PageState = {
ScreenBrightness: number; ScreenBrightness: number;
showPayOrder: boolean;
showBig: boolean; showBig: boolean;
accounts: CustomerBeanAccountVo[];
orderInfo: Order;
payInfos: {
paymentAndActiveInfos: PaymentAndActiveInfo[];
paymentConfId: number;
};
deductionInfos: {
amiAccount: number;
beanAccount: number;
deductionMoney: number;
deductionType: string;
orderMoney: number;
payMoney: number;
payType: string;
remainAccount: number;
titlePerfix: string;
};
showBackTag: boolean; showBackTag: boolean;
}; };
...@@ -77,74 +53,14 @@ class BarCode extends Component { ...@@ -77,74 +53,14 @@ class BarCode extends Component {
super(props); super(props);
this.state = { this.state = {
ScreenBrightness: 1, ScreenBrightness: 1,
showPayOrder: false,
showBig: false, showBig: false,
accounts: [],
orderInfo: {
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
},
payInfos: {
paymentAndActiveInfos: [],
paymentConfId: 0,
},
deductionInfos: {
amiAccount: 0,
beanAccount: 0,
deductionMoney: 0,
deductionType: '',
orderMoney: 0,
payMoney: 0,
payType: '',
remainAccount: 0,
titlePerfix: '',
},
showBackTag: false, showBackTag: false,
}; };
} }
onShareAppMessage = shareHandle; onShareAppMessage = shareHandle;
componentWillMount() { componentWillMount() {
const { userinfo } = this.props;
fetchPayOrder({
customerId: userinfo.customerId,
})
.then(res => {
if (res.data.length) {
this.fetchOrder(res.data[0].id);
this.setState({ showPayOrder: true });
} else {
this.drawBarCode(); this.drawBarCode();
}
})
.catch(err => {
console.log(err);
});
console.log('调整亮度'); console.log('调整亮度');
Taro.getScreenBrightness() Taro.getScreenBrightness()
.then(({ value }) => { .then(({ value }) => {
...@@ -194,33 +110,6 @@ class BarCode extends Component { ...@@ -194,33 +110,6 @@ class BarCode extends Component {
} }
} }
fetchOrder(id: number) {
return fetchOrderDetailAndPay({
id,
})
.then(res => {
const { accounts, orderInfo, payInfos } = res;
this.setState({
accounts: accounts,
orderInfo: orderInfo,
payInfos: payInfos,
});
})
.catch(err => {
console.log(err);
});
}
payDoneHandle() {
this.setState(
{
showPayOrder: false,
},
() => {
this.drawBarCode();
},
);
}
drawBarCode() { drawBarCode() {
const { userinfo } = this.props; const { userinfo } = this.props;
const routeParams = this.$router.params; const routeParams = this.$router.params;
...@@ -248,6 +137,7 @@ class BarCode extends Component { ...@@ -248,6 +137,7 @@ class BarCode extends Component {
showBig: !showBig, showBig: !showBig,
}); });
} }
refreshCodeBar() { refreshCodeBar() {
const { updateUserInfo } = this.props; const { updateUserInfo } = this.props;
refreshCodeBar() refreshCodeBar()
...@@ -268,31 +158,22 @@ class BarCode extends Component { ...@@ -268,31 +158,22 @@ class BarCode extends Component {
} }
render() { render() {
const { userinfo } = this.props; const { showBig, showBackTag } = this.state;
const { const payOrderState = useSelector(
showPayOrder, (state: { orderState: PayOrderState }) =>
showBig, state.orderState.waitPayOrderState,
orderInfo, );
payInfos,
accounts, useEffect(() => {
showBackTag, if (!payOrderState) {
} = this.state; this.drawBarCode();
}
}, [payOrderState]);
return ( return (
<View className='BarCode'> <View className='BarCode'>
{showPayOrder && ( <WaitPayOrderComponent />
<View className='OrderBox'> <View className={payOrderState ? 'blur' : ''}>
<OrderTitle price={orderInfo.payableMoney} />
<OrderInfo orderInfo={orderInfo} />
<OrderPayway
onPayDoneCallback={this.payDoneHandle}
userinfo={userinfo}
accounts={accounts}
orderInfo={orderInfo}
payInfos={payInfos}
/>
</View>
)}
<View className={showPayOrder ? 'blur' : ''}>
{showBackTag && ( {showBackTag && (
<View className='BackTag' onClick={this.goBackPage}> <View className='BackTag' onClick={this.goBackPage}>
<Image className='icon' src={CodeIcon} /> <Image className='icon' src={CodeIcon} />
...@@ -305,7 +186,7 @@ class BarCode extends Component { ...@@ -305,7 +186,7 @@ class BarCode extends Component {
src={RefreshIcon} src={RefreshIcon}
onClick={this.refreshCodeBar} onClick={this.refreshCodeBar}
/> />
{showPayOrder ? null : ( {payOrderState ? null : (
<View className={`BarCodeImg ${showBig ? 'BarCodeImgBig' : ''}`}> <View className={`BarCodeImg ${showBig ? 'BarCodeImgBig' : ''}`}>
<Canvas <Canvas
className={`BarCodeCav ${showBig ? 'show' : ''}`} className={`BarCodeCav ${showBig ? 'show' : ''}`}
...@@ -317,6 +198,7 @@ class BarCode extends Component { ...@@ -317,6 +198,7 @@ class BarCode extends Component {
/> />
</View> </View>
)} )}
<View className='toggleBtn' onClick={this.toggleBigBarCode}> <View className='toggleBtn' onClick={this.toggleBigBarCode}>
<Image <Image
className={`arricon ${showBig ? 'rever' : ''}`} className={`arricon ${showBig ? 'rever' : ''}`}
...@@ -333,4 +215,4 @@ class BarCode extends Component { ...@@ -333,4 +215,4 @@ class BarCode extends Component {
} }
} }
export default BarCode as ComponentClass<PageOwnProps, PageState>; export default BarCode;
...@@ -30,15 +30,19 @@ ...@@ -30,15 +30,19 @@
.Home-UserBox { .Home-UserBox {
position: relative; position: relative;
// height: 390px; height: 320px;
padding: 0 0 40px; padding: 0 32px;
margin: 0 32px; // margin: 0 32px;
box-sizing: content-box; box-sizing: content-box;
background-color: #eee;
.Home-UserBox-content {
position: relative;
width: 100%;
height: 100%;
z-index: 0;
overflow: hidden;
.bg { .bg {
height: 390px; height: 390px;
&.big {
height: 428px;
}
} }
.Home-UserBox-Setting { .Home-UserBox-Setting {
position: absolute; position: absolute;
...@@ -75,32 +79,11 @@ ...@@ -75,32 +79,11 @@
border-top: 1px solid #d7daff; border-top: 1px solid #d7daff;
margin: 0 auto; margin: 0 auto;
} }
.Home-UserBox-Bean {
padding: 32px 40px 70px;
display: flex;
flex-flow: wrap;
font-size: 24px;
color: #666;
.Home-UserBox-BeanItem {
width: 40%;
display: flex;
align-items: center;
margin: 0 5%;
}
.Home-UserBox-BeanIcon {
width: 24px;
height: 24px;
margin-right: 12px;
}
.Home-UserBox-BeanCount {
font-size: 28px;
color: #333;
}
} }
.Home-UserBox-Order { .Home-UserBox-Order {
position: absolute; position: absolute;
left: 50%; left: 50%;
bottom: 0px; bottom: -40px;
transform: translate(-50%); transform: translate(-50%);
width: 572px; width: 572px;
height: 80px; height: 80px;
...@@ -109,26 +92,27 @@ ...@@ -109,26 +92,27 @@
border-radius: 50px; border-radius: 50px;
display: flex; display: flex;
overflow: hidden; overflow: hidden;
}
.Home-UserBox-Order-text { .Home-UserBox-Order-text {
position: relative;
flex: 1; flex: 1;
text-align: center; text-align: center;
color: #fff; color: #fff;
font-size: 24px; font-size: 24px;
&:first-child::after {
content: ' ';
position: absolute;
height: 44px;
width: 1px;
background-color: #abbcf9;
right: 0;
top: 18px;
} }
.Home-UserBox-Order-right {
background-color: #375ef1;
width: 212px;
display: flex;
justify-content: center;
align-items: center;
} }
.Home-UserBox-Order-icon {
width: 40px;
height: 20px;
} }
} }
.Home-Service {
padding-top: 40px;
.Home-Service-List { .Home-Service-List {
display: flex; display: flex;
flex-flow: wrap; flex-flow: wrap;
...@@ -146,6 +130,7 @@ ...@@ -146,6 +130,7 @@
margin: 20px auto 0; margin: 20px auto 0;
} }
} }
}
.Home-Announcement { .Home-Announcement {
position: relative; position: relative;
height: 222px; height: 222px;
......
import { ComponentClass } from 'react'; import { ComponentClass } from 'react';
import Taro, { Component } from '@tarojs/taro'; import Taro, { Component, Config } from '@tarojs/taro';
import { View, Image, Text } from '@tarojs/components'; import { View, Image, Text } from '@tarojs/components';
import UserBoxBg from '../../images/home/img_bg@2x.png'; import UserBoxBg from '../../images/home/img_bg@2x.png';
import ArrowIcon from '../../images/home/icon_dingdan@2x.png';
import AnnouncementBg from '../../images/home/img_gonggao_bg@2x.png'; import AnnouncementBg from '../../images/home/img_gonggao_bg@2x.png';
import MoreIcon from '../../images/home/icon_more_right@2x.png'; import MoreIcon from '../../images/home/icon_more_right@2x.png';
import SettingIcon from '../../images/home/icon_shezhi@2x.png'; import SettingIcon from '../../images/home/icon_shezhi@2x.png';
import AimiIcon from '../../images/home/ic_aimi@2x.png';
import HBeanIcon from '../../images/home/icon_chuifengdou@2x.png';
import WBeanIcon from '../../images/home/ic_yinshui@2x.png';
import SBeanIcon from '../../images/home/ic_xiyu@2x.png';
import UserHeaderM from '../../images/home/img_boy_touxiang@2x.png'; import UserHeaderM from '../../images/home/img_boy_touxiang@2x.png';
import UserHeaderF from '../../images/home/img_girl_touxiang@2x.png'; import UserHeaderF from '../../images/home/img_girl_touxiang@2x.png';
import WaterIconNormal from '../../images/menu/ic_zizhu@2x.png'; import WaterIconNormal from '../../images/menu/ic_zizhu@2x.png';
...@@ -33,7 +29,6 @@ import { ...@@ -33,7 +29,6 @@ import {
updateUserInfo, updateUserInfo,
INITIAL_STATE as userINitState, INITIAL_STATE as userINitState,
} from '../../store/rootReducers/userinfo'; } from '../../store/rootReducers/userinfo';
import { fetchBeanCount } from '../../api/bean';
import { fetchAnn, SectionItem } from '../../api/announcement'; import { fetchAnn, SectionItem } from '../../api/announcement';
import { appLogout } from '../../api/customer'; import { appLogout } from '../../api/customer';
import { Customer } from '@/types/Customer/Customer'; import { Customer } from '@/types/Customer/Customer';
...@@ -42,19 +37,15 @@ import { fetchAreaService, ServiceTypeParams, Service } from '@/api/home'; ...@@ -42,19 +37,15 @@ import { fetchAreaService, ServiceTypeParams, Service } from '@/api/home';
import MenuIconNormal from '@/components/MenuIcon/normal/MenuIconNormal'; import MenuIconNormal from '@/components/MenuIcon/normal/MenuIconNormal';
import MenuIconBlock from '@/components/MenuIcon/block/MenuIconBlock'; import MenuIconBlock from '@/components/MenuIcon/block/MenuIconBlock';
import MenuIconBig from '@/components/MenuIcon/big/MenuIconBig'; import MenuIconBig from '@/components/MenuIcon/big/MenuIconBig';
import { updateServiceList } from '@/store/rootReducers/service';
enum BeanType {
aimi = 'aimi',
shower = 'shower',
hairDryer = 'hairDryer',
water = 'water',
}
type PageStateProps = { type PageStateProps = {
userinfo: Customer; userinfo: Customer;
serviceList: Service[];
}; };
type PageDispatchProps = { type PageDispatchProps = {
updateUserInfo: (e: UserState) => void; updateUserInfo: (e: UserState) => void;
updateServiceList: (e: Service[]) => void;
}; };
type BeanAccount = { type BeanAccount = {
...@@ -66,7 +57,6 @@ type PageState = { ...@@ -66,7 +57,6 @@ type PageState = {
barMenuVisiable: boolean; barMenuVisiable: boolean;
beanAccount: BeanAccount[]; beanAccount: BeanAccount[];
annItem: SectionItem; annItem: SectionItem;
serviceList: Service[];
filterBeanList: BeanAccount[]; filterBeanList: BeanAccount[];
}; };
type IProps = PageStateProps & PageDispatchProps; type IProps = PageStateProps & PageDispatchProps;
...@@ -76,22 +66,29 @@ interface Home { ...@@ -76,22 +66,29 @@ interface Home {
state: PageState; state: PageState;
} }
@connect( @connect(
({ userinfo }) => ({ ({ userinfo, serviceList }) => ({
userinfo, userinfo,
serviceList,
}), }),
dispatch => ({ dispatch => ({
updateUserInfo(entity: UserState) { updateUserInfo(entity: UserState) {
dispatch(updateUserInfo(entity)); dispatch(updateUserInfo(entity));
}, },
updateServiceList(entity: Service[]) {
dispatch(updateServiceList(entity));
},
}), }),
) )
class Home extends Component { class Home extends Component {
config: Config = {
navigationBarBackgroundColor: '#eee',
};
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
barMenuVisiable: false, barMenuVisiable: false,
beanAccount: [], beanAccount: [],
serviceList: [],
filterBeanList: [], filterBeanList: [],
annItem: { annItem: {
id: 0, id: 0,
...@@ -118,59 +115,22 @@ class Home extends Component { ...@@ -118,59 +115,22 @@ class Home extends Component {
this.getInitData(); this.getInitData();
} }
getInitData() { getInitData() {
this.getBeanCountData();
this.getServiceList(); this.getServiceList();
this.getAnn(); this.getAnn();
} }
getServiceList() { getServiceList() {
const { userinfo } = this.props; const { userinfo, updateServiceList } = this.props;
if (userinfo.areaId) { if (userinfo.areaId) {
fetchAreaService({ fetchAreaService({
areaId: userinfo.areaId, areaId: userinfo.areaId,
type: ServiceTypeParams.wechatAppV, type: ServiceTypeParams.wechatAppV,
}).then(res => { }).then(res => {
console.log(res); updateServiceList(res.data);
this.setState(
{
serviceList: res.data,
},
() => {
const { beanAccount } = this.state;
if (beanAccount && beanAccount.length) {
this.getFilterBeanList();
}
},
);
}); });
} }
} }
getBeanCountData() {
const { userinfo } = this.props;
fetchBeanCount({
id: userinfo.customerId,
areaId: userinfo.areaId,
customerPhone: userinfo.customerPhone,
serviceIdList: [],
})
.then(res => {
const data = res.data;
this.setState(
{
beanAccount: data,
},
() => {
const { serviceList } = this.state;
if (serviceList && serviceList.length) {
this.getFilterBeanList();
}
},
);
})
.catch(console.error);
}
getAnn() { getAnn() {
const { userinfo } = this.props; const { userinfo } = this.props;
fetchAnn({ fetchAnn({
...@@ -189,47 +149,6 @@ class Home extends Component { ...@@ -189,47 +149,6 @@ class Home extends Component {
}); });
} }
getFilterBeanList() {
const { beanAccount, serviceList } = this.state;
let aimiItem = beanAccount.find(item => item.serviceId === '0');
let cfItem = beanAccount.find(
item => item.serviceId === '4' || item.serviceId === '12',
);
let xyItem = beanAccount.find(
item => item.serviceId === '5' || item.serviceId === '10',
);
let ysItem = beanAccount.find(
item =>
item.serviceId === '3' ||
item.serviceId === '11' ||
item.serviceId === '9',
);
let beanMap = {
[BeanType.aimi]: aimiItem ? aimiItem.money : 0,
};
for (let index = 0; index < serviceList.length; index++) {
const service = serviceList[index];
if (
service.serviceId === 3 ||
service.serviceId === 11 ||
service.serviceId === 9
) {
beanMap[BeanType.water] = ysItem ? ysItem.money : 0;
} else if (service.serviceId === 4 || service.serviceId === 12) {
beanMap[BeanType.hairDryer] = cfItem ? cfItem.money : 0;
} else if (service.serviceId === 5 || service.serviceId === 10) {
beanMap[BeanType.shower] = xyItem ? xyItem.money : 0;
}
}
let arr: BeanAccount[] = Object.keys(beanMap).map(k => ({
serviceId: k,
money: beanMap[k],
}));
this.setState({
filterBeanList: arr,
});
}
goSetting() { goSetting() {
Taro.navigateTo({ Taro.navigateTo({
url: '/pages/UserSetting/UserSetting', url: '/pages/UserSetting/UserSetting',
...@@ -252,7 +171,11 @@ class Home extends Component { ...@@ -252,7 +171,11 @@ class Home extends Component {
url: '/pages/Order/OrderList/OrderList', url: '/pages/Order/OrderList/OrderList',
}); });
} }
goAccount() {
Taro.navigateTo({
url: '/pages/Account/Account',
});
}
goBarCode(serviceId: number) { goBarCode(serviceId: number) {
Taro.navigateTo({ Taro.navigateTo({
url: `/pages/BarCode/BarCode?serviceId=${serviceId}`, url: `/pages/BarCode/BarCode?serviceId=${serviceId}`,
...@@ -271,11 +194,11 @@ class Home extends Component { ...@@ -271,11 +194,11 @@ class Home extends Component {
}); });
} }
toggleBarMenu() { toggleBarMenu = () => {
this.setState(({ barMenuVisiable }: PageState) => ({ this.setState(({ barMenuVisiable }: PageState) => ({
barMenuVisiable: !barMenuVisiable, barMenuVisiable: !barMenuVisiable,
})); }));
} };
logoutHandle() { logoutHandle() {
const { updateUserInfo } = this.props; const { updateUserInfo } = this.props;
appLogout() appLogout()
...@@ -299,13 +222,9 @@ class Home extends Component { ...@@ -299,13 +222,9 @@ class Home extends Component {
} }
render() { render() {
const { userinfo } = this.props; const { userinfo, serviceList } = this.props;
const { const { annItem, barMenuVisiable } = this.state;
annItem,
barMenuVisiable,
serviceList,
filterBeanList,
} = this.state;
return ( return (
<View className='Home'> <View className='Home'>
{barMenuVisiable ? ( {barMenuVisiable ? (
...@@ -320,18 +239,18 @@ class Home extends Component { ...@@ -320,18 +239,18 @@ class Home extends Component {
</View> </View>
) : null} ) : null}
<View className='Home-UserBox'> <View className='Home-UserBox'>
<View className='Home-UserBox-content'>
<Image <Image
className='Home-UserBox-Setting' className='Home-UserBox-Setting'
src={SettingIcon} src={SettingIcon}
onClick={this.toggleBarMenu} onClick={this.toggleBarMenu}
/> />
<Image <Image className='bg' src={UserBoxBg} />
className={`bg ${serviceList.length >= 2 ? 'big' : ''}`}
src={UserBoxBg}
/>
<View className='Home-UserBox-info'> <View className='Home-UserBox-info'>
<View className='Home-UserBox-other'> <View className='Home-UserBox-other'>
<View className='Home-UserBox-name'>{userinfo.customerName}</View> <View className='Home-UserBox-name'>
{userinfo.customerName}
</View>
<View className='Home-UserBox-tel'> <View className='Home-UserBox-tel'>
{this.formatePhone(userinfo.customerPhone)} {this.formatePhone(userinfo.customerPhone)}
</View> </View>
...@@ -351,61 +270,18 @@ class Home extends Component { ...@@ -351,61 +270,18 @@ class Home extends Component {
/> />
)} )}
</View> </View>
<View className='Home-UserBox-line' />
<View className='Home-UserBox-Bean'>
{filterBeanList &&
filterBeanList.length &&
filterBeanList.map(beanItem =>
beanItem.serviceId === BeanType.aimi ? (
<View className='Home-UserBox-BeanItem'>
<Image className='Home-UserBox-BeanIcon' src={AimiIcon} />
<Text>艾米:</Text>
<Text className='Home-UserBox-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.water ? (
<View
key={beanItem.serviceId}
className='Home-UserBox-BeanItem'>
<Image className='Home-UserBox-BeanIcon' src={WBeanIcon} />
<Text>饮水豆:</Text>
<Text className='Home-UserBox-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.hairDryer ? (
<View
key={beanItem.serviceId}
className='Home-UserBox-BeanItem'>
<Image className='Home-UserBox-BeanIcon' src={HBeanIcon} />
<Text>吹风豆:</Text>
<Text className='Home-UserBox-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : beanItem.serviceId === BeanType.shower ? (
<View
key={beanItem.serviceId}
className='Home-UserBox-BeanItem'>
<Image className='Home-UserBox-BeanIcon' src={SBeanIcon} />
<Text>洗浴豆:</Text>
<Text className='Home-UserBox-BeanCount'>
{beanItem.money ? beanItem.money.toFixed(2) : '0.00'}
</Text>
</View>
) : null,
)}
</View> </View>
<View className='Home-UserBox-Order'> <View className='Home-UserBox-Order'>
<Text className='Home-UserBox-Order-text'>我的订单</Text> <Text className='Home-UserBox-Order-text' onClick={this.goOrder}>
<View className='Home-UserBox-Order-right' onClick={this.goOrder}> 我的订单
<Image className='Home-UserBox-Order-icon' src={ArrowIcon} /> </Text>
</View> <Text className='Home-UserBox-Order-text' onClick={this.goAccount}>
账户
</Text>
</View> </View>
</View> </View>
<View className='Home-Service'>
{serviceList.length && serviceList.length <= 2 ? ( {serviceList.length && serviceList.length <= 2 ? (
<View className='Home-Service-List big'> <View className='Home-Service-List big'>
{serviceList.map(service => {serviceList.map(service =>
...@@ -514,6 +390,7 @@ class Home extends Component { ...@@ -514,6 +390,7 @@ class Home extends Component {
)} )}
</View> </View>
) : null} ) : null}
</View>
{annItem.id ? ( {annItem.id ? (
<View className='Home-Announcement'> <View className='Home-Announcement'>
......
import { ComponentClass } from 'react'; import Taro from '@tarojs/taro';
import Taro, { Component, Config } from '@tarojs/taro';
import { View, Text } from '@tarojs/components'; import { View, Text } from '@tarojs/components';
import OrderTitle from '../components/OrderTitle/OrderTitle'; import OrderTitle from '../components/OrderTitle/OrderTitle';
import OrderInfo from '../components/OrderInfo/OrderInfo'; import OrderInfo from '../components/OrderInfo/OrderInfo';
import './OrderDetail.scss'; import './OrderDetail.scss';
import { fetchOrderDetailAndPay } from '../../../api/order'; import { getPayType } from '../../../utils/payType';
import { PayType, getPayType } from '../../../utils/payType';
import { shareHandle } from '@/common/shareMethod'; import { shareHandle } from '@/common/shareMethod';
import { useSelector } from '@tarojs/redux';
import { OrderStoreState } from '../OrderList/store';
type pageProps = {}; const OrderDetail = () => {
type PageState = {
actualMoney: number;
areaId: number;
areaName: string;
consumeType: string;
createAt: string;
customerCellphone: string;
customerId: number;
customerName: string;
deductionBean: number;
deductionMoney: number;
equipmentNum: string;
equipmentPosition: string;
id: number;
operateId: number;
operateName: string;
operationMode: string;
orderName: string;
orderNumber: string;
orderState: string;
outTradeNo: string;
payType: PayType;
payableMoney: number;
serviceId: number;
serviceName: string;
thirdDiscountMoney: number;
thirdTradeNumber: string;
updateDate: string;
};
interface OrderDetail {
props: pageProps;
state: PageState;
}
class OrderDetail extends Component {
config: Config = {
navigationBarTitleText: '订单详情',
};
constructor(props) {
super(props);
this.state = {
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
};
}
onShareAppMessage = shareHandle;
componentWillMount() {
console.log('preload: ', this.$router.preload);
const data = this.$router.preload;
this.setState({
...data,
});
// this.getDetailInfo(id);
}
getDetailInfo(id: number) {
return fetchOrderDetailAndPay({
id: id,
})
.then(res => {
this.setState({
...res.data,
});
console.log(res);
})
.catch(err => {
console.log(err);
});
}
render() {
const { const {
actualMoney, actualMoney,
payableMoney, payableMoney,
...@@ -121,8 +25,12 @@ class OrderDetail extends Component { ...@@ -121,8 +25,12 @@ class OrderDetail extends Component {
equipmentPosition, equipmentPosition,
deductionMoney, deductionMoney,
thirdDiscountMoney, thirdDiscountMoney,
} = this.state; } = useSelector(
(state: { OrderList: OrderStoreState }) => state.OrderList.selectedOrder,
);
const payTypeName = getPayType(payType); const payTypeName = getPayType(payType);
return ( return (
<View className='OrderDetail'> <View className='OrderDetail'>
<OrderTitle price={payableMoney} /> <OrderTitle price={payableMoney} />
...@@ -176,7 +84,10 @@ class OrderDetail extends Component { ...@@ -176,7 +84,10 @@ class OrderDetail extends Component {
) : null} ) : null}
</View> </View>
); );
} };
} OrderDetail.config = {
navigationBarTitleText: '订单详情',
};
OrderDetail.onShareAppMessage = shareHandle;
export default OrderDetail as ComponentClass<pageProps, PageState>; export default OrderDetail;
page {
padding-top: 80px;
background-color: #eee;
}
.OrderList { .OrderList {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%; width: 100%;
height: 100%; // height: 100%;
overflow: hidden; // overflow: hidden;
.Tab { .Tab {
position: absolute; position: fixed;
top: 0; top: 0;
display: flex; display: flex;
background-color: #fff; background-color: #fff;
...@@ -14,6 +18,7 @@ ...@@ -14,6 +18,7 @@
line-height: 80px; line-height: 80px;
text-align: center; text-align: center;
font-size: 30px; font-size: 30px;
z-index: 1;
.Tab-item { .Tab-item {
width: 50%; width: 50%;
color: #999; color: #999;
...@@ -28,6 +33,10 @@ ...@@ -28,6 +33,10 @@
margin-top: 80px; margin-top: 80px;
background-color: #eee; background-color: #eee;
} }
.OrderList-Wrap {
padding-top: 22px;
background-color: #eee;
}
.OrderList-Group { .OrderList-Group {
margin-bottom: 22px; margin-bottom: 22px;
.OrderList-GroupTitle { .OrderList-GroupTitle {
......
import { ComponentClass } from 'react'; import { ComponentClass } from 'react';
import Taro, { Component, Config } from '@tarojs/taro'; import Taro, { Component, Config, useState, useEffect } from '@tarojs/taro';
import { View, Text, ScrollView } from '@tarojs/components'; import { View, Text, ScrollView } from '@tarojs/components';
import { connect } from '@tarojs/redux'; import { connect, useSelector, useDispatch, useStore } from '@tarojs/redux';
import OrderItem from '../components/OrderItem/OrderItem'; import OrderItem from '../components/OrderItem/OrderItem';
import './OrderList.scss'; import './OrderList.scss';
import { import {
toggleOrderState, fetchAllOrder,
updatePayOrderList, RechargeOrderItem,
updateAllOrderList, fetchRechargeOrders,
UpdateOrderParams, } from '../../../api/order';
} from './actions';
import { StoreState } from './store';
import { fetchAllOrder, fetchPayOrder } from '../../../api/order';
import Order, { AllOrderItem } from '../../../types/Order/Order';
import { Customer } from '@/types/Customer/Customer'; import { Customer } from '@/types/Customer/Customer';
import { shareHandle } from '@/common/shareMethod'; import { shareHandle } from '@/common/shareMethod';
import RechargeItem from '../components/RechargeItem/RechargeItem';
import Order, { AllOrderItem } from '@/types/Order/Order';
import {
selectOrder,
updateConsumeOrders,
updateRechargeOrders,
appendConsumeOrders,
appendRechargeOrders,
} from './actions';
import { ConsumeOrderInfo, RechargeOrderInfo, OrderStoreState } from './store';
type PageStateProps = { type PageStateProps = {
orderList: StoreState;
userinfo: Customer; userinfo: Customer;
consume: ConsumeOrderInfo;
recharge: RechargeOrderInfo;
}; };
type PageDispatchProps = { type PageDispatchProps = {
toggleOrderState: (state: String) => void; selectOrder: (entity: Order) => void;
updatePayOrder: (entity: UpdateOrderParams<Order>) => void; updateConsumeOrders: (entity: AllOrderItem[]) => void;
updateAllOrder: (entity: UpdateOrderParams<AllOrderItem>) => void; appendConsumeOrders: (entity: AllOrderItem[]) => void;
updateRechargeOrders: (entity: RechargeOrderItem[]) => void;
appendRechargeOrders: (entity: RechargeOrderItem[]) => void;
}; };
type PageOwnProps = {}; type PageOwnProps = {};
type PageProps = PageStateProps & PageDispatchProps & PageOwnProps; type PageProps = PageStateProps & PageDispatchProps & PageOwnProps;
type PageState = { type PageState = {
needRefresh: boolean; needRefresh: boolean;
orderType: number; // 0 消费,1 充值
consumeScrollTop: number;
rechargeScrollTop: number;
}; };
interface OrderList { interface OrderList {
props: PageProps; props: PageProps;
state: PageState; state: PageState;
} }
@connect( @connect(
({ OrderList, userinfo }) => ({ (state: { userinfo: Customer; OrderList: OrderStoreState }) => ({
orderList: OrderList, userinfo: state.userinfo,
userinfo, consume: state.OrderList.consume,
recharge: state.OrderList.recharge,
}), }),
dispatch => ({ dispatch => ({
toggleOrderState(state: String) { selectOrder(data: Order) {
dispatch(toggleOrderState(state)); dispatch(selectOrder(data));
},
updateConsumeOrders(data: AllOrderItem[]) {
dispatch(updateConsumeOrders(data));
}, },
updatePayOrder(data) { appendConsumeOrders(data: AllOrderItem[]) {
dispatch(updatePayOrderList(data)); dispatch(appendConsumeOrders(data));
}, },
updateAllOrder(data) { updateRechargeOrders(data: RechargeOrderItem[]) {
dispatch(updateAllOrderList(data)); dispatch(updateRechargeOrders(data));
},
appendRechargeOrders(data: RechargeOrderItem[]) {
dispatch(appendRechargeOrders(data));
}, },
}), }),
) )
...@@ -64,181 +81,233 @@ class OrderList extends Component { ...@@ -64,181 +81,233 @@ class OrderList extends Component {
navigationBarTitleText: '订单', navigationBarTitleText: '订单',
enablePullDownRefresh: true, enablePullDownRefresh: true,
}; };
onShareAppMessage = shareHandle;
constructor(props: PageProps) { constructor(props: PageProps) {
super(props); super(props);
this.state = { this.state = {
needRefresh: false, needRefresh: false,
orderType: 0,
consumeScrollTop: 0,
rechargeScrollTop: 0,
}; };
} }
onShareAppMessage = shareHandle;
componentWillMount() { componentWillMount() {
this.getPayOrderHandle(); this.fetchConsumeOrders();
this.getAllOrderHandle(); this.fetchRechargeOrders();
} }
componentDidShow() { componentDidShow() {
const { needRefresh } = this.state; const { needRefresh } = this.state;
if (needRefresh) { if (needRefresh) {
this.getPayOrderHandle(); this.fetchConsumeOrders();
this.getAllOrderHandle();
} }
} }
onPullDownRefresh() { onPullDownRefresh() {
console.log('in onPullDownRefresh'); const { orderType } = this.state;
const { Taro.showLoading({
orderList: { orderState }, title: '',
} = this.props; mask: true,
if (orderState === '1') { });
this.getPayOrderHandle().then(() => {
if (orderType) {
this.fetchRechargeOrders().then(() => {
Taro.stopPullDownRefresh();
Taro.hideLoading();
});
} else {
this.fetchConsumeOrders().then(() => {
Taro.stopPullDownRefresh(); Taro.stopPullDownRefresh();
Taro.hideLoading();
});
}
}
onReachBottom() {
const { orderType } = this.state;
Taro.showLoading({
title: '',
mask: true,
});
if (orderType) {
this.appendRechargeOrders().then(() => {
Taro.stopPullDownRefresh();
Taro.hideLoading();
}); });
} else { } else {
this.getAllOrderHandle().then(() => { this.appendConsumeOrders().then(() => {
Taro.stopPullDownRefresh(); Taro.stopPullDownRefresh();
Taro.hideLoading();
});
}
}
onPageScroll(e) {
const { orderType } = this.state;
if (orderType) {
this.setState({
rechargeScrollTop: e.scrollTop,
});
} else {
this.setState({
consumeScrollTop: e.scrollTop,
}); });
} }
} }
getPayOrderHandle(lastOrderId?: number) { fetchConsumeOrders() {
const { userinfo, updatePayOrder } = this.props; const {
return fetchPayOrder( userinfo: { customerId },
lastOrderId updateConsumeOrders,
? { } = this.props;
customerId: userinfo.customerId, return fetchAllOrder({
customerId,
pageSize: 10, pageSize: 10,
lastOrderId, })
.then(res => {
updateConsumeOrders(res.data);
})
.catch(err => {
Taro.showToast({
title: err.msg || '请求失败',
icon: 'none',
});
});
} }
: { appendConsumeOrders() {
customerId: userinfo.customerId, const {
userinfo: { customerId },
consume: { lastOrderId },
appendConsumeOrders,
} = this.props;
return fetchAllOrder({
customerId,
lastOrderId,
pageSize: 10, pageSize: 10,
}, })
)
.then(res => { .then(res => {
console.log(res); appendConsumeOrders(res.data);
updatePayOrder({ list: res.data, lastOrderId: lastOrderId });
}) })
.catch(console.error); .catch(err => {
Taro.showToast({
title: err.msg || '请求失败',
icon: 'none',
});
});
} }
getAllOrderHandle(lastOrderId?: number) { fetchRechargeOrders() {
const { const {
userinfo: { customerId }, userinfo: { customerId },
updateAllOrder, updateRechargeOrders,
} = this.props; } = this.props;
return fetchAllOrder( return fetchRechargeOrders({
lastOrderId customerId,
? {
customerId: customerId,
pageSize: 10, pageSize: 10,
lastOrderId, })
.then(res => {
updateRechargeOrders(res.data);
})
.catch(err => {
Taro.showToast({
title: err.msg || '请求失败',
icon: 'none',
});
});
} }
: { appendRechargeOrders() {
customerId: customerId, const {
userinfo: { customerId },
recharge: { lastOrderId },
appendRechargeOrders,
} = this.props;
return fetchRechargeOrders({
customerId,
lastOrderId,
pageSize: 10, pageSize: 10,
}, })
)
.then(res => { .then(res => {
console.log(res); appendRechargeOrders(res.data);
updateAllOrder({ list: res.data, lastOrderId: lastOrderId });
}) })
.catch(console.error); .catch(err => {
Taro.showToast({
title: err.msg || '请求失败',
icon: 'none',
});
});
} }
goPayPage(data) { goPayPage = (data: Order) => {
const { selectOrder } = this.props;
// dispatch(selectOrder(data));
// setNeedRefresh(true);
selectOrder(data);
this.setState({ this.setState({
needRefresh: true, needRefresh: true,
}); });
this.$preload({ id: data.id });
Taro.navigateTo({ Taro.navigateTo({
url: '/pages/Order/OrderPay/OrderPay', url: `/pages/Order/OrderPay/OrderPay?id=${data.id}`,
}); });
} };
goDetail(data) { goDetail = (data: Order) => {
const { selectOrder } = this.props;
// dispatch(selectOrder(data));
// setNeedRefresh(false);
selectOrder(data);
this.setState({ this.setState({
needRefresh: false, needRefresh: false,
}); });
this.$preload(data);
Taro.navigateTo({ Taro.navigateTo({
url: '/pages/Order/OrderDetail/OrderDetail', url: '/pages/Order/OrderDetail/OrderDetail',
}); });
} };
setOrderType(type: number) {
toggleStateHandle(type: string) { this.setState(
const { {
toggleOrderState, orderType: type,
orderList: { payList, allList }, },
} = this.props; () => {
if (type === '1' && payList.length === 0) { const { orderType, consumeScrollTop, rechargeScrollTop } = this.state;
this.getPayOrderHandle(); if (orderType) {
} Taro.pageScrollTo({
if (type === 'all' && allList.length === 0) { scrollTop: rechargeScrollTop,
this.getAllOrderHandle(); duration: 0,
} });
toggleOrderState(type);
}
refreshList() {
console.log('in refreshList');
// Taro.startPullDownRefresh({
// success: this.onPullDownRefresh,
// });
}
fetchMoreList() {
const {
orderList: { orderState, payList, allList },
} = this.props;
console.log('in moreList ' + orderState);
if (orderState === '1') {
this.getPayOrderHandle(payList[payList.length - 1].id);
} else { } else {
const itemIdx = allList.length - 1; Taro.pageScrollTo({
const orderIdx = allList[itemIdx].data.length - 1; scrollTop: consumeScrollTop,
console.log(itemIdx, orderIdx); duration: 0,
});
this.getAllOrderHandle(allList[itemIdx].data[orderIdx].id);
} }
},
);
} }
render() { render() {
const { orderType } = this.state;
const { const {
orderList: { orderState, payList, allList }, consume: { consumeOrders },
recharge: { rechargeOrders },
} = this.props; } = this.props;
return ( return (
<View className='OrderList'> <View className='OrderList'>
<View className='Tab'> <View className='Tab'>
<Text <Text
className={`Tab-item ${orderState === '1' ? 'active' : ''}`} className={`Tab-item ${orderType === 0 ? 'active' : ''}`}
onClick={() => this.toggleStateHandle('1')}> onClick={() => this.setOrderType(0)}>
待付款 消费
</Text> </Text>
<Text <Text
className={`Tab-item ${orderState === 'all' ? 'active' : ''}`} className={`Tab-item ${orderType === 1 ? 'active' : ''}`}
onClick={() => this.toggleStateHandle('all')}> onClick={() => this.setOrderType(1)}>
全部 充值
</Text> </Text>
</View> </View>
<ScrollView {orderType === 0 ? (
className='OrderList-Content' <View className='OrderList-Wrap'>
scrollY {consumeOrders.map((allItem, index) => (
onScrollToUpper={this.refreshList} <View key={allItem.groupName} className='OrderList-Group'>
onScrollToLower={this.fetchMoreList}
upperThreshold={-100}
lowerThreshold={70}
scrollWithAnimation
scrollTop={0}>
{orderState === '1'
? payList.map(order => (
<OrderItem
key={order.id}
data={order}
onGoDetail={this.goDetail}
onPayHandle={this.goPayPage}
/>
))
: allList.map((allItem, index) => (
<View key={index} className='OrderList-Group'>
<View className='OrderList-GroupTitle'> <View className='OrderList-GroupTitle'>
<View className='OrderList-GroupName'> <View className='OrderList-GroupName'>
{allItem.groupName} {allItem.groupName}
...@@ -255,10 +324,27 @@ class OrderList extends Component { ...@@ -255,10 +324,27 @@ class OrderList extends Component {
))} ))}
</View> </View>
))} ))}
</ScrollView> </View>
) : (
<View className='OrderList-Wrap'>
{rechargeOrders.map(reChargeItem => (
<View key={reChargeItem.groupName} className='OrderList-Group'>
<View className='OrderList-GroupTitle'>
<View className='OrderList-GroupName'>
{reChargeItem.groupName}
</View>
{/* {index === 0 && <Text>只保留最近三个月充值订单数据</Text>} */}
</View>
{reChargeItem.data.map(order => (
<RechargeItem key={order.id} data={order} />
))}
</View>
))}
</View>
)}
</View> </View>
); );
} }
} }
export default OrderList as ComponentClass<PageOwnProps>; export default OrderList;
import Actions from '../../../types/Store/Actions'; import Actions from '../../../types/Store/Actions';
import Order, { AllOrderItem } from '../../../types/Order/Order'; import Order, { AllOrderItem } from '../../../types/Order/Order';
export const TOGGLE_ORDER_STATE = 'TOGGLE_ORDER_STATE'; import { RechargeOrderItem } from '@/api/order';
export const UPDATE_PAY_LIST = 'UPDATE_PAY_LIST'; export const SELECT_ORDER = 'SELECT_ORDER';
export const UPDATE_ALL_LIST = 'UPDATE_ALL_LIST'; export const UPDATE_CONSUME_ORDERS = 'UPDATE_CONSUME_ORDERS';
export const APPEND_CONSUME_ORDERS = 'APPEND_CONSUME_ORDERS';
export const UPDATE_CONSUME_LASTID = 'UPDATE_CONSUME_LASTID';
export const UPDATE_RECHARGE_ORDERS = 'UPDATE_RECHARGE_ORDERS';
export const APPEND_RECHARGE_ORDERS = 'APPEND_RECHARGE_ORDERS';
export const UPDATE_RECHARGE_LASTID = 'UPDATE_RECHARGE_LASTID';
export type UpdateOrderParams<T> = { export type UpdateOrderParams<T> = {
lastOrderId?: number; lastOrderId?: number;
list: T[]; list: T[];
}; };
export const toggleOrderState = (state: String): Actions => ({ export const selectOrder = (state: Order): Actions => ({
type: TOGGLE_ORDER_STATE, type: SELECT_ORDER,
payload: state, payload: state,
}); });
export const updatePayOrderList = ( export const updateConsumeOrders = (state: AllOrderItem[]): Actions => ({
state: UpdateOrderParams<Order> type: UPDATE_CONSUME_ORDERS,
): Actions => ({
type: UPDATE_PAY_LIST,
payload: state, payload: state,
}); });
export const updateAllOrderList = ( export const appendConsumeOrders = (state: AllOrderItem[]): Actions => ({
state: UpdateOrderParams<AllOrderItem> type: APPEND_CONSUME_ORDERS,
): Actions => ({
type: UPDATE_ALL_LIST,
payload: state, payload: state,
}); });
export const updateConsumeLastId = (data: number): Actions => ({
type: UPDATE_CONSUME_LASTID,
payload: data,
});
export const updateRechargeOrders = (state: RechargeOrderItem[]): Actions => ({
type: UPDATE_RECHARGE_ORDERS,
payload: state,
});
export const appendRechargeOrders = (state: RechargeOrderItem[]): Actions => ({
type: APPEND_RECHARGE_ORDERS,
payload: state,
});
export const updateRechargeLastId = (data: number): Actions => ({
type: UPDATE_RECHARGE_LASTID,
payload: data,
});
import Actions from '../../../types/Store/Actions'; import Actions from '../../../types/Store/Actions';
import Order, { AllOrderItem } from '../../../types/Order/Order'; import Order, { AllOrderItem } from '../../../types/Order/Order';
import { import {
TOGGLE_ORDER_STATE, SELECT_ORDER,
UPDATE_PAY_LIST, UPDATE_CONSUME_ORDERS,
UPDATE_ALL_LIST, APPEND_CONSUME_ORDERS,
UPDATE_RECHARGE_ORDERS,
APPEND_RECHARGE_ORDERS,
UPDATE_CONSUME_LASTID,
UPDATE_RECHARGE_LASTID,
} from './actions'; } from './actions';
import { RechargeOrderItem } from '@/api/order';
export interface StoreState { export type ConsumeOrderInfo = {
orderState: String; consumeOrders: AllOrderItem[];
payList: Order[]; lastOrderId: number;
allList: AllOrderItem[]; };
export type RechargeOrderInfo = {
rechargeOrders: RechargeOrderItem[];
lastOrderId: number;
};
export interface OrderStoreState {
selectedOrder: Order;
consume: ConsumeOrderInfo;
recharge: RechargeOrderInfo;
} }
const initOrder = () => ({
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
});
const INITIAL_STATE = { const INITIAL_STATE = {
orderState: '1', selectedOrder: initOrder(),
payList: [], consume: {
allList: [], consumeOrders: [],
lastOrderId: 0,
},
recharge: {
rechargeOrders: [],
lastOrderId: 0,
},
};
const getLastId = (arr): number => {
const itemIdx = arr.length - 1;
if (itemIdx >= 0) {
const orderIdx = arr[itemIdx].data.length - 1;
if (orderIdx >= 0) {
let lastOrderId = arr[itemIdx].data[orderIdx].id;
return lastOrderId;
}
}
return 0;
}; };
export default function OrderList( export default function OrderList(
state: StoreState = INITIAL_STATE, state: OrderStoreState = INITIAL_STATE,
actions: Actions actions: Actions,
) { ) {
switch (actions.type) { switch (actions.type) {
case TOGGLE_ORDER_STATE: case SELECT_ORDER:
return { return {
...state, ...state,
orderState: actions.payload, selectedOrder: actions.payload,
}; };
case UPDATE_PAY_LIST: case UPDATE_CONSUME_ORDERS:
if (actions.payload.lastOrderId) { if (actions.payload.length) {
let arr = actions.payload;
let lastOrderId = getLastId(arr);
return { return {
...state, ...state,
payList: [...state.payList, ...actions.payload.list], consume: {
lastOrderId: lastOrderId,
consumeOrders: actions.payload,
},
}; };
} else { }
return { return {
...state, ...state,
payList: actions.payload.list, consume: {
...state.consume,
consumeOrders: actions.payload,
},
}; };
} case APPEND_CONSUME_ORDERS:
case UPDATE_ALL_LIST: if (actions.payload.length) {
if (actions.payload.lastOrderId) { let arr = actions.payload;
if (actions.payload.list.length) { let lastOrderId = getLastId(arr);
let key = actions.payload.list[0].groupName;
let index = state.allList.findIndex(item => item.groupName == key);
if (index > -1) {
return { return {
...state, ...state,
allList: [ consume: {
...state.allList.slice(0, index), lastOrderId: lastOrderId,
{ consumeOrders: [...state.consume.consumeOrders, ...actions.payload],
groupName: state.allList[index].groupName,
data: [
...state.allList[index].data,
...actions.payload.list[0].data,
],
}, },
...actions.payload.list.slice(1),
],
}; };
} }
return { return {
...state, ...state,
allList: [...state.allList, ...actions.payload.list], consume: {
...state.consume,
consumeOrders: [...state.consume.consumeOrders, ...actions.payload],
},
};
case UPDATE_CONSUME_LASTID:
return {
...state,
consume: {
...state.consume,
lastOrderId: actions.payload,
},
};
case UPDATE_RECHARGE_ORDERS:
if (actions.payload.length) {
let arr = actions.payload;
let lastOrderId = getLastId(arr);
return {
...state,
recharge: {
lastOrderId: lastOrderId,
rechargeOrders: actions.payload,
},
}; };
} }
return state; return {
...state,
recharge: {
...state.recharge,
rechargeOrders: actions.payload,
},
};
case APPEND_RECHARGE_ORDERS:
if (actions.payload.length) {
let arr = actions.payload;
let lastOrderId = getLastId(arr);
return {
...state,
recharge: {
lastOrderId: lastOrderId,
rechargeOrders: [
...state.recharge.rechargeOrders,
...actions.payload,
],
},
};
} }
return { return {
...state, ...state,
allList: actions.payload.list, recharge: {
...state.recharge,
rechargeOrders: [
...state.recharge.rechargeOrders,
...actions.payload,
],
},
};
case UPDATE_RECHARGE_LASTID:
return {
...state,
recharge: {
...state.recharge,
lastOrderId: actions.payload,
},
}; };
default: default:
return state; return state;
......
import { useEffect } from '@tarojs/taro';
import { fetchAllOrder } from '@/api/order';
import { AllOrderItem } from '@/types/Order/Order';
import { useSelector, useDispatch } from '@tarojs/redux';
import { OrderStoreState } from './store';
import {
appendConsumeOrders,
updateConsumeOrders,
updateConsumeLastId,
} from './actions';
const useConsumeOrders = (
customerId: number,
pageSize: number,
): [AllOrderItem[], () => Promise<any>, () => Promise<any>] => {
const state = useSelector(
(state: { OrderList: OrderStoreState }) => state.OrderList.consume,
);
const dispatch = useDispatch();
const fetchData = (customerId: number, pageSize: number) =>
fetchAllOrder({
customerId,
lastOrderId: state.lastOrderId,
pageSize,
})
.then(res => {
state.lastOrderId
? dispatch(appendConsumeOrders(res.data))
: dispatch(updateConsumeOrders(res.data));
return res.data;
})
.catch(err => {
console.log(err);
});
const fetchMore = () => {
return fetchData(customerId, pageSize);
};
const resetOrders = () => {
dispatch(updateConsumeLastId(0));
return fetchData(customerId, pageSize);
};
useEffect(() => {
fetchData(customerId, pageSize);
}, [customerId, pageSize]);
return [state.consumeOrders, fetchMore, resetOrders];
};
export default useConsumeOrders;
import { useEffect, useReducer } from '@tarojs/taro';
import { fetchRechargeOrders, RechargeOrderItem } from '@/api/order';
import { useSelector, useDispatch } from '@tarojs/redux';
import { OrderStoreState } from './store';
import {
updateRechargeLastId,
appendRechargeOrders,
updateRechargeOrders,
} from './actions';
const useRechargeOrders = (
customerId: number,
pageSize: number,
): [RechargeOrderItem[], () => Promise<any>, () => Promise<any>] => {
const state = useSelector(
(state: { OrderList: OrderStoreState }) => state.OrderList.recharge,
);
const dispatch = useDispatch();
const fetchData = (customerId: number, pageSize: number) =>
fetchRechargeOrders({
customerId,
lastOrderId: state.lastOrderId,
pageSize,
})
.then(res => {
state.lastOrderId
? dispatch(appendRechargeOrders(res.data))
: dispatch(updateRechargeOrders(res.data));
return res.data;
})
.catch(err => {
console.log(err);
});
const fetchMore = () => {
return fetchData(customerId, pageSize);
};
const resetOrders = () => {
dispatch(updateRechargeLastId(0));
return fetchData(customerId, pageSize);
};
useEffect(() => {
fetchData(customerId, pageSize);
}, [customerId, pageSize]);
return [state.rechargeOrders, fetchMore, resetOrders];
};
export default useRechargeOrders;
...@@ -86,8 +86,8 @@ class OrderPay extends Component { ...@@ -86,8 +86,8 @@ class OrderPay extends Component {
onShareAppMessage = shareHandle; onShareAppMessage = shareHandle;
componentWillMount() { componentWillMount() {
const data = this.$router.preload; const data = this.$router.params;
if (data) { if (data && data.id) {
this.fetchOrder(data.id); this.fetchOrder(data.id);
} }
} }
......
...@@ -83,7 +83,7 @@ class OrderItem extends Component { ...@@ -83,7 +83,7 @@ class OrderItem extends Component {
</View> </View>
<View <View
className={`OrderItem-price ${orderState === '1' ? 'topay' : ''}`}> className={`OrderItem-price ${orderState === '1' ? 'topay' : ''}`}>
{payableMoney} {payableMoney.toFixed(2)}
</View> </View>
</View> </View>
); );
......
.RechargeItem {
position: relative;
box-sizing: border-box;
width: 702px;
margin: 20px auto;
background-color: #fff;
border-radius: 8px;
padding: 19px 26px 15px;
font-size: 26px;
.RechargeItem-text {
height: 54px;
line-height: 54px;
}
.RechargeItem-price {
position: absolute;
top: 18px;
right: 26px;
font-size: 36px;
}
.RechargeItem-price.topay {
color: #ff4e4e;
}
.RechargeItem-toPay {
position: absolute;
top: 66px;
right: 26px;
font-size: 24px;
color: #6180f4;
}
.RechargeItem-payDone {
position: absolute;
width: 102px;
height: 94px;
right: 10px;
bottom: 10px;
}
}
import Taro from '@tarojs/taro';
import { View, Text, Image } from '@tarojs/components';
import payDoneImg from '../../../../images/order/dingdan_yiwancheng_img@2x.png';
import './RechargeItem.scss';
import { RechargeOrder } from '@/api/order';
const RechargeItem = (props: { data: RechargeOrder }) => {
const {
data: { createAt, rechargeRemark, actualAmount, orderNum },
} = props;
return (
<View className='RechargeItem'>
<View className='RechargeItem-text'>
<Text>充值说明:</Text>
<Text>{rechargeRemark}</Text>
</View>
<View className='RechargeItem-text'>
<Text>充值时间:</Text>
<Text>{createAt}</Text>
<Image className='RechargeItem-payDone' src={payDoneImg} />
</View>
<View className='RechargeItem-text'>
<Text>订单编号:</Text>
<Text>{orderNum}</Text>
</View>
<View
className={`RechargeItem-price ${actualAmount >= 0 ? 'topay' : ''}`}>
{actualAmount.toFixed(2)}
</View>
</View>
);
};
RechargeItem.defaultProps = {
data: {
actualAmount: 0,
afterAmount: 0,
areaId: 0,
areaName: '',
beforeAmount: 0,
businessType: '',
completeAt: '',
createAt: '',
customerId: 0,
customerName: '',
customerPhone: '',
failReason: '',
giveMoney: 0,
handler: '',
id: 0,
operType: '',
operateId: 0,
operateName: '',
orderNum: '',
orderState: '',
payType: '',
rechargeRemark: '',
serviceName: '',
updateAt: '',
},
};
export default RechargeItem;
...@@ -12,22 +12,24 @@ import { ...@@ -12,22 +12,24 @@ import {
DeviceInfoResponse, DeviceInfoResponse,
startShowerEquipment, startShowerEquipment,
fetchUsingShowerInfo, fetchUsingShowerInfo,
getShowerController,
OperationMode,
} from '@/api/shower'; } from '@/api/shower';
import { connect } from '@tarojs/redux'; import { connect, useSelector } from '@tarojs/redux';
import { Customer } from '@/types/Customer/Customer'; import { Customer } from '@/types/Customer/Customer';
import { ComponentClass } from 'react'; import { ComponentClass } from 'react';
import { ResponseDataEntity } from '@/api';
import { connectSocket } from '@/api/socket'; import { connectSocket } from '@/api/socket';
import { SOCKET_URL } from '@/constants'; import { SOCKET_URL } from '@/constants';
import { BluetoothDevice } from '@/types/Shower/Shower'; import { BluetoothDevice } from '@/types/Shower/Shower';
import { updateBluetoothDevice } from './actions'; import { updateBluetoothDevice } from './actions';
import { ab2str, str2ab } from '@/utils/arrayBuffer'; import { ab2str, str2ab } from '@/utils/arrayBuffer';
import { CustomerBeanAccountVo, PaymentAndActiveInfo } from '@/api/baseClass'; import WaitPayOrderComponent from '@/components/WaitPayOrder/WaitPayOrder';
import Order from '@/types/Order/Order'; import { PayOrderState } from '@/store/rootReducers/orderState';
import { fetchPayOrder, fetchOrderDetailAndPay } from '@/api/order';
import OrderTitle from '../Order/components/OrderTitle/OrderTitle'; enum BlueToothError {
import OrderInfo from '../Order/components/OrderInfo/OrderInfo'; BlueToothNotOpen = 'BlueToothNotOpen',
import OrderPayway from '../Order/components/OrderPayway/OrderPayway'; DeviceNotFound = 'DeviceNotFound',
}
type DeviceInfo = { type DeviceInfo = {
deviceId: string; deviceId: string;
...@@ -54,14 +56,6 @@ type PageState = { ...@@ -54,14 +56,6 @@ type PageState = {
sockedDone: boolean; sockedDone: boolean;
deviceDone: boolean; deviceDone: boolean;
showerState: boolean; showerState: boolean;
showPayOrder: boolean;
accounts: CustomerBeanAccountVo[];
orderInfo: Order;
payInfos: {
paymentAndActiveInfos: PaymentAndActiveInfo[];
paymentConfId: number;
};
}; };
const StopCode = 1000; const StopCode = 1000;
...@@ -70,7 +64,7 @@ interface Shower { ...@@ -70,7 +64,7 @@ interface Shower {
state: PageState; state: PageState;
} }
let timer: number | null = null; let timer: NodeJS.Timeout | null = null;
let reConnectting: boolean = false; let reConnectting: boolean = false;
let socketTask: Taro.SocketTask | null = null; let socketTask: Taro.SocketTask | null = null;
@connect( @connect(
...@@ -105,49 +99,12 @@ class Shower extends Component { ...@@ -105,49 +99,12 @@ class Shower extends Component {
writeId: '', writeId: '',
readId: '', readId: '',
}, },
showPayOrder: false,
accounts: [],
orderInfo: {
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
},
payInfos: {
paymentAndActiveInfos: [],
paymentConfId: 0,
},
}; };
} }
onShareAppMessage = shareHandle; onShareAppMessage = shareHandle;
componentWillMount() { componentWillMount() {
this.getPayState();
this.openBluetooth(); this.openBluetooth();
this.connectDeviceSocket(); this.connectDeviceSocket();
this.checkUsingDevice(); this.checkUsingDevice();
...@@ -161,43 +118,6 @@ class Shower extends Component { ...@@ -161,43 +118,6 @@ class Shower extends Component {
reConnectting = false; reConnectting = false;
} }
getPayState() {
const { userinfo } = this.props;
fetchPayOrder({
customerId: userinfo.customerId,
})
.then(res => {
if (res.data.length) {
this.fetchOrder(res.data[0].id);
this.setState({ showPayOrder: true });
}
})
.catch(err => {
console.log(err);
});
}
fetchOrder(id: number) {
return fetchOrderDetailAndPay({
id,
})
.then(res => {
const { accounts, orderInfo, payInfos } = res;
this.setState({
accounts: accounts,
orderInfo: orderInfo,
payInfos: payInfos,
});
})
.catch(err => {
console.log(err);
});
}
payDoneHandle() {
this.setState({
showPayOrder: false,
});
}
connectDeviceSocket() { connectDeviceSocket() {
connectSocket(SOCKET_URL).then(task => { connectSocket(SOCKET_URL).then(task => {
socketTask = task; socketTask = task;
...@@ -392,7 +312,7 @@ class Shower extends Component { ...@@ -392,7 +312,7 @@ class Shower extends Component {
} }
warnBluetoothOpen() { warnBluetoothOpen() {
Taro.showModal({ return Taro.showModal({
title: '警告', title: '警告',
content: '为保障正常使用,请打开蓝牙功能', content: '为保障正常使用,请打开蓝牙功能',
}); });
...@@ -413,12 +333,13 @@ class Shower extends Component { ...@@ -413,12 +333,13 @@ class Shower extends Component {
customerId: userinfo.customerId.toString(), customerId: userinfo.customerId.toString(),
campusId: userinfo.areaId, campusId: userinfo.areaId,
}) })
.then((res: ResponseDataEntity<DeviceInfoResponse>) => { .then(res => {
const data = res.data; const data = res.data;
updateBluetoothDevice({ updateBluetoothDevice({
code: data.code, code: data.code,
isOnlyBluetooth: data.isOnlyBluetooth, isOnlyBluetooth: data.isOnlyBluetooth,
position: data.position, position: data.position,
operationMode: data.operationMode,
}); });
}) })
.catch(err => { .catch(err => {
...@@ -443,15 +364,15 @@ class Shower extends Component { ...@@ -443,15 +364,15 @@ class Shower extends Component {
return Taro.startBluetoothDevicesDiscovery() return Taro.startBluetoothDevicesDiscovery()
.then(() => { .then(() => {
const { code, isOnlyBluetooth } = this.props.bluetoothDevice; const { code, isOnlyBluetooth } = this.props.bluetoothDevice;
let timer: number | null = null; let timer: NodeJS.Timeout | null = null;
return new Promise(resolve => { return new Promise((resolve, reject) => {
if (isOnlyBluetooth) { if (isOnlyBluetooth) {
timer = setTimeout(() => { timer = setTimeout(() => {
Taro.stopBluetoothDevicesDiscovery(); reject({ msg: BlueToothError.DeviceNotFound });
}, 10000); }, 10000);
} else { } else {
timer = setTimeout(() => { timer = setTimeout(() => {
Taro.stopBluetoothDevicesDiscovery(); reject({ msg: BlueToothError.DeviceNotFound });
}, 5000); }, 5000);
} }
Taro.onBluetoothDeviceFound(res => { Taro.onBluetoothDeviceFound(res => {
...@@ -472,14 +393,39 @@ class Shower extends Component { ...@@ -472,14 +393,39 @@ class Shower extends Component {
}) })
.catch(err => { .catch(err => {
// Taro.stopBluetoothDevicesDiscovery(); // Taro.stopBluetoothDevicesDiscovery();
if (timer) {
clearInterval(timer);
}
Taro.hideLoading(); Taro.hideLoading();
console.error('startBluetoothDevicesDiscovery: ', err); console.error('startBluetoothDevicesDiscovery: ', err);
this.warnBluetoothOpen(); // if (err.msg === BlueToothError.DeviceNotFound) {
Taro.stopBluetoothDevicesDiscovery();
this.sendStartShower();
throw err;
// } else {
// return this.warnBluetoothOpen();
// }
}); });
} else { } else {
Taro.hideLoading(); Taro.hideLoading();
this.warnBluetoothOpen(); return this.warnBluetoothOpen().then(res => {
throw '未开启蓝牙'; if (res.confirm) {
const { isOnlyBluetooth } = this.props.bluetoothDevice;
if (!isOnlyBluetooth) {
Taro.showLoading({
title: '开启中',
mask: true,
});
return new Promise((resolve, reject) => {
setTimeout(() => {
this.sendStartShower();
reject();
}, 5000);
});
}
}
throw BlueToothError.BlueToothNotOpen;
});
} }
} }
...@@ -713,6 +659,63 @@ class Shower extends Component { ...@@ -713,6 +659,63 @@ class Shower extends Component {
}); });
} }
checkUserMonry() {
const { userinfo } = this.props;
return getShowerController({
customerId: userinfo.customerId,
campusId: userinfo.areaId,
})
.then(res => {
console.log(res);
const {
bluetoothDevice: { operationMode },
} = this.props;
const { thresholdValue, thresholdPrompt, money, beanAmount } = res.data;
if (thresholdValue) {
if (
operationMode === OperationMode.onlyAimi &&
money < thresholdValue
) {
return this.userWarnningHandle(thresholdPrompt, money, beanAmount);
}
if (
(operationMode === OperationMode.aimiFirst ||
operationMode === OperationMode.beanFirst) &&
money + beanAmount < thresholdValue
) {
return this.userWarnningHandle(thresholdPrompt, money, beanAmount);
}
return Promise.resolve();
}
return Promise.resolve();
})
.catch(console.error);
}
userWarnningHandle(thresholdPrompt, money, beanAmount) {
Taro.hideLoading();
console.log('in userWarnningHandle');
let arr = [money, beanAmount];
let i = -1;
return Taro.showModal({
title: '提示',
content: thresholdPrompt.replace(/(\{.*?\})/g, () => {
i++;
return arr[i];
}),
}).then(res => {
if (res.confirm) {
Taro.showLoading({
title: '开启中',
mask: true,
});
return Promise.resolve();
} else {
return Promise.reject();
}
});
}
startUseShower(reConnect: boolean) { startUseShower(reConnect: boolean) {
if (!reConnect) { if (!reConnect) {
Taro.showLoading({ Taro.showLoading({
...@@ -724,7 +727,8 @@ class Shower extends Component { ...@@ -724,7 +727,8 @@ class Shower extends Component {
if (!sockedDone) { if (!sockedDone) {
this.connectDeviceSocket(); this.connectDeviceSocket();
} }
this.startDevicesDiscovery() this.checkUserMonry()
.then(() => this.startDevicesDiscovery())
.then((deviceId: string) => this.createConnection(deviceId)) .then((deviceId: string) => this.createConnection(deviceId))
.then(this.getDeviceServices) .then(this.getDeviceServices)
.then(res => { .then(res => {
...@@ -798,31 +802,18 @@ class Shower extends Component { ...@@ -798,31 +802,18 @@ class Shower extends Component {
render() { render() {
const { const {
bluetoothDevice: { code, position }, bluetoothDevice: { code, position },
userinfo,
} = this.props; } = this.props;
const { const { showerState } = this.state;
showerState, const payOrderState = useSelector(
showPayOrder, (state: { orderState: PayOrderState }) =>
orderInfo, state.orderState.waitPayOrderState,
accounts, );
payInfos,
} = this.state;
return ( return (
<View className='Shower'> <View className='Shower'>
{showPayOrder && ( <WaitPayOrderComponent />
<View className='OrderBox'>
<OrderTitle price={orderInfo.payableMoney} /> <View className={payOrderState ? 'blur' : ''}>
<OrderInfo orderInfo={orderInfo} />
<OrderPayway
onPayDoneCallback={this.payDoneHandle}
userinfo={userinfo}
accounts={accounts}
orderInfo={orderInfo}
payInfos={payInfos}
/>
</View>
)}
<View className={showPayOrder ? 'blur' : ''}>
<View className='equipment-info-box'> <View className='equipment-info-box'>
<View className='equipment-info'> <View className='equipment-info'>
{code ? ( {code ? (
......
...@@ -18,15 +18,14 @@ import { ...@@ -18,15 +18,14 @@ import {
PageConfigResponse, PageConfigResponse,
} from '@/api/waterDispenser'; } from '@/api/waterDispenser';
import { Customer } from '@/types/Customer/Customer'; import { Customer } from '@/types/Customer/Customer';
import { connect } from '@tarojs/redux'; import { connect, useSelector } from '@tarojs/redux';
import { ComponentClass } from 'react'; import { ComponentClass } from 'react';
import { ResponseDataEntity } from '@/api'; import { ResponseDataEntity } from '@/api';
import { CustomerBeanAccountVo, PaymentAndActiveInfo } from '@/api/baseClass'; import { CustomerBeanAccountVo, PaymentAndActiveInfo } from '@/api/baseClass';
import Order from '@/types/Order/Order'; import Order from '@/types/Order/Order';
import { fetchOrderDetailAndPay, fetchPayOrder } from '@/api/order'; import { fetchOrderDetailAndPay, fetchPayOrder } from '@/api/order';
import OrderTitle from '../Order/components/OrderTitle/OrderTitle'; import WaitPayOrderComponent from '@/components/WaitPayOrder/WaitPayOrder';
import OrderInfo from '../Order/components/OrderInfo/OrderInfo'; import { PayOrderState } from '@/store/rootReducers/orderState';
import OrderPayway from '../Order/components/OrderPayway/OrderPayway';
export type DeviceInfo = { export type DeviceInfo = {
code: string; code: string;
...@@ -42,14 +41,6 @@ type PageState = { ...@@ -42,14 +41,6 @@ type PageState = {
useList: DeviceInfo[]; useList: DeviceInfo[];
timer: number | null; timer: number | null;
showToggleTag: boolean; showToggleTag: boolean;
showPayOrder: boolean;
accounts: CustomerBeanAccountVo[];
orderInfo: Order;
payInfos: {
paymentAndActiveInfos: PaymentAndActiveInfo[];
paymentConfId: number;
};
}; };
type IProps = PageStateProps; type IProps = PageStateProps;
...@@ -74,47 +65,10 @@ class WaterDispenser extends Component { ...@@ -74,47 +65,10 @@ class WaterDispenser extends Component {
useList: [], useList: [],
timer: null, timer: null,
showToggleTag: false, showToggleTag: false,
showPayOrder: false,
accounts: [],
orderInfo: {
actualMoney: 0,
areaId: 0,
areaName: '',
consumeType: '',
createAt: '',
customerCellphone: '',
customerId: 0,
customerName: '',
deductionBean: 0,
deductionMoney: 0,
equipmentNum: '',
equipmentPosition: '',
id: 0,
operateId: 0,
operateName: '',
operationMode: '',
orderName: '',
orderNumber: '',
orderState: '',
outTradeNo: '',
payType: '',
payableMoney: 0,
serviceId: 0,
serviceName: '',
thirdDiscountMoney: 0,
thirdTradeNumber: '',
updateDate: '',
},
payInfos: {
paymentAndActiveInfos: [],
paymentConfId: 0,
},
}; };
} }
componentWillMount() { componentWillMount() {
this.getPayState();
this.getUsedEquipment(); this.getUsedEquipment();
this.fetchPageConfig(); this.fetchPageConfig();
} }
...@@ -123,43 +77,6 @@ class WaterDispenser extends Component { ...@@ -123,43 +77,6 @@ class WaterDispenser extends Component {
this.clearTimer(); this.clearTimer();
} }
getPayState() {
const { userinfo } = this.props;
fetchPayOrder({
customerId: userinfo.customerId,
})
.then(res => {
if (res.data.length) {
this.fetchOrder(res.data[0].id);
this.setState({ showPayOrder: true });
}
})
.catch(err => {
console.log(err);
});
}
fetchOrder(id: number) {
return fetchOrderDetailAndPay({
id,
})
.then(res => {
const { accounts, orderInfo, payInfos } = res;
this.setState({
accounts: accounts,
orderInfo: orderInfo,
payInfos: payInfos,
});
})
.catch(err => {
console.log(err);
});
}
payDoneHandle() {
this.setState({
showPayOrder: false,
});
}
fetchPageConfig() { fetchPageConfig() {
const { userinfo } = this.props; const { userinfo } = this.props;
fetchPageConfig({ fetchPageConfig({
...@@ -284,11 +201,11 @@ class WaterDispenser extends Component { ...@@ -284,11 +201,11 @@ class WaterDispenser extends Component {
}); });
} }
getSelectedEquipment(data: DeviceInfo) { getSelectedEquipment = (data: DeviceInfo) => {
this.setState({ this.setState({
deviceInfo: data, deviceInfo: data,
}); });
} };
waterBeginning() { waterBeginning() {
Taro.showLoading(); Taro.showLoading();
...@@ -339,29 +256,16 @@ class WaterDispenser extends Component { ...@@ -339,29 +256,16 @@ class WaterDispenser extends Component {
deviceInfo: { code, position }, deviceInfo: { code, position },
useList, useList,
showToggleTag, showToggleTag,
showPayOrder,
orderInfo,
accounts,
payInfos,
} = this.state; } = this.state;
const { userinfo } = this.props; const payOrderState = useSelector(
(state: { orderState: PayOrderState }) =>
state.orderState.waitPayOrderState,
);
return ( return (
<View className='WaterDispenser'> <View className='WaterDispenser'>
{showPayOrder && ( <WaitPayOrderComponent />
<View className='OrderBox'> <View className={payOrderState ? 'blur' : ''}>
<OrderTitle price={orderInfo.payableMoney} />
<OrderInfo orderInfo={orderInfo} />
<OrderPayway
onPayDoneCallback={this.payDoneHandle}
userinfo={userinfo}
accounts={accounts}
orderInfo={orderInfo}
payInfos={payInfos}
/>
</View>
)}
<View className={showPayOrder ? 'blur' : ''}>
{showToggleTag && ( {showToggleTag && (
<View className='WaterDispenser-tg' onClick={this.toggleCodeState}> <View className='WaterDispenser-tg' onClick={this.toggleCodeState}>
<Image className='icon' src={CodeIcon} /> <Image className='icon' src={CodeIcon} />
......
...@@ -2,9 +2,13 @@ import { combineReducers } from 'redux'; ...@@ -2,9 +2,13 @@ import { combineReducers } from 'redux';
import userinfo from './rootReducers/userinfo'; import userinfo from './rootReducers/userinfo';
import OrderList from '../pages/Order/OrderList/store'; import OrderList from '../pages/Order/OrderList/store';
import ShowerReducer from '@/pages/Shower/store'; import ShowerReducer from '@/pages/Shower/store';
import serviceList from './rootReducers/service';
import orderState from './rootReducers/orderState';
export default combineReducers({ export default combineReducers({
userinfo, userinfo,
OrderList, OrderList,
Shower: ShowerReducer, Shower: ShowerReducer,
serviceList,
orderState,
}); });
import Actions from '@/types/Store/Actions';
export type PayOrderState = {
waitPayOrderState: boolean;
};
const INITIAL_STATE = {
waitPayOrderState: false,
};
export const updateOrderState = (state: boolean): Actions => ({
type: 'UPDATE_ORDER_STATE',
payload: state,
});
export default function orderState(
state: PayOrderState = INITIAL_STATE,
action: Actions,
) {
switch (action.type) {
case 'UPDATE_ORDER_STATE':
return { ...state, waitPayOrderState: action.payload };
default:
return state;
}
}
import Action from '../../types/Store/Actions';
import { Service } from '@/api/home';
const INITIAL_STATE: Service[] = [];
export type ServiceState = StoreState<{ list: Service[] }>;
export const updateServiceList = (entity: Service[]): Action => ({
type: 'UPDATE_SERVICE_LIST',
payload: entity,
});
export default function serviceList(
state: Service[] = INITIAL_STATE,
actions: Action,
): Service[] {
switch (actions.type) {
case 'UPDATE_SERVICE_LIST':
return actions.payload;
default:
return state;
}
}
import { OperationMode } from '@/api/shower';
export type BluetoothDevice = { export type BluetoothDevice = {
code: string; code: string;
isOnlyBluetooth: number; isOnlyBluetooth: number;
operationMode: OperationMode;
position: string; position: string;
}; };
...@@ -78,65 +78,68 @@ ...@@ -78,65 +78,68 @@
lodash "^4.2.0" lodash "^4.2.0"
to-fast-properties "^2.0.0" to-fast-properties "^2.0.0"
"@tarojs/async-await@1.2.13": "@tarojs/async-await@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/async-await/-/async-await-1.2.13.tgz#1c32a87ecf86ab72bab74599e97b004e274b115f" resolved "https://registry.yarnpkg.com/@tarojs/async-await/-/async-await-1.3.4.tgz#82dc0453c2288e248feced32f81352d2ac778b68"
dependencies: dependencies:
promise-polyfill "^7.1.2" promise-polyfill "^7.1.2"
regenerator-runtime "^0.11.1" regenerator-runtime "^0.11.1"
"@tarojs/components@1.2.13": "@tarojs/components@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/components/-/components-1.2.13.tgz#a37a5393eda5a6b7d6dd72a05108316722381c6b" resolved "https://registry.yarnpkg.com/@tarojs/components/-/components-1.3.4.tgz#fd29268d5425c44d69b8ae906bb8f4a126396f94"
dependencies: dependencies:
better-scroll "^1.14.1"
classnames "^2.2.5" classnames "^2.2.5"
nervjs "^1.3.0"
omit.js "^1.0.0" omit.js "^1.0.0"
resolve-pathname "^3.0.0"
swiper "^4.4.2" swiper "^4.4.2"
weui "^1.1.2" weui "^1.1.2"
"@tarojs/plugin-babel@1.2.13": "@tarojs/plugin-babel@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/plugin-babel/-/plugin-babel-1.2.13.tgz#94cce174c12c287dad24b21d11aca8e03a54cc2d" resolved "https://registry.yarnpkg.com/@tarojs/plugin-babel/-/plugin-babel-1.3.4.tgz#59924f54a93f6f5bf3a2fd8f4183f34093ae5392"
dependencies: dependencies:
babel-core "^6.26.0" babel-core "^6.26.0"
"@tarojs/plugin-csso@1.2.13": "@tarojs/plugin-csso@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/plugin-csso/-/plugin-csso-1.2.13.tgz#ebf1c4780c47be20548e5daeb775369aa6dbb178" resolved "https://registry.yarnpkg.com/@tarojs/plugin-csso/-/plugin-csso-1.3.4.tgz#14d54e834fe83b1f0de5fe42d783a1fabd9171e1"
dependencies: dependencies:
csso "^3.5.0" csso "^3.5.0"
"@tarojs/plugin-sass@1.2.13": "@tarojs/plugin-sass@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/plugin-sass/-/plugin-sass-1.2.13.tgz#c2152159572e7c22d115087da12d53489a8c3972" resolved "https://registry.yarnpkg.com/@tarojs/plugin-sass/-/plugin-sass-1.3.4.tgz#3c750a1c3b43ba1fe9f0aee7e01e4cd9f176eeec"
dependencies: dependencies:
node-sass "^4.11.0" node-sass "^4.12.0"
scss-bundle "^2.5.1"
"@tarojs/plugin-uglifyjs@1.2.13": "@tarojs/plugin-uglifyjs@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/plugin-uglifyjs/-/plugin-uglifyjs-1.2.13.tgz#049023a6dbea08db046655b9897f200a7df04a44" resolved "https://registry.yarnpkg.com/@tarojs/plugin-uglifyjs/-/plugin-uglifyjs-1.3.4.tgz#fc3c6fb3ae4729aadd305effadab9c3e1d90240a"
dependencies: dependencies:
uglify-js "^3.3.24" uglify-js "^3.3.24"
"@tarojs/redux-h5@1.2.13": "@tarojs/redux-h5@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/redux-h5/-/redux-h5-1.2.13.tgz#5b442647c0cf3efec849f61549187cfd057e449f" resolved "https://registry.yarnpkg.com/@tarojs/redux-h5/-/redux-h5-1.3.4.tgz#8f73e8e7a4f9f0f0721f6a7738bc0ba5c936630d"
dependencies: dependencies:
hoist-non-react-statics "^2.5.0" hoist-non-react-statics "^2.5.0"
invariant "^2.2.4" invariant "^2.2.4"
loose-envify "^1.1.0" loose-envify "^1.1.0"
prop-types "^15.6.1" prop-types "^15.6.1"
"@tarojs/redux@1.2.13": "@tarojs/redux@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/redux/-/redux-1.2.13.tgz#a78450a83a18d9b4404bebd21ac7cbf386fd9fca" resolved "https://registry.yarnpkg.com/@tarojs/redux/-/redux-1.3.4.tgz#e122685603c8271e23a4196df4b0bcb5b7b83e9d"
dependencies: dependencies:
"@tarojs/utils" "1.2.13" "@tarojs/taro" "1.3.4"
"@tarojs/utils" "1.3.4"
"@tarojs/router@1.2.13": "@tarojs/router@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/router/-/router-1.2.13.tgz#b5654f50992d1ada6ec58c9dba53895bea737534" resolved "https://registry.yarnpkg.com/@tarojs/router/-/router-1.3.4.tgz#5a7cadc1e88c65bc6730fe27ae5f895810e718f2"
dependencies: dependencies:
invariant "2.2.4" invariant "2.2.4"
lodash "4.17.11" lodash "4.17.11"
...@@ -145,85 +148,89 @@ ...@@ -145,85 +148,89 @@
value-equal "0.4.0" value-equal "0.4.0"
warning "4.0.2" warning "4.0.2"
"@tarojs/taro-alipay@1.2.13": "@tarojs/taro-alipay@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro-alipay/-/taro-alipay-1.2.13.tgz#9a96b1e01c4f1ca83977b3e84ddb609cb985fd93" resolved "https://registry.yarnpkg.com/@tarojs/taro-alipay/-/taro-alipay-1.3.4.tgz#67e3cd1fd5ae4d644cc626c0d95d0c605b96bd22"
dependencies: dependencies:
"@tarojs/taro" "1.2.13" "@tarojs/taro" "1.3.4"
"@tarojs/utils" "1.2.13" "@tarojs/utils" "1.3.4"
lodash "^4.17.10" lodash "^4.17.10"
prop-types "^15.6.1" prop-types "^15.6.1"
"@tarojs/taro-h5@1.2.13": "@tarojs/taro-h5@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro-h5/-/taro-h5-1.2.13.tgz#1e9be22dcf9773c5fe95ccbb386785c83ad6eee9" resolved "https://registry.yarnpkg.com/@tarojs/taro-h5/-/taro-h5-1.3.4.tgz#7c7751f5ccea928b4994df002ab8ae5cf3144a50"
dependencies: dependencies:
"@tarojs/taro" "1.2.13"
base64-js "^1.3.0" base64-js "^1.3.0"
jsonp-retry "^1.0.3" jsonp-retry "^1.0.3"
mobile-detect "^1.4.2" mobile-detect "^1.4.2"
raf "^3.4.1"
whatwg-fetch "^2.0.4" whatwg-fetch "^2.0.4"
"@tarojs/taro-swan@1.2.13": "@tarojs/taro-swan@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro-swan/-/taro-swan-1.2.13.tgz#edef5119d27451757cd1d7f345a2102c04f98fad" resolved "https://registry.yarnpkg.com/@tarojs/taro-swan/-/taro-swan-1.3.4.tgz#4c802166622881e59783e7070478e707e6dff573"
dependencies: dependencies:
"@tarojs/taro" "1.2.13" "@tarojs/taro" "1.3.4"
"@tarojs/utils" "1.2.13" "@tarojs/utils" "1.3.4"
lodash "^4.17.10" lodash "^4.17.10"
prop-types "^15.6.1" prop-types "^15.6.1"
"@tarojs/taro-tt@1.2.13": "@tarojs/taro-tt@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro-tt/-/taro-tt-1.2.13.tgz#f1cfec7bded1ba3e11499b30e9746078ae6c1d13" resolved "https://registry.yarnpkg.com/@tarojs/taro-tt/-/taro-tt-1.3.4.tgz#9a5406fe399249454c29cb3fef9babe6425598a7"
dependencies: dependencies:
"@tarojs/taro" "1.2.13" "@tarojs/taro" "1.3.4"
"@tarojs/utils" "1.2.13" "@tarojs/utils" "1.3.4"
lodash "^4.17.10" lodash "^4.17.10"
prop-types "^15.6.1" prop-types "^15.6.1"
"@tarojs/taro-weapp@1.2.13": "@tarojs/taro-weapp@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro-weapp/-/taro-weapp-1.2.13.tgz#11b9752eafbb1dcf02d6ab161c38d1a6c9c6f19b" resolved "https://registry.yarnpkg.com/@tarojs/taro-weapp/-/taro-weapp-1.3.4.tgz#8a1d258cbc3d01364086c61fbd77497907411deb"
dependencies: dependencies:
"@tarojs/taro" "1.2.13" "@tarojs/taro" "1.3.4"
"@tarojs/utils" "1.2.13" "@tarojs/utils" "1.3.4"
lodash "^4.17.10" lodash "^4.17.10"
prop-types "^15.6.1" prop-types "^15.6.1"
"@tarojs/taro@1.2.13": "@tarojs/taro@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-1.2.13.tgz#b77fd1d756f59f6596cde639f95aee7ef3745a47" resolved "https://registry.yarnpkg.com/@tarojs/taro/-/taro-1.3.4.tgz#a4fb58306ad8d1649243ff7a7f3853b756037d80"
"@tarojs/utils@1.2.13": "@tarojs/utils@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-1.2.13.tgz#57a17a57ffb5cd103d5c4e3849850a64ceafdfcc" resolved "https://registry.yarnpkg.com/@tarojs/utils/-/utils-1.3.4.tgz#8e1a4cf6c90f3d3ad41d7b3fac8e07027b3c9928"
"@tarojs/webpack-runner@1.2.13": "@tarojs/webpack-runner@1.3.4":
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/@tarojs/webpack-runner/-/webpack-runner-1.2.13.tgz#4b6dfda38d9b45ebb3c1ec2eac3a9be58cba54b7" resolved "https://registry.yarnpkg.com/@tarojs/webpack-runner/-/webpack-runner-1.3.4.tgz#a190065d0dc344a93ce915482a7c0d728a4c40cd"
dependencies: dependencies:
"@tarojs/taro-h5" "1.3.4"
autoprefixer "8.6.4" autoprefixer "8.6.4"
babel-core "6.26.0" babel-core "6.26.0"
babel-loader "7.1.4" babel-loader "7.1.4"
babel-plugin-syntax-dynamic-import "6.18.0" babel-plugin-syntax-dynamic-import "6.18.0"
babel-plugin-transform-react-jsx "6.24.1" babel-plugin-transform-react-jsx "6.24.1"
chalk "2.4.1" babel-plugin-transform-taroapi "1.3.4"
babel-types "6.26.0"
chalk "2.4.2"
copy-webpack-plugin "^5.0.3"
css-loader "1.0.0" css-loader "1.0.0"
csso-webpack-plugin "1.0.0-beta.12" csso-webpack-plugin "1.0.0-beta.12"
dart-sass "1.17.3"
file-loader "3.0.1" file-loader "3.0.1"
html-webpack-include-assets-plugin "1.0.5" html-webpack-include-assets-plugin "1.0.5"
html-webpack-plugin "3.1.0" html-webpack-plugin "3.2.0"
less "3.0.4" less "3.0.4"
less-loader "4.1.0" less-loader "4.1.0"
lodash "4.17.10" lodash "4.17.11"
mini-css-extract-plugin "0.4.1" mini-css-extract-plugin "0.4.1"
node-sass "4.11.0"
opn "5.3.0" opn "5.3.0"
ora "2.1.0" ora "2.1.0"
postcss-loader "2.1.6" postcss-loader "2.1.6"
postcss-plugin-constparse "1.2.13" postcss-plugin-constparse "1.3.4"
postcss-pxtransform "1.2.13" postcss-pxtransform "1.3.4"
resolve "1.8.1" resolve "1.8.1"
resolve-url-loader "2.3.0" resolve-url-loader "2.3.0"
sass-loader "7.1.0" sass-loader "7.1.0"
...@@ -231,12 +238,36 @@ ...@@ -231,12 +238,36 @@
stylus "0.54.5" stylus "0.54.5"
stylus-loader "3.0.2" stylus-loader "3.0.2"
uglifyjs-webpack-plugin "1.2.4" uglifyjs-webpack-plugin "1.2.4"
url-loader "1.0.1" url-loader "1.1.2"
webpack "4.14.0" webpack "4.28.4"
webpack-chain "4.9.0" webpack-chain "4.9.0"
webpack-dev-server "3.1.14" webpack-dev-server "3.1.14"
webpack-format-messages "2.0.3" webpack-format-messages "2.0.3"
webpack-merge "4.1.4"
"@types/chokidar@^1.7.5":
version "1.7.5"
resolved "https://registry.yarnpkg.com/@types/chokidar/-/chokidar-1.7.5.tgz#1fa78c8803e035bed6d98e6949e514b133b0c9b6"
dependencies:
"@types/events" "*"
"@types/node" "*"
"@types/events@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
"@types/lodash.debounce@^4.0.4":
version "4.0.6"
resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz#c5a2326cd3efc46566c47e4c0aa248dc0ee57d60"
dependencies:
"@types/lodash" "*"
"@types/lodash@*":
version "4.14.134"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.134.tgz#9032b440122db3a2a56200e91191996161dde5b9"
"@types/node@*":
version "12.0.10"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031"
"@types/prop-types@*": "@types/prop-types@*":
version "15.5.9" version "15.5.9"
...@@ -253,141 +284,130 @@ ...@@ -253,141 +284,130 @@
version "1.13.7" version "1.13.7"
resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.7.tgz#137a4e57aa31ab57b1baf66f5dc3b6bf085e9944" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.13.7.tgz#137a4e57aa31ab57b1baf66f5dc3b6bf085e9944"
"@webassemblyjs/ast@1.5.12": "@webassemblyjs/ast@1.7.11":
version "1.5.12" version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.5.12.tgz#a9acbcb3f25333c4edfa1fdf3186b1ccf64e6664" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
dependencies: dependencies:
"@webassemblyjs/helper-module-context" "1.5.12" "@webassemblyjs/helper-module-context" "1.7.11"
"@webassemblyjs/helper-wasm-bytecode" "1.5.12" "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
"@webassemblyjs/wast-parser" "1.5.12" "@webassemblyjs/wast-parser" "1.7.11"
debug "^3.1.0"
mamacro "^0.0.3" "@webassemblyjs/floating-point-hex-parser@1.7.11":
version "1.7.11"
"@webassemblyjs/floating-point-hex-parser@1.5.12": resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.12.tgz#0f36044ffe9652468ce7ae5a08716a4eeff9cd9c" "@webassemblyjs/helper-api-error@1.7.11":
version "1.7.11"
"@webassemblyjs/helper-api-error@1.5.12": resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.12.tgz#05466833ff2f9d8953a1a327746e1d112ea62aaf" "@webassemblyjs/helper-buffer@1.7.11":
version "1.7.11"
"@webassemblyjs/helper-buffer@1.5.12": resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.12.tgz#1f0de5aaabefef89aec314f7f970009cd159c73d" "@webassemblyjs/helper-code-frame@1.7.11":
dependencies: version "1.7.11"
debug "^3.1.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b"
dependencies:
"@webassemblyjs/helper-code-frame@1.5.12": "@webassemblyjs/wast-printer" "1.7.11"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.12.tgz#3cdc1953093760d1c0f0caf745ccd62bdb6627c7" "@webassemblyjs/helper-fsm@1.7.11":
dependencies: version "1.7.11"
"@webassemblyjs/wast-printer" "1.5.12" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181"
"@webassemblyjs/helper-fsm@1.5.12": "@webassemblyjs/helper-module-context@1.7.11":
version "1.5.12" version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.12.tgz#6bc1442b037f8e30f2e57b987cee5c806dd15027" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209"
"@webassemblyjs/helper-module-context@1.5.12": "@webassemblyjs/helper-wasm-bytecode@1.7.11":
version "1.5.12" version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.12.tgz#b5588ca78b33b8a0da75f9ab8c769a3707baa861" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06"
dependencies:
debug "^3.1.0" "@webassemblyjs/helper-wasm-section@1.7.11":
mamacro "^0.0.3" version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a"
"@webassemblyjs/helper-wasm-bytecode@1.5.12": dependencies:
version "1.5.12" "@webassemblyjs/ast" "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.12.tgz#d12a3859db882a448891a866a05d0be63785b616" "@webassemblyjs/helper-buffer" "1.7.11"
"@webassemblyjs/helper-wasm-bytecode" "1.7.11"
"@webassemblyjs/helper-wasm-section@1.5.12": "@webassemblyjs/wasm-gen" "1.7.11"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.12.tgz#ff9fe1507d368ad437e7969d25e8c1693dac1884" "@webassemblyjs/ieee754@1.7.11":
dependencies: version "1.7.11"
"@webassemblyjs/ast" "1.5.12" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b"
"@webassemblyjs/helper-buffer" "1.5.12" dependencies:
"@webassemblyjs/helper-wasm-bytecode" "1.5.12" "@xtuc/ieee754" "^1.2.0"
"@webassemblyjs/wasm-gen" "1.5.12"
debug "^3.1.0" "@webassemblyjs/leb128@1.7.11":
version "1.7.11"
"@webassemblyjs/ieee754@1.5.12": resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63"
version "1.5.12" dependencies:
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.5.12.tgz#ee9574bc558888f13097ce3e7900dff234ea19a4" "@xtuc/long" "4.2.1"
dependencies:
ieee754 "^1.1.11" "@webassemblyjs/utf8@1.7.11":
version "1.7.11"
"@webassemblyjs/leb128@1.5.12": resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82"
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.5.12.tgz#0308eec652765ee567d8a5fa108b4f0b25b458e1" "@webassemblyjs/wasm-edit@1.7.11":
dependencies: version "1.7.11"
leb "^0.3.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005"
dependencies:
"@webassemblyjs/utf8@1.5.12": "@webassemblyjs/ast" "1.7.11"
version "1.5.12" "@webassemblyjs/helper-buffer" "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.5.12.tgz#d5916222ef314bf60d6806ed5ac045989bfd92ce" "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
"@webassemblyjs/helper-wasm-section" "1.7.11"
"@webassemblyjs/wasm-edit@1.5.12": "@webassemblyjs/wasm-gen" "1.7.11"
version "1.5.12" "@webassemblyjs/wasm-opt" "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.12.tgz#821c9358e644a166f2c910e5af1b46ce795a17aa" "@webassemblyjs/wasm-parser" "1.7.11"
dependencies: "@webassemblyjs/wast-printer" "1.7.11"
"@webassemblyjs/ast" "1.5.12"
"@webassemblyjs/helper-buffer" "1.5.12" "@webassemblyjs/wasm-gen@1.7.11":
"@webassemblyjs/helper-wasm-bytecode" "1.5.12" version "1.7.11"
"@webassemblyjs/helper-wasm-section" "1.5.12" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8"
"@webassemblyjs/wasm-gen" "1.5.12" dependencies:
"@webassemblyjs/wasm-opt" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/wasm-parser" "1.5.12" "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
"@webassemblyjs/wast-printer" "1.5.12" "@webassemblyjs/ieee754" "1.7.11"
debug "^3.1.0" "@webassemblyjs/leb128" "1.7.11"
"@webassemblyjs/utf8" "1.7.11"
"@webassemblyjs/wasm-gen@1.5.12":
version "1.5.12" "@webassemblyjs/wasm-opt@1.7.11":
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.12.tgz#0b7ccfdb93dab902cc0251014e2e18bae3139bcb" version "1.7.11"
dependencies: resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7"
"@webassemblyjs/ast" "1.5.12" dependencies:
"@webassemblyjs/helper-wasm-bytecode" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/ieee754" "1.5.12" "@webassemblyjs/helper-buffer" "1.7.11"
"@webassemblyjs/leb128" "1.5.12" "@webassemblyjs/wasm-gen" "1.7.11"
"@webassemblyjs/utf8" "1.5.12" "@webassemblyjs/wasm-parser" "1.7.11"
"@webassemblyjs/wasm-opt@1.5.12": "@webassemblyjs/wasm-parser@1.7.11":
version "1.5.12" version "1.7.11"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.12.tgz#bd758a8bc670f585ff1ae85f84095a9e0229cbc9" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a"
dependencies: dependencies:
"@webassemblyjs/ast" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/helper-buffer" "1.5.12" "@webassemblyjs/helper-api-error" "1.7.11"
"@webassemblyjs/wasm-gen" "1.5.12" "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
"@webassemblyjs/wasm-parser" "1.5.12" "@webassemblyjs/ieee754" "1.7.11"
debug "^3.1.0" "@webassemblyjs/leb128" "1.7.11"
"@webassemblyjs/utf8" "1.7.11"
"@webassemblyjs/wasm-parser@1.5.12":
version "1.5.12" "@webassemblyjs/wast-parser@1.7.11":
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.12.tgz#7b10b4388ecf98bd7a22e702aa62ec2f46d0c75e" version "1.7.11"
dependencies: resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c"
"@webassemblyjs/ast" "1.5.12" dependencies:
"@webassemblyjs/helper-api-error" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/helper-wasm-bytecode" "1.5.12" "@webassemblyjs/floating-point-hex-parser" "1.7.11"
"@webassemblyjs/ieee754" "1.5.12" "@webassemblyjs/helper-api-error" "1.7.11"
"@webassemblyjs/leb128" "1.5.12" "@webassemblyjs/helper-code-frame" "1.7.11"
"@webassemblyjs/utf8" "1.5.12" "@webassemblyjs/helper-fsm" "1.7.11"
"@xtuc/long" "4.2.1"
"@webassemblyjs/wast-parser@1.5.12":
version "1.5.12" "@webassemblyjs/wast-printer@1.7.11":
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.5.12.tgz#9cf5ae600ecae0640437b5d4de5dd6b6088d0d8b" version "1.7.11"
dependencies: resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813"
"@webassemblyjs/ast" "1.5.12" dependencies:
"@webassemblyjs/floating-point-hex-parser" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/helper-api-error" "1.5.12" "@webassemblyjs/wast-parser" "1.7.11"
"@webassemblyjs/helper-code-frame" "1.5.12" "@xtuc/long" "4.2.1"
"@webassemblyjs/helper-fsm" "1.5.12"
long "^3.2.0"
mamacro "^0.0.3"
"@webassemblyjs/wast-printer@1.5.12":
version "1.5.12"
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.5.12.tgz#563ca4d01b22d21640b2463dc5e3d7f7d9dac520"
dependencies:
"@webassemblyjs/ast" "1.5.12"
"@webassemblyjs/wast-parser" "1.5.12"
long "^3.2.0"
"@webpack-contrib/schema-utils@^1.0.0-beta.0": "@webpack-contrib/schema-utils@^1.0.0-beta.0":
version "1.0.0-beta.0" version "1.0.0-beta.0"
...@@ -400,6 +420,14 @@ ...@@ -400,6 +420,14 @@
text-table "^0.2.0" text-table "^0.2.0"
webpack-log "^1.1.2" webpack-log "^1.1.2"
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
"@xtuc/long@4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
JSONStream@^1.3.4, JSONStream@^1.3.5: JSONStream@^1.3.4, JSONStream@^1.3.5:
version "1.3.5" version "1.3.5"
resolved "http://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" resolved "http://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
...@@ -522,11 +550,15 @@ ansi-regex@^3.0.0: ...@@ -522,11 +550,15 @@ ansi-regex@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
ansi-styles@^2.2.1: ansi-styles@^2.2.1:
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
ansi-styles@^3.2.1: ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1" version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
dependencies: dependencies:
...@@ -555,7 +587,7 @@ aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2: ...@@ -555,7 +587,7 @@ aproba@^1.0.3, aproba@^1.1.1, aproba@^1.1.2:
version "2.0.0" version "2.0.0"
resolved "http://registry.npm.taobao.org/aproba/download/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" resolved "http://registry.npm.taobao.org/aproba/download/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
archy@~1.0.0: archy@^1.0.0, archy@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "http://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" resolved "http://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
...@@ -617,7 +649,7 @@ array-unique@^0.3.2: ...@@ -617,7 +649,7 @@ array-unique@^0.3.2:
version "0.3.2" version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
asap@^2.0.0, asap@~2.0.3: asap@^2.0.0, asap@~2.0.3, asap@~2.0.6:
version "2.0.6" version "2.0.6"
resolved "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" resolved "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
...@@ -1170,6 +1202,10 @@ babel-plugin-transform-strict-mode@^6.24.1: ...@@ -1170,6 +1202,10 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0" babel-runtime "^6.22.0"
babel-types "^6.24.1" babel-types "^6.24.1"
babel-plugin-transform-taroapi@1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-taroapi/-/babel-plugin-transform-taroapi-1.3.4.tgz#82cf9ff923794cd37d5b60dabb22a554aa9d7321"
babel-preset-env@^1.6.1: babel-preset-env@^1.6.1:
version "1.7.0" version "1.7.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
...@@ -1217,7 +1253,7 @@ babel-register@^6.26.0: ...@@ -1217,7 +1253,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1" mkdirp "^0.5.1"
source-map-support "^0.4.15" source-map-support "^0.4.15"
babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: babel-runtime@^6.0.0, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
dependencies: dependencies:
...@@ -1248,7 +1284,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0: ...@@ -1248,7 +1284,7 @@ babel-traverse@^6.24.1, babel-traverse@^6.26.0:
invariant "^2.2.2" invariant "^2.2.2"
lodash "^4.17.4" lodash "^4.17.4"
babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: babel-types@6.26.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0:
version "6.26.0" version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
dependencies: dependencies:
...@@ -1295,6 +1331,12 @@ bcrypt-pbkdf@^1.0.0: ...@@ -1295,6 +1331,12 @@ bcrypt-pbkdf@^1.0.0:
dependencies: dependencies:
tweetnacl "^0.14.3" tweetnacl "^0.14.3"
better-scroll@^1.14.1:
version "1.15.2"
resolved "https://registry.yarnpkg.com/better-scroll/-/better-scroll-1.15.2.tgz#65ffc6058b8b4ff337b8dfad4bcb334d7699ceb6"
dependencies:
babel-runtime "^6.0.0"
big.js@^3.1.3: big.js@^3.1.3:
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
...@@ -1594,6 +1636,10 @@ camelcase@^4.0.0, camelcase@^4.1.0: ...@@ -1594,6 +1636,10 @@ camelcase@^4.0.0, camelcase@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
camelcase@^5.0.0:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000859: caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000859:
version "1.0.30000938" version "1.0.30000938"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz#b64bf1427438df40183fce910fe24e34feda7a3f" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz#b64bf1427438df40183fce910fe24e34feda7a3f"
...@@ -1606,9 +1652,9 @@ caseless@~0.12.0: ...@@ -1606,9 +1652,9 @@ caseless@~0.12.0:
version "0.12.0" version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
chalk@2.4.1: chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1:
version "2.4.1" version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
dependencies: dependencies:
ansi-styles "^3.2.1" ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
...@@ -1624,14 +1670,6 @@ chalk@^1.1.1, chalk@^1.1.3: ...@@ -1624,14 +1670,6 @@ chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0" strip-ansi "^3.0.0"
supports-color "^2.0.0" supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chardet@^0.4.0: chardet@^0.4.0:
version "0.4.2" version "0.4.2"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
...@@ -1654,6 +1692,24 @@ chokidar@^2.0.0, chokidar@^2.0.2: ...@@ -1654,6 +1692,24 @@ chokidar@^2.0.0, chokidar@^2.0.2:
optionalDependencies: optionalDependencies:
fsevents "^1.2.7" fsevents "^1.2.7"
chokidar@^2.0.4:
version "2.1.6"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
dependencies:
anymatch "^2.0.0"
async-each "^1.0.1"
braces "^2.3.2"
glob-parent "^3.1.0"
inherits "^2.0.3"
is-binary-path "^1.0.0"
is-glob "^4.0.0"
normalize-path "^3.0.0"
path-is-absolute "^1.0.0"
readdirp "^2.2.1"
upath "^1.1.1"
optionalDependencies:
fsevents "^1.2.7"
chownr@^1.0.1, chownr@^1.1.1: chownr@^1.0.1, chownr@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
...@@ -1758,6 +1814,14 @@ cliui@^4.0.0: ...@@ -1758,6 +1814,14 @@ cliui@^4.0.0:
strip-ansi "^4.0.0" strip-ansi "^4.0.0"
wrap-ansi "^2.0.0" wrap-ansi "^2.0.0"
cliui@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
dependencies:
string-width "^3.1.0"
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
clone-deep@^2.0.1: clone-deep@^2.0.1:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
...@@ -1828,6 +1892,10 @@ commander@2.17.x, commander@~2.17.1: ...@@ -1828,6 +1892,10 @@ commander@2.17.x, commander@~2.17.1:
version "2.17.1" version "2.17.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
commander@^2.19.0:
version "2.20.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
commander@~2.13.0: commander@~2.13.0:
version "2.13.0" version "2.13.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
...@@ -1952,6 +2020,23 @@ copy-descriptor@^0.1.0: ...@@ -1952,6 +2020,23 @@ copy-descriptor@^0.1.0:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
copy-webpack-plugin@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz#2179e3c8fd69f13afe74da338896f1f01a875b5c"
dependencies:
cacache "^11.3.2"
find-cache-dir "^2.1.0"
glob-parent "^3.1.0"
globby "^7.1.1"
is-glob "^4.0.1"
loader-utils "^1.2.3"
minimatch "^3.0.4"
normalize-path "^3.0.0"
p-limit "^2.2.0"
schema-utils "^1.0.0"
serialize-javascript "^1.7.0"
webpack-log "^2.0.0"
core-js@^2.4.0, core-js@^2.5.0: core-js@^2.4.0, core-js@^2.5.0:
version "2.6.5" version "2.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895"
...@@ -2156,6 +2241,12 @@ d@1: ...@@ -2156,6 +2241,12 @@ d@1:
dependencies: dependencies:
es5-ext "^0.10.9" es5-ext "^0.10.9"
dart-sass@1.17.3:
version "1.17.3"
resolved "https://registry.yarnpkg.com/dart-sass/-/dart-sass-1.17.3.tgz#47b04d4aaad64e027afa86ca3f5b0e8ed7af659a"
dependencies:
chokidar "^2.0.0"
dashdash@^1.12.0: dashdash@^1.12.0:
version "1.14.1" version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
...@@ -2194,7 +2285,7 @@ debuglog@^1.0.1: ...@@ -2194,7 +2285,7 @@ debuglog@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "http://registry.npm.taobao.org/debuglog/download/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" resolved "http://registry.npm.taobao.org/debuglog/download/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
decamelize@^1.1.1, decamelize@^1.1.2: decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
...@@ -2337,6 +2428,12 @@ diffie-hellman@^5.0.0: ...@@ -2337,6 +2428,12 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0" miller-rabin "^4.0.0"
randombytes "^2.0.0" randombytes "^2.0.0"
dir-glob@^2.0.0:
version "2.2.2"
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
dependencies:
path-type "^3.0.0"
dns-equal@^1.0.0: dns-equal@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
...@@ -2467,6 +2564,10 @@ elliptic@^6.0.0: ...@@ -2467,6 +2564,10 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0" minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0" minimalistic-crypto-utils "^1.0.0"
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
emojis-list@^2.0.0: emojis-list@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
...@@ -2575,11 +2676,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: ...@@ -2575,11 +2676,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5" version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
eslint-config-taro@1.2.13: eslint-config-taro@1.3.4:
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/eslint-config-taro/-/eslint-config-taro-1.2.13.tgz#23c77c4acbb55b6221061747e1d8790f094ad148" resolved "https://registry.yarnpkg.com/eslint-config-taro/-/eslint-config-taro-1.3.4.tgz#86f3227b54aef59fc159c50cdac8b2f8ad41b8f8"
dependencies: dependencies:
eslint-plugin-taro "1.2.13" eslint-plugin-taro "1.3.4"
eslint-import-resolver-node@^0.3.2: eslint-import-resolver-node@^0.3.2:
version "0.3.2" version "0.3.2"
...@@ -2622,9 +2723,9 @@ eslint-plugin-react@^7.8.2: ...@@ -2622,9 +2723,9 @@ eslint-plugin-react@^7.8.2:
prop-types "^15.6.2" prop-types "^15.6.2"
resolve "^1.9.0" resolve "^1.9.0"
eslint-plugin-taro@1.2.13: eslint-plugin-taro@1.3.4:
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/eslint-plugin-taro/-/eslint-plugin-taro-1.2.13.tgz#e6a90a50fa0f3fef495e36e9135fab6db8bcc785" resolved "https://registry.yarnpkg.com/eslint-plugin-taro/-/eslint-plugin-taro-1.3.4.tgz#4451fdfa0e82d4ee6365ea40e7e7b5b2807d3068"
dependencies: dependencies:
has "^1.0.1" has "^1.0.1"
...@@ -2648,6 +2749,13 @@ eslint-scope@^3.7.1: ...@@ -2648,6 +2749,13 @@ eslint-scope@^3.7.1:
esrecurse "^4.1.0" esrecurse "^4.1.0"
estraverse "^4.1.1" estraverse "^4.1.1"
eslint-scope@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
dependencies:
esrecurse "^4.1.0"
estraverse "^4.1.1"
eslint-visitor-keys@^1.0.0: eslint-visitor-keys@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
...@@ -2965,6 +3073,14 @@ find-cache-dir@^1.0.0: ...@@ -2965,6 +3073,14 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0" make-dir "^1.0.0"
pkg-dir "^2.0.0" pkg-dir "^2.0.0"
find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
dependencies:
commondir "^1.0.1"
make-dir "^2.0.0"
pkg-dir "^3.0.0"
find-npm-prefix@^1.0.2: find-npm-prefix@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "http://registry.npm.taobao.org/find-npm-prefix/download/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf" resolved "http://registry.npm.taobao.org/find-npm-prefix/download/find-npm-prefix-1.0.2.tgz#8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf"
...@@ -3064,6 +3180,14 @@ from2@^2.1.0: ...@@ -3064,6 +3180,14 @@ from2@^2.1.0:
inherits "^2.0.1" inherits "^2.0.1"
readable-stream "^2.0.0" readable-stream "^2.0.0"
fs-extra@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd"
dependencies:
graceful-fs "^4.1.2"
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.5: fs-minipass@^1.2.5:
version "1.2.5" version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
...@@ -3155,6 +3279,10 @@ get-caller-file@^1.0.1: ...@@ -3155,6 +3279,10 @@ get-caller-file@^1.0.1:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
get-caller-file@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
get-stdin@^4.0.1: get-stdin@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
...@@ -3232,6 +3360,23 @@ globby@^6.1.0: ...@@ -3232,6 +3360,23 @@ globby@^6.1.0:
pify "^2.0.0" pify "^2.0.0"
pinkie-promise "^2.0.0" pinkie-promise "^2.0.0"
globby@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
dependencies:
array-union "^1.0.1"
dir-glob "^2.0.0"
glob "^7.1.2"
ignore "^3.3.5"
pify "^3.0.0"
slash "^1.0.0"
globs@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/globs/-/globs-0.1.4.tgz#1d13639f6174e4ae73a7f936da7d9a079f657c1c"
dependencies:
glob "^7.1.1"
globule@^1.0.0: globule@^1.0.0:
version "1.2.1" version "1.2.1"
resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
...@@ -3256,7 +3401,7 @@ got@^6.7.1: ...@@ -3256,7 +3401,7 @@ got@^6.7.1:
unzip-response "^2.0.1" unzip-response "^2.0.1"
url-parse-lax "^1.0.0" url-parse-lax "^1.0.0"
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
version "4.1.15" version "4.1.15"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
...@@ -3404,9 +3549,9 @@ html-webpack-include-assets-plugin@1.0.5: ...@@ -3404,9 +3549,9 @@ html-webpack-include-assets-plugin@1.0.5:
minimatch "^3.0.4" minimatch "^3.0.4"
slash "^2.0.0" slash "^2.0.0"
html-webpack-plugin@3.1.0: html-webpack-plugin@3.2.0:
version "3.1.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.1.0.tgz#6e02baaedb1e906310917f03239c793a75af2885" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
dependencies: dependencies:
html-minifier "^3.2.3" html-minifier "^3.2.3"
loader-utils "^0.2.16" loader-utils "^0.2.16"
...@@ -3517,7 +3662,7 @@ icss-utils@^2.1.0: ...@@ -3517,7 +3662,7 @@ icss-utils@^2.1.0:
dependencies: dependencies:
postcss "^6.0.1" postcss "^6.0.1"
ieee754@^1.1.11, ieee754@^1.1.4: ieee754@^1.1.4:
version "1.1.12" version "1.1.12"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b"
...@@ -3535,7 +3680,7 @@ ignore-walk@^3.0.1: ...@@ -3535,7 +3680,7 @@ ignore-walk@^3.0.1:
dependencies: dependencies:
minimatch "^3.0.4" minimatch "^3.0.4"
ignore@^3.3.3: ignore@^3.3.3, ignore@^3.3.5:
version "3.3.10" version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
...@@ -3792,6 +3937,12 @@ is-glob@^4.0.0: ...@@ -3792,6 +3937,12 @@ is-glob@^4.0.0:
dependencies: dependencies:
is-extglob "^2.1.1" is-extglob "^2.1.1"
is-glob@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
dependencies:
is-extglob "^2.1.1"
is-installed-globally@^0.1.0: is-installed-globally@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" resolved "http://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
...@@ -3990,6 +4141,12 @@ json5@^1.0.1: ...@@ -3990,6 +4141,12 @@ json5@^1.0.1:
dependencies: dependencies:
minimist "^1.2.0" minimist "^1.2.0"
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
optionalDependencies:
graceful-fs "^4.1.6"
jsonp-retry@^1.0.3: jsonp-retry@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/jsonp-retry/-/jsonp-retry-1.0.3.tgz#9e6b18b02ec767a621dd44b4e99439a8a43a6419" resolved "https://registry.yarnpkg.com/jsonp-retry/-/jsonp-retry-1.0.3.tgz#9e6b18b02ec767a621dd44b4e99439a8a43a6419"
...@@ -4065,10 +4222,6 @@ lcid@^2.0.0: ...@@ -4065,10 +4222,6 @@ lcid@^2.0.0:
dependencies: dependencies:
invert-kv "^2.0.0" invert-kv "^2.0.0"
leb@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3"
less-loader@4.1.0: less-loader@4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e"
...@@ -4253,7 +4406,7 @@ loader-utils@^0.2.16: ...@@ -4253,7 +4406,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0" json5 "^0.5.0"
object-assign "^4.0.1" object-assign "^4.0.1"
loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
version "1.2.3" version "1.2.3"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
dependencies: dependencies:
...@@ -4342,7 +4495,7 @@ lodash.assign@^3.0.0: ...@@ -4342,7 +4495,7 @@ lodash.assign@^3.0.0:
lodash._createassigner "^3.0.0" lodash._createassigner "^3.0.0"
lodash.keys "^3.0.0" lodash.keys "^3.0.0"
lodash.assign@^4.0.1, lodash.assign@^4.2.0: lodash.assign@^4.0.1:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
...@@ -4350,10 +4503,14 @@ lodash.camelcase@^4.3.0: ...@@ -4350,10 +4503,14 @@ lodash.camelcase@^4.3.0:
version "4.3.0" version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0: lodash.clonedeep@^4.5.0, lodash.clonedeep@~4.5.0:
version "4.5.0" version "4.5.0"
resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" resolved "http://registry.npm.taobao.org/lodash.clonedeep/download/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
lodash.defaults@^3.1.2: lodash.defaults@^3.1.2:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c"
...@@ -4381,10 +4538,6 @@ lodash.keys@^3.0.0: ...@@ -4381,10 +4538,6 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0" lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0" lodash.isarray "^3.0.0"
lodash.mergewith@^4.6.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
lodash.restparam@^3.0.0: lodash.restparam@^3.0.0:
version "3.6.1" version "3.6.1"
resolved "http://registry.npm.taobao.org/lodash.restparam/download/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" resolved "http://registry.npm.taobao.org/lodash.restparam/download/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
...@@ -4405,10 +4558,6 @@ lodash.without@~4.4.0: ...@@ -4405,10 +4558,6 @@ lodash.without@~4.4.0:
version "4.4.0" version "4.4.0"
resolved "http://registry.npm.taobao.org/lodash.without/download/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" resolved "http://registry.npm.taobao.org/lodash.without/download/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
lodash@4.17.10:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
lodash@4.17.11, lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: lodash@4.17.11, lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10:
version "4.17.11" version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
...@@ -4430,10 +4579,6 @@ loglevelnext@^1.0.1: ...@@ -4430,10 +4579,6 @@ loglevelnext@^1.0.1:
es6-symbol "^3.1.1" es6-symbol "^3.1.1"
object.assign "^4.1.0" object.assign "^4.1.0"
long@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b"
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
...@@ -4474,6 +4619,13 @@ make-dir@^1.0.0: ...@@ -4474,6 +4619,13 @@ make-dir@^1.0.0:
dependencies: dependencies:
pify "^3.0.0" pify "^3.0.0"
make-dir@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
dependencies:
pify "^4.0.1"
semver "^5.6.0"
make-fetch-happen@^4.0.1: make-fetch-happen@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "http://registry.npm.taobao.org/make-fetch-happen/download/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083" resolved "http://registry.npm.taobao.org/make-fetch-happen/download/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
...@@ -4490,10 +4642,6 @@ make-fetch-happen@^4.0.1: ...@@ -4490,10 +4642,6 @@ make-fetch-happen@^4.0.1:
socks-proxy-agent "^4.0.0" socks-proxy-agent "^4.0.0"
ssri "^6.0.0" ssri "^6.0.0"
mamacro@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
map-age-cleaner@^0.1.1: map-age-cleaner@^0.1.1:
version "0.1.3" version "0.1.3"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
...@@ -4764,7 +4912,11 @@ mute-stream@~0.0.4: ...@@ -4764,7 +4912,11 @@ mute-stream@~0.0.4:
version "0.0.8" version "0.0.8"
resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" resolved "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
nan@^2.10.0, nan@^2.9.2: nan@^2.13.2:
version "2.14.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
nan@^2.9.2:
version "2.12.1" version "2.12.1"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552"
...@@ -4804,28 +4956,28 @@ neo-async@^2.5.0: ...@@ -4804,28 +4956,28 @@ neo-async@^2.5.0:
version "2.6.0" version "2.6.0"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
nerv-devtools@^1.3.9: nerv-devtools@^1.4.3:
version "1.3.12" version "1.4.3"
resolved "https://registry.yarnpkg.com/nerv-devtools/-/nerv-devtools-1.3.12.tgz#b6cf56e61fb2a813e1a5e80e317946ac4accd9bc" resolved "https://registry.yarnpkg.com/nerv-devtools/-/nerv-devtools-1.4.3.tgz#b05cf54a9d9313c0831b10cf9db04254d60d9c3b"
dependencies: dependencies:
nerv-shared "1.3.7" nerv-shared "1.4.0"
nerv-utils "1.3.12" nerv-utils "1.4.3"
nervjs "1.3.12" nervjs "1.4.3"
nerv-shared@1.3.7: nerv-shared@1.4.0:
version "1.3.7" version "1.4.0"
resolved "https://registry.yarnpkg.com/nerv-shared/-/nerv-shared-1.3.7.tgz#7db2265d5428081c153592f8d8afd18812f40d76" resolved "https://registry.yarnpkg.com/nerv-shared/-/nerv-shared-1.4.0.tgz#4ae903f215888ab886b3d04ae3b95d5327e67f43"
nerv-utils@1.3.12: nerv-utils@1.4.3:
version "1.3.12" version "1.4.3"
resolved "https://registry.yarnpkg.com/nerv-utils/-/nerv-utils-1.3.12.tgz#f08d26e46dfe84f4159654941e37392fc6ee2768" resolved "https://registry.yarnpkg.com/nerv-utils/-/nerv-utils-1.4.3.tgz#5a23d109147f56f478beed24794ff942fe4e4927"
nervjs@1.3.12, nervjs@^1.3.0, nervjs@^1.3.9: nervjs@1.4.3, nervjs@^1.4.3:
version "1.3.12" version "1.4.3"
resolved "https://registry.yarnpkg.com/nervjs/-/nervjs-1.3.12.tgz#2c19919007876fa6e40104e01f85decd84f48898" resolved "https://registry.yarnpkg.com/nervjs/-/nervjs-1.4.3.tgz#8ef7d610f6400fb81e7ca41f880612a62416a20b"
dependencies: dependencies:
nerv-shared "1.3.7" nerv-shared "1.4.0"
nerv-utils "1.3.12" nerv-utils "1.4.3"
next-tick@1: next-tick@1:
version "1.0.0" version "1.0.0"
...@@ -4913,9 +5065,9 @@ node-pre-gyp@^0.10.0: ...@@ -4913,9 +5065,9 @@ node-pre-gyp@^0.10.0:
semver "^5.3.0" semver "^5.3.0"
tar "^4" tar "^4"
node-sass@4.11.0, node-sass@^4.11.0: node-sass@^4.10.0, node-sass@^4.12.0:
version "4.11.0" version "4.12.0"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.12.0.tgz#0914f531932380114a30cc5fa4fa63233a25f017"
dependencies: dependencies:
async-foreach "^0.1.3" async-foreach "^0.1.3"
chalk "^1.1.1" chalk "^1.1.1"
...@@ -4924,12 +5076,10 @@ node-sass@4.11.0, node-sass@^4.11.0: ...@@ -4924,12 +5076,10 @@ node-sass@4.11.0, node-sass@^4.11.0:
get-stdin "^4.0.1" get-stdin "^4.0.1"
glob "^7.0.3" glob "^7.0.3"
in-publish "^2.0.0" in-publish "^2.0.0"
lodash.assign "^4.2.0" lodash "^4.17.11"
lodash.clonedeep "^4.3.2"
lodash.mergewith "^4.6.0"
meow "^3.7.0" meow "^3.7.0"
mkdirp "^0.5.1" mkdirp "^0.5.1"
nan "^2.10.0" nan "^2.13.2"
node-gyp "^3.8.0" node-gyp "^3.8.0"
npmlog "^4.0.0" npmlog "^4.0.0"
request "^2.88.0" request "^2.88.0"
...@@ -5366,7 +5516,7 @@ os-locale@^2.0.0: ...@@ -5366,7 +5516,7 @@ os-locale@^2.0.0:
lcid "^1.0.0" lcid "^1.0.0"
mem "^1.1.0" mem "^1.1.0"
os-locale@^3.0.0: os-locale@^3.0.0, os-locale@^3.1.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
dependencies: dependencies:
...@@ -5409,6 +5559,12 @@ p-limit@^2.0.0: ...@@ -5409,6 +5559,12 @@ p-limit@^2.0.0:
dependencies: dependencies:
p-try "^2.0.0" p-try "^2.0.0"
p-limit@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2"
dependencies:
p-try "^2.0.0"
p-locate@^2.0.0: p-locate@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
...@@ -5576,6 +5732,12 @@ path-type@^2.0.0: ...@@ -5576,6 +5732,12 @@ path-type@^2.0.0:
dependencies: dependencies:
pify "^2.0.0" pify "^2.0.0"
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
dependencies:
pify "^3.0.0"
pbkdf2@^3.0.3: pbkdf2@^3.0.3:
version "3.0.17" version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
...@@ -5598,6 +5760,10 @@ pify@^3.0.0: ...@@ -5598,6 +5760,10 @@ pify@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
pify@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
pinkie-promise@^2.0.0: pinkie-promise@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
...@@ -5679,9 +5845,9 @@ postcss-modules-values@^1.3.0: ...@@ -5679,9 +5845,9 @@ postcss-modules-values@^1.3.0:
icss-replace-symbols "^1.1.0" icss-replace-symbols "^1.1.0"
postcss "^6.0.1" postcss "^6.0.1"
postcss-plugin-constparse@1.2.13: postcss-plugin-constparse@1.3.4:
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/postcss-plugin-constparse/-/postcss-plugin-constparse-1.2.13.tgz#ad67a02a125bfb4dbc8140dd6ba389837bccdcfb" resolved "https://registry.yarnpkg.com/postcss-plugin-constparse/-/postcss-plugin-constparse-1.3.4.tgz#50a2e48eadd582f3b13f846da8fd3a99d9f7d208"
dependencies: dependencies:
postcss "^6.0.22" postcss "^6.0.22"
...@@ -5692,9 +5858,9 @@ postcss-pxtorem@^4.0.1: ...@@ -5692,9 +5858,9 @@ postcss-pxtorem@^4.0.1:
object-assign "^4.1.0" object-assign "^4.1.0"
postcss "^5.2.10" postcss "^5.2.10"
postcss-pxtransform@1.2.13: postcss-pxtransform@1.3.4:
version "1.2.13" version "1.3.4"
resolved "https://registry.yarnpkg.com/postcss-pxtransform/-/postcss-pxtransform-1.2.13.tgz#c1f09cfed0007d9748fa733c46f65962cc08400f" resolved "https://registry.yarnpkg.com/postcss-pxtransform/-/postcss-pxtransform-1.3.4.tgz#caeb62008078f3e227f8fb8229725aad8abfec34"
dependencies: dependencies:
postcss "^6.0.16" postcss "^6.0.16"
postcss-pxtorem "^4.0.1" postcss-pxtorem "^4.0.1"
...@@ -5728,6 +5894,10 @@ prepend-http@^1.0.1: ...@@ -5728,6 +5894,10 @@ prepend-http@^1.0.1:
version "1.0.4" version "1.0.4"
resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" resolved "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
pretty-bytes@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
pretty-error@^2.0.2: pretty-error@^2.0.2:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
...@@ -5772,6 +5942,12 @@ promise@^7.1.1: ...@@ -5772,6 +5942,12 @@ promise@^7.1.1:
dependencies: dependencies:
asap "~2.0.3" asap "~2.0.3"
promise@^8.0.1:
version "8.0.3"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.3.tgz#f592e099c6cddc000d538ee7283bb190452b0bf6"
dependencies:
asap "~2.0.6"
promzard@^0.3.0: promzard@^0.3.0:
version "0.3.0" version "0.3.0"
resolved "http://registry.npm.taobao.org/promzard/download/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" resolved "http://registry.npm.taobao.org/promzard/download/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
...@@ -5891,6 +6067,12 @@ qw@~1.0.1: ...@@ -5891,6 +6067,12 @@ qw@~1.0.1:
version "1.0.1" version "1.0.1"
resolved "http://registry.npm.taobao.org/qw/download/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" resolved "http://registry.npm.taobao.org/qw/download/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4"
raf@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
dependencies:
performance-now "^2.1.0"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
...@@ -6224,6 +6406,10 @@ require-main-filename@^1.0.1: ...@@ -6224,6 +6406,10 @@ require-main-filename@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
require-main-filename@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
require-uncached@^1.0.3: require-uncached@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
...@@ -6261,6 +6447,10 @@ resolve-pathname@2.2.0: ...@@ -6261,6 +6447,10 @@ resolve-pathname@2.2.0:
version "2.2.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
resolve-pathname@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd"
resolve-url-loader@2.3.0: resolve-url-loader@2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz#e1b37034d48f22f8cfb9f04c026faaa070fdaf26" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz#e1b37034d48f22f8cfb9f04c026faaa070fdaf26"
...@@ -6404,7 +6594,7 @@ sax@^1.2.4: ...@@ -6404,7 +6594,7 @@ sax@^1.2.4:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
schema-utils@^0.4.0, schema-utils@^0.4.3, schema-utils@^0.4.4, schema-utils@^0.4.5: schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5:
version "0.4.7" version "0.4.7"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
dependencies: dependencies:
...@@ -6419,6 +6609,22 @@ schema-utils@^1.0.0: ...@@ -6419,6 +6609,22 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0" ajv-errors "^1.0.0"
ajv-keywords "^3.1.0" ajv-keywords "^3.1.0"
scss-bundle@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/scss-bundle/-/scss-bundle-2.5.1.tgz#def470dcac93484c7e40a6d4f657498ee5400934"
dependencies:
"@types/chokidar" "^1.7.5"
"@types/lodash.debounce" "^4.0.4"
archy "^1.0.0"
chokidar "^2.0.4"
fs-extra "^5.0.0"
globs "^0.1.3"
lodash.debounce "^4.0.8"
node-sass "^4.10.0"
pretty-bytes "^4.0.2"
promise "^8.0.1"
yargs "^13.1.0"
scss-tokenizer@^0.2.3: scss-tokenizer@^0.2.3:
version "0.2.3" version "0.2.3"
resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
...@@ -6472,6 +6678,10 @@ serialize-javascript@^1.4.0: ...@@ -6472,6 +6678,10 @@ serialize-javascript@^1.4.0:
version "1.6.1" version "1.6.1"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879"
serialize-javascript@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
serve-index@^1.7.2: serve-index@^1.7.2:
version "1.9.1" version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
...@@ -6671,6 +6881,13 @@ source-map-support@^0.4.15: ...@@ -6671,6 +6881,13 @@ source-map-support@^0.4.15:
dependencies: dependencies:
source-map "^0.5.6" source-map "^0.5.6"
source-map-support@~0.5.10:
version "0.5.12"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
source-map-url@^0.4.0: source-map-url@^0.4.0:
version "0.4.0" version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
...@@ -6691,7 +6908,7 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: ...@@ -6691,7 +6908,7 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7" version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
...@@ -6853,6 +7070,14 @@ string-width@^1.0.1, string-width@^1.0.2: ...@@ -6853,6 +7070,14 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^2.0.0" is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0" strip-ansi "^4.0.0"
string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
dependencies:
emoji-regex "^7.0.1"
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
string_decoder@^1.0.0, string_decoder@^1.1.1: string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
...@@ -6885,6 +7110,12 @@ strip-ansi@^4.0.0: ...@@ -6885,6 +7110,12 @@ strip-ansi@^4.0.0:
dependencies: dependencies:
ansi-regex "^3.0.0" ansi-regex "^3.0.0"
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
dependencies:
ansi-regex "^4.1.0"
strip-bom@^2.0.0: strip-bom@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
...@@ -6977,6 +7208,10 @@ tapable@^1.0.0: ...@@ -6977,6 +7208,10 @@ tapable@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e"
tapable@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
tar@^2.0.0: tar@^2.0.0:
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
...@@ -7003,6 +7238,29 @@ term-size@^1.2.0: ...@@ -7003,6 +7238,29 @@ term-size@^1.2.0:
dependencies: dependencies:
execa "^0.7.0" execa "^0.7.0"
terser-webpack-plugin@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz#69aa22426299f4b5b3775cbed8cb2c5d419aa1d4"
dependencies:
cacache "^11.3.2"
find-cache-dir "^2.0.0"
is-wsl "^1.1.0"
loader-utils "^1.2.3"
schema-utils "^1.0.0"
serialize-javascript "^1.7.0"
source-map "^0.6.1"
terser "^4.0.0"
webpack-sources "^1.3.0"
worker-farm "^1.7.0"
terser@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-4.0.0.tgz#ef356f6f359a963e2cc675517f21c1c382877374"
dependencies:
commander "^2.19.0"
source-map "~0.6.1"
source-map-support "~0.5.10"
text-table@^0.2.0, text-table@~0.2.0: text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
...@@ -7167,19 +7425,6 @@ uglifyjs-webpack-plugin@1.2.4: ...@@ -7167,19 +7425,6 @@ uglifyjs-webpack-plugin@1.2.4:
webpack-sources "^1.1.0" webpack-sources "^1.1.0"
worker-farm "^1.5.2" worker-farm "^1.5.2"
uglifyjs-webpack-plugin@^1.2.4:
version "1.3.0"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
schema-utils "^0.4.5"
serialize-javascript "^1.4.0"
source-map "^0.6.1"
uglify-es "^3.3.4"
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
uid-number@0.0.6: uid-number@0.0.6:
version "0.0.6" version "0.0.6"
resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" resolved "http://registry.npm.taobao.org/uid-number/download/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
...@@ -7215,6 +7460,10 @@ unique-string@^1.0.0: ...@@ -7215,6 +7460,10 @@ unique-string@^1.0.0:
dependencies: dependencies:
crypto-random-string "^1.0.0" crypto-random-string "^1.0.0"
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
unpipe@1.0.0, unpipe@~1.0.0: unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
...@@ -7234,6 +7483,10 @@ upath@^1.1.0: ...@@ -7234,6 +7483,10 @@ upath@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd"
upath@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068"
update-notifier@^2.3.0, update-notifier@^2.5.0: update-notifier@^2.3.0, update-notifier@^2.5.0:
version "2.5.0" version "2.5.0"
resolved "http://registry.npm.taobao.org/update-notifier/download/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" resolved "http://registry.npm.taobao.org/update-notifier/download/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
...@@ -7263,13 +7516,13 @@ urix@^0.1.0: ...@@ -7263,13 +7516,13 @@ urix@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
url-loader@1.0.1: url-loader@1.1.2:
version "1.0.1" version "1.1.2"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.0.1.tgz#61bc53f1f184d7343da2728a1289ef8722ea45ee" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8"
dependencies: dependencies:
loader-utils "^1.1.0" loader-utils "^1.1.0"
mime "^2.0.3" mime "^2.0.3"
schema-utils "^0.4.3" schema-utils "^1.0.0"
url-parse-lax@^1.0.0: url-parse-lax@^1.0.0:
version "1.0.0" version "1.0.0"
...@@ -7468,35 +7721,28 @@ webpack-log@^2.0.0: ...@@ -7468,35 +7721,28 @@ webpack-log@^2.0.0:
ansi-colors "^3.0.0" ansi-colors "^3.0.0"
uuid "^3.3.2" uuid "^3.3.2"
webpack-merge@4.1.4: webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0:
version "4.1.4"
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b"
dependencies:
lodash "^4.17.5"
webpack-sources@^1.0.1, webpack-sources@^1.1.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
dependencies: dependencies:
source-list-map "^2.0.0" source-list-map "^2.0.0"
source-map "~0.6.1" source-map "~0.6.1"
webpack@4.14.0: webpack@4.28.4:
version "4.14.0" version "4.28.4"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.14.0.tgz#bbcc40dbf9a34129491b431574189d3802972243" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.4.tgz#1ddae6c89887d7efb752adf0c3cd32b9b07eacd0"
dependencies: dependencies:
"@webassemblyjs/ast" "1.5.12" "@webassemblyjs/ast" "1.7.11"
"@webassemblyjs/helper-module-context" "1.5.12" "@webassemblyjs/helper-module-context" "1.7.11"
"@webassemblyjs/wasm-edit" "1.5.12" "@webassemblyjs/wasm-edit" "1.7.11"
"@webassemblyjs/wasm-opt" "1.5.12" "@webassemblyjs/wasm-parser" "1.7.11"
"@webassemblyjs/wasm-parser" "1.5.12"
acorn "^5.6.2" acorn "^5.6.2"
acorn-dynamic-import "^3.0.0" acorn-dynamic-import "^3.0.0"
ajv "^6.1.0" ajv "^6.1.0"
ajv-keywords "^3.1.0" ajv-keywords "^3.1.0"
chrome-trace-event "^1.0.0" chrome-trace-event "^1.0.0"
enhanced-resolve "^4.1.0" enhanced-resolve "^4.1.0"
eslint-scope "^3.7.1" eslint-scope "^4.0.0"
json-parse-better-errors "^1.0.2" json-parse-better-errors "^1.0.2"
loader-runner "^2.3.0" loader-runner "^2.3.0"
loader-utils "^1.1.0" loader-utils "^1.1.0"
...@@ -7506,10 +7752,10 @@ webpack@4.14.0: ...@@ -7506,10 +7752,10 @@ webpack@4.14.0:
neo-async "^2.5.0" neo-async "^2.5.0"
node-libs-browser "^2.0.0" node-libs-browser "^2.0.0"
schema-utils "^0.4.4" schema-utils "^0.4.4"
tapable "^1.0.0" tapable "^1.1.0"
uglifyjs-webpack-plugin "^1.2.4" terser-webpack-plugin "^1.1.0"
watchpack "^1.5.0" watchpack "^1.5.0"
webpack-sources "^1.0.1" webpack-sources "^1.3.0"
websocket-driver@>=0.5.1: websocket-driver@>=0.5.1:
version "0.7.0" version "0.7.0"
...@@ -7570,6 +7816,12 @@ worker-farm@^1.5.2, worker-farm@^1.6.0: ...@@ -7570,6 +7816,12 @@ worker-farm@^1.5.2, worker-farm@^1.6.0:
dependencies: dependencies:
errno "~0.1.7" errno "~0.1.7"
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
dependencies:
errno "~0.1.7"
wrap-ansi@^2.0.0: wrap-ansi@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
...@@ -7577,6 +7829,14 @@ wrap-ansi@^2.0.0: ...@@ -7577,6 +7829,14 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1" string-width "^1.0.1"
strip-ansi "^3.0.1" strip-ansi "^3.0.1"
wrap-ansi@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
dependencies:
ansi-styles "^3.2.0"
string-width "^3.0.0"
strip-ansi "^5.0.0"
wrappy@1: wrappy@1:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
...@@ -7633,6 +7893,13 @@ yargs-parser@^10.1.0: ...@@ -7633,6 +7893,13 @@ yargs-parser@^10.1.0:
dependencies: dependencies:
camelcase "^4.1.0" camelcase "^4.1.0"
yargs-parser@^13.1.0:
version "13.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
yargs-parser@^5.0.0: yargs-parser@^5.0.0:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
...@@ -7679,6 +7946,22 @@ yargs@^11.0.0: ...@@ -7679,6 +7946,22 @@ yargs@^11.0.0:
y18n "^3.2.1" y18n "^3.2.1"
yargs-parser "^9.0.2" yargs-parser "^9.0.2"
yargs@^13.1.0:
version "13.2.4"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
dependencies:
cliui "^5.0.0"
find-up "^3.0.0"
get-caller-file "^2.0.1"
os-locale "^3.1.0"
require-directory "^2.1.1"
require-main-filename "^2.0.0"
set-blocking "^2.0.0"
string-width "^3.0.0"
which-module "^2.0.0"
y18n "^4.0.0"
yargs-parser "^13.1.0"
yargs@^7.0.0: yargs@^7.0.0:
version "7.1.0" version "7.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
......
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