电子商城测试版v4

This commit is contained in:
2022-07-06 20:29:48 +08:00
parent bbc485ee3f
commit f05389ced7
48 changed files with 358 additions and 545 deletions
+29 -11
View File
@@ -4,7 +4,7 @@ import { getFilterData } from "@/common/util";
import Product from "../components/product";
import Search from "@/components/search"
import { Text, View } from "@tarojs/components"
import Taro from "@tarojs/taro";
import Taro, { useRouter } from "@tarojs/taro";
import classnames from "classnames";
import { useCallback, useEffect, useRef, useState } from "react";
import CreatePopup from "../components/createPopup";
@@ -16,6 +16,8 @@ import AddCollection from "@/components/addCollection";
export default () => {
const router = useRouter()
//获取收藏夹面料
const [list, setList] = useState<any[]>([])
const getFavoriteInfo = () => {
@@ -43,24 +45,40 @@ export default () => {
}, [])
//全选反选
const [selectStatus, setSelectStatus] = useState(false)
const [allSelectStatus, setAllSelectStatus] = useState(false)
const selectCallBack = useCallback(() => {
setSelectStatus(() => true)
setAllSelectStatus(() => true)
setSelectStatus(1)
}, [])
const colseCallBack = useCallback(() => {
setSelectStatus(() => false)
setAllSelectStatus(() => false)
setSelectStatus(3)
}, [])
// useEffect(() => {
// if(list.length)
// setSelectStatus(ids.length == list.length)
// }, [ids, list])
const [selectStatus, setSelectStatus] = useState<1|2|3>(3)
useEffect(() => {
if(list.length) {
if(ids.length == list.length) {
setSelectStatus(1)
setAllSelectStatus(true)
} else if ( 0 < ids.length && ids.length < list.length){
setSelectStatus(2)
setAllSelectStatus(false)
} else {
setSelectStatus(3)
setAllSelectStatus(false)
}
}
}, [ids, list])
const [collectionShow, setCollectionShow] = useState(false)
const closeCollection = useCallback(() => {
setCollectionShow(false)
}, [])
const onAdd = () => {
}
return (
@@ -70,7 +88,7 @@ export default () => {
</View>
<View className={styles.operation}>
<View className={styles.operation_check}>
<MCheckbox status={selectStatus} onSelect={() => selectCallBack()} onClose={() => colseCallBack()}/>
<MCheckbox status={allSelectStatus} onSelect={() => selectCallBack()} onClose={() => colseCallBack()}/>
<Text>全选</Text>
</View>
<View className={styles.operation_check_right}>
@@ -79,7 +97,7 @@ export default () => {
</View>
</View>
<View className={styles.class_list}>
<Product productList={list} onSelectIds={getSelectIds} selectStatus={selectStatus}/>
<Product productList={list} onSelectIds={getSelectIds} selectStatus={selectStatus} openCheckBox={true}/>
</View>
<AddCollection show={collectionShow} onAdd={onAdd} onClose={closeCollection}/>
</View>
@@ -9,22 +9,24 @@ import { useCallback, useEffect, useRef, useState } from "react"
type Params = {
productList?: any[],
onSelectIds?: (val: number[]) => void
selectStatus?: false|true
onSelectIds?: (val: number[]) => void,
selectStatus?: 1|2|3, //1全选,2不做处理,3全清空
openCheckBox?: true|false //是否开启选择
}
export default ({productList = [], onSelectIds, selectStatus = false}:Params) => {
export default ({productList = [], onSelectIds, selectStatus = 2, openCheckBox = false}:Params) => {
const [list, setList] = useState<any[]>([])
useEffect(() => {
setList(() => [...productList])
},[productList])
useEffect(() => {
if(list.length) {
if(list.length && selectStatus != 2) {
list.map(item => {
item.check = selectStatus
item.check = (selectStatus == 1)
})
setList(() => [...list])
}
setList(() => [...list])
}, [selectStatus])
const onChangeSelect = (item) => {
@@ -57,13 +59,13 @@ export default ({productList = [], onSelectIds, selectStatus = false}:Params) =>
return (
<View className={styles.products_list}>
{list?.map(item => {
return <View className={styles.products_item} onClick={() => onChangeSelect(item)}>
<View className={styles.checkbox} onClick={(e) => e.stopPropagation()}>
return <View className={styles.products_item} onClick={() => openCheckBox?onChangeSelect(item):goLink(`/pages/details/index?id=${item.product_id}`)}>
{openCheckBox&&<View className={styles.checkbox} onClick={(e) => e.stopPropagation()}>
<MCheckbox status={item.check} onSelect={() => onSelect(item)} onClose={() => onClose(item)}/>
</View>
</View>}
<View className={styles.item_img}>
<LabAndImg value={{lab:item.lab,rgb:item.rgb,texture_url:item.texture_url}}/>
<View className={styles.num}>{item.product_color_count}色</View>
<View className={styles.num}>{item.enable_product_color_count}色</View>
</View>
<View className={styles.item_con}>
<View className={styles.title}><text>{formatHashTag(item.product_code, '')} </text>{item.product_name}</View>
+8 -3
View File
@@ -1,5 +1,5 @@
import { CreateFavoriteApi, DelFavoriteApi, FavoriteListApi, UpdateFavoriteApi } from "@/api/favorite";
import { alert } from "@/common/common";
import { alert, goLink } from "@/common/common";
import { getFilterData } from "@/common/util";
import Product from "./components/product";
import Search from "@/components/search"
@@ -10,8 +10,9 @@ import { useCallback, useEffect, useRef, useState } from "react";
import CreatePopup from "./components/createPopup";
import UpdatePopup from "./components/updatePopup";
import styles from './index.module.scss'
import useLogin from "@/use/useLogin";
export default () => {
useLogin()
const changeOpenCon = (item) => {
item.openStatus = !item.openStatus
setList((e) => [...e])
@@ -117,6 +118,10 @@ export default () => {
}
}
const onBatchManagement = useCallback(() => {
// goLink('pages/collection/collectionClass/index', {id: })
}, [])
//操作文件夹
const onCreatSuccess = (submitData) => {
if (!initData.id) {
@@ -147,7 +152,7 @@ export default () => {
</View>
</View>)}
</View>
<UpdatePopup show={updateShow} onClose={closeUpdate} onDelete={onDeleteCollect} onUpdate={onUpdateShow}/>
<UpdatePopup show={updateShow} onClose={closeUpdate} onDelete={onDeleteCollect} onUpdate={onUpdateShow} onBatchManagement={onBatchManagement}/>
<CreatePopup defaultValue={initData} show={collectioinShow} onClose={closeCollection} onSuccess={onCreatSuccess}/>
</View>
)