🐞 fix(ID1000935): 申请退货,选择退货原因时,其他说明文本输入框层级太高,UI出现混乱(安卓系统)

【申请退货,选择退货原因时,其他说明文本输入框层级太高,UI出现混乱(安卓系统)】 https://www.tapd.cn/53459131/bugtrace/bugs/view/1153459131001000935
This commit is contained in:
xuan 2022-12-08 16:04:41 +08:00
parent 4a2f5ac521
commit 8ecb3be06b
4 changed files with 527 additions and 532 deletions

View File

@ -239,6 +239,13 @@
"query": "",
"launchMode": "default",
"scene": null
},
{
"name": "",
"pathName": "pages/applyGoods/index",
"query": "orderId=31742",
"launchMode": "default",
"scene": null
}
]
}

View File

@ -7,25 +7,26 @@ interface SaleModeProps {
saleMode: number
size?: TagSize
customClassName?: string
customStyle?: React.CSSProperties
children?: React.ReactNode
}
const SaleModeTag: FC<SaleModeProps> = (props) => {
const { saleMode, size = 'small', customClassName } = props
const { saleMode, size = 'small', customClassName, customStyle } = props
return (
<>
{saleMode === EnumSaleMode.Bulk && (
<Tag circle type="bulk" size={size} customClassName={customClassName}>
<Tag circle type="bulk" size={size} customClassName={customClassName} customStyle={customStyle}>
</Tag>
)}
{saleMode === EnumSaleMode.Plate && (
<Tag circle type="plate" size={size} customClassName={customClassName}>
<Tag circle type="plate" size={size} customClassName={customClassName} customStyle={customStyle}>
</Tag>
)}
{saleMode === EnumSaleMode.BulkCut && (
<Tag circle type="bulkCut" size={size} customClassName={customClassName}>
<Tag circle type="bulkCut" size={size} customClassName={customClassName} customStyle={customStyle}>
</Tag>
)}

View File

@ -1,22 +1,20 @@
.main {}
.main {
}
.bgBox {
margin: 24px;
background: #FFFFFF;
background: #ffffff;
border-radius: 16px;
overflow: hidden;
}
.goodsBox {
margin-top: 24px;
overflow: hidden;
border-bottom: 8px solid #F7F7F7;
border-bottom: 8px solid #f7f7f7;
.goodsProduct {
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
margin-left: 32px;
@ -41,7 +39,7 @@
width: 108px;
height: 108px;
// background: #322F2F;
border-radius: 8px;
border-radius: 5px;
}
.itemRight {
@ -50,21 +48,18 @@
border-bottom: 1px solid #f7f7f7;
.item_right_top {
margin-bottom: 41px;
display: flex;
align-items: center;
justify-content: space-between;
.itemName {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
.itemNums {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
@ -72,19 +67,17 @@
.item_right_Bottom {
display: flex;
align-items: center;
align-items: flex-end;
justify-content: space-between;
.itemMoney {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
.itemMoneyOne {
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
}
@ -93,10 +86,10 @@
width: 120px;
height: 64px;
border-radius: 8px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
font-size: 28px;
font-weight: 400;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 64px;
}
@ -105,10 +98,10 @@
width: 204px;
height: 64px;
border-radius: 8px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
font-size: 28px;
font-weight: 400;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 64px;
}
@ -117,14 +110,14 @@
width: 189px;
height: 64px;
border-radius: 8px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
display: flex;
.redceBox {
width: 64px;
height: 64px;
border-radius: 8px 0px 0px 8px;
border-right: 1px solid #337FFF;
border-right: 1px solid #337fff;
display: flex;
align-items: center;
justify-content: center;
@ -132,7 +125,7 @@
.reduce {
width: 20px;
height: 2px;
background: #337FFF;
background: #337fff;
}
}
@ -145,24 +138,22 @@
text-align: center;
font-size: 24px;
font-weight: 400;
color: #337FFF;
color: #337fff;
}
.addBox {
width: 64px;
height: 64px;
border-left: 1px solid #337FFF;
border-left: 1px solid #337fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 40px;
color: #337FFF;
color: #337fff;
}
}
}
}
}
.itemGoods:last-child {
@ -184,21 +175,18 @@
border-bottom: none;
.item_right_top {
margin-bottom: 41px;
display: flex;
align-items: center;
justify-content: space-between;
.itemName {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
.itemNums {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
@ -206,19 +194,17 @@
.item_right_Bottom {
display: flex;
align-items: center;
align-items: flex-end;
justify-content: space-between;
.itemMoney {
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
}
.itemMoneyOne {
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
}
@ -227,10 +213,10 @@
width: 120px;
height: 64px;
border-radius: 8px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
font-size: 28px;
font-weight: 400;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 64px;
}
@ -239,17 +225,15 @@
width: 204px;
height: 64px;
border-radius: 8px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
font-size: 28px;
font-weight: 400;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 64px;
}
}
}
}
}
@ -257,19 +241,17 @@
border-bottom: none;
}
.hasSelect {
margin-left: 32px;
margin-right: 32px;
height: 54px;
background: #FEF9F4;
background: #fef9f4;
border-radius: 8px;
display: flex;
align-items: center;
font-size: 24px;
font-weight: 600;
color: #F79B31;
color: #f79b31;
padding-left: 20px;
margin-bottom: 24px;
}
@ -277,10 +259,9 @@
.resonBig {
overflow: hidden;
margin: 0 24px;
background: #FFFFFF;
background: #ffffff;
border-radius: 16px 16px 0px 0px;
.reasonItem {
display: flex;
align-items: center;
@ -302,7 +283,7 @@
.xing {
font-size: 28px;
font-weight: 500;
color: #E42945;
color: #e42945;
}
.selectFont {
@ -341,7 +322,7 @@
.descBox {
padding: 24px 0px 24px 0px;
margin: 32px;
background: #FFFFFF;
background: #ffffff;
border-radius: 16px 16px 0px 0px;
.title {
@ -368,14 +349,12 @@
color: #000000;
// margin-bottom: 32px;
}
}
.bottomBox {
width: 750px;
height: 160px;
background: #FFFFFF;
background: #ffffff;
position: fixed;
bottom: 0;
z-index: 99;
@ -388,11 +367,10 @@
width: 311px;
height: 80px;
border-radius: 44px;
border: 1px solid #087EFF;
border: 1px solid #087eff;
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 80px;
background-color: #fff;
@ -405,9 +383,8 @@
background: #68b4ff;
border-radius: 44px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF;
color: #ffffff;
text-align: center;
line-height: 80px;
}
@ -416,10 +393,9 @@
margin-right: 32px;
width: 311px;
height: 80px;
background: #337FFF;
background: #337fff;
border-radius: 44px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #fff;
text-align: center;
@ -436,16 +412,12 @@
height: 500px;
padding-bottom: env(safe-area-inset-bottom);
.thirdBox {
margin-top: 20px;
padding-left: 48px;
.thirdTopfont {
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
}
@ -454,7 +426,7 @@
margin-top: 24px;
background-color: #f6f6f6;
height: 68px;
background: #E9E9E9;
background: #e9e9e9;
border-radius: 8px;
margin-right: 48px;
text-align: center;
@ -488,10 +460,10 @@
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #337FFF;
color: #337fff;
text-align: center;
// line-height: 68px;
border: 1px solid #337FFF;
border: 1px solid #337fff;
box-sizing: border-box;
}
@ -514,16 +486,12 @@
// opacity: 0.4;
}
}
}
.bottomBox1 {
width: 750px;
height: 160px;
background: #FFFFFF;
background: #ffffff;
position: fixed;
bottom: 0;
z-index: 99;
@ -536,11 +504,10 @@
width: 311px;
height: 80px;
border-radius: 44px;
border: 1px solid #087EFF;
border: 1px solid #087eff;
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #337FFF;
color: #337fff;
text-align: center;
line-height: 80px;
background-color: #fff;
@ -553,9 +520,8 @@
background: #68b4ff;
border-radius: 44px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF;
color: #ffffff;
text-align: center;
line-height: 80px;
}
@ -564,10 +530,9 @@
margin-right: 32px;
width: 311px;
height: 80px;
background: #337FFF;
background: #337fff;
border-radius: 44px;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #fff;
text-align: center;

View File

@ -1,4 +1,4 @@
import { Button, Image, Input, ScrollView, Text, Textarea, View } from '@tarojs/components'
import { Button, CoverView, Image, Input, ScrollView, Text, Textarea, View } from '@tarojs/components'
import Taro, { faceVerifyForPay, useDidShow, useRouter } from '@tarojs/taro'
import { ReactNode, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'
import classnames from 'classnames'
@ -13,6 +13,10 @@ import {
} from '@/api/order'
import Popup from '@/components/popup'
import UploadImage from '@/components/uploadImage'
import IconFont from '@/components/iconfont/iconfont'
import Divider from '@/components/divider'
import SaleModeTag from '@/components/saleModeTag'
import LabAndImg from '@/components/LabAndImg'
// 产品商品元素
interface PropGoods {
@ -38,20 +42,34 @@ const GoodsItem = (porps: PropGoods) => {
// setValue({ count: res })
// }
// }
const labAndImgObj = useCallback(
(item) => {
return { lab: item.lab, rgb: item.rgb, texture_url: item.texture_url }
},
[list],
)
return (
<>
{
list.map((item, index) => {
return (
<View className={styles.goodsBox} key={index}>
<View className={styles.goodsProduct}>{item.product_code}# {item.product_name}</View>
<View className={styles.goodsLine}></View>
<View className={styles.goodsProduct}>
<Text>
{item.product_code}# {item.product_name}
</Text>
<SaleModeTag saleMode={item.sale_mode} size="small" customStyle={{ marginLeft: '5px', padding: '0 5px' }} />
</View>
<Divider direction="horizontal" customStyles={{ margin: '12px 10px' }}></Divider>
{
item.av_product_color.map((it, inx) => {
return (
<View className={styles.itemGoods} key={inx}>
<Image className={styles.itemPic} mode="aspectFill" src="https://test.cdn.zzfzyc.com/mall/no_img.png"></Image>
<View className={styles.itemPic}>
<LabAndImg value={labAndImgObj(item)} />
</View>
{/* <Image className={styles.itemPic} mode="aspectFill" src="https://test.cdn.zzfzyc.com/mall/no_img.png"></Image> */}
{/* <View className={styles.itemPic} style={{ backgroundColor: `rgb(${it?.rgb?.r} ${it?.rgb?.g} ${it?.rgb?.b})` }}></View> */}
<View className={styles.itemRight}>
<View className={styles.item_right_top}>
@ -564,7 +582,8 @@ const ApplyGoods = () => {
queryRef.current.reasonName !== '请选择' && <View className={styles.selectFont}>{Query.reasonName}/{Query.reasonNameTwo}</View>
}
</View>
<View className={classnames('iconfont', 'icon-chakanquanbukehu', styles.chakanquanbukehu)}></View>
<IconFont name="icon-chakanquanbukehu" size={50} color="#3b3b3b"></IconFont>
{/* <View className={classnames('iconfont', 'icon-chakanquanbukehu', styles.chakanquanbukehu)}></View> */}
</View>
<View className={styles.reasonItem} onClick={() => { setDescPopup?.(true) }}>
<View className={styles.reasonLeft}>
@ -577,7 +596,8 @@ const ApplyGoods = () => {
queryRef.current.GoodStatusName !== '请选择' && <View className={styles.selectFont}>{Query.GoodStatusName}</View>
}
</View>
<View className={classnames('iconfont', 'icon-chakanquanbukehu', styles.chakanquanbukehu)}></View>
<IconFont name="icon-chakanquanbukehu" size={50} color="#3b3b3b"></IconFont>
{/* <View className={classnames('iconfont', 'icon-chakanquanbukehu', styles.chakanquanbukehu)}></View> */}
</View>
<View className={styles.picBig}>
<View className={styles.picFont}></View>
@ -587,12 +607,14 @@ const ApplyGoods = () => {
<View className={styles.descBox}>
<View className={styles.title}></View>
<View className={styles.textBox}>
{/* 解决textarea的placeholder层级穿透的问题偶现问题 */}
{/* https://developers.weixin.qq.com/community/develop/article/doc/0004eea3024e7075653a30bb05ac13?highline=Textarea%20 */}
<Textarea
onInput={e => getDesc(e.detail.value)}
value={TextareaValue}
// style='background:#f6f6f6;height:210px;padding:15rpx 24rpx 24rpx 24rpx;border-radius: 8rpx;'
placeholderStyle="font-size: 28rpx;font-weight: 400;"
placeholder="选填/退货原因中选择时(其他问题)必填"
placeholder={(!showPopup || !DescPopup) ? '选填/退货原因中选择时(其他问题)必填' : ''}
></Textarea>
</View>
</View>