diff --git a/global.d.ts b/global.d.ts
index f8ba444..6981aec 100644
--- a/global.d.ts
+++ b/global.d.ts
@@ -20,3 +20,4 @@ declare namespace NodeJS {
declare const CURRENT_VERSION: string
declare const CURRENT_GITHASH: string
declare const CURRENT_ENV: string
+
diff --git a/iconfont.json b/iconfont.json
index a759b0f..3b833b0 100644
--- a/iconfont.json
+++ b/iconfont.json
@@ -1,5 +1,5 @@
{
- "symbol_url": "//at.alicdn.com/t/c/font_3619513_pecprurprt.js",
+ "symbol_url": "//at.alicdn.com/t/c/font_3619513_1msan9t0ewxk.js",
"save_dir": "./src/components/iconfont",
"use_typescript": true,
"platforms": ["weapp","h5"],
diff --git a/src/common/Enumerate/BaseEnum/index.ts b/src/common/Enumerate/BaseEnum/index.ts
new file mode 100644
index 0000000..2fbbb36
--- /dev/null
+++ b/src/common/Enumerate/BaseEnum/index.ts
@@ -0,0 +1,8 @@
+// 订单类型
+// 0 大货 1 剪板 2 散剪
+
+export const enum EnumSaleMode {
+ Bulk = 0,
+ Plate = 1,
+ BulkCut = 2
+}
diff --git a/src/common/Enumerate/index.ts b/src/common/Enumerate/index.ts
new file mode 100644
index 0000000..a5d1f93
--- /dev/null
+++ b/src/common/Enumerate/index.ts
@@ -0,0 +1 @@
+export { EnumSaleMode } from './BaseEnum/index'
diff --git a/src/components/checkbox/index.module.scss b/src/components/checkbox/index.module.scss
index 4c33e14..fdaed3e 100644
--- a/src/components/checkbox/index.module.scss
+++ b/src/components/checkbox/index.module.scss
@@ -7,6 +7,7 @@
}
}
.checkbox_main {
+ flex: 0 0 auto;
display: flex;
justify-content: center;
align-items: center;
@@ -14,6 +15,7 @@
background-color: #fff;
border: 1px solid #c2c2c2;
text-align: center;
+ overflow: hidden;
line-height: 40px;
&--normal {
width: 40px;
diff --git a/src/components/checkbox/index.tsx b/src/components/checkbox/index.tsx
index 84aa42d..13c648c 100644
--- a/src/components/checkbox/index.tsx
+++ b/src/components/checkbox/index.tsx
@@ -11,15 +11,30 @@ type params = {
onClose?: () => void //取消触发
status?: boolean //是否选中
disabled?: boolean //是否禁用
+ triggerLabel?: boolean // 点击label是否触发选中
circle?: boolean
round?: boolean
size?: CheckboxSize
children?: React.ReactNode
customStyles?: React.CSSProperties
customClassName?: string
+ customTextClass?: string
}
export default forwardRef((props: params, ref) => {
- const { onSelect, onClose, status = false, disabled = false, circle = false, round = true, size = 'normal', children, customStyles, customClassName } = props
+ const {
+ onSelect,
+ onClose,
+ status = false,
+ disabled = false,
+ circle = false,
+ round = true,
+ triggerLabel = true,
+ size = 'normal',
+ children,
+ customStyles = {},
+ customClassName = '',
+ customTextClass = '',
+ } = props
const [selected, SetSelected] = useState(false)
const onSelectEven = () => {
if (disabled) return false
@@ -32,6 +47,12 @@ export default forwardRef((props: params, ref) => {
SetSelected(res)
}
+ const handleClickChildren = (event) => {
+ if (!triggerLabel){
+ return event.stopPropagation()
+ }
+ }
+
const getMainClassName = () => {
const classObject = {
[styles['checkbox_main--selected']]: selected,
@@ -57,13 +78,17 @@ export default forwardRef((props: params, ref) => {
SetSelected(status)
}, [status])
return (
- onSelectEven()} style={customStyles}>
+
{selected && }
- {children && {children}}
+ {children && (
+
+ {children}
+
+ )}
)
})
diff --git a/src/components/counter/index1.module.scss b/src/components/counter/index1.module.scss
deleted file mode 100644
index fe96cca..0000000
--- a/src/components/counter/index1.module.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-
-.main{
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- .reduce, .plus{
- font-size: $font_size_big;
- color: $color_main;
- width: 46px;
- height: 46px;
- display: flex;
- align-items: center;
- justify-content:center;
- font-size: 50px;
- background-color: $color_main;
- color: #fff;
- border-radius: 8px;
- }
- .input{
- display: flex;
- align-items: flex-end;
- background-color: #fff;
- padding: 5px 10px;
- box-sizing: border-box;
- width: 106px;
- border-radius: 10px;
- }
- input{
- font-size: $font_size_medium;
- }
- .unit{
- font-size: $font_size_min;
- color: $color_font_two;
- }
-
-}
\ No newline at end of file
diff --git a/src/components/counter/index1.tsx b/src/components/counter/index1.tsx
deleted file mode 100644
index d7f632d..0000000
--- a/src/components/counter/index1.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-import { Input, View } from "@tarojs/components"
-import { useEffect, useMemo, useRef, useState } from "react"
-import Big from 'big.js'
-import styles from "./index.module.scss"
-type params = {
- minNum?: number, //最小值
- maxNum?: number, //最大值
- step?: number, //步长
- defaultNum?: number, //默认值
- digits?: number //多少位小数
- onChange?:(val:number) => void,
- onBlue?:(val:number) => void, //失去焦点触发
- onClickBtn?:(val:number) => void,
- unit?: string
-}
-export default ({minNum = 0, maxNum = 100, step=1, digits = 0, defaultNum = 0, onChange, onBlue, onClickBtn, unit = ''}: params) => {
- const [value, setValue] = useState({count:defaultNum})
-
- const onPlus = () => {
- let {count} = value
- let num_res = Big(count).add(step).toNumber()
- num_res = num_res >= maxNum?maxNum:num_res
- num_res = formatDigits(num_res)
- setValue({...value, count:num_res})
- onChange?.(parseFloat(num_res))
- onClickBtn?.(parseFloat(num_res))
- }
- const minus = () => {
- let {count} = value
- let num_res = Big(count).minus(step).toNumber()
- num_res = num_res < minNum?0:num_res
- setValue({...value, count:num_res})
- onChange?.(parseFloat(num_res))
- onClickBtn?.(parseFloat(num_res))
- }
-
- //保留小数
- const formatDigits = (num) => {
- num = num + ''
- if(num.includes('.')&&digits > 0) {
- console.log('num::',num.includes('.'))
- let res = num.split('.')
- let last_num = res[1].substr(0, digits)
- return res[0] + '.' + last_num
- }
- return parseFloat(num)
- }
-
- //检查数据
- const checkData = (val) => {
- let num = parseFloat(val)
- if(num > maxNum) return maxNum
- if(num < minNum) return minNum
- return val
- }
-
-
- const onInputEven = (e) => {
- let res = e.detail.value
- if(res === '') {
- setValue({...value, count:minNum})
- onChange?.(minNum)
- }
- else if(!isNaN(Number(res))) {
- let count = formatDigits(res)
- count = checkData(count)
- setValue({...value, count})
- onChange?.(parseFloat(count as string))
- } else {
- let num = parseFloat(res)
- if(!isNaN(num)) {
- let count = formatDigits(num)
- count = checkData(count)
- setValue({...value, count})
- onChange?.(count as number)
- } else {
- setValue({...value, count:defaultNum})
- onChange?.(defaultNum)
- }
-
- }
- }
-
- const onBluerEven = () => {
- let num = parseFloat(value.count)
- if(!isNaN(num)) {
- let count = formatDigits(num)
- count = checkData(count)
- setValue({...value, count})
- onBlue?.(count as number)
- } else {
- setValue({...value, count:defaultNum})
- onBlue?.(defaultNum)
- }
- }
- return (
-
- minus()}>-
-
-
- {unit}
-
- onPlus()}>+
-
- )
-}
\ No newline at end of file
diff --git a/src/components/iconfont/h5/IconShouqi.tsx b/src/components/iconfont/h5/IconShouqi.tsx
new file mode 100644
index 0000000..85c6745
--- /dev/null
+++ b/src/components/iconfont/h5/IconShouqi.tsx
@@ -0,0 +1,34 @@
+/* tslint:disable */
+/* eslint-disable */
+
+import React, { CSSProperties, SVGAttributes, FunctionComponent } from 'react';
+import { getIconColor } from './helper';
+
+interface Props extends Omit, 'color'> {
+ size?: number;
+ color?: string | string[];
+}
+
+const DEFAULT_STYLE: CSSProperties = {
+ display: 'block',
+};
+
+const IconShouqi: FunctionComponent = ({ size, color, style: _style, ...rest }) => {
+ const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE;
+
+ return (
+
+ );
+};
+
+IconShouqi.defaultProps = {
+ size: 18,
+};
+
+export default IconShouqi;
diff --git a/src/components/iconfont/h5/IconZhankai.tsx b/src/components/iconfont/h5/IconZhankai.tsx
new file mode 100644
index 0000000..c22ccc1
--- /dev/null
+++ b/src/components/iconfont/h5/IconZhankai.tsx
@@ -0,0 +1,34 @@
+/* tslint:disable */
+/* eslint-disable */
+
+import React, { CSSProperties, SVGAttributes, FunctionComponent } from 'react';
+import { getIconColor } from './helper';
+
+interface Props extends Omit, 'color'> {
+ size?: number;
+ color?: string | string[];
+}
+
+const DEFAULT_STYLE: CSSProperties = {
+ display: 'block',
+};
+
+const IconZhankai: FunctionComponent = ({ size, color, style: _style, ...rest }) => {
+ const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE;
+
+ return (
+
+ );
+};
+
+IconZhankai.defaultProps = {
+ size: 18,
+};
+
+export default IconZhankai;
diff --git a/src/components/iconfont/h5/index.tsx b/src/components/iconfont/h5/index.tsx
index 470110e..f8e11eb 100644
--- a/src/components/iconfont/h5/index.tsx
+++ b/src/components/iconfont/h5/index.tsx
@@ -2,6 +2,8 @@
/* eslint-disable */
import React, { SVGAttributes, FunctionComponent } from 'react';
+import IconZhankai from './IconZhankai';
+import IconShouqi from './IconShouqi';
import IconLujing from './IconLujing';
import IconJizhumima from './IconJizhumima';
import IconAJizhumima from './IconAJizhumima';
@@ -61,6 +63,8 @@ import IconGerenzhongxin from './IconGerenzhongxin';
import IconDingdan from './IconDingdan';
import IconShouye from './IconShouye';
import IconGouwu from './IconGouwu';
+export { default as IconZhankai } from './IconZhankai';
+export { default as IconShouqi } from './IconShouqi';
export { default as IconLujing } from './IconLujing';
export { default as IconJizhumima } from './IconJizhumima';
export { default as IconAJizhumima } from './IconAJizhumima';
@@ -121,7 +125,7 @@ export { default as IconDingdan } from './IconDingdan';
export { default as IconShouye } from './IconShouye';
export { default as IconGouwu } from './IconGouwu';
-export type IconNames = 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
+export type IconNames = 'icon-zhankai' | 'icon-shouqi' | 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
interface Props extends Omit, 'color'> {
name: IconNames;
@@ -131,6 +135,10 @@ interface Props extends Omit, 'color'> {
const IconFont: FunctionComponent = ({ name, ...rest }) => {
switch (name) {
+ case 'icon-zhankai':
+ return ;
+ case 'icon-shouqi':
+ return ;
case 'icon-lujing':
return ;
case 'icon-jizhumima':
diff --git a/src/components/iconfont/index.h5.tsx b/src/components/iconfont/index.h5.tsx
index 6afdfe2..92a658d 100644
--- a/src/components/iconfont/index.h5.tsx
+++ b/src/components/iconfont/index.h5.tsx
@@ -5,7 +5,7 @@ import React, { FunctionComponent } from 'react';
import Taro from '@tarojs/taro';
import Icon from './h5';
-export type IconNames = 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
+export type IconNames = 'icon-zhankai' | 'icon-shouqi' | 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
interface Props {
name: IconNames;
diff --git a/src/components/iconfont/index.tsx b/src/components/iconfont/index.tsx
index 36e3baf..d8063b7 100644
--- a/src/components/iconfont/index.tsx
+++ b/src/components/iconfont/index.tsx
@@ -3,7 +3,7 @@
import React, { FunctionComponent } from 'react';
-export type IconNames = 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
+export type IconNames = 'icon-zhankai' | 'icon-shouqi' | 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
export interface IconProps {
name: IconNames;
diff --git a/src/components/iconfont/index.weapp.tsx b/src/components/iconfont/index.weapp.tsx
index e6284d0..69735af 100644
--- a/src/components/iconfont/index.weapp.tsx
+++ b/src/components/iconfont/index.weapp.tsx
@@ -4,7 +4,7 @@
import React, { FunctionComponent } from 'react';
import Taro from '@tarojs/taro';
-export type IconNames = 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
+export type IconNames = 'icon-zhankai' | 'icon-shouqi' | 'icon-lujing' | 'icon-jizhumima' | 'icon-a-jizhumima' | 'icon-weixindenglu' | 'icon-kehuxinxi' | 'icon-yewuyuanqizi' | 'icon-chakanquanbukehu' | 'icon-biyan' | 'icon-bianji' | 'icon-daikuan' | 'icon-cangku' | 'icon-guanlidingdan' | 'icon-mima' | 'icon-guanbi' | 'icon-jianshao' | 'icon-dingwei' | 'icon-saomiao' | 'icon-peihuo' | 'icon-shaixuan' | 'icon-paiming' | 'icon-shanchusousuoxinxi' | 'icon-shijian' | 'icon-sousuo' | 'icon-shouhou' | 'icon-sousuofanhui' | 'icon-sousuoshanchu' | 'icon-tuikuan' | 'icon-tishi' | 'icon-xianxiahuizong' | 'icon-xinzeng' | 'icon-yonghuming' | 'icon-yanjing' | 'icon-yufukuan' | 'icon-wodekefu' | 'icon-dizhi' | 'icon-shouhouzhongxin' | 'icon-wodeshoucang' | 'icon-shoukuanliebiao' | 'icon-madanguanli' | 'icon-qusechazhao' | 'icon-pandiansaoma' | 'icon-yaoqingma' | 'icon-duizhang' | 'icon-tihuoliebiao' | 'icon-yangpinduibi' | 'icon-yansequyang' | 'icon-fahuoliebiao' | 'icon-yuncangkucun' | 'icon-xiaoshou' | 'icon-qianzhicangkucun' | 'icon-lingquseka' | 'icon-gouwu1' | 'icon-dingdan1' | 'icon-gerenzhongxin1' | 'icon-shouye1' | 'icon-gerenzhongxin' | 'icon-dingdan' | 'icon-shouye' | 'icon-gouwu';
interface Props {
name: IconNames;
diff --git a/src/components/iconfont/weapp/weapp.js b/src/components/iconfont/weapp/weapp.js
index 4a356cf..580287c 100644
--- a/src/components/iconfont/weapp/weapp.js
+++ b/src/components/iconfont/weapp/weapp.js
@@ -1,6 +1,6 @@
Component({
properties: {
- // icon-lujing | icon-jizhumima | icon-a-jizhumima | icon-weixindenglu | icon-kehuxinxi | icon-yewuyuanqizi | icon-chakanquanbukehu | icon-biyan | icon-bianji | icon-daikuan | icon-cangku | icon-guanlidingdan | icon-mima | icon-guanbi | icon-jianshao | icon-dingwei | icon-saomiao | icon-peihuo | icon-shaixuan | icon-paiming | icon-shanchusousuoxinxi | icon-shijian | icon-sousuo | icon-shouhou | icon-sousuofanhui | icon-sousuoshanchu | icon-tuikuan | icon-tishi | icon-xianxiahuizong | icon-xinzeng | icon-yonghuming | icon-yanjing | icon-yufukuan | icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu
+ // icon-zhankai | icon-shouqi | icon-lujing | icon-jizhumima | icon-a-jizhumima | icon-weixindenglu | icon-kehuxinxi | icon-yewuyuanqizi | icon-chakanquanbukehu | icon-biyan | icon-bianji | icon-daikuan | icon-cangku | icon-guanlidingdan | icon-mima | icon-guanbi | icon-jianshao | icon-dingwei | icon-saomiao | icon-peihuo | icon-shaixuan | icon-paiming | icon-shanchusousuoxinxi | icon-shijian | icon-sousuo | icon-shouhou | icon-sousuofanhui | icon-sousuoshanchu | icon-tuikuan | icon-tishi | icon-xianxiahuizong | icon-xinzeng | icon-yonghuming | icon-yanjing | icon-yufukuan | icon-wodekefu | icon-dizhi | icon-shouhouzhongxin | icon-wodeshoucang | icon-shoukuanliebiao | icon-madanguanli | icon-qusechazhao | icon-pandiansaoma | icon-yaoqingma | icon-duizhang | icon-tihuoliebiao | icon-yangpinduibi | icon-yansequyang | icon-fahuoliebiao | icon-yuncangkucun | icon-xiaoshou | icon-qianzhicangkucun | icon-lingquseka | icon-gouwu1 | icon-dingdan1 | icon-gerenzhongxin1 | icon-shouye1 | icon-gerenzhongxin | icon-dingdan | icon-shouye | icon-gouwu
name: {
type: String,
},
diff --git a/src/components/iconfont/weapp/weapp.wxml b/src/components/iconfont/weapp/weapp.wxml
index 9df2807..a66a6dd 100644
--- a/src/components/iconfont/weapp/weapp.wxml
+++ b/src/components/iconfont/weapp/weapp.wxml
@@ -1,3 +1,9 @@
+
+
+
+
+
+
diff --git a/src/components/tag/index.module.scss b/src/components/tag/index.module.scss
index cb595ee..5c5d6dd 100644
--- a/src/components/tag/index.module.scss
+++ b/src/components/tag/index.module.scss
@@ -7,6 +7,7 @@
text-align: center;
justify-content: center;
align-items: center;
+ box-sizing: border-box;
&--normal {
font-size: $font_size_medium;
height: 40px;
@@ -18,18 +19,33 @@
&--circle{
border-radius: 10px;
}
+
&--danger {
- background-color: $color_danger;
+ border: 1px solid $color_danger;
+ color: $color_danger;
}
&--primary{
- background-color: $color_main;
+ border: 1px solid $color_main;
+ color: $color_main;
}
&--warning{
- background-color: $color_warning;
+ border: 1px solid $color_warning;
+ color: $color_warning;
}
&--info{
- background-color: $color_info;
- color: rgba($color: #333333, $alpha: 0.8);
+ border: 1px solid $color_info;
+ color: $color_info;
+ .tag--text {
+ color: rgba($color: #333333, $alpha: 0.8) !important;
+ }
+ }
+ &--plain {
+ background-color: currentColor;
+ border-color: currentColor;
+ border: unset;
+ .tag--text {
+ color: #ffffff;
+ }
}
&--disabled {
opacity: $opacity-disabled;
diff --git a/src/components/tag/index.tsx b/src/components/tag/index.tsx
index 935fe5c..ec3a84f 100644
--- a/src/components/tag/index.tsx
+++ b/src/components/tag/index.tsx
@@ -1,4 +1,4 @@
-import { View } from '@tarojs/components'
+import { View, Text } from '@tarojs/components'
import { FC, ReactNode } from 'react'
import classnames from 'classnames'
import styles from './index.module.scss'
@@ -34,12 +34,11 @@ const Tag: FC = (props) => {
[styles['tag--plain']]: plain,
[styles['tag--circle']]: circle,
}
- console.log('classObj==>', classObject)
return classObject
}
return (
- {children}
+ {children}
)
}
diff --git a/src/pages/shopping/components/bottomEditBar/index.module.scss b/src/pages/shopping/components/bottomEditBar/index.module.scss
index 7beeaa8..7ea37b1 100644
--- a/src/pages/shopping/components/bottomEditBar/index.module.scss
+++ b/src/pages/shopping/components/bottomEditBar/index.module.scss
@@ -5,7 +5,7 @@
justify-content: space-between;
background-color: white;
padding: 16px 24px;
-
+
.bottomLeft{
margin-left: 12px;
.moneyText{
diff --git a/src/pages/shopping/components/colorKindItem/index.module.scss b/src/pages/shopping/components/colorKindItem/index.module.scss
new file mode 100644
index 0000000..ed55816
--- /dev/null
+++ b/src/pages/shopping/components/colorKindItem/index.module.scss
@@ -0,0 +1,65 @@
+.colorKindItem {
+ width: 100%;
+ height: 100%;
+ margin-left: 20px;
+ padding: 16px 0;
+ display: flex;
+ flex-flow: row nowrap;
+ align-items: center;
+ justify-content: space-between;
+ &__left {
+ flex: none;
+ width: 120px;
+ height: 120px;
+ border-radius: 8px;
+ margin-right: 24px;
+ &--image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ &__center {
+ display: flex;
+ flex-flow: column nowrap;
+ justify-content: space-between;
+ flex: 1 1 auto;
+ &--title {
+ color: $color_font_one;
+ font-size: 28px;
+ @include common_ellipsis(2);
+ }
+ &--detail {
+ }
+ &--ID {
+ color: rgba($color: #000000, $alpha: 0.4);
+ font-size: 24px;
+ @include common_ellipsis();
+ }
+ &--description {
+ color: rgba($color: #000000, $alpha: 0.4);
+ font-size: 24px;
+ @include common_ellipsis();
+ }
+ }
+ &__right {
+ flex: none;
+ display: flex;
+ flex-flow: column nowrap;
+ align-items: flex-end;
+ justify-content: space-around;
+ align-self: stretch;
+ &--price {
+ color: $color_money;
+ font-weight: 550;
+ font-size: 28px;
+ }
+ &--counter {
+ }
+ }
+}
+.checkbox{
+ padding: 0 24px;
+}
+.selected {
+ background-color: #F8FAFF;
+}
diff --git a/src/pages/shopping/components/colorKindItem/index.tsx b/src/pages/shopping/components/colorKindItem/index.tsx
new file mode 100644
index 0000000..a589509
--- /dev/null
+++ b/src/pages/shopping/components/colorKindItem/index.tsx
@@ -0,0 +1,116 @@
+import { View, Text, Image } from '@tarojs/components'
+import MCheckbox from '@/components/checkbox'
+import Counter from '@/components/counter'
+import { FC, memo, ReactNode, useCallback, useEffect, useState } from 'react'
+import classnames from 'classnames'
+import styles from './index.module.scss'
+import { debounce } from '@/common/util'
+import { formatPriceDiv } from '@/common/format'
+import { EnumSaleMode } from '@/common/Enumerate'
+
+type PropsType = {
+ item: Record & object
+ orderType: EnumSaleMode
+ isSelected: boolean
+ onChecked?: Function
+ onUnChecked?: Function
+}
+
+const selectList = [
+ { value: 0, title: '大货', unit: '条', eunit: 'kg', step: 1, digits: 0, minNum: 1, maxNum: 100000, defaultNum: 1 },
+ { value: 1, title: '剪板', unit: '米', eunit: 'm', step: 1, digits: 2, minNum: 0.5, maxNum: 9.99, defaultNum: 1 },
+ { value: 2, title: '散剪', unit: '米', eunit: 'kg', step: 1, digits: 2, minNum: 3, maxNum: 100000, defaultNum: 3 },
+]
+
+const ColorKindItem: FC = memo(
+ (props) => {
+ const { item, orderType = EnumSaleMode.Bulk, isSelected = false, onChecked, onUnChecked } = props
+ console.log('重新渲染', item.id, orderType)
+ //格式化金额
+ const formatPirce = useCallback((price) => {
+ return Number(formatPriceDiv(price))
+ }, [])
+
+ //格式化数量
+ const formatCount = useCallback((item) => {
+ return item.sale_mode == EnumSaleMode.Bulk ? item.roll : item.length / 100
+ }, [])
+
+ //格式化单位
+ const formatUnit = useCallback((item) => {
+ return item.sale_mode == EnumSaleMode.Bulk ? '条' : '米'
+ }, [])
+
+ // const [checked, setCheck] = useState(false)
+
+ // useEffect(() => {
+ // setCheck(isSelected)
+ // console.log('useEffect', isSelected)
+ // }, [isSelected])
+
+ const handleSelect = () => {
+ console.log('handleSelect')
+ // setCheck(true)
+ onChecked && onChecked({ ...item, checked: true })
+ }
+ const handleClose = () => {
+ // setCheck(false)
+ onUnChecked && onUnChecked({ ...item, checked: false })
+ }
+
+ const getInputValue = debounce(async (num, item) => {}, 300)
+
+ return (
+
+
+
+
+
+ 001# 环保黑 环保黑 环保黑 环保黑 环保黑 环保黑
+
+ 6002#220G
+ 流线棉拉架卫衣
+
+
+
+ ¥ 37.50/kg
+
+ getInputValue(e, item)}
+ defaultNum={formatCount(item)}
+ step={selectList[orderType].step}
+ digits={selectList[orderType].digits}
+ onClickBtn={(e) => getInputValue(e, item)}
+ unit={formatUnit(item)}
+ minNum={selectList[orderType].minNum}
+ maxNum={selectList[orderType].maxNum}
+ />
+
+
+
+ )
+ },
+ (preProp, nextProp) => {
+ const stringifyPreProp = JSON.stringify(preProp.item)
+ const stringifyNextProp = JSON.stringify(nextProp.item)
+ console.log('memo==>', preProp, nextProp);
+ let needMemoized = true
+ if (preProp.isSelected !== nextProp.isSelected) {
+ needMemoized = false
+ }
+ if (preProp.orderType !== nextProp.orderType) {
+ needMemoized = false
+ }
+ if (stringifyPreProp !== stringifyNextProp) {
+ needMemoized = false
+ }
+ return needMemoized
+ },
+)
+export default ColorKindItem
diff --git a/src/pages/shopping/components/shoppingCartItem/index.module.scss b/src/pages/shopping/components/shoppingCartItem/index.module.scss
index 9b40326..afd701c 100644
--- a/src/pages/shopping/components/shoppingCartItem/index.module.scss
+++ b/src/pages/shopping/components/shoppingCartItem/index.module.scss
@@ -1,8 +1,17 @@
-.layout{
+.layout {
margin: 24px;
+ padding-left: 0;
+ padding-right: 0;
+ .checkbox {
+ padding: 0 24px;
+ &--text {
+ width: 100%;
+ margin-left: 20px;
+ }
+ }
}
-.line{
+.line {
margin: 16px 0;
}
@@ -16,37 +25,40 @@
font-size: 32px;
font-family: $font_family;
font-weight: 550;
+ line-height: 2;
color: rgba($color: #000000, $alpha: 0.8);
margin-right: 16px;
}
// 汇总
- .summary{
+ .summary {
color: rgba($color: #000000, $alpha: 0.4);
font-size: 24px;
-
}
}
.detailBox {
box-sizing: border-box;
overflow: hidden;
- .orderType{
- width: 100%;
+ .orderTitle {
+ padding: 0 24px;
+ display: flex;
+ align-items: center;
+ color: $color_font_one;
+ font-weight: 550;
+ font-size: 28px;
+ line-height: 2.5;
+ }
+ .orderType {
+ padding: 0 24px;
margin-left: 56px;
- .orderTypeTitle{
- color: $color_font_one;
- font-weight: 550;
- font-size: 28px;
- line-height: 2.5;
- }
- .orderTypeDetail{
+
+ .orderTypeDetail {
display: flex;
gap: 0 16px;
}
}
- .orderColor{
-
- width: 100%;
+ .orderColor {
+ padding: 0 24px;
margin-left: 56px;
}
}
@@ -54,3 +66,20 @@
.bottomBox {
margin-top: 40px;
}
+
+.drawerButton {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ Text {
+ font-size: 52px;
+ }
+}
+
+.drawerOpen{
+ height: auto;
+}
+.drawerClose {
+
+ height: 0;
+}
diff --git a/src/pages/shopping/components/shoppingCartItem/index.tsx b/src/pages/shopping/components/shoppingCartItem/index.tsx
index 60bb836..351c243 100644
--- a/src/pages/shopping/components/shoppingCartItem/index.tsx
+++ b/src/pages/shopping/components/shoppingCartItem/index.tsx
@@ -9,36 +9,118 @@ import MCheckbox from '@/components/checkbox'
import Tag from '@/components/tag'
import Divider from '@/components/divider'
import NormalButton from '@/components/normalButton'
+import ColorKindItem from '../colorKindItem'
+import { EnumSaleMode } from '@/common/Enumerate'
type PropsType = {
obj?: any
}
const DrawerButton = memo<{ isOpen: boolean }>(({ isOpen }) => {
- return isOpen ? :
+ return (
+ {isOpen ? : }
+ )
})
export default memo((props: PropsType) => {
+ console.log('重新渲染 shoppingCartItem');
const [openDetail, setOpenDetail] = useState(false)
const handleOpenDetail = () => {
setOpenDetail((isOpen) => !isOpen)
+
}
- const [selected, setSelect] = useState(0)
+ const [selected, setSelect] = useState(0)
- const onSelectOrderType = (type) => {
+ const onSelectOrderType = (type: EnumSaleMode) => {
setSelect(type)
}
+ const [mockList, setMockList] = useState([
+ {
+ sale_mode: 0,
+ list: [
+ { id: 0, sale_mode: 0, roll: 5, length: 0, checked: true },
+ { id: 1, sale_mode: 0, roll: 6, length: 0, checked: false },
+ { id: 2, sale_mode: 0, roll: 7, length: 0, checked: true },
+ ],
+ },
+ {
+ sale_mode: 1,
+ list: [
+ { id: 5, sale_mode: 1, roll: 0, length: 77700, checked: false },
+ { id: 6, sale_mode: 1, roll: 0, length: 7600, checked: true },
+ { id: 7, sale_mode: 1, roll: 0, length: 400, checked: true },
+ ],
+ },
+ {
+ sale_mode: 2,
+ list: [
+ { id: 8, sale_mode: 2, roll: 0, length: 11100, checked: false },
+ { id: 9, sale_mode: 2, roll: 0, length: 8540, checked: true },
+ ],
+ },
+ ])
+
+ const handleChecked = (current) => {
+ console.log('handleChecked', current)
+ const index = mockList.findIndex(item=>item.sale_mode === selected)
+ const tempList = mockList[index].list.map((item) => {
+ if (item.id === current.id) {
+ item = current
+ }
+ return item
+ })
+ setMockList((pre=>{
+ return pre.map(item=>{
+ if(item.sale_mode === selected){
+ item.list = tempList
+ }
+ return item
+ })
+ }))
+ }
+ const handleUnChecked = (current) => {
+ const index = mockList.findIndex((item) => item.sale_mode === selected)
+ const tempList = mockList[index].list.map((item) => {
+ if (item.id === current.id) {
+ item = current
+ }
+ return item
+ })
+ setMockList((pre) => {
+ return pre.map((item) => {
+ if (item.sale_mode === selected) {
+ item.list = tempList
+ }
+ return item
+ })
+ })
+ }
+
+ const memoList = useMemo(() => {
+ return mockList[selected].list.map((item, index) => {
+ return (
+
+ )
+ })
+ }, [mockList, selected])
+
return (
-
+
-
+
灵玉布行
-
+
刘思伟
@@ -49,46 +131,47 @@ export default memo((props: PropsType) => {
-
+
- 订单类型
+ 订单类型
onSelectOrderType(0)}>
+ onClick={() => onSelectOrderType(EnumSaleMode.Bulk)}>
大货
onSelectOrderType(1)}>
- 散剪
+ onClick={() => onSelectOrderType(EnumSaleMode.Plate)}>
+ 剪板
onSelectOrderType(2)}>
- 剪板
+ onClick={() => onSelectOrderType(EnumSaleMode.BulkCut)}>
+ 散剪
-
+
布料颜色
-
+
大货单位:条
+ {memoList}
)
diff --git a/src/pages/shopping/index.config.ts b/src/pages/shopping/index.config.ts
index dfe1de6..f0dc887 100644
--- a/src/pages/shopping/index.config.ts
+++ b/src/pages/shopping/index.config.ts
@@ -1,3 +1,4 @@
export default {
navigationBarTitleText: '购物页面',
+
}
diff --git a/src/pages/shopping/index.module.scss b/src/pages/shopping/index.module.scss
index e86e601..18722a8 100644
--- a/src/pages/shopping/index.module.scss
+++ b/src/pages/shopping/index.module.scss
@@ -9,7 +9,9 @@
&--context {
justify-content: space-between;
height: 100%;
-
+ .shopping__list__container{
+ overflow: scroll;
+ }
}
}
.flexBox {
diff --git a/src/pages/shopping/index.tsx b/src/pages/shopping/index.tsx
index 4849c82..5101b0c 100644
--- a/src/pages/shopping/index.tsx
+++ b/src/pages/shopping/index.tsx
@@ -52,7 +52,7 @@ const Shopping: FC = () => {
-
+
{/* {
})}
*/}
+
{isManage ? (
diff --git a/src/styles/common.scss b/src/styles/common.scss
index f3ddc9a..055933b 100644
--- a/src/styles/common.scss
+++ b/src/styles/common.scss
@@ -52,6 +52,10 @@ $customTabBarHeight: 100px;
.justify-between {
justify-content: space-between
}
+.items-center{
+ align-items: center;
+}
+
.flex-item {
flex: 1 1 auto;
}
diff --git a/src/styles/iconfont.scss b/src/styles/iconfont.scss
index c49b106..e8dae52 100644
--- a/src/styles/iconfont.scss
+++ b/src/styles/iconfont.scss
@@ -1,6 +1,6 @@
@font-face {
font-family: "iconfont"; /* Project id 3619513 */
- src: url('/src/styles/iconfont.ttf?t=1663134774880') format('truetype');
+ src: url('/src/styles/iconfont.ttf?t=1663207764776') format('truetype');
}
.iconfont {
@@ -11,6 +11,14 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-zhankai:before {
+ content: "\e63f";
+}
+
+.icon-shouqi:before {
+ content: "\e640";
+}
+
.icon-lujing:before {
content: "\e63e";
}
diff --git a/src/styles/iconfont.ttf b/src/styles/iconfont.ttf
index 049f955..5fd4ed8 100644
Binary files a/src/styles/iconfont.ttf and b/src/styles/iconfont.ttf differ