feat:状态按钮重新对接完成进度20%

This commit is contained in:
Haiyi 2022-09-28 19:16:46 +08:00
parent 7362e5bca6
commit c3053f232a
20 changed files with 288 additions and 129 deletions

View File

@ -155,6 +155,13 @@
"query": "purchaser_id=642&sale_mode=1&shopping_cart_product_color_list%5B2%5D=58994&shopping_cart_product_color_list%5B3%5D=58995", "query": "purchaser_id=642&sale_mode=1&shopping_cart_product_color_list%5B2%5D=58994&shopping_cart_product_color_list%5B3%5D=58995",
"launchMode": "default", "launchMode": "default",
"scene": null "scene": null
},
{
"name": "",
"pathName": "pages/applyGoods/index",
"query": "orderId=28503",
"launchMode": "default",
"scene": null
} }
] ]
} }

View File

@ -6,7 +6,8 @@ interface prosObj {
sale_mode?: Number, sale_mode?: Number,
collect_status?: Number | string, collect_status?: Number | string,
status?: Number, status?: Number,
payment_method?: Number payment_method?: Number,
settle_mode?: Number | string,
} }
cancle?: (any) => void, cancle?: (any) => void,
nextBuy?: (any) => void, nextBuy?: (any) => void,
@ -20,22 +21,27 @@ export default memo((props: prosObj) => {
collect_status: '', collect_status: '',
status: '', status: '',
payment_method: 0, payment_method: 0,
settle_mode: ''
}, },
cancle, cancle,
nextBuy, nextBuy,
toPay toPay
} = props } = props
//判断显示取消订单 //判断显示取消订单
const showCancel = useMemo(() => { const showCancel = useMemo(() => {
if ( if (
(obj.sale_mode === 0 && obj.status === 0) || (obj.sale_mode === 0 && obj.status === 0) ||
(obj.sale_mode === 0 && obj.status === 1) || (obj.sale_mode === 0 && obj.status === 1) ||
(obj.sale_mode === 0 && obj.status === 2) || (obj.sale_mode === 0 && obj.status === 2 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 11 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 0) || (obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 3 && (obj.payment_method == 3 || obj.payment_method == 5)) || (obj.sale_mode === 0 && obj.status === 11 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 11 && obj.settle_mode == 3) ||
(obj.sale_mode === 0 && obj.status === 3 && obj.settle_mode == 3) ||
(obj.sale_mode === 1 && obj.status === 10) || (obj.sale_mode === 1 && obj.status === 10) ||
(obj.sale_mode === 2 && obj.status === 10) (obj.sale_mode === 2 && obj.status === 10) ||
(obj.sale_mode === 2 && obj.status === 0 && (obj.collect_status == 1 || obj.collect_status == 2)) ||
(obj.sale_mode === 2 && obj.status === 0 && obj.collect_status == 0)
) { ) {
return true return true
} else return false } else return false
@ -58,6 +64,7 @@ export default memo((props: prosObj) => {
(obj.sale_mode === 0 && obj.status === 3 && (obj.payment_method == 3 || obj.payment_method == 5)) || (obj.sale_mode === 0 && obj.status === 3 && (obj.payment_method == 3 || obj.payment_method == 5)) ||
(obj.sale_mode === 0 && obj.status === 8 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) || (obj.sale_mode === 0 && obj.status === 8 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) ||
(obj.sale_mode === 0 && obj.status === 9 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) || (obj.sale_mode === 0 && obj.status === 9 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) ||
(obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 0) ||
(obj.sale_mode === 2 && obj.status === 7) (obj.sale_mode === 2 && obj.status === 7)
) { ) {
return true return true

View File

@ -32,11 +32,17 @@ export default memo((props: props) => {
const onInputEven = (e) => { const onInputEven = (e) => {
let res = e.detail.value let res = e.detail.value
if (props.modeFont !== 2) { if (props.modeFont == 0) {
if (Number(res) == 0 || Number(res) < 1) { if (Number(res) < 0) {
setValue({ count: 1 }) setValue({ count: 1 })
} }
} else { }
if (props.modeFont == 1) {
if (Number(res) < 0) {
setValue({ count: 0.5 })
}
}
if (props.modeFont == 2) {
if (Number(res) == 0 || Number(res) < 3) { if (Number(res) == 0 || Number(res) < 3) {
setValue({ count: 3 }) setValue({ count: 3 })
} }

View File

@ -1,7 +1,7 @@
import { View } from '@tarojs/components' import { View } from '@tarojs/components'
import style from './index.module.scss' import style from './index.module.scss'
import classnames from 'classnames' import classnames from 'classnames'
import { memo, ReactNode, useEffect, useMemo, useRef } from 'react' import { memo, ReactNode, useEffect, useMemo, useRef, useState } from 'react'
import CloseBtnIcon from '@/components/closeBtn' import CloseBtnIcon from '@/components/closeBtn'
export interface Params { export interface Params {
@ -13,10 +13,11 @@ export interface Params {
// IconButton?: ReactNode, // // IconButton?: ReactNode, //
showIconButton?: false | true //是否显示关闭按钮 showIconButton?: false | true //是否显示关闭按钮
position?: 'bottom' | 'top' | 'right' //弹出位置 position?: 'bottom' | 'top' | 'right' //弹出位置
animationEnd?: () => void //弹出动画结束 animationEnd?: () => void, //弹出动画结束
isFixed?: boolean //二次弹窗触发
} }
export default memo( export default memo(
({ title = '标题', show = false, showTitle = true, onClose, showIconButton = false, children, position = 'bottom', animationEnd }: Params) => { ({ title = '标题', show = false, showTitle = true, isFixed = false, onClose, showIconButton = false, children, position = 'bottom', animationEnd }: Params) => {
const animationTime = useRef<any>(null) const animationTime = useRef<any>(null)
useEffect(() => { useEffect(() => {
if (show) { if (show) {
@ -30,16 +31,19 @@ export default memo(
useEffect(() => { useEffect(() => {
return () => { return () => {
clearTimeout(animationTime.current) clearTimeout(animationTime.current)
} }
}, []) }, [])
const [ShowContext, setShowContext] = useState(false)
return ( return (
<> <>
<View className={style.drawer_main}> <View className={style.drawer_main}>
<View catchMove={true} className={`${style.drawer} ${show ? style.drawer_active : ''}`}> <View catchMove={true} className={`${style.drawer} ${show ? style.drawer_active : ''}`}>
<View className={classnames(style.drawer_mask, { [style.drawer_mask_active]: show })} onClick={() => onClose?.()}> <View className={classnames(style.drawer_mask, { [style.drawer_mask_active]: show })} onClick={() => onClose?.()}>
<View <View
style={{ position: `${isFixed == true ? 'fixed' : 'absolute'}`, }}
className={classnames(style.drawer_container, style['drawer_container_' + position], { [style.drawer_container_active]: show })} className={classnames(style.drawer_container, style['drawer_container_' + position], { [style.drawer_container_active]: show })}
onClick={(e) => e.stopPropagation()}> onClick={(e) => e.stopPropagation()}>
{showTitle && <View className={style.drawer_container_title}>{title}</View>} {showTitle && <View className={style.drawer_container_title}>{title}</View>}
@ -48,7 +52,6 @@ export default memo(
<CloseBtnIcon onClose={() => onClose?.()} /> <CloseBtnIcon onClose={() => onClose?.()} />
</View> </View>
)} )}
<View className={style.drawer_container_context}>{children}</View> <View className={style.drawer_container_context}>{children}</View>
<View className='common_safe_area_y'></View> <View className='common_safe_area_y'></View>
</View> </View>

View File

@ -141,7 +141,7 @@ export default memo(forwardRef((props: prosObj, ref) => {
<View className={styles.danwei}>{modeFont == 0 ? '大货' : modeFont == 1 ? '剪版' : '散剪'}{showModefont}</View> <View className={styles.danwei}>{modeFont == 0 ? '大货' : modeFont == 1 ? '剪版' : '散剪'}{showModefont}</View>
</View> </View>
<View className={styles.searchBox}> <View className={styles.searchBox}>
<Search placeholder='请输入搜索布料' showBtn={false} changeOnSearch={getSearchData} debounceTime={300} /> <Search placeholder='请输入搜索布料' showBtn={false} changeOnSearch={getSearchData} debounceTime={300} adjustPosition={true} />
</View> </View>
{ {
goodList.length > 0 && <> goodList.length > 0 && <>

View File

@ -65,6 +65,18 @@
} }
} }
}
.bigBoxThree {
width: 100%;
// position: fixed;
// bottom: 0px;
// z-index: 999;
height: 150px;
.itemBox { .itemBox {
width: 100%; width: 100%;
height: 88px; height: 88px;

View File

@ -84,30 +84,35 @@ const PictureItem = memo<ImageParam>(({ onChange, defaultList, onlyRead = false
} }
return ( return (
<View className={styles.image_main}> <>
{imageList?.map((item, index) => ( <View className={styles.image_main}>
<View className={styles.ImgItem}> {imageList?.map((item, index) => (
<Image mode='aspectFill' src={formatImgUrl(item)} onClick={showImage}></Image> <View className={styles.ImgItem}>
{!onlyRead && <View onClick={() => delImage(index)} className={classnames(styles.miconfont_close, 'iconfont icon-guanbi')}></View>} <Image mode='aspectFill' src={formatImgUrl(item)} onClick={showImage}></Image>
{!onlyRead && <View onClick={() => delImage(index)} className={classnames(styles.miconfont_close, 'iconfont icon-guanbi')}></View>}
</View>
))}
{!onlyRead && (
<View className={styles.uploadImg} onClick={uploadImage}>
<Text className={classnames(styles.miconfont, 'iconfont icon-xinzeng')}></Text>
{/* <Text className={styles.uploadText}>上传照片</Text> */}
</View>
)}
</View>
<Popup title={'选择方式'} show={showPopup} onClose={() => setshowPopup(false)} isFixed={true}>
<View className={styles.bigBoxThree}>
{
List.map((item, index) => {
return (
<View className={styles.itemBox} key={index} onClick={() => handItem(item)}>{item.name}</View>
)
})
}
</View> </View>
))}
{!onlyRead && (
<View className={styles.uploadImg} onClick={uploadImage}>
<Text className={classnames(styles.miconfont, 'iconfont icon-xinzeng')}></Text>
{/* <Text className={styles.uploadText}>上传照片</Text> */}
</View>
)}
<Popup title={'选择方式'} show={showPopup} onClose={() => setshowPopup(false)}>
{
List.map((item, index) => {
return (
<View className={styles.itemBox} key={index} onClick={() => handItem(item)}>{item.name}</View>
)
})
}
</Popup> </Popup>
</View> </>
) )
}) })

View File

@ -25,16 +25,23 @@ export default () => {
const [ListArr, setListArr] = useState<any[]>([]) const [ListArr, setListArr] = useState<any[]>([])
//获取订单详情 //获取订单详情
const getDetail = async () => { const getDetail = async () => {
const res = await infoFetch({ id: router.params.orderId }) Taro.showLoading({
res.data.av_return_product.forEach(item => { title: '请稍等...',
item.av_product_color.map(it => { mask: true
it.isTui = false
it.nums = 1
})
return item
}) })
setListArr(res.data.av_return_product) const res = await infoFetch({ id: router.params.orderId })
setInfoObj(res.data) if (res.data) {
res.data.av_return_product.forEach(item => {
item.av_product_color.map(it => {
it.isTui = false
it.nums = 1
})
return item
})
setListArr(res.data.av_return_product)
setInfoObj(res.data)
Taro.hideLoading()
}
} }
//点击退货 //点击退货
@ -176,9 +183,10 @@ export default () => {
//判断是否允许提交 //判断是否允许提交
const isDisabled = useMemo(() => { const isDisabled = useMemo(() => {
console.log(Query, 8888)
if (Query.GoodStatus !== '' && if (Query.GoodStatus !== '' &&
Query.return_explain !== '' && Query.return_explain !== '' &&
totalNums !== 0 && totalNums > 0 &&
Query.GoodStatus !== '' Query.GoodStatus !== ''
) { ) {
return false return false
@ -236,7 +244,8 @@ export default () => {
}) })
setReasonListTwo([...ReasonListTwo]) setReasonListTwo([...ReasonListTwo])
// queryRef.current.reasonNameTwo = item.name // queryRef.current.reasonNameTwo = item.name
setQuery({ return_explain: item.id }) setQuery((val) => ({ ...val, return_explain: item.id }))
// queryRef.current.return_explain = item.id // queryRef.current.return_explain = item.id
} }
@ -265,10 +274,10 @@ export default () => {
//判断选择原因 //判断选择原因
const selectIsDisabled = useMemo(() => { const selectIsDisabled = useMemo(() => {
if (Query.return_explain == '') { if (Query.return_explain !== '') {
return true
} else {
return false return false
} else {
return true
} }
}, [Query]) }, [Query])
@ -362,12 +371,15 @@ export default () => {
const arr: any = []; const arr: any = [];
ListArr.forEach((item) => { ListArr.forEach((item) => {
item.av_product_color.forEach((it) => { item.av_product_color.forEach((it) => {
arr.push({ if (it.isTui) {
product_color_id: it.sale_mode == 0 ? it.product_color_id : '', arr.push({
product_id: it.sale_mode == 0 ? it.product_id : '', product_color_id: it.sale_mode == 0 ? it.product_color_id : '',
product_roll: it.sale_mode == 0 ? it.nums : 0, product_id: it.sale_mode == 0 ? it.product_id : '',
sale_order_detail_id: it.sale_order_detail_id, product_roll: it.sale_mode == 0 ? it.nums : 0,
}); sale_order_detail_id: it.sale_order_detail_id,
});
}
}); });
}); });
const query = { const query = {
@ -380,6 +392,7 @@ export default () => {
roll_list: arr, roll_list: arr,
sale_order_id: Number(infoObj.id), sale_order_id: Number(infoObj.id),
} }
Taro.showModal({ Taro.showModal({
content: "确认退货吗?", content: "确认退货吗?",
confirmText: "确认", confirmText: "确认",
@ -409,7 +422,9 @@ export default () => {
} }
}) })
} }
useEffect(() => {
setQuery(Query)
}, [Query])
//备注信息 //备注信息
const [TextareaValue, setTextareaValue] = useState('') const [TextareaValue, setTextareaValue] = useState('')
@ -471,7 +486,6 @@ export default () => {
value={TextareaValue} value={TextareaValue}
// style='background:#f6f6f6;height:210px;padding:15rpx 24rpx 24rpx 24rpx;border-radius: 8rpx;' // style='background:#f6f6f6;height:210px;padding:15rpx 24rpx 24rpx 24rpx;border-radius: 8rpx;'
placeholderStyle='font-size: 28rpx;font-weight: 400;' placeholderStyle='font-size: 28rpx;font-weight: 400;'
autoFocus
placeholder={'选填/退货说明中选择时(其他问题)必填'} placeholder={'选填/退货说明中选择时(其他问题)必填'}
></Textarea> ></Textarea>
</View> </View>

View File

@ -75,7 +75,7 @@ export default () => {
setHasMore(true) setHasMore(true)
setRefresherTriggeredStatus(true) setRefresherTriggeredStatus(true)
} }
const onj = JSON.parse(Taro.getStorageSync('userInfo') || '{}') const onj = JSON.parse(Taro.getStorageSync('userInfo') || '{}')
const [search, setSearchObj] = useState({ const [search, setSearchObj] = useState({
modeId: 0, modeId: 0,
@ -117,10 +117,15 @@ export default () => {
const res = await colorlistFetch({ product_id: search.goodsId, sale_mode: search.modeId, code_or_name: search.code_or_name, physical_warehouse: 1 }) const res = await colorlistFetch({ product_id: search.goodsId, sale_mode: search.modeId, code_or_name: search.code_or_name, physical_warehouse: 1 })
res.data.list.map((item) => { res.data.list.map((item) => {
item.showInput = false item.showInput = false
if (search.modeId !== 2) { if (search.modeId == 0) {
item.nums = 1 item.nums = 1
item.buyNums = 1 item.buyNums = 1
} else { }
if (search.modeId == 1) {
item.nums = 0.5
item.buyNums = 0.5
}
if (search.modeId == 2) {
item.nums = 3 item.nums = 3
item.buyNums = 3 item.buyNums = 3
} }
@ -158,9 +163,13 @@ export default () => {
goodList.map((it) => { goodList.map((it) => {
if (item.id === it.id) { if (item.id === it.id) {
item.nums-- item.nums--
if (search.modeId !== 2) { if (search.modeId == 0) {
if (item.nums < 1) it.showInput = false, it.nums = 1 if (item.nums < 1) it.showInput = false, it.nums = 1
} else { }
if (search.modeId == 1) {
if (item.nums < 0.5) it.showInput = false, it.nums = 0.5
}
if (search.modeId == 2) {
if (item.nums < 3) it.showInput = false, it.nums = 3 if (item.nums < 3) it.showInput = false, it.nums = 3
} }
@ -174,9 +183,7 @@ export default () => {
const handPlus = useCallback((item) => { const handPlus = useCallback((item) => {
goodList.map((it) => { goodList.map((it) => {
if (item.id === it.id) { if (item.id === it.id) {
// if (it.nums > item.buyNums) {
it.nums++ it.nums++
// }
} }
return item return item
}) })
@ -213,8 +220,8 @@ export default () => {
const list: any[] = [] const list: any[] = []
arr.forEach(it => { arr.forEach(it => {
list.push({ list.push({
roll: search.modeId === 0 ? it.nums : 0, roll: search.modeId === 0 ? Number(it.nums) : 0,
length: search.modeId !== 0 ? it.nums * 100 : 0, length: search.modeId !== 0 ? Number(it.nums) * 100 : 0,
product_color_id: Number(it.id) product_color_id: Number(it.id)
}) })
}) })
@ -240,7 +247,6 @@ export default () => {
return item return item
}) })
setGoodlist([...goodList]) setGoodlist([...goodList])
console.log(search, '000000.0.0.')
Taro.hideLoading() Taro.hideLoading()
} else { } else {
Taro.hideLoading() Taro.hideLoading()
@ -254,13 +260,32 @@ export default () => {
const onBlur = (e, id) => { const onBlur = (e, id) => {
goodList.map((item) => { goodList.map((item) => {
if (item.id == id) { if (item.id == id) {
item.nums = e.detail.value if (search.modeId == 0 && (e.detail.value == '' || Number(e.detail.value) == 0)) {
item.nums = 1
item.showInput = false
} else {
item.nums = e.detail.value
}
if (search.modeId == 1 && Number(e.detail.value) < 0.5) {
item.nums = 0.5
item.showInput = false
} else {
item.nums = e.detail.value
}
if (search.modeId == 2) {
item.nums = e.detail.value
}
} }
return item return item
}) })
setGoodlist([...goodList]) setGoodlist([...goodList])
} }
useEffect(() => {
setGoodlist(goodList)
}, [goodList])
return ( return (
// <MoveBtn onClick={() => setShowShopCart(showShopCart)}> // <MoveBtn onClick={() => setShowShopCart(showShopCart)}>
<View className={styles.main}> <View className={styles.main}>

View File

@ -117,7 +117,7 @@ export default memo((props: Props) => {
</View> </View>
<View className={styles.rightFont}> <View className={styles.rightFont}>
{formatPriceDiv(obj.total_sale_price)} {formatPriceDiv(obj.wait_pay_amount)}
</View> </View>
</View> </View>
<View className={styles.itemMoney}> <View className={styles.itemMoney}>

View File

@ -143,7 +143,6 @@ export default () => {
clientName: '', clientName: '',
sale_user_id: '', sale_user_id: '',
saleuserName: '', saleuserName: '',
// order_no: '',
sale_mode: undefined, sale_mode: undefined,
shipment_mode: undefined shipment_mode: undefined
}) })
@ -159,10 +158,7 @@ export default () => {
}) })
} }
} }
// //订单号输入框
// const handInput = (eq) => {
// setsearchObj((e) => ({ ...e, order_no: eq.detail.value }))
// }
//订单类型 //订单类型
const [modeList, setModeList] = useState<any[]>([{ id: -1, name: '不限' }, { id: 0, name: '大货' }, { id: 1, name: '剪版' }, { id: 2, name: '散剪' }]) const [modeList, setModeList] = useState<any[]>([{ id: -1, name: '不限' }, { id: 0, name: '大货' }, { id: 1, name: '剪版' }, { id: 2, name: '散剪' }])
@ -243,8 +239,7 @@ export default () => {
const handScan = () => { const handScan = () => {
Taro.scanCode({ Taro.scanCode({
success(res) { success(res) {
// setsearchObj((e) => ({ ...e, order_no: res.result })) setSearchField((val) => ({ ...val, order_no: res.result }))
setSearchField({ ...searchField, order_no: res.result })
}, },
fail(res) { fail(res) {
console.log(res); console.log(res);
@ -596,7 +591,7 @@ export default () => {
return ( return (
<View> <View>
<View style={{ background: '#FFFFFF', paddingLeft: '20rpx', paddingBottom: '20rpx', position: 'sticky', top: '0', zIndex: '99' }}> <View style={{ background: '#FFFFFF', paddingLeft: '20rpx', paddingBottom: '20rpx', position: 'sticky', top: '0', zIndex: '99' }}>
<Search handScan={() => handScan()} showScan placeholder='搜索商品/名称/颜色/订单号' showBtn={false} changeOnSearch={getSearchData} debounceTime={300}> <Search handScan={() => handScan()} defaultValue={searchField.order_no} showScan placeholder='搜索商品/名称/颜色/订单号' showBtn={false} changeOnSearch={getSearchData} debounceTime={300}>
<View className={styles.flexBox} onClick={() => showSelctPopup()}> <View className={styles.flexBox} onClick={() => showSelctPopup()}>
<IconFont name='icon-shaixuan' size={35} color={!isDisabled ? '#0D7CFF' : ''} customClassName={styles['activeshaixuan']} /> <IconFont name='icon-shaixuan' size={35} color={!isDisabled ? '#0D7CFF' : ''} customClassName={styles['activeshaixuan']} />
{/* <View className={classnames('iconfont', 'icon-shaixuan', !isDisabled ? styles.icon_shaixuan : styles.activeshaixuan)}></View> */} {/* <View className={classnames('iconfont', 'icon-shaixuan', !isDisabled ? styles.icon_shaixuan : styles.activeshaixuan)}></View> */}

View File

@ -35,14 +35,14 @@
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #000000; color: #000000;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/*这里设置几行*/
overflow: hidden;
margin-right: 41px; margin-right: 41px;
display: flex; display: flex;
align-items: center; align-items: center;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /*这里设置几行*/
overflow: hidden;
} }
.icon_more { .icon_more {

View File

@ -21,7 +21,7 @@ export default memo((props: propsObj) => {
if (receivingStatus == 1) { if (receivingStatus == 1) {
return obj.take_goods_address return obj.take_goods_address
} else { } else {
return obj.province_name + obj.city_name + obj.district_name return obj.province_name + obj.city_name + obj.district_name + obj.address_detail
} }
}, [obj, receivingStatus]) }, [obj, receivingStatus])

View File

@ -1,14 +1,14 @@
import Popup from "@/components/popup" import Popup from "@/components/popup"
import { Textarea, View } from "@tarojs/components" import { Textarea, View } from "@tarojs/components"
import { useCallback, useEffect, useState } from "react" import { useCallback, useEffect, useState } from "react"
import styles from './index.module.scss' import styles from './index.module.scss'
type Param = { type Param = {
onBlur?: (val:any) => void onBlur?: (val: any) => void
onSave?: (val: string) => void onSave?: (val: string) => void
defaultValue?: string defaultValue?: string
} }
export default ({onBlur, onSave, defaultValue = ''}:Param) => { export default ({ onBlur, onSave, defaultValue = '' }: Param) => {
const [descData, setDescData] = useState({ const [descData, setDescData] = useState({
number: 0, number: 0,
value: '', value: '',
@ -21,10 +21,10 @@ export default ({onBlur, onSave, defaultValue = ''}:Param) => {
const getDesc = (value) => { const getDesc = (value) => {
let res = value let res = value
if(value.length > descData.count) { if (value.length > descData.count) {
res = value.slice(0, descData.count) res = value.slice(0, descData.count)
} }
setDescData({...descData, number:res.length, value: res}) setDescData({ ...descData, number: res.length, value: res })
} }
const setSave = () => { const setSave = () => {

View File

@ -199,6 +199,7 @@ page {
} }
.itemGoods:last-child { .itemGoods:last-child {
margin-top: 24px; margin-top: 24px;
display: flex; display: flex;
@ -367,4 +368,18 @@ page {
transform: rotate(135deg); transform: rotate(135deg);
box-shadow: 2px -2px 2px #ccc; box-shadow: 2px -2px 2px #ccc;
} }
}
.order_save_address {
height: 82px;
background: #007aff;
border-radius: 40px;
width: 668px;
text-align: center;
line-height: 82px;
color: #fff;
margin-top: 20px;
margin-left: 24px;
margin-right: 24px;
margin-bottom: 20px;
} }

View File

@ -5,7 +5,7 @@ import classnames from "classnames";
import Taro, { usePullDownRefresh, useRouter, useDidShow } from '@tarojs/taro'; import Taro, { usePullDownRefresh, useRouter, useDidShow } from '@tarojs/taro';
import AdvanceOrderState from './components/advanceOrderState' import AdvanceOrderState from './components/advanceOrderState'
import AddressDetailBox from './components/addressDetailBox' import AddressDetailBox from './components/addressDetailBox'
import Remark from './components/remark' import Remark from '@/components/textareaEnhance'
import Popup from '@/components/popup' import Popup from '@/components/popup'
import BottomBtns from '@/components/BottomBtns'; import BottomBtns from '@/components/BottomBtns';
import BottomApply from './components/BottomApply'; import BottomApply from './components/BottomApply';
@ -72,11 +72,19 @@ export default () => {
setReceivingStatus(value) setReceivingStatus(value)
getDetail() getDetail()
} else { } else {
Taro.hideLoading() if (res.data.code == 70029) {
Taro.showToast({ Taro.hideLoading()
title: '请先去新增地址', Taro.showToast({
icon: 'error' title: res.msg,
}) icon: 'error'
})
} else {
Taro.hideLoading()
Taro.showToast({
title: '请先去新增地址',
icon: 'error'
})
}
} }
}, 300) }, 300)
@ -106,6 +114,8 @@ export default () => {
}) })
setOrderMsg([...orderMsg]) setOrderMsg([...orderMsg])
setReceivingStatus(res.data.shipment_mode) setReceivingStatus(res.data.shipment_mode)
// 小程序提供的api通知页面停止下拉刷新效果
Taro.stopPullDownRefresh();
Taro.hideLoading() Taro.hideLoading()
} }
//复制功能 //复制功能
@ -148,8 +158,8 @@ export default () => {
//备注操作 //备注操作
const [showDesc, setShowDesc] = useState(false) const [showDesc, setShowDesc] = useState(false)
const { fetchData: remarkFetch } = mpsaleOrderput() const { fetchData: remarkFetch } = mpsaleOrderput()
const getRemark = useCallback(async (e) => { const getRemark = async () => {
const res = await remarkFetch({ remark: e, id: Number(router.params.id) }) const res = await remarkFetch({ remark: infoObj.remark, id: Number(router.params.id) })
if (res.msg === 'success') { if (res.msg === 'success') {
Taro.showToast({ Taro.showToast({
title: '成功', title: '成功',
@ -158,7 +168,7 @@ export default () => {
setShowDesc(false) setShowDesc(false)
getDetail() getDetail()
} }
}, []) }
//更多按钮查看操作 //更多按钮查看操作
const [showMore, setShowMore] = useState(false) const [showMore, setShowMore] = useState(false)
@ -476,7 +486,7 @@ export default () => {
title: '请稍等...', title: '请稍等...',
mask: true mask: true
}) })
const restult = await obj.status !== 10 ? payOneFetch({ id: Number(obj.should_collect_order_id), payment_method: Number(arr[0]?.id) }) : payTwoFetch({ id: Number(obj.pre_collect_order_id), payment_method: Number(arr[0]?.id) }) let restult = await obj.status !== 10 ? payOneFetch({ id: Number(obj.should_collect_order_id), payment_method: Number(arr[0]?.id) }) : payTwoFetch({ id: Number(obj.pre_collect_order_id), payment_method: Number(arr[0]?.id) })
if (restult?.msg === 'success') { if (restult?.msg === 'success') {
Taro.showToast({ Taro.showToast({
title: '交易成功' title: '交易成功'
@ -548,7 +558,7 @@ export default () => {
title: '请稍等...', title: '请稍等...',
mask: true mask: true
}) })
const res = await receveFetch({ id: Number(infoObj.id) }) const res = await receveFetch({ sale_order_id: Number(infoObj.id) })
if (res?.msg === 'success') { if (res?.msg === 'success') {
Taro.showToast({ Taro.showToast({
title: '成功' title: '成功'
@ -569,6 +579,13 @@ export default () => {
}) })
} }
const onChange = (e) => {
setInfoObj((val) => ({ ...val, remark: e }))
}
useEffect(() => {
setInfoObj(infoObj)
}, [infoObj])
return ( return (
<View className={styles.mainBox}> <View className={styles.mainBox}>
{(infoObj?.status != 10 && <OrderState orderInfo={infoObj} />)} {(infoObj?.status != 10 && <OrderState orderInfo={infoObj} />)}
@ -636,11 +653,22 @@ export default () => {
} }
</DefaultBox> </DefaultBox>
<DefaultBox title={'备注信息'} showMode={true} modeName={`${'填写/修改备注'} >`} clickNode={() => setShowDesc(true)}> {
<View className={styles.remarkFont}>{infoObj.remark === '' ? '暂无' : infoObj.remark}</View> (infoObj.status != 11 && infoObj.status != 3 && infoObj.status != 8 && infoObj.status != 9 && infoObj.status != 4
</DefaultBox> ) && <DefaultBox title={'备注信息'} showMode={true} modeName={`${'填写/修改备注'} >`} clickNode={() => setShowDesc(true)}>
<Popup show={showDesc} showTitle={false} onClose={() => setShowDesc(false)}> <View className={styles.remarkFont}>{infoObj.remark === '' ? '暂无' : infoObj.remark}</View>
<Remark onSave={(e) => getRemark(e)} defaultValue={infoObj.remark} /> </DefaultBox>
}
<Popup show={showDesc} title={'填写/编辑备注'} showTitle={true} onClose={() => setShowDesc(false)}>
<View style={{ margin: '24rpx' }}>
<Remark
// onSave={(e) => getRemark(e)}
onChange={(e) => onChange(e)}
defaultValue={infoObj.remark} />
<View className={styles.order_save_address} onClick={() => getRemark()}></View>
</View>
</Popup> </Popup>
<View className={styles.safeBottom}></View> <View className={styles.safeBottom}></View>
<View className={styles.bottomBox}> <View className={styles.bottomBox}>

View File

@ -2,7 +2,7 @@ import { View, Input, Button, Image } from '@tarojs/components'
import { useCallback, useEffect, useMemo, useRef, useState, ReactNode, memo } from 'react' import { useCallback, useEffect, useMemo, useRef, useState, ReactNode, memo } from 'react'
import styles from "./index.module.scss" import styles from "./index.module.scss"
import classnames from "classnames"; import classnames from "classnames";
import Taro, { faceVerifyForPay, useDidShow, useRouter } from '@tarojs/taro' import Taro, { faceVerifyForPay, useDidShow, useRouter, usePullDownRefresh } from '@tarojs/taro'
import ItemList from './components/itemList' import ItemList from './components/itemList'
import { formatDateTime, formatHashTag, formatImgUrl, formatPriceDiv, formatWeightDiv } from '@/common/format' import { formatDateTime, formatHashTag, formatImgUrl, formatPriceDiv, formatWeightDiv } from '@/common/format'
import { import {
@ -15,8 +15,12 @@ import AddressDetailBox from './components/addressDetailBox'
import { IMG_CND_Prefix } from "@/common/constant"; import { IMG_CND_Prefix } from "@/common/constant";
import Popup from '@/components/popup'; import Popup from '@/components/popup';
import UploadImage from '@/components/uploadImage' import UploadImage from '@/components/uploadImage'
import { alert } from '@/common/common';
export default () => { export default () => {
//页面下拉刷新
usePullDownRefresh(() => {
getDetail()
})
const router = useRouter() const router = useRouter()
useEffect(() => { useEffect(() => {
getDetail() getDetail()
@ -58,6 +62,8 @@ export default () => {
setOrderMsg([...orderMsg]) setOrderMsg([...orderMsg])
setPicList([...res.data?.accessory_url !== null ? res.data?.accessory_url : []]) setPicList([...res.data?.accessory_url !== null ? res.data?.accessory_url : []])
Taro.hideLoading() Taro.hideLoading()
// 小程序提供的api通知页面停止下拉刷新效果
Taro.stopPullDownRefresh();
} }
} }
@ -179,7 +185,10 @@ export default () => {
const { fetchData: sureFetch } = returnApplyOrderuploadAccessory() const { fetchData: sureFetch } = returnApplyOrderuploadAccessory()
const handSure = () => { const handSure = () => {
let arr: any = [] let arr: any = []
arr = [...picUrl.current, ...PicList] arr = [...picUrl.current]
if (arr == 0) {
return alert.error('请先添加附件')
}
Taro.showModal({ Taro.showModal({
content: "确定要提交吗?", content: "确定要提交吗?",
confirmText: "确认", confirmText: "确认",
@ -193,8 +202,9 @@ export default () => {
}) })
if (res.msg === 'success') { if (res.msg === 'success') {
Taro.showToast({ Taro.showToast({
title: '取消成功' title: '成功'
}) })
setShowPic(false)
Taro.hideLoading() Taro.hideLoading()
getDetail() getDetail()
} else { } else {
@ -285,11 +295,13 @@ export default () => {
</View> </View>
} }
<Popup title={'查看/修改物流回单'} show={ShowPic} onClose={() => setShowPic(false)}> <Popup title={'查看/修改物流回单'} show={ShowPic} onClose={() => setShowPic(false)}>
<UploadImage onChange={getImageList} defaultList={PicList} onlyRead={onlyRead} /> <>
{ <UploadImage onChange={getImageList} defaultList={PicList} onlyRead={onlyRead} />
{
!onlyRead && <View className={styles.picBtn} onClick={() => handSure()}></View> !onlyRead && <View className={styles.picBtn} onClick={() => handSure()}></View>
} }
</>
</Popup> </Popup>
</View> </View>
) )

View File

@ -48,7 +48,7 @@ export default () => {
//监听筛选条件变化 //监听筛选条件变化
useEffect(() => { useEffect(() => {
getOrderList() getOrderList()
}, [searchField.size, searchField.name]) }, [searchField.size, searchField.name, searchField.status])
//获取订单列表 //获取订单列表
const { fetchData: listFetchData, state: orderState } = mpreturnApplyOrderlist() const { fetchData: listFetchData, state: orderState } = mpreturnApplyOrderlist()
@ -61,7 +61,7 @@ export default () => {
}) })
setOrderData((e) => ({ ...e, list: res.data?.list, total: res.data?.total })) setOrderData((e) => ({ ...e, list: res.data?.list, total: res.data?.total }))
// setshowPopup(false) // setshowPopup(false)
setRefresherTriggeredStatus(() => false) setRefresherTriggeredStatus(false)
} }
@ -81,6 +81,7 @@ export default () => {
pageNum.current.size = 1 pageNum.current.size = 1
setRefresherTriggeredStatus(true) setRefresherTriggeredStatus(true)
setSearchField((val) => ({ ...val, size: 10 })) setSearchField((val) => ({ ...val, size: 10 }))
getOrderList()
} }
//数据加载状态 //数据加载状态
const statusMore = useMemo(() => { const statusMore = useMemo(() => {
@ -111,6 +112,7 @@ export default () => {
pageNum.current.page = 1 pageNum.current.page = 1
setOrderData(() => ({ list: [], total: 0 })) setOrderData(() => ({ list: [], total: 0 }))
setSearchField((val) => ({ ...val, size: 10, status: item.id })) setSearchField((val) => ({ ...val, size: 10, status: item.id }))
// getOrderList()
}) })
} }
@ -126,7 +128,7 @@ export default () => {
} }
//订单类型 //订单类型
const [modeList, setModeList] = useState<any[]>([{ id: -1, name: '不限' }, { id: 0, name: '大货' }, { id: 1, name: '剪版' }, { id: 2, name: '散剪' }]) const [modeList, setModeList] = useState<any[]>([{ id: '', name: '不限' }, { id: 0, name: '大货' }, { id: 1, name: '剪版' }, { id: 2, name: '散剪' }])
//选择订单类型 //选择订单类型
const handCheckMode = (item) => { const handCheckMode = (item) => {
modeList.map(it => { modeList.map(it => {

View File

@ -64,10 +64,15 @@ export default memo(() => {
const res = await colorlistFetch({ product_id: search.goodsId, sale_mode: search.modeId, code_or_name: search.code_or_name, physical_warehouse: 1 }) const res = await colorlistFetch({ product_id: search.goodsId, sale_mode: search.modeId, code_or_name: search.code_or_name, physical_warehouse: 1 })
res.data.list.map((item) => { res.data.list.map((item) => {
item.showInput = false item.showInput = false
if (search.modeId !== 2) { if (search.modeId == 0) {
item.nums = 1 item.nums = 1
item.buyNums = 1 item.buyNums = 1
} else { }
if (search.modeId == 1) {
item.nums = 0.5
item.buyNums = 0.5
}
if (search.modeId == 2) {
item.nums = 3 item.nums = 3
item.buyNums = 3 item.buyNums = 3
} }
@ -167,9 +172,13 @@ export default memo(() => {
goodList.map((it) => { goodList.map((it) => {
if (item.id === it.id) { if (item.id === it.id) {
item.nums-- item.nums--
if (search.modeId !== 2) { if (search.modeId == 0) {
if (item.nums < 1) it.showInput = false, it.nums = 1 if (item.nums < 1) it.showInput = false, it.nums = 1
} else { }
if (search.modeId == 1) {
if (item.nums < 0.5) it.showInput = false, it.nums = 0.5
}
if (search.modeId == 2) {
if (item.nums < 3) it.showInput = false, it.nums = 3 if (item.nums < 3) it.showInput = false, it.nums = 3
} }
@ -262,7 +271,22 @@ export default memo(() => {
const onBlur = (e, id) => { const onBlur = (e, id) => {
goodList.map((item) => { goodList.map((item) => {
if (item.id == id) { if (item.id == id) {
item.nums = e.detail.value if (search.modeId == 0 && (e.detail.value == '' || Number(e.detail.value) == 0)) {
item.nums = 1
item.showInput = false
} else {
item.nums = e.detail.value
}
if (search.modeId == 1 && Number(e.detail.value) < 0.5) {
item.nums = 0.5
item.showInput = false
} else {
item.nums = e.detail.value
}
if (search.modeId == 2) {
item.nums = e.detail.value
}
} }
return item return item
}) })

View File

@ -22,16 +22,16 @@ export default () => {
//获取选择的客户 //获取选择的客户
let pages = Taro.getCurrentPages(); let pages = Taro.getCurrentPages();
let currPage = pages[pages.length - 1]; // 获取当前页面 let currPage = pages[pages.length - 1]; // 获取当前页面
setInfoObj((val) => ({
setInfoObj({ ...val,
...infoObj, province_name: currPage.data?.addressObj?.province_name,
province_name: currPage.data.addressObj.province_name, address_id: currPage.data?.addressObj?.id,
address_id: currPage.data.addressObj.id, city_name: currPage.data?.addressObj?.city_name,
city_name: currPage.data.addressObj.city_name, address_detail: currPage.data?.addressObj?.address_detail,
district_name: currPage.data.addressObj.district_name, district_name: currPage.data?.addressObj?.district_name,
target_user_name: currPage.data.addressObj.name, target_user_name: currPage.data?.addressObj?.name,
purchaser_phone: currPage.data.addressObj.phone, purchaser_phone: currPage.data?.addressObj?.phone,
}) }))
}) })
useEffect(() => { useEffect(() => {
getDetail() getDetail()
@ -152,6 +152,10 @@ export default () => {
} }
}) })
} }
useEffect(() => {
setInfoObj(infoObj)
}, [infoObj])
return ( return (
<View className={styles.mainBox}> <View className={styles.mainBox}>
<AddressDetailBox <AddressDetailBox