s-material-react 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/common/addressItem.scss +47 -0
- package/css/common/coupon.scss +73 -0
- package/css/common/evaluateItem.scss +58 -0
- package/css/common/index.scss +4 -0
- package/css/common/stepNum.scss +20 -0
- package/css/pages/addressList.scss +29 -0
- package/css/pages/cart.scss +130 -0
- package/css/pages/couponList.scss +204 -0
- package/css/pages/evaluateEntry.scss +57 -0
- package/css/pages/evaluateList.scss +82 -51
- package/css/pages/goodsDetail.scss +262 -2
- package/css/pages/index.scss +7 -0
- package/css/pages/mine.scss +96 -0
- package/css/pages/orderEntry.scss +3 -0
- package/css/pages/placeOrder.scss +104 -0
- package/css/pages/placeOrderResult.scss +100 -0
- package/dist/common/addressItem/index.d.ts +1 -0
- package/dist/common/addressItem/index.js +10 -0
- package/dist/common/coupon/index.d.ts +2 -0
- package/dist/common/coupon/index.js +9 -0
- package/dist/common/evaluateItem/index.d.ts +2 -0
- package/dist/common/evaluateItem/index.js +13 -0
- package/dist/common/mock/index.d.ts +300 -0
- package/dist/common/mock/index.js +623 -0
- package/dist/common/stepNum/index.d.ts +5 -0
- package/dist/common/stepNum/index.js +9 -0
- package/dist/components/AddressDetail/index.d.ts +2 -0
- package/dist/components/AddressDetail/index.js +119 -0
- package/dist/components/AddressDetail/option.d.ts +2 -0
- package/dist/components/AddressDetail/option.js +32 -0
- package/dist/components/AddressList/index.d.ts +2 -0
- package/dist/components/AddressList/index.js +15 -0
- package/dist/components/Cart/index.d.ts +2 -0
- package/dist/components/Cart/index.js +29 -0
- package/dist/components/Cart/useNumStep.d.ts +1 -0
- package/dist/components/Cart/useNumStep.js +7 -0
- package/dist/components/CouponList/index.d.ts +2 -0
- package/dist/components/CouponList/index.js +29 -0
- package/dist/components/Cube/index.js +2 -2
- package/dist/components/EvaluateList/index.d.ts +2 -0
- package/dist/components/EvaluateList/index.js +40 -0
- package/dist/components/GoodsClassify/components/classifyFloor.js +5 -24
- package/dist/components/GoodsClassify/index.js +13 -5
- package/dist/components/GoodsDetail/components/evaluateEntry.d.ts +2 -0
- package/dist/components/GoodsDetail/components/evaluateEntry.js +43 -0
- package/dist/components/GoodsDetail/components/goodsDetailCollection.d.ts +2 -0
- package/dist/components/GoodsDetail/components/goodsDetailCollection.js +60 -0
- package/dist/components/GoodsDetail/components/goodsDetailCoupon.js +5 -5
- package/dist/components/GoodsDetail/components/goodsDetailEvaluate.js +3 -2
- package/dist/components/GoodsDetail/components/goodsDetailHandleBar.d.ts +2 -0
- package/dist/components/GoodsDetail/components/goodsDetailHandleBar.js +7 -0
- package/dist/components/GoodsDetail/components/goodsDetailInfo.d.ts +1 -1
- package/dist/components/GoodsDetail/components/goodsDetailInfo.js +2 -2
- package/dist/components/GoodsDetail/components/goodsDetailPopup.d.ts +2 -0
- package/dist/components/GoodsDetail/components/goodsDetailPopup.js +27 -0
- package/dist/components/GoodsDetail/components/goodsDetailPromotion.d.ts +1 -1
- package/dist/components/GoodsDetail/components/goodsDetailPromotion.js +3 -3
- package/dist/components/GoodsDetail/components/goodsDetailSize.d.ts +1 -1
- package/dist/components/GoodsDetail/components/goodsDetailSize.js +6 -6
- package/dist/components/GoodsDetail/index.js +53 -15
- package/dist/components/GoodsGroup/index.js +2 -1
- package/dist/components/GoodsList/components/filter.d.ts +1 -0
- package/dist/components/GoodsList/components/filter.js +31 -0
- package/dist/components/GoodsList/hooks/useGoodsList.d.ts +5 -0
- package/dist/components/GoodsList/hooks/useGoodsList.js +49 -0
- package/dist/components/GoodsList/index.js +9 -60
- package/dist/components/Mine/components/menuList.d.ts +1 -0
- package/dist/components/Mine/components/menuList.js +21 -0
- package/dist/components/Mine/components/orderEntry.d.ts +1 -0
- package/dist/components/Mine/components/orderEntry.js +41 -0
- package/dist/components/Mine/index.d.ts +7 -0
- package/dist/components/Mine/index.js +14 -0
- package/dist/components/Notice/index.js +7 -11
- package/dist/components/OrderDetail/index.js +2 -2
- package/dist/components/OrderList/components/OrderListItem.js +8 -4
- package/dist/components/OrderList/components/orderItem.js +2 -2
- package/dist/components/OrderList/index.js +3 -2
- package/dist/components/PlaceOrder/index.d.ts +2 -0
- package/dist/components/PlaceOrder/index.js +12 -0
- package/dist/components/PlaceOrderResult/index.d.ts +2 -0
- package/dist/components/PlaceOrderResult/index.js +12 -0
- package/dist/components/SearchPage/index.d.ts +7 -1
- package/dist/components/SearchPage/index.js +5 -6
- package/dist/components/Slider/index.d.ts +12 -12
- package/dist/components/Slider/item.d.ts +2 -2
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.js +8 -0
- package/dist/options/index.d.ts +2 -0
- package/dist/options/index.js +31 -0
- package/dist/routerMap/index.d.ts +5 -0
- package/dist/routerMap/index.js +5 -0
- package/dist/utils/checkImgUrl.d.ts +1 -0
- package/dist/utils/checkImgUrl.js +9 -0
- package/dist/utils/index.d.ts +0 -0
- package/dist/utils/index.js +1 -0
- package/package.json +4 -5
- package/dist/components/OrderEntry/index.d.ts +0 -2
- package/dist/components/OrderEntry/index.js +0 -9
- package/dist/components/Stamp/index.d.ts +0 -2
- package/dist/components/Stamp/index.js +0 -9
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useRef, useState } from 'react';
|
|
3
|
+
import { useComponent, antdMobile } from '@brushes/qj-simulate-component';
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
// import {options} from './option'
|
|
6
|
+
import options from './option';
|
|
7
|
+
const { Form, Input, Radio, Button, Cascader } = antdMobile;
|
|
8
|
+
const AddressDetailJsx = () => {
|
|
9
|
+
const [form] = Form.useForm();
|
|
10
|
+
const { View } = useComponent();
|
|
11
|
+
const [visible, setVisible] = useState(false);
|
|
12
|
+
const [value, setValue] = useState([]);
|
|
13
|
+
const checkMobile = (_, value) => {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
if (!/^1[3456789]\d{9}$/.test(value) && value) {
|
|
16
|
+
reject('请输入正确手机号');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
resolve('');
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const config = useRef([
|
|
24
|
+
{
|
|
25
|
+
type: 'input',
|
|
26
|
+
props: {
|
|
27
|
+
onlyShowClearWhenFocus: true,
|
|
28
|
+
placeholder: '请填写收货人姓名'
|
|
29
|
+
},
|
|
30
|
+
label: '收货人',
|
|
31
|
+
name: 'name',
|
|
32
|
+
rules: [{ required: true, message: '收货人姓名不能为空' }]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: 'input',
|
|
36
|
+
props: {
|
|
37
|
+
type: 'number',
|
|
38
|
+
onlyShowClearWhenFocus: true,
|
|
39
|
+
placeholder: '请填写收货人手机号码'
|
|
40
|
+
},
|
|
41
|
+
label: '手机号码',
|
|
42
|
+
name: 'phone',
|
|
43
|
+
rules: [{ required: true, message: '收货人手机号码不能为空' }, { validator: checkMobile }]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: 'cascader',
|
|
47
|
+
props: {
|
|
48
|
+
options
|
|
49
|
+
},
|
|
50
|
+
label: '所在地区',
|
|
51
|
+
name: 'area'
|
|
52
|
+
// rules: [{required: true, message: '收货人所在地区不能为空'}]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: 'input',
|
|
56
|
+
props: {
|
|
57
|
+
onlyShowClearWhenFocus: true,
|
|
58
|
+
placeholder: '街道/楼牌号等'
|
|
59
|
+
},
|
|
60
|
+
label: '详细地址',
|
|
61
|
+
name: 'address',
|
|
62
|
+
rules: [{ required: true, message: '收货人详细地址不能为空' }]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
type: 'input',
|
|
66
|
+
props: {
|
|
67
|
+
type: 'number',
|
|
68
|
+
onlyShowClearWhenFocus: true,
|
|
69
|
+
placeholder: '请填写邮政编码'
|
|
70
|
+
},
|
|
71
|
+
label: '邮政编码',
|
|
72
|
+
name: 'zipCode'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'radio',
|
|
76
|
+
props: {
|
|
77
|
+
value: 1
|
|
78
|
+
},
|
|
79
|
+
label: '设置默认地址',
|
|
80
|
+
name: 'default'
|
|
81
|
+
}
|
|
82
|
+
]);
|
|
83
|
+
const handle = (a) => {
|
|
84
|
+
console.log(88, a);
|
|
85
|
+
};
|
|
86
|
+
const onValuesChange = (a) => {
|
|
87
|
+
console.log(91, a);
|
|
88
|
+
};
|
|
89
|
+
return (_jsx(View, Object.assign({ className: 'addressDetail' }, { children: _jsx(Form, Object.assign({ form: form, layout: "horizontal", mode: "card", onValuesChange: onValuesChange, onFinish: handle, footer: _jsx(Button, Object.assign({ block: true, type: "submit", color: "primary", size: "large" }, { children: "\u63D0\u4EA4" })) }, { children: config.current.map((item, index) => {
|
|
90
|
+
return (_jsx(Form.Item, Object.assign({ label: item.label, name: item.name, rules: item.rules, trigger: item.type === 'cascader' ? 'onConfirm' : 'onChange', onClick: (a, b) => {
|
|
91
|
+
if (item.type === 'cascader') {
|
|
92
|
+
setVisible(true);
|
|
93
|
+
}
|
|
94
|
+
} }, { children: (() => {
|
|
95
|
+
if (item.type === 'input') {
|
|
96
|
+
return _jsx(Input, Object.assign({}, item.props));
|
|
97
|
+
}
|
|
98
|
+
else if (item.type === 'radio') {
|
|
99
|
+
return _jsx(Radio, Object.assign({}, item.props));
|
|
100
|
+
}
|
|
101
|
+
else if (item.type === 'cascader') {
|
|
102
|
+
return (_jsx(_Fragment, { children: _jsx(Cascader, Object.assign({ options: item.props.options, visible: visible, value: value, onConfirm: (value) => {
|
|
103
|
+
form.setFields([{ name: 'area', value }]);
|
|
104
|
+
setValue(value);
|
|
105
|
+
}, onClose: () => {
|
|
106
|
+
setVisible(false);
|
|
107
|
+
} }, { children: (items) => {
|
|
108
|
+
if (items.every((item) => item === null)) {
|
|
109
|
+
return '';
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return items.map((item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : ''; }).join('-');
|
|
113
|
+
}
|
|
114
|
+
} })) }));
|
|
115
|
+
}
|
|
116
|
+
})() }), index));
|
|
117
|
+
}) })) })));
|
|
118
|
+
};
|
|
119
|
+
export const AddressDetail = memo(AddressDetailJsx);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import provinces from 'china-division/dist/provinces.json';
|
|
2
|
+
import cities from 'china-division/dist/cities.json';
|
|
3
|
+
import areas from 'china-division/dist/areas.json';
|
|
4
|
+
areas.forEach((area) => {
|
|
5
|
+
const matchCity = cities.filter((city) => city.code === area.cityCode)[0];
|
|
6
|
+
if (matchCity) {
|
|
7
|
+
matchCity.children = matchCity.children || [];
|
|
8
|
+
matchCity.children.push({
|
|
9
|
+
label: area.name,
|
|
10
|
+
value: area.code
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
cities.forEach((city) => {
|
|
15
|
+
const matchProvince = provinces.filter((province) => province.code === city.provinceCode)[0];
|
|
16
|
+
if (matchProvince) {
|
|
17
|
+
matchProvince.children = matchProvince.children || [];
|
|
18
|
+
matchProvince.children.push({
|
|
19
|
+
label: city.name,
|
|
20
|
+
value: city.code,
|
|
21
|
+
children: city.children
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const options = provinces.map((province) => {
|
|
26
|
+
return {
|
|
27
|
+
label: province.name,
|
|
28
|
+
value: province.code,
|
|
29
|
+
children: province.children
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
export default options;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from 'react';
|
|
3
|
+
import { useComponent, antdMobile } from '@brushes/qj-simulate-component';
|
|
4
|
+
import { getEnv } from '@brushes/api';
|
|
5
|
+
import { addressListFake } from '../../common/mock';
|
|
6
|
+
import { AddressItem } from '../../common/addressItem';
|
|
7
|
+
const { Radio } = antdMobile;
|
|
8
|
+
const AddressListJsx = () => {
|
|
9
|
+
const { View } = useComponent();
|
|
10
|
+
const flag = getEnv();
|
|
11
|
+
return (_jsxs(View, Object.assign({ className: 'addressList', style: {
|
|
12
|
+
height: flag ? '100vh' : '600px'
|
|
13
|
+
} }, { children: [_jsx(Radio.Group, Object.assign({ defaultValue: 1 }, { children: addressListFake.map((item) => (_jsx(AddressItem, { itemData: item }, item.id))) })), _jsx(View, Object.assign({ className: 'addBtnWrap' }, { children: _jsx(View, Object.assign({ className: 'addBtn' }, { children: "+ \u65B0\u589E\u5730\u5740" })) }))] })));
|
|
14
|
+
};
|
|
15
|
+
export const AddressList = memo(AddressListJsx);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useState } from 'react';
|
|
3
|
+
import { useComponent } from '@brushes/qj-simulate-component';
|
|
4
|
+
import { Button, Checkbox, Radio } from 'antd-mobile';
|
|
5
|
+
import { StepNum } from '../../common/stepNum';
|
|
6
|
+
import { getEnv } from '@brushes/api';
|
|
7
|
+
const imgUrl = 'https://img14.360buyimg.com/n1/s450x450_jfs/t1/177530/39/29764/47605/6370a433E997313e3/08d21e654aa6b02a.jpg';
|
|
8
|
+
const flag = getEnv();
|
|
9
|
+
const CartJsx = () => {
|
|
10
|
+
const [editState, setEditState] = useState(true);
|
|
11
|
+
const { View, Text } = useComponent();
|
|
12
|
+
const [num, setNum] = useState(1);
|
|
13
|
+
return (_jsxs(View, Object.assign({ className: 'cart', style: {
|
|
14
|
+
height: flag ? '100vh' : '600px'
|
|
15
|
+
} }, { children: [_jsx(View, Object.assign({ className: 'edit' }, { children: _jsx(Button, Object.assign({ className: 'btn', fill: "none", style: {
|
|
16
|
+
'--text-color': '#333333'
|
|
17
|
+
}, onClick: () => setEditState(!editState) }, { children: editState ? '编辑' : '完成' })) })), _jsx(View, Object.assign({ className: 'itemGroup' }, { children: _jsx(Checkbox.Group, { children: _jsxs(View, Object.assign({ className: 'cartItem' }, { children: [_jsx(Checkbox, { style: {
|
|
18
|
+
'--icon-size': '16px',
|
|
19
|
+
'--font-size': '14px',
|
|
20
|
+
'--gap': '6px'
|
|
21
|
+
} }), _jsx("img", { className: 'img', src: imgUrl }), _jsxs(View, Object.assign({ className: 'info' }, { children: [_jsx(Text, Object.assign({ className: 'goodsName' }, { children: "VERSO HYDRATION SERUMVERSO HYDRATION SERUM" })), _jsx(View, Object.assign({ className: 'size' }, { children: "\u89C4\u683C\uFF1A30ml" })), _jsxs(View, Object.assign({ className: 'handleWrap' }, { children: [_jsx(Text, Object.assign({ className: 'price' }, { children: "\uFFE5809" })), _jsx(StepNum, { num: num, onChange: (val) => {
|
|
22
|
+
setNum(val);
|
|
23
|
+
} })] }))] }))] })) }) })), _jsxs(View, Object.assign({ className: 'dashboard' }, { children: [_jsx(View, Object.assign({ className: 'choose' }, { children: _jsx(Radio, Object.assign({ style: {
|
|
24
|
+
'--icon-size': '18px',
|
|
25
|
+
'--font-size': '14px',
|
|
26
|
+
'--gap': '6px'
|
|
27
|
+
} }, { children: "\u5168\u9009" })) })), editState ? (_jsxs(View, Object.assign({ className: 'check' }, { children: [_jsxs(View, Object.assign({ className: 'priceGroup' }, { children: [_jsxs(View, Object.assign({ className: 'discount' }, { children: ["\u4F18\u60E0: ", _jsx(Text, Object.assign({ className: 'data' }, { children: "\uFFE5 0.00" }))] })), _jsxs(View, Object.assign({ className: 'all' }, { children: ["\u5408\u8BA1: ", _jsx(Text, Object.assign({ className: 'data' }, { children: "\uFFE5 9999.99" }))] }))] })), _jsx(View, Object.assign({ className: 'btn' }, { children: "\u7ED3\u7B97(10)" }))] }))) : (_jsx(View, Object.assign({ className: 'del' }, { children: _jsx(View, Object.assign({ className: 'btn' }, { children: "\u5220\u9664" })) })))] }))] })));
|
|
28
|
+
};
|
|
29
|
+
export const Cart = memo(CartJsx);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useNumStep(): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useRef, useState } from 'react';
|
|
3
|
+
import { useComponent } from '@brushes/qj-simulate-component';
|
|
4
|
+
import { getEnv } from '@brushes/api';
|
|
5
|
+
const CouponListJsx = () => {
|
|
6
|
+
const { View, Text } = useComponent();
|
|
7
|
+
const [coe, setCoe] = useState(1);
|
|
8
|
+
const flag = getEnv();
|
|
9
|
+
const config = useRef([
|
|
10
|
+
{
|
|
11
|
+
id: 1,
|
|
12
|
+
label: '未使用'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: 2,
|
|
16
|
+
label: '已使用'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 3,
|
|
20
|
+
label: '已失效'
|
|
21
|
+
}
|
|
22
|
+
]);
|
|
23
|
+
return (_jsxs(View, Object.assign({ className: 'couponList', style: {
|
|
24
|
+
height: flag ? '100vh' : '600px'
|
|
25
|
+
} }, { children: [_jsx(View, Object.assign({ className: 'couponTab' }, { children: config.current.map((item) => {
|
|
26
|
+
return (_jsxs(View, Object.assign({ className: `couponTabItem ${coe === item.id ? 'active' : ''}`, onClick: () => setCoe(item.id) }, { children: [item.label, _jsx(Text, { className: 'icon' })] }), item.id));
|
|
27
|
+
}) })), _jsxs(View, Object.assign({ className: 'couponListContent' }, { children: [_jsx(View, Object.assign({ className: 'couponListItem unused' }, { children: _jsxs(View, Object.assign({ className: 'coupon-content' }, { children: [_jsxs(View, Object.assign({ className: 'price' }, { children: [_jsx(Text, Object.assign({ className: 'symbol' }, { children: "\uFFE5" })), _jsx(Text, Object.assign({ className: 'num' }, { children: "123" }))] })), _jsxs(View, Object.assign({ className: 'info' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: "\u6574\u5355\u7ACB\u51CF10\u5143 \u6EE1199\u53EF\u7528" })), _jsx(Text, Object.assign({ className: 'date' }, { children: "\u6709\u6548\u671F\u81F3\uFF1A2022-10-01" })), _jsx(View, Object.assign({ className: 'btn' }, { children: "\u5DF2\u4F7F\u7528" }))] }))] })) })), _jsx(View, Object.assign({ className: 'couponListItem used' }, { children: _jsxs(View, Object.assign({ className: 'coupon-content' }, { children: [_jsxs(View, Object.assign({ className: 'price' }, { children: [_jsx(Text, Object.assign({ className: 'symbol' }, { children: "\uFFE5" })), _jsx(Text, Object.assign({ className: 'num' }, { children: "123" }))] })), _jsxs(View, Object.assign({ className: 'info' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: "\u6574\u5355\u7ACB\u51CF10\u5143 \u6EE1199\u53EF\u7528" })), _jsx(Text, Object.assign({ className: 'date' }, { children: "\u6709\u6548\u671F\u81F3\uFF1A2022-10-01" })), _jsx(View, Object.assign({ className: 'btn' }, { children: "\u5DF2\u4F7F\u7528" }))] }))] })) })), _jsx(View, Object.assign({ className: 'couponListItem overdue' }, { children: _jsxs(View, Object.assign({ className: 'coupon-content' }, { children: [_jsxs(View, Object.assign({ className: 'price' }, { children: [_jsx(Text, Object.assign({ className: 'symbol' }, { children: "\uFFE5" })), _jsx(Text, Object.assign({ className: 'num' }, { children: "123" }))] })), _jsxs(View, Object.assign({ className: 'info' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: "\u6574\u5355\u7ACB\u51CF10\u5143 \u6EE1199\u53EF\u7528" })), _jsx(Text, Object.assign({ className: 'date' }, { children: "\u6709\u6548\u671F\u81F3\uFF1A2022-10-01" })), _jsx(View, Object.assign({ className: 'btn' }, { children: "\u5DF2\u4F7F\u7528" })), _jsx(View, Object.assign({ className: 'round' }, { children: "\u5DF2\u5931\u6548" }))] }))] })) }))] }))] })));
|
|
28
|
+
};
|
|
29
|
+
export const CouponList = memo(CouponListJsx);
|
|
@@ -5,7 +5,7 @@ import { _ } from '@brushes/tools';
|
|
|
5
5
|
const { isUndefined, isEmpty } = _;
|
|
6
6
|
const CubeJsx = ({ defaultValue, type, borderRadius, marginBottom, marginTop, selectImg }) => {
|
|
7
7
|
const [list, setList] = useState(defaultValue);
|
|
8
|
-
const { View } = useComponent();
|
|
8
|
+
const { View, Image } = useComponent();
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
const computedArr = selectImg
|
|
11
11
|
.filter((item) => !isUndefined(item))
|
|
@@ -17,7 +17,7 @@ const CubeJsx = ({ defaultValue, type, borderRadius, marginBottom, marginTop, se
|
|
|
17
17
|
setList(arr);
|
|
18
18
|
}, [selectImg]);
|
|
19
19
|
return (_jsx(View, Object.assign({ className: `cube-type${type}` }, { children: list.map((item, index) => {
|
|
20
|
-
return type === 1 ? (_jsx(
|
|
20
|
+
return type === 1 ? (_jsx(Image, { mode: 'widthFix', src: item.imgUrl, style: {
|
|
21
21
|
width: '100%',
|
|
22
22
|
borderRadius: borderRadius + 'px'
|
|
23
23
|
} }, index)) : (_jsx(View, { className: 'block', style: {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useRef, useState } from 'react';
|
|
3
|
+
import { useComponent } from '@brushes/qj-simulate-component';
|
|
4
|
+
import EvaluateItem from '../../common/evaluateItem';
|
|
5
|
+
import { evaluateListFake } from '../../common/mock';
|
|
6
|
+
const EvaluateListJsx = () => {
|
|
7
|
+
const [active, setActive] = useState('1');
|
|
8
|
+
const { View } = useComponent();
|
|
9
|
+
const tabs = useRef([
|
|
10
|
+
{
|
|
11
|
+
label: '全部',
|
|
12
|
+
num: '900+',
|
|
13
|
+
index: '1'
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
label: '好评',
|
|
17
|
+
num: '800+',
|
|
18
|
+
index: '2'
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
label: '中评',
|
|
22
|
+
num: '99+',
|
|
23
|
+
index: '3'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: '差评',
|
|
27
|
+
num: '12',
|
|
28
|
+
index: '4'
|
|
29
|
+
}
|
|
30
|
+
]);
|
|
31
|
+
const handleTab = (coe) => {
|
|
32
|
+
setActive(coe);
|
|
33
|
+
};
|
|
34
|
+
return (_jsxs(_Fragment, { children: [_jsx(View, Object.assign({ className: 'evaluateListTab' }, { children: tabs.current.map((item) => {
|
|
35
|
+
return (_jsxs(View, Object.assign({ className: `evaluateListTabItem ${item.index === active ? 'active' : ''}`, "data-index": item.index, onClick: handleTab.bind(null, item.index) }, { children: [item.label, " ", item.num] }), item.index));
|
|
36
|
+
}) })), _jsx(View, Object.assign({ className: 'evaluateListContent' }, { children: evaluateListFake.map((item, index) => {
|
|
37
|
+
return _jsx(EvaluateItem, { itemData: item }, index);
|
|
38
|
+
}) }))] }));
|
|
39
|
+
};
|
|
40
|
+
export const EvaluateList = memo(EvaluateListJsx);
|
|
@@ -1,31 +1,12 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
import { useComponent } from '@brushes/qj-simulate-component';
|
|
12
|
-
import {
|
|
2
|
+
import { useComponent, navigatorImpl } from '@brushes/qj-simulate-component';
|
|
3
|
+
import { checkImgUrl } from '../../../utils/checkImgUrl';
|
|
4
|
+
import { routerMap } from '../../../routerMap';
|
|
13
5
|
export const ClassifyFloor = ({ navList, activeKey }) => {
|
|
14
6
|
const { View, Text } = useComponent();
|
|
15
|
-
console.log(4, navList);
|
|
16
|
-
const switchImpl = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
-
const isTaro = getEnv();
|
|
18
|
-
console.log(45, isTaro);
|
|
19
|
-
if (isTaro) {
|
|
20
|
-
const Taro = yield getTaro();
|
|
21
|
-
Taro.navigateTo({
|
|
22
|
-
url: '/subpackage/goods/index'
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
7
|
return navList.map((item) => (_jsx(View, Object.assign({ className: ['content', activeKey === `${item.goodsClassCode}` ? ' active' : ''].join('') }, { children: item === null || item === void 0 ? void 0 : item.childList.map((classifyItem) => {
|
|
27
|
-
return (_jsxs(View, Object.assign({ className: 'classifyFloor' }, { children: [_jsxs(View, Object.assign({ className: 'titleWrap' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: classifyItem.goodsClassName })), _jsx(Text, { className: 'line' })] })), _jsx(View, Object.assign({ className: 'container' }, { children: classifyItem.childList.map((
|
|
28
|
-
return (_jsxs(View, Object.assign({ onClick:
|
|
8
|
+
return (_jsxs(View, Object.assign({ className: 'classifyFloor' }, { children: [_jsxs(View, Object.assign({ className: 'titleWrap' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: classifyItem.goodsClassName })), _jsx(Text, { className: 'line' })] })), _jsx(View, Object.assign({ className: 'container' }, { children: classifyItem.childList.map(({ classtreeCode, goodsClassCode, goodsClassLogo, goodsClassName }) => {
|
|
9
|
+
return (_jsxs(View, Object.assign({ onClick: () => navigatorImpl(`${routerMap.goodList}?classtreeCode=${classtreeCode}`), className: 'classifyFloorGoodsItem' }, { children: [_jsx("img", { src: checkImgUrl(goodsClassLogo), className: 'logo' }), _jsx(Text, Object.assign({ className: 'title' }, { children: goodsClassName }))] }), goodsClassCode));
|
|
29
10
|
}) }))] }), classifyItem.goodsClassCode));
|
|
30
11
|
}) }), item.goodsClassCode)));
|
|
31
12
|
};
|
|
@@ -9,13 +9,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
11
11
|
import { memo, useEffect, useState } from 'react';
|
|
12
|
-
import {
|
|
13
|
-
import { useComponent } from '@brushes/qj-simulate-component';
|
|
12
|
+
import { useComponent, antdMobile } from '@brushes/qj-simulate-component';
|
|
14
13
|
import { ClassifyFloor } from './components/classifyFloor';
|
|
15
14
|
// import {SEARCH} from "../../static";
|
|
16
15
|
import { getEnv } from '@brushes/api';
|
|
17
16
|
import { queryGoodsClassTree } from '@brushes/api';
|
|
18
17
|
import { QjMobileIcon } from '../../common/icon';
|
|
18
|
+
import { _ } from '@brushes/tools';
|
|
19
|
+
const { get } = _;
|
|
20
|
+
const { SideBar } = antdMobile;
|
|
19
21
|
const GoodsClassifyJsx = () => {
|
|
20
22
|
const { View, Text } = useComponent();
|
|
21
23
|
const [activeKey, setActiveKey] = useState('');
|
|
@@ -25,9 +27,15 @@ const GoodsClassifyJsx = () => {
|
|
|
25
27
|
getData();
|
|
26
28
|
}, []);
|
|
27
29
|
const getData = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
try {
|
|
31
|
+
let commits = yield queryGoodsClassTree();
|
|
32
|
+
setNavList(commits || []);
|
|
33
|
+
const code = get(commits, 'commits[0].goodsClassCode');
|
|
34
|
+
setActiveKey(code);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.log(err);
|
|
38
|
+
}
|
|
31
39
|
});
|
|
32
40
|
return (_jsxs(_Fragment, { children: [_jsx(View, Object.assign({ className: 'goods-classify' }, { children: _jsxs(View, Object.assign({ className: 'goods-classify-search' }, { children: [_jsx(QjMobileIcon, { value: "fenxiang" }), _jsx(Text, { children: "\u641C\u7D22\u5546\u54C1" })] })) })), _jsxs(View, Object.assign({ className: 'goodsClassifyContainer', style: { height: flag ? 'calc(100vh - 51px)' : '600px' } }, { children: [_jsx(View, Object.assign({ className: 'side' }, { children: _jsx(SideBar, Object.assign({ activeKey: activeKey, onChange: setActiveKey, style: {
|
|
33
41
|
'--width': '88px'
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useComponent } from '@brushes/qj-simulate-component';
|
|
3
|
+
import EvaluateItem from '../../../common/evaluateItem';
|
|
4
|
+
const fake = [
|
|
5
|
+
{
|
|
6
|
+
avatar: 'http://www.qianjiangcloud.com/images/centerimga/pic%EF%BC%8Flogo+@2x.png',
|
|
7
|
+
userName: '张三李四王五',
|
|
8
|
+
rate: 4.5,
|
|
9
|
+
size: '一大通',
|
|
10
|
+
evaluate: '实物与描述的一样,质量相当好,卖家态度也好,有问必答,发货速度杠杠的,值得购买哦。外观设计漂亮,尺寸大小合适,包装仔细完整,宝贝手感不错,感觉很好,发货速度快,服务态度一流,给力!5星好评!',
|
|
11
|
+
imgUrls: [
|
|
12
|
+
{
|
|
13
|
+
imgUrl: 'https://img12.360buyimg.com/n1/jfs/t1/137059/18/27631/76566/635fc607E0b9e9c60/762dac6802e989d3.jpg'
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
imgUrl: 'https://img12.360buyimg.com/n1/jfs/t1/137059/18/27631/76566/635fc607E0b9e9c60/762dac6802e989d3.jpg'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
imgUrl: 'https://img12.360buyimg.com/n1/jfs/t1/137059/18/27631/76566/635fc607E0b9e9c60/762dac6802e989d3.jpg'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
imgUrl: 'https://img12.360buyimg.com/n1/jfs/t1/137059/18/27631/76566/635fc607E0b9e9c60/762dac6802e989d3.jpg'
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
avatar: 'http://www.qianjiangcloud.com/images/centerimga/pic%EF%BC%8Flogo+@2x.png',
|
|
28
|
+
userName: '张三李四王五',
|
|
29
|
+
rate: 4.5,
|
|
30
|
+
size: '一大通',
|
|
31
|
+
evaluate: '实物与描述的一样,质量相当好,卖家态度也好,有问必答,发货速度杠杠的,值得购买哦。外观设计漂亮,尺寸大小合适,包装仔细完整,宝贝手感不错,感觉很好,发货速度快,服务态度一流,给力!5星好评!',
|
|
32
|
+
imgUrls: [
|
|
33
|
+
{
|
|
34
|
+
imgUrl: 'https://img12.360buyimg.com/n1/jfs/t1/137059/18/27631/76566/635fc607E0b9e9c60/762dac6802e989d3.jpg'
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
const EvaluateEntry = () => {
|
|
40
|
+
const { View, Text } = useComponent();
|
|
41
|
+
return (_jsxs(View, Object.assign({ className: 'evaluateEntry' }, { children: [_jsxs(View, Object.assign({ className: 'topInfo' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: "\u8BC4\u4EF7\uFF08109\uFF09" })), _jsx(View, { children: _jsx(Text, Object.assign({ className: 'txt' }, { children: "\u597D\u8BC4\u5EA6 99%" })) })] })), fake.map((item, index) => (_jsx(EvaluateItem, { itemData: item }, index)))] })));
|
|
42
|
+
};
|
|
43
|
+
export default EvaluateEntry;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { SEARCH } from '../../../static';
|
|
12
|
+
import { useComponent } from '@brushes/qj-simulate-component';
|
|
13
|
+
import { checkCollectExit, saveCollect, deleteCollectByCode } from '@brushes/api';
|
|
14
|
+
import { _ } from '@brushes/tools';
|
|
15
|
+
import { useEffect } from 'react';
|
|
16
|
+
const { isEmpty } = _;
|
|
17
|
+
const GoodsDetailCollection = ({ goods, checkCollectionObj, setCheckCollectionObj }) => {
|
|
18
|
+
const { Text, View } = useComponent();
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
checkCollection();
|
|
21
|
+
}, []);
|
|
22
|
+
const checkCollection = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const checkCollectionParams = {
|
|
24
|
+
collectType: 0,
|
|
25
|
+
collectOpcode: goods.rsSkuDomainList[0].skuCode || ''
|
|
26
|
+
};
|
|
27
|
+
const result = yield checkCollectExit(checkCollectionParams);
|
|
28
|
+
setCheckCollectionObj(result);
|
|
29
|
+
});
|
|
30
|
+
const handleSaveCollect = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
const saveCollectParmas = {
|
|
32
|
+
collectType: 0,
|
|
33
|
+
collectOpcode: goods.rsSkuDomainList[0].skuCode || '',
|
|
34
|
+
collectOppic: goods.dataPic,
|
|
35
|
+
collectOpcont: goods.goodsName,
|
|
36
|
+
collectOpnum: goods.pricesetNprice,
|
|
37
|
+
goodsOrigin: 0
|
|
38
|
+
};
|
|
39
|
+
yield saveCollect(saveCollectParmas);
|
|
40
|
+
});
|
|
41
|
+
const handleDeleteCollectByCode = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
const deleteCollectByCodeParams = {
|
|
43
|
+
collectType: 0,
|
|
44
|
+
collectOpcode: goods.rsSkuDomainList[0].skuCode || ''
|
|
45
|
+
};
|
|
46
|
+
yield deleteCollectByCode(deleteCollectByCodeParams);
|
|
47
|
+
});
|
|
48
|
+
const handleCollect = () => {
|
|
49
|
+
console.log(123);
|
|
50
|
+
if (isEmpty(checkCollectionObj.dataObj)) {
|
|
51
|
+
handleSaveCollect();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
handleDeleteCollectByCode();
|
|
55
|
+
}
|
|
56
|
+
checkCollection();
|
|
57
|
+
};
|
|
58
|
+
return (_jsxs(View, Object.assign({ onClick: handleCollect }, { children: [_jsx("img", { src: SEARCH, alt: "", className: 'icon' }), _jsx(Text, Object.assign({ className: 'txt' }, { children: isEmpty(checkCollectionObj.dataObj) ? '收藏' : '已收藏' }))] })));
|
|
59
|
+
};
|
|
60
|
+
export default GoodsDetailCollection;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useComponent } from '@brushes/qj-simulate-component';
|
|
2
|
+
import { useComponent, antdMobile } from '@brushes/qj-simulate-component';
|
|
3
3
|
import { THREE_DOTS } from '../../../static';
|
|
4
|
-
import { Popup, Radio } from 'antd-mobile';
|
|
5
4
|
import { useState } from 'react';
|
|
6
|
-
import {
|
|
5
|
+
import { Coupon } from '../../../common/coupon';
|
|
6
|
+
const { Popup, Radio } = antdMobile;
|
|
7
7
|
const fake = [
|
|
8
8
|
{
|
|
9
9
|
title: '五一大促疯抢 满100立减10',
|
|
@@ -49,8 +49,8 @@ const fake = [
|
|
|
49
49
|
const GoodsDetailCoupon = () => {
|
|
50
50
|
const { View, Text } = useComponent();
|
|
51
51
|
const [visible, setVisible] = useState(false);
|
|
52
|
-
return (_jsxs(_Fragment, { children: [_jsxs(View, Object.assign({ className: 'goodsDetail-coupon', onClick: () => setVisible(true) }, { children: [_jsx(Text, Object.assign({ className: 'label' }, { children: "\
|
|
53
|
-
return _jsx(
|
|
52
|
+
return (_jsxs(_Fragment, { children: [_jsxs(View, Object.assign({ className: 'goodsDetail-coupon', onClick: () => setVisible(true) }, { children: [_jsx(Text, Object.assign({ className: 'label' }, { children: "\u4F18\u60E0\u5238" })), _jsxs(View, Object.assign({ className: 'info' }, { children: [_jsx(Text, Object.assign({ className: 'label' }, { children: "\u8BF7\u9009\u62E9\u4F18\u60E0\u5238" })), _jsx("img", { src: THREE_DOTS, alt: "", className: 'icon' })] }))] })), _jsx(Popup, Object.assign({ visible: visible, onMaskClick: () => setVisible(false) }, { children: _jsxs(View, Object.assign({ className: 'goodsDetail-coupon-popup' }, { children: [_jsx(View, Object.assign({ className: 'stampWrap' }, { children: _jsx(Radio.Group, Object.assign({ defaultValue: 0 }, { children: fake.map((item, index) => {
|
|
53
|
+
return _jsx(Coupon, { index: index, item: item }, index);
|
|
54
54
|
}) })) })), _jsx(View, Object.assign({ className: 'confirm' }, { children: "\u786E\u5B9A" }))] })) }))] }));
|
|
55
55
|
};
|
|
56
56
|
export default GoodsDetailCoupon;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useComponent } from '@brushes/qj-simulate-component';
|
|
3
|
+
import EvaluateItem from '../../../common/evaluateItem';
|
|
3
4
|
const GoodsDetailEvaluate = () => {
|
|
4
5
|
const { View } = useComponent();
|
|
5
|
-
return
|
|
6
|
+
return (_jsxs(View, Object.assign({ className: 'goodsDetailEvaluate' }, { children: ["\u8BC4\u4EF7", _jsx(EvaluateItem, {})] })));
|
|
6
7
|
};
|
|
7
8
|
export default GoodsDetailEvaluate;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { navigatorImpl, useComponent } from '@brushes/qj-simulate-component';
|
|
3
|
+
const GoodsDetailHandleBar = () => {
|
|
4
|
+
const { Text, View } = useComponent();
|
|
5
|
+
return (_jsxs(View, Object.assign({ className: 'goodsDetailHandleBar' }, { children: [_jsxs(View, Object.assign({ className: 'linkGroup' }, { children: [_jsx(Text, { className: 'icon' }), _jsx(Text, Object.assign({ className: 'txt' }, { children: "\u5BA2\u670D" }))] })), _jsxs(View, Object.assign({ className: 'linkGroup' }, { children: [_jsx(Text, { className: 'icon' }), _jsx(Text, Object.assign({ className: 'txt' }, { children: "\u8D2D\u7269\u8F66" }))] })), _jsxs(View, Object.assign({ className: 'btnGroup' }, { children: [_jsx(View, Object.assign({ className: 'btn addCart', onClick: () => navigatorImpl('/subpackage/orderconfirm/index') }, { children: "\u52A0\u5165\u8D2D\u7269\u8F66" })), _jsx(View, Object.assign({ className: 'btn buy' }, { children: "\u7ACB\u5373\u8D2D\u4E70" }))] }))] })));
|
|
6
|
+
};
|
|
7
|
+
export default GoodsDetailHandleBar;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const GoodsDetailInfo: ({
|
|
1
|
+
declare const GoodsDetailInfo: ({ goods }: any) => JSX.Element;
|
|
2
2
|
export default GoodsDetailInfo;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useComponent } from '@brushes/qj-simulate-component';
|
|
3
|
-
const GoodsDetailInfo = ({
|
|
3
|
+
const GoodsDetailInfo = ({ goods }) => {
|
|
4
4
|
const { View } = useComponent();
|
|
5
|
-
return (_jsx(View, Object.assign({ className: 'goodsDetail-info' }, { children: _jsx("div", { dangerouslySetInnerHTML: { __html:
|
|
5
|
+
return (_jsx(View, Object.assign({ className: 'goodsDetail-info' }, { children: _jsx("div", { dangerouslySetInnerHTML: { __html: goods.goodsRemark || '' } }) })));
|
|
6
6
|
};
|
|
7
7
|
export default GoodsDetailInfo;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useComponent, antdMobile } from '@brushes/qj-simulate-component';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
const { Popup, Radio } = antdMobile;
|
|
5
|
+
const GoodsDetailPopup = ({ popupVisible, setPopupVisible, goods }) => {
|
|
6
|
+
const { View, Text, Image } = useComponent();
|
|
7
|
+
const [selectSizeCoe, setSelectSizeCoe] = useState(0);
|
|
8
|
+
const [count, setCount] = useState(1);
|
|
9
|
+
const handleChooseSize = (index) => {
|
|
10
|
+
setSelectSizeCoe(index);
|
|
11
|
+
console.log(12, selectSizeCoe);
|
|
12
|
+
};
|
|
13
|
+
const handleStep = (type) => {
|
|
14
|
+
switch (type) {
|
|
15
|
+
case 'minus':
|
|
16
|
+
setCount((count) => count - 1);
|
|
17
|
+
break;
|
|
18
|
+
case 'plus':
|
|
19
|
+
setCount((count) => count + 1);
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return (_jsx(_Fragment, { children: _jsx(Popup, Object.assign({ visible: popupVisible, onMaskClick: () => setPopupVisible(false) }, { children: _jsxs(View, Object.assign({ className: 'goodsDetail-size-popup' }, { children: [_jsxs(View, Object.assign({ className: 'content' }, { children: [_jsx(View, Object.assign({ className: 'closeWrap' }, { children: _jsx(Text, { className: 'icon', onClick: () => setPopupVisible(false) }) })), _jsxs(View, Object.assign({ className: 'goodsInfo' }, { children: [_jsx(View, Object.assign({ className: 'lPart' }, { children: _jsx(Image, { mode: 'widthFix', src: "", alt: "", className: 'goodsImg' }) })), _jsxs(View, Object.assign({ className: 'rPart' }, { children: [_jsx(View, Object.assign({ className: 'name' }, { children: goods.goodsShowname || '' })), _jsxs(View, Object.assign({ className: 'price' }, { children: ["\uFFE5: ", goods.pricesetNprice.toFixed(2) || ''] })), _jsx(View, Object.assign({ className: 'chosen' }, { children: "\u5DF2\u9009\u62E9: 15ml" }))] }))] })), _jsxs(View, Object.assign({ className: 'sizeArr' }, { children: [_jsx(Text, Object.assign({ className: 'title' }, { children: "\u9009\u62E9\u989C\u8272" })), _jsx(View, Object.assign({ className: 'sizeArrItemWrap' }, { children: goods.rsSpecValueDomainList.map((item, index) => {
|
|
24
|
+
return (_jsx(View, Object.assign({ className: `sizeItem ${index === selectSizeCoe ? 'active' : ''}`, "data-index": index, onClick: handleChooseSize.bind(null, index) }, { children: item.specValueValue }), index));
|
|
25
|
+
}) }))] })), _jsxs(View, Object.assign({ className: 'countWrap' }, { children: [_jsx(View, Object.assign({ className: 'label' }, { children: "\u8D2D\u4E70\u6570\u91CF" })), _jsxs(View, Object.assign({ className: 'numStep' }, { children: [_jsx(Text, Object.assign({ className: 'btn minus', onClick: handleStep.bind(null, 'minus') }, { children: "-" })), _jsx(Text, Object.assign({ className: 'content' }, { children: count })), _jsx(Text, Object.assign({ className: 'btn plus', onClick: handleStep.bind(null, 'plus') }, { children: "+" }))] }))] }))] })), _jsx(View, Object.assign({ className: 'btnWrap' }, { children: _jsx(Text, Object.assign({ className: 'btn' }, { children: "\u786E\u8BA4" })) }))] })) })) }));
|
|
26
|
+
};
|
|
27
|
+
export default GoodsDetailPopup;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const GoodsDetailPromotion: () => JSX.Element;
|
|
1
|
+
declare const GoodsDetailPromotion: ({ promotionList }: any) => JSX.Element;
|
|
2
2
|
export default GoodsDetailPromotion;
|