From 7a2dc0006f15f723e1e661b9cc797189cd8bc6d1 Mon Sep 17 00:00:00 2001
From: czm <2192718639@qq.com>
Date: Tue, 5 Jul 2022 20:32:37 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E5=95=86=E5=9F=8E=E6=B5=8B?=
=?UTF-8?q?=E8=AF=95=E7=89=88v4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/common/constant.js | 4 +-
src/common/enum.ts | 8 +
src/common/util.ts | 2 +-
.../afterOrderBtns/index.module.scss | 37 ++
src/components/afterOrderBtns/index.tsx | 53 ++-
src/components/moveBtn/index.module.scss | 16 +-
src/components/moveBtn/index.tsx | 15 +
src/components/shopCart/index copy.tsx | 352 ++++++++++++++++++
src/components/shopCart/index.tsx | 58 ++-
.../collectionClass/index.module.scss | 11 +-
.../collection/collectionClass/index.tsx | 68 ++--
.../collection/components/product/index.tsx | 63 +++-
src/pages/collection/index.tsx | 2 +-
src/pages/order/index.tsx | 1 +
.../addressInfoDetail/index.module.scss | 4 +-
.../salesAfter/components/kindList/index.tsx | 101 ++---
src/pages/salesAfter/index.tsx | 13 +-
.../salesAfterList/components/order/index.tsx | 6 +-
src/use/useCommonData.ts | 3 +-
19 files changed, 649 insertions(+), 168 deletions(-)
create mode 100644 src/components/shopCart/index copy.tsx
diff --git a/src/common/constant.js b/src/common/constant.js
index 9eb3a66..3dc9ec4 100644
--- a/src/common/constant.js
+++ b/src/common/constant.js
@@ -10,8 +10,8 @@
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
// export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞
-export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
-// export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰
+// export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
+export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰
// CDN
// 生成密钥
diff --git a/src/common/enum.ts b/src/common/enum.ts
index a3a8877..0016360 100644
--- a/src/common/enum.ts
+++ b/src/common/enum.ts
@@ -56,4 +56,12 @@ export const SUBSCRIPTION_MESSAGE_SCENE = {
SubmitOrder: {value:1, label:'确认下单'},
ToPay : {value:2, label:'去付款'},
ApplyGoods: {value:3, label: '申请退款'}
+}
+
+//退款状态枚举
+export const REFUND_STATUS = {
+ ShouldCollectOrderRefundTypeUnknown: {value:0, label:'未知退款'},
+ ShouldCollectOrderRefundTypeAdvanceReceiptRefund: {value:1, label:'预收退款'},
+ ShouldCollectOrderRefundTypeReturnForRefund: {value:2, label:'退货退款'},
+ ShouldCollectOrderRefundTypeSalesRefund: {value:3, label:'销售退款'},
}
\ No newline at end of file
diff --git a/src/common/util.ts b/src/common/util.ts
index e136a9a..bd14ea0 100644
--- a/src/common/util.ts
+++ b/src/common/util.ts
@@ -39,7 +39,7 @@ export const throttle = (fn, delay) => {
* @param {Array} arr 排除过滤的属性
* @returns
*/
- export const getFilterData = (val = {}, arr = []) => {
+ export const getFilterData = (val = {}, arr: string[] = []) => {
let res = {}
for(let key in val) {
if(val[key]!==undefined&&val[key]!==null&&val[key]!==''&&(!arr.includes(key))){
diff --git a/src/components/afterOrderBtns/index.module.scss b/src/components/afterOrderBtns/index.module.scss
index 252b22e..d57e7b0 100644
--- a/src/components/afterOrderBtns/index.module.scss
+++ b/src/components/afterOrderBtns/index.module.scss
@@ -1,3 +1,40 @@
+.submit_order{
+ display: flex;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ justify-content: flex-end;
+ width: 100%;
+ height: 175px;
+ align-items: center;
+ background-color: #fff;
+ box-shadow: 6px 0px 12px 0px rgba(0,0,0,0.16);
+ padding: 20px 20px;
+ box-sizing: border-box;
+ padding-bottom: constant(safe-area-inset-bottom);
+ padding-bottom: env(safe-area-inset-bottom);
+ .order_btn {
+ width: 152px;
+ height: 72px;
+ border: 2px solid #dddddd;
+ border-radius: 46px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: $color_font_three;
+ &:nth-child(n+2) {
+ margin-left: 34px;
+ }
+ }
+ .order_btn_select{
+ color: $color_main;
+ border: 2px solid $color_main;
+ }
+ .order_number_desc{
+ font-size: $font_size_medium;
+ color: $color_font_two;
+ }
+}
.btns_list{
width: 100%;
// margin-top: 30px;
diff --git a/src/components/afterOrderBtns/index.tsx b/src/components/afterOrderBtns/index.tsx
index 5d0bec8..7519615 100644
--- a/src/components/afterOrderBtns/index.tsx
+++ b/src/components/afterOrderBtns/index.tsx
@@ -17,10 +17,11 @@ type Param = {
return_apply_order_id: number //售后申请单
},
onClick?: (val: number) => void, //点击后触发的事件,返回订单状态
- onBtnNull?: () => void //所有按钮都为空
+ fixedBottom?: true|false, //是否固定在底部
+
}
-export default memo(({orderInfo, onClick, onBtnNull}:Param) => {
+export default memo(({orderInfo, onClick, fixedBottom = true}:Param) => {
//售后订单状态
const {
ReturnStageApplying,
@@ -53,13 +54,6 @@ export default memo(({orderInfo, onClick, onBtnNull}:Param) => {
model_value: [],
label: '取消退货'
},
- {
- id: 2,
- big_value: [ReturnStageWaitCheck.value],
- cut_value: [],
- model_value: [],
- label: '退货物流'
- },
{
id: 4,
big_value: [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value],
@@ -143,25 +137,28 @@ export default memo(({orderInfo, onClick, onBtnNull}:Param) => {
}, [orderBtnsShowList])
return (
-
- {(orderBtnsShowList.length > 3)&&
- setShowMore(true)}>更多
- {showMore&&
-
- {orderBtnsShowList.map((item, index) => {
- return ((index >= 3) && submitBtns(item.id, index)}>{item.label})
- })}
-
- setShowMore(false)}>
- }
- }
+ <>
+ {(orderBtnsShowList.length > 0)&&
+
+ {(orderBtnsShowList.length > 3)&&
+ setShowMore(true)}>更多
+ {showMore&&
+
+ {orderBtnsShowList.map((item, index) => {
+ return ((index >= 3) && submitBtns(item.id, index)}>{item.label})
+ })}
+
+ setShowMore(false)}>
+ }
+ }
-
- {orderBtnsShowList.map((item, index) =>
- (index < 3)&& submitBtns(item.id, index)}>{item.label}
- )}
-
-
-
+
+ {orderBtnsShowList.map((item, index) =>
+ (index < 3)&& submitBtns(item.id, index)}>{item.label}
+ )}
+
+
+ }
+ >
)
})
\ No newline at end of file
diff --git a/src/components/moveBtn/index.module.scss b/src/components/moveBtn/index.module.scss
index f04d5be..d7f4fe7 100644
--- a/src/components/moveBtn/index.module.scss
+++ b/src/components/moveBtn/index.module.scss
@@ -14,7 +14,21 @@
align-items: center;
z-index:999;
.shop_icon{
- font-size: 50px;
+ font-size: 70px;
color: $color_main;
}
+ .product_num{
+ position: absolute;
+ font-size: 23px;
+ background-color: red;
+ color: #fff;
+ height: 36px;
+ line-height: 36px;
+ padding: 0 6px;
+ border-radius: 72px;
+ min-width: 25px;
+ text-align: center;
+ top: 0;
+ right: 0;
+ }
}
\ No newline at end of file
diff --git a/src/components/moveBtn/index.tsx b/src/components/moveBtn/index.tsx
index e30e888..23e5b53 100644
--- a/src/components/moveBtn/index.tsx
+++ b/src/components/moveBtn/index.tsx
@@ -3,6 +3,7 @@ import Taro, { useReady } from "@tarojs/taro"
import { ReactElement, useEffect, useRef, useState } from "react"
import classnames from "classnames";
import styles from './index.module.scss'
+import { GetShoppingCartApi } from "@/api/shopCart";
type param = {
children?: ReactElement|null,
@@ -22,6 +23,19 @@ export default ({children = null, onClick}:param) => {
setShowMoveBtn(true)
})
+ //获取数据
+ const [list, setList] = useState([])
+ const {fetchData} = GetShoppingCartApi()
+ const getShoppingCart = async () => {
+ const {data} = await fetchData()
+ let color_list = data.color_list||[]
+ setList(color_list)
+ }
+
+ useEffect(() => {
+ getShoppingCart()
+ }, [])
+
const dragEnd = (e) => {
}
@@ -31,6 +45,7 @@ export default ({children = null, onClick}:param) => {
{children}
{showMoveBtn&& dragEnd(e)}>
+ {(list.length > 0)&&{list.length > 99?'99+':list.length}}
}
)
diff --git a/src/components/shopCart/index copy.tsx b/src/components/shopCart/index copy.tsx
new file mode 100644
index 0000000..9297d36
--- /dev/null
+++ b/src/components/shopCart/index copy.tsx
@@ -0,0 +1,352 @@
+import {Image, ScrollView, View } from "@tarojs/components"
+import Popup from "@/components/popup"
+import classnames from "classnames";
+import MCheckbox from "@/components/checkbox";
+import LoadingCard from "@/components/loadingCard";
+import InfiniteScroll from "@/components/infiniteScroll";
+import styles from "./index.module.scss"
+import { useCallback, useEffect, useMemo, useRef, useState } from "react";
+import Taro from "@tarojs/taro";
+import { alert, goLink } from "@/common/common";
+import {GetShoppingCartApi, DelShoppingCartApi, UpdateShoppingCartApi} from "@/api/shopCart"
+import { formatHashTag, formatImgUrl, formatPriceDiv } from "@/common/fotmat";
+import { setParam } from "@/common/system";
+import { debounce } from "@/common/util";
+import Counter from "../counter";
+import { ApplyOrderAccessApi, GetAdminUserInfoApi, SubscriptionMessageApi } from "@/api/user";
+
+type param = {
+ show?: true|false,
+ onClose?: () => void
+}
+export default ({show = false, onClose}: param) => {
+ 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:5, maxNum:100000, defaultNum:10},
+ ]
+
+ const [selectIndex, setSelectIndex] = useState(0)
+ const selectProduct = (index:number) => {
+ setSelectIndex(index)
+ }
+
+ useEffect(() => {
+ resetList()
+ setSelectStatus(true)
+ }, [selectIndex])
+
+
+
+ //重置勾选数据
+ const resetList = () => {
+ list?.map(item => {
+ if(selectIndex == item.sale_mode || selectIndex == -1) {
+ item.select = true
+ } else {
+ item.select = false
+ }
+ })
+ setList([...list])
+ }
+
+ //获取数据
+ const [list, setList] = useState([])
+ const [loading, setLoading] = useState(false)
+ const {fetchData} = GetShoppingCartApi()
+ const getShoppingCart = async () => {
+ const {data} = await fetchData()
+ let color_list = data.color_list||[]
+ initList(color_list)
+ setLoading(false)
+ }
+
+ //初始化勾选数据
+ const [selectData, setSelectData] = useState<{id: number, checked: true|false}[]>([])
+ const initSelectData = (data:{id:number}[] = []) => {
+ let res = data?.map(item => {
+ return {id: item.id, checked: true}
+ })
+ setSelectData(() => res)
+ }
+
+ //初始化全部数据
+ const initList = (color_list) => {
+ color_list?.map(item => {
+ if(selectIndex == item.sale_mode) item.select = true
+ item.count = formatCount(item)
+ })
+ setList(color_list)
+ }
+
+ //显示是展示数据
+ useEffect(() => {
+ if(!show) {
+ setList([])
+ setSelectIndex(0)
+ } else {
+ setLoading(true)
+ getShoppingCart()
+ }
+ }, [show])
+
+ useEffect(() => {
+ return () => {
+ setList([])
+ }
+ }, [])
+
+ const [showPopup, setShowPopup] = useState(false)
+ useEffect(() => {
+ setShowPopup(show)
+ }, [show])
+
+ //全选反选
+ const [selectStatus, setSelectStatus] = useState(false)
+ const selectAll = () => {
+ list.map(item => {
+ if(selectIndex == item.sale_mode || selectIndex == -1)
+ item.select = !selectStatus
+ })
+ setSelectStatus(!selectStatus)
+ setList([...list])
+ }
+
+ //checkbox选中回调
+ const selectCallBack = (item) => {
+ item.select = true
+ checkSelect()
+ setList([...list])
+ }
+
+ //checkbox选中判断是否全部选中,全部选中后是全选,否则反选
+ const checkSelect = () => {
+ let list_count = 0
+ let select_count = 0
+ list?.map(item => {
+ if(selectIndex == -1 || selectIndex == item.sale_mode) {
+ list_count ++
+ if(item.select) select_count++
+ }
+ })
+ setSelectStatus(select_count == list_count)
+ }
+
+ //checkbox关闭回调
+ const colseCallBack = (item) => {
+ item.select = false
+ checkSelect()
+ setList([...list])
+ }
+
+ //popup关闭
+ const closePopup = () => {
+ onClose?.()
+ setShowPopup(false)
+ }
+
+ //删除购物车内容
+ const {fetchData:delShopFetchData} = DelShoppingCartApi()
+ const delSelect = () => {
+ getSelectId()
+ if(selectIds.current.length <= 0) return alert.none('请选择要删除的面料!')
+ Taro.showModal({
+ content: '删除所选商品?',
+ success: async function (res) {
+ if (res.confirm) {
+
+ const res = await delShopFetchData({id:selectIds.current})
+ if(res.success) {
+ getShoppingCart()
+ Taro.showToast({
+ title: '成功',
+ icon: 'success',
+ })
+ } else {
+ Taro.showToast({
+ title: res.msg,
+ icon: 'none',
+ })
+ }
+
+ } else if (res.cancel) {
+ console.log('用户点击取消')
+ }
+ }
+ })
+ }
+
+ //获取面料选中的id
+ const selectIds = useRef([])
+ const getSelectId = () => {
+ selectIds.current = []
+ list?.map(item => {
+ if(selectIndex == -1 || selectIndex == item.sale_mode) {
+ item.select&&selectIds.current.push(item.id)
+ }
+ })
+ }
+
+ //格式化金额
+ const formatPirce = useCallback((price) => {
+ return Number(formatPriceDiv(price))
+ }, [])
+
+ //格式化数量
+ const formatCount = useCallback((item) => {
+ console.log('item:::',item)
+ return item.sale_mode == 0? item.roll : (item.length/100)
+ }, [])
+
+ //格式化单位
+ const formatUnit = useCallback((item) => {
+ return item.sale_mode == 0? '条':'米'
+ }, [])
+
+ //预估金额和总条数
+ const estimatePrice = useMemo(() => {
+ let estimate_amount = 0
+ let product_list = new Set() //面料
+ let color_count = 0 //颜色数量
+ let all_count = 0 //总数量
+ list.map(item => {
+ if(item.select) {
+ estimate_amount += item.estimate_amount
+ product_list.add(item.product_id)
+ color_count++
+ all_count += item.sale_mode == 0?item.roll: (item.length)
+ }
+ })
+ let all_count_text = selectIndex == 0?all_count + '条': (all_count/100) + '米'
+ return {price: Number(formatPriceDiv(estimate_amount)).toFixed(2), countText: `已选${product_list.size}种面料,${color_count}个颜色,共${all_count_text}`, color_count}
+ },[list])
+
+
+ //去结算
+ const {fetchData: useFetchData} = GetAdminUserInfoApi()
+ const {fetchData: applyOrderAccessFetchData} = ApplyOrderAccessApi()
+ const orderDetail = debounce( async () => {
+ let res = await useFetchData()
+ if(res.data.order_access_status !== 3) {
+ if(res.data.order_access_status == 1) applyOrderAccessFetchData()
+ Taro.showModal({
+ title: '提示',
+ content: '暂未开通下单权限功能,稍后有客服联系您,请注意接受电话。',
+ cancelText: '联系客服',
+ confirmText: '我知道',
+ success: function (res) {
+ if (res.confirm) {
+ } else if (res.cancel) {
+ console.log('用户点击取消')
+ }
+ }
+ })
+ return false
+ }
+ getSelectId()
+ if(selectIds.current.length == 0) {
+ alert.error('请选择面料')
+ } else {
+ let ids = selectIds.current.join('-')
+ setParam({ids, sale_mode:selectIndex}) //临时存储
+ closePopup()
+ goLink('/pages/order/comfirm')
+ }
+ }, 500)
+
+
+ //计数组件-当后端修改完成才修改前端显示
+ const {fetchData: fetchDataUpdateShoppingCart} = UpdateShoppingCartApi()
+ const [UpdateShoppingCartLoading, setUpdateShoppingCartLoading] = useState(false)
+ const getInputValue = debounce(async (num, item) => {
+ let roll = item.sale_mode == 0?parseFloat(num):0
+ let length = item.sale_mode != 0?(parseFloat(num)*100):0
+ setUpdateShoppingCartLoading(() => true)
+ let res = await fetchDataUpdateShoppingCart({id: item.id, roll, length})
+ setUpdateShoppingCartLoading(() => false)
+ if(res.success) {
+ getShoppingCart()
+ }
+ }, 300)
+
+ return (
+
+ closePopup()} >
+
+
+ {!selectStatus?'全选':'反选'}
+
+
+ 删除所选
+
+
+ {estimatePrice.countText}
+
+ {selectList.map((item) => {
+ return selectProduct(item.value)} className={classnames(styles.search_item, (selectIndex==item.value)&&styles.search_item_select)}>{item.title}
+ })}
+
+
+ {loading&&}
+ {!loading&&list?.length > 0&&
+
+ {list?.map((item, index) => {
+ return
+
+ selectCallBack(item)} onClose={() => colseCallBack(item)}/>
+
+
+
+
+
+ {formatHashTag(item.product_code, item.product_name)}
+ {item.product_color_code +' ' + item.product_color_name}
+ {item.sale_mode_name}
+
+
+ ¥{formatPirce(item.sale_price)}/{selectList[selectIndex].eunit}
+ {/* ×{formatCount(item)}{selectList[selectIndex].unit} */}
+
+ getInputValue(e, item)}
+ defaultNum={item.count}
+ step={selectList[selectIndex].step}
+ digits={selectList[selectIndex].digits}
+ onClickBtn={(e) => getInputValue(e, item)}
+ unit={formatUnit(item)}
+ minNum={selectList[selectIndex].minNum}
+ maxNum={selectList[selectIndex].maxNum}
+ disable={UpdateShoppingCartLoading}
+ />
+
+
+
+ })}
+
+ }
+ {!loading&&list?.length == 0 &&
+ 暂未选择商品
+ 去选购
+ }
+
+
+
+
+
+
+
+
+ ¥{estimatePrice.price}
+ 预估金额
+
+ orderDetail()}>
+ 去结算({estimatePrice.color_count})
+
+
+
+
+
+
+ )
+}
+
diff --git a/src/components/shopCart/index.tsx b/src/components/shopCart/index.tsx
index 9297d36..e58684f 100644
--- a/src/components/shopCart/index.tsx
+++ b/src/components/shopCart/index.tsx
@@ -26,6 +26,7 @@ export default ({show = false, onClose}: param) => {
{value:2,title:'散剪', unit:'米', eunit:'kg', step:1, digits:2, minNum:5, maxNum:100000, defaultNum:10},
]
+ //切换面料类型
const [selectIndex, setSelectIndex] = useState(0)
const selectProduct = (index:number) => {
setSelectIndex(index)
@@ -42,12 +43,12 @@ export default ({show = false, onClose}: param) => {
const resetList = () => {
list?.map(item => {
if(selectIndex == item.sale_mode || selectIndex == -1) {
- item.select = true
+ checkboxData[item.id] = true
} else {
- item.select = false
+ checkboxData[item.id] = false
}
})
- setList([...list])
+ setCheckboxData(() => ({...checkboxData}))
}
//获取数据
@@ -58,25 +59,21 @@ export default ({show = false, onClose}: param) => {
const {data} = await fetchData()
let color_list = data.color_list||[]
initList(color_list)
+ setList(color_list)
setLoading(false)
}
- //初始化勾选数据
- const [selectData, setSelectData] = useState<{id: number, checked: true|false}[]>([])
- const initSelectData = (data:{id:number}[] = []) => {
- let res = data?.map(item => {
- return {id: item.id, checked: true}
- })
- setSelectData(() => res)
- }
-
- //初始化全部数据
+ //初始化全部数据默认勾选
+ const [checkboxData, setCheckboxData] = useState<{[index:number]:true|false}>({})
+ const initStatus = useRef(false)
const initList = (color_list) => {
- color_list?.map(item => {
- if(selectIndex == item.sale_mode) item.select = true
- item.count = formatCount(item)
- })
- setList(color_list)
+ if(initStatus.current) {
+ color_list?.map(item => {
+ if(selectIndex == item.sale_mode) checkboxData[item.id] = true
+ })
+ initStatus.current = false
+ }
+ setCheckboxData(() => checkboxData)
}
//显示是展示数据
@@ -86,6 +83,7 @@ export default ({show = false, onClose}: param) => {
setSelectIndex(0)
} else {
setLoading(true)
+ initStatus.current = true
getShoppingCart()
}
}, [show])
@@ -106,17 +104,17 @@ export default ({show = false, onClose}: param) => {
const selectAll = () => {
list.map(item => {
if(selectIndex == item.sale_mode || selectIndex == -1)
- item.select = !selectStatus
+ checkboxData[item.id] = !selectStatus
})
setSelectStatus(!selectStatus)
- setList([...list])
+ setCheckboxData(() => ({...checkboxData}))
}
//checkbox选中回调
const selectCallBack = (item) => {
- item.select = true
+ checkboxData[item.id] = true
checkSelect()
- setList([...list])
+ setCheckboxData(() => ({...checkboxData}))
}
//checkbox选中判断是否全部选中,全部选中后是全选,否则反选
@@ -126,7 +124,7 @@ export default ({show = false, onClose}: param) => {
list?.map(item => {
if(selectIndex == -1 || selectIndex == item.sale_mode) {
list_count ++
- if(item.select) select_count++
+ if(checkboxData[item.id]) select_count++
}
})
setSelectStatus(select_count == list_count)
@@ -134,9 +132,9 @@ export default ({show = false, onClose}: param) => {
//checkbox关闭回调
const colseCallBack = (item) => {
- item.select = false
+ checkboxData[item.id] = false
checkSelect()
- setList([...list])
+ setCheckboxData(() => ({...checkboxData}))
}
//popup关闭
@@ -182,7 +180,7 @@ export default ({show = false, onClose}: param) => {
selectIds.current = []
list?.map(item => {
if(selectIndex == -1 || selectIndex == item.sale_mode) {
- item.select&&selectIds.current.push(item.id)
+ checkboxData[item.id]&&selectIds.current.push(item.id)
}
})
}
@@ -210,7 +208,7 @@ export default ({show = false, onClose}: param) => {
let color_count = 0 //颜色数量
let all_count = 0 //总数量
list.map(item => {
- if(item.select) {
+ if(checkboxData[item.id]) {
estimate_amount += item.estimate_amount
product_list.add(item.product_id)
color_count++
@@ -219,7 +217,7 @@ export default ({show = false, onClose}: param) => {
})
let all_count_text = selectIndex == 0?all_count + '条': (all_count/100) + '米'
return {price: Number(formatPriceDiv(estimate_amount)).toFixed(2), countText: `已选${product_list.size}种面料,${color_count}个颜色,共${all_count_text}`, color_count}
- },[list])
+ },[list, checkboxData])
//去结算
@@ -293,7 +291,7 @@ export default ({show = false, onClose}: param) => {
{list?.map((item, index) => {
return
- selectCallBack(item)} onClose={() => colseCallBack(item)}/>
+ selectCallBack(item)} onClose={() => colseCallBack(item)}/>
@@ -309,7 +307,7 @@ export default ({show = false, onClose}: param) => {
getInputValue(e, item)}
- defaultNum={item.count}
+ defaultNum={formatCount(item)}
step={selectList[selectIndex].step}
digits={selectList[selectIndex].digits}
onClickBtn={(e) => getInputValue(e, item)}
diff --git a/src/pages/collection/collectionClass/index.module.scss b/src/pages/collection/collectionClass/index.module.scss
index 7762701..51ba4ab 100644
--- a/src/pages/collection/collectionClass/index.module.scss
+++ b/src/pages/collection/collectionClass/index.module.scss
@@ -20,7 +20,7 @@
display: flex;
justify-content: space-between;
align-items: center;
- padding: 20px 20px 0 20px;
+ padding: 20px 30px 0 30px;
font-size: 26px;
color: #707070;
.operation_check{
@@ -35,9 +35,12 @@
}
}
.operation_check_right{
- Text{
- color: #CCCCCC;
- margin-right: 20px;
+ .operation_check_move{
+ color: #707070;
+ margin-right: 30px;
+ }
+ .operation_check_cancel{
+ color: #007AFF;
}
}
.class_list{
diff --git a/src/pages/collection/collectionClass/index.tsx b/src/pages/collection/collectionClass/index.tsx
index b19f63d..c097b2f 100644
--- a/src/pages/collection/collectionClass/index.tsx
+++ b/src/pages/collection/collectionClass/index.tsx
@@ -11,6 +11,7 @@ import CreatePopup from "../components/createPopup";
import UpdatePopup from "../components/updatePopup";
import styles from './index.module.scss'
import MCheckbox from "@/components/checkbox";
+import AddCollection from "@/components/addCollection";
export default () => {
@@ -20,7 +21,7 @@ export default () => {
const getFavoriteInfo = () => {
let arr:any[] = []
new Array(10).fill("").map((item, index) => {
- arr.push({code: index})
+ arr.push({id:index, code: index})
})
setList(arr)
}
@@ -34,32 +35,53 @@ export default () => {
getFavoriteInfo()
}, [searchData])
+
+ //获取选中的id
+ const [ids, setIds] = useState([])
+ const getSelectIds = useCallback((val) => {
+ setIds(() => val)
+ }, [])
+
+ //全选反选
+ const [selectStatus, setSelectStatus] = useState(false)
const selectCallBack = useCallback(() => {
-
+ setSelectStatus(() => true)
}, [])
-
const colseCallBack = useCallback(() => {
-
+ setSelectStatus(() => false)
+ }, [])
+ // useEffect(() => {
+ // if(list.length)
+ // setSelectStatus(ids.length == list.length)
+ // }, [ids, list])
+ const [collectionShow, setCollectionShow] = useState(false)
+ const closeCollection = useCallback(() => {
+ setCollectionShow(false)
}, [])
- return (
-
-
-
-
-
-
- selectCallBack()} onClose={() => colseCallBack()}/>
- 全选
-
-
- 移动到
- 取消收藏
-
-
-
-
-
+ const onAdd = () => {
+
+ }
+
+ return (
+
+
+
- )
+
+
+ selectCallBack()} onClose={() => colseCallBack()}/>
+ 全选
+
+
+ setCollectionShow(true)}>移动到
+ 取消收藏
+
+
+
+
+
+
+
+ )
}
\ No newline at end of file
diff --git a/src/pages/collection/components/product/index.tsx b/src/pages/collection/components/product/index.tsx
index bca82bd..cfab59b 100644
--- a/src/pages/collection/components/product/index.tsx
+++ b/src/pages/collection/components/product/index.tsx
@@ -5,54 +5,77 @@ import styles from './index.module.scss'
import { formatHashTag, formatImgUrl } from "@/common/fotmat"
import LabAndImg from "@/components/LabAndImg"
import MCheckbox from "@/components/checkbox";
-import { useCallback, useEffect, useState } from "react"
+import { useCallback, useEffect, useRef, useState } from "react"
type Params = {
- desStatus?: true|false,
- productList?: any[]
+ productList?: any[],
+ onSelectIds?: (val: number[]) => void
+ selectStatus?: false|true
}
-export default ({desStatus = true, productList = []}:Params) => {
+export default ({productList = [], onSelectIds, selectStatus = false}:Params) => {
const [list, setList] = useState([])
useEffect(() => {
- console.log('productList::', productList)
setList(() => [...productList])
},[productList])
-
+ useEffect(() => {
+ if(list.length) {
+ list.map(item => {
+ item.check = selectStatus
+ })
+ }
+ setList(() => [...list])
+ }, [selectStatus])
- const onSelect = (item, e) => {
- console.log('e:::', e)
+ const onChangeSelect = (item) => {
+ if(item.check) {
+ onClose(item)
+ } else {
+ onSelect(item)
+ }
+ }
+
+ //选中和取消选中
+ const onSelect = (item) => {
item.check = true
setList(() => ([...list]))
}
-
- const onClose = (item, e) => {
+ const onClose = (item) => {
item.check = false
setList(() => ([...list]))
}
+ //监听数据变化
+ useEffect(() => {
+ let ids: number[] = []
+ list.map(item => {
+ if(item.check) ids.push(item.id)
+ })
+ onSelectIds?.(ids)
+ }, [list])
+
return (
{list?.map(item => {
- return goLink(`/pages/details/index?id=${item.id}`)}>
-
- onSelect(item, e)} onClose={() => onClose(item, e)}/>
+ return onChangeSelect(item)}>
+ e.stopPropagation()}>
+ onSelect(item)} onClose={() => onClose(item)}/>
{item.product_color_count}色
- {formatHashTag(item.product_code, '')} {item.product_name}
-
- {item.width}
- {item.weight_density}
-
- {item.component}
- {desStatus&&{item.describe}}
+ {formatHashTag(item.product_code, '')} {item.product_name}
+
+ {item.width}
+ {item.weight_density}
+
+ {item.component}
})}
+
)
}
diff --git a/src/pages/collection/index.tsx b/src/pages/collection/index.tsx
index 88ad54e..08e5e49 100644
--- a/src/pages/collection/index.tsx
+++ b/src/pages/collection/index.tsx
@@ -143,7 +143,7 @@ export default () => {
moreUpdate(item,e)}>更多
-
+
)}
diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx
index fb72266..c75665b 100644
--- a/src/pages/order/index.tsx
+++ b/src/pages/order/index.tsx
@@ -53,6 +53,7 @@ import styles from './index.module.scss'
let res = await getOrderFetchData({id: orderId.current})
setOrderDetail(res.data)
setOrderRemark(res.data.remark)
+ if(res.data.status == SaleorderstatusWaitingPrePayment.value) toPay()
}
Taro.stopPullDownRefresh()
Taro.hideToast()
diff --git a/src/pages/salesAfter/components/addressInfoDetail/index.module.scss b/src/pages/salesAfter/components/addressInfoDetail/index.module.scss
index 82159da..907e73f 100644
--- a/src/pages/salesAfter/components/addressInfoDetail/index.module.scss
+++ b/src/pages/salesAfter/components/addressInfoDetail/index.module.scss
@@ -78,9 +78,9 @@
width:152px;
font-size: 28px;
height: 60px;
- color: $color_font_two;
+ color:#007AFF;
z-index: 999;
- border: 2px solid #dddddd;
+ border: 2px solid #007AFF;
border-radius: 36px;
text-align: center;
line-height: 60px;
diff --git a/src/pages/salesAfter/components/kindList/index.tsx b/src/pages/salesAfter/components/kindList/index.tsx
index 16d4321..7a2dd69 100644
--- a/src/pages/salesAfter/components/kindList/index.tsx
+++ b/src/pages/salesAfter/components/kindList/index.tsx
@@ -1,4 +1,4 @@
-import { AFTER_ORDER_STATUS, ORDER_STATUS } from "@/common/enum"
+import { AFTER_ORDER_STATUS, ORDER_STATUS, REFUND_STATUS } from "@/common/enum"
import { formatHashTag, formatPriceDiv, formatWeightDiv } from "@/common/fotmat"
import LabAndImg from "@/components/LabAndImg"
import { Text, View } from "@tarojs/components"
@@ -17,6 +17,7 @@ type OrderParam = {
total_number: number,
stage: number, //订单状态
type: 1|2, //1退货, 2退款
+ refund_type: number, //退款状态
total_sale_price: number, //销售金额
total_should_collect_money: number, //应收金额
total_weight_error_discount: number, //空差优惠
@@ -57,76 +58,80 @@ export default memo(({order, comfirm = false}:Param) => {
ReturnStageRejected, // 已拒绝
} = AFTER_ORDER_STATUS
+ //退款状态枚举
+ const {
+ ShouldCollectOrderRefundTypeUnknown,
+ ShouldCollectOrderRefundTypeAdvanceReceiptRefund,
+ ShouldCollectOrderRefundTypeReturnForRefund,
+ ShouldCollectOrderRefundTypeSalesRefund,
+ } = REFUND_STATUS
//金额列表枚举
const priceList = [
-
+ {
+ id:5,
+ big_value:[
+ ReturnStageQualityCheckPendingRefund.value,
+ ReturnStageServiceOrderPendingRefund.value,
+ ReturnStageReturned.value,
+ ],
+ cut_value: [ReturnStageRejected.value,
+ ReturnStageApplying.value,
+ ReturnStageWaitCheck.value,
+ ReturnStageChecked.value,
+ ReturnStageQualityCheckPendingRefund.value,
+ ReturnStageServiceOrderPendingRefund.value,
+ ReturnStageReturned.value,
+ ReturnStageCancel.value
+ ],
+ model_value: [
+ ReturnStageApplying.value,
+ ReturnStageWaitCheck.value,
+ ReturnStageChecked.value,
+ ReturnStageQualityCheckPendingRefund.value,
+ ReturnStageServiceOrderPendingRefund.value,
+ ReturnStageReturned.value,
+ ReturnStageCancel.value
+ ],
+ label:'合计金额',
+ field: 'total_refund_amount'
+ },
{
id:1,
- big_value:[
- ReturnStageServiceOrderPendingRefund.value,
- ReturnStageReturned.value
- ],
+ big_value:[ReturnStageReturned.value],
cut_value: [ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value],
model_value: [],
label:'扣款金额',
- field: 'total_sale_price'
- },
- {
- id:2,
- big_value:[
- ReturnStageServiceOrderPendingRefund.value,
- ReturnStageReturned.value
- ],
- cut_value: [],
- model_value: [],
- label:'其他扣款',
- field: 'total_weight_error_discount'
+ field: 'other_deduction_amount'
},
{
id:3,
- big_value:[
- ReturnStageServiceOrderPendingRefund.value,
- ReturnStageReturned.value
- ],
- cut_value: [ReturnStageServiceOrderPendingRefund.value],
- model_value: [
- ReturnStageQualityCheckPendingRefund.value,
- ReturnStageServiceOrderPendingRefund.value
- ],
- label:'应退金额',
- field: 'total_should_collect_money'
+ big_value:[ReturnStageReturned.value],
+ cut_value: [ReturnStageReturned.value],
+ model_value: [ReturnStageReturned.value],
+ label:'退款金额',
+ field: 'refund_amount'
},
{
id:4,
big_value:[ReturnStageReturned.value],
cut_value: [ReturnStageReturned.value],
model_value: [ReturnStageReturned.value],
- label:'退款金额',
- field: 'total_should_collect_money'
- },
- {
- id:5,
- big_value:[ReturnStageReturned.value],
- cut_value: [ReturnStageReturned.value],
- model_value: [ReturnStageReturned.value],
label:'退款去向',
field: 'actual_amount'
},
- {
- id:6,
- big_value:[ReturnStageQualityCheckPendingRefund.value],
- cut_value: [ReturnStageRejected.value, ReturnStageApplying.value, ReturnStageWaitCheck.value, ReturnStageChecked.value, ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value],
- model_value: [ReturnStageApplying.value],
- label:'合计金额',
- field: 'actual_amount'
- },
- ]
+
+ ]
//是否显示价格
const showPrice = useCallback((priceInfo) => {
let key = ['big_value', 'model_value', 'cut_value']
- return priceInfo[key[order?.sale_mode]].includes(order?.stage)
+ if(priceInfo.id == 5) {
+ return priceInfo[key[order?.sale_mode]].includes(order?.stage)||(order.refund_type == ShouldCollectOrderRefundTypeSalesRefund.value)
+ } else {
+ return priceInfo[key[order?.sale_mode]].includes(order?.stage)
+ }
+
}, [order])
const priceConDom = useMemo(() => {
@@ -175,7 +180,7 @@ export default memo(({order, comfirm = false}:Param) => {
{colorItem.code + ' ' + colorItem.name}
{sale_price_show&&¥{standardPrice(colorItem.sale_price)}}
- 总重{formatWeightDiv(colorItem.estimate_weight)}kg
+ {(order?.stage == ReturnStageReturned.value)&&总重{formatWeightDiv(colorItem.estimate_weight)}kg}
diff --git a/src/pages/salesAfter/index.tsx b/src/pages/salesAfter/index.tsx
index 0a41aca..90cb0e7 100644
--- a/src/pages/salesAfter/index.tsx
+++ b/src/pages/salesAfter/index.tsx
@@ -60,6 +60,11 @@ import styles from './index.module.scss'
total_weight_error_discount: orderDetail.total_weight_error_discount, //空差优惠
actual_amount: orderDetail.actual_amount, //实付金额
the_previous_status: orderDetail.the_previous_status, //取消订单时的订单状态
+ other_deduction_amount: orderDetail.other_deduction_amount, //其他扣除金额
+ total_refund_amount: orderDetail.total_refund_amount, //合计金额
+ refund_amount: orderDetail.refund_amount, //退款金额
+ refund_type: orderDetail.refund_type //退款状态
+
})
}
const formatPreViewOrderMemo = useMemo(() => {
@@ -104,7 +109,7 @@ import styles from './index.module.scss'
if(val == 1) {
setLogisticsShow(true)
} else {
- const list = orderDetail?.fabric_piece_accessory_url.map(item => {
+ const list = orderDetail?.accessory_url.map(item => {
return formatImgUrl(item)
})
Taro.previewImage({
@@ -132,9 +137,7 @@ import styles from './index.module.scss'
-
-
-
+
setApplyRecord(false)}/>
@@ -194,7 +197,7 @@ import styles from './index.module.scss'
const showList = useMemo(() => {
let res = urls.map(item => {
- return formatImgUrl(item)
+ return formatImgUrl(item, "!w800")
})
return res
}, [urls])
diff --git a/src/pages/salesAfterList/components/order/index.tsx b/src/pages/salesAfterList/components/order/index.tsx
index 8170c64..9be4b5d 100644
--- a/src/pages/salesAfterList/components/order/index.tsx
+++ b/src/pages/salesAfterList/components/order/index.tsx
@@ -27,6 +27,7 @@ type Param = {
rgb: {r:number, g:number, b:number},
texturl_url: string,
type: number //1 退货 2退款
+ return_apply_order_id: number //退款申请单
},
onClickBtn?: (val:{status:number, orderInfo:Param['value']}) => void
}
@@ -52,7 +53,8 @@ export default memo(({value, onClickBtn}: Param) => {
stage: value?.stage, //订单状态
orderId: value?.id,
sale_mode: value?.sale_mode, //订单类型
- type: value?.type //退货or退款
+ type: value?.type, //退货or退款
+ return_apply_order_id: value?.return_apply_order_id //退款申请单
}
}, [value])
@@ -109,7 +111,7 @@ export default memo(({value, onClickBtn}: Param) => {
订单号:{value?.order_no}
-
+
)
})
diff --git a/src/use/useCommonData.ts b/src/use/useCommonData.ts
index a0efae5..0b6c366 100644
--- a/src/use/useCommonData.ts
+++ b/src/use/useCommonData.ts
@@ -15,6 +15,7 @@ export const useTimeCountDown = () => {
const timeObj:any = useRef()
const endTime = useRef('')
const onStart = (val = '') => {
+ console.log('time:::', val)
endTime.current = val
if(endTime.current) {
clearInterval(timeObj.current)
@@ -51,7 +52,7 @@ export const useTimeCountDown = () => {
var HH = ('00'+hh).slice(-2);
var MM = ('00'+mm).slice(-2);
var SS = ('00'+ss).slice(-2);
- // console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
+ console.log('endTime::', `${DD}-${HH}-${MM}-${SS}`)
setShowTime((e) => ({...e, DD, HH, MM, SS}))
}
return {