feat(ID1000936): 下单返现活动

This commit is contained in:
xuan 2023-03-09 19:59:16 +08:00
parent 4fcd4de555
commit f4e283a81c
15 changed files with 140 additions and 64 deletions

View File

@ -1,5 +1,5 @@
{ {
"symbol_url": "//at.alicdn.com/t/c/font_3786318_zkugv9z8j0e.js", "symbol_url": "//at.alicdn.com/t/c/font_3786318_9p9bgzmjvv.js",
"save_dir": "./src/components/iconfont", "save_dir": "./src/components/iconfont",
"use_typescript": false, "use_typescript": false,
"use_rpx": true, "use_rpx": true,

View File

@ -49,4 +49,4 @@
] ]
} }
} }
} }

View File

@ -28,7 +28,7 @@ export const AddShoppingCartApi = () => {
*/ */
export const MallsaleOrderadd = () => { export const MallsaleOrderadd = () => {
return useRequest({ return useRequest({
url: '/v1/mall/saleOrder/add', url: '/v3/mallCherry/saleOrder/atOnceAdd',
method: 'post', method: 'post',
}) })
} }

View File

@ -142,3 +142,19 @@ export const GetInviteeRecord = () => {
pagination: true, pagination: true,
}) })
} }
// 下单返现
export const GetCashBackInfo = () => {
return useRequest({
url: '/v3/mallCherry/rebate/homePage',
method: 'get',
})
}
// 下单返现详情
export const GetRebateDetail = () => {
return useRequest({
url: '/v3/mallCherry/rebate/detail',
method: 'get',
})
}

View File

@ -41,6 +41,11 @@ export const SALE_MODE = {
SaleModeLengthCut: { value: 1, label: '剪版' }, SaleModeLengthCut: { value: 1, label: '剪版' },
SaLeModeWeightCut: { value: 2, label: '散剪' }, SaLeModeWeightCut: { value: 2, label: '散剪' },
} }
export enum ENUM_SALE_MODE {
SALE_MODE_BULK,
SALE_MODE_LENGTH_CUT,
SALE_MODE_WEIGHT_CUT,
}
export type saleModeType = 0 | 1 | 2 export type saleModeType = 0 | 1 | 2
// 分享场景枚举 // 分享场景枚举

View File

@ -24,7 +24,7 @@ function hex2rgb(hex) {
return "rgb(" + rgb.join(",") + ")"; return "rgb(" + rgb.join(",") + ")";
} }
export type IconNames = 'icon-lijitixian' | 'icon-hongbao' | 'icon-xuanzhongshijian' | 'icon-zhankai1' | 'icon-shouqi1' | 'icon-shoucang1' | 'icon-weixinyijiandenglu' | 'icon-nanzhuang' | 'icon-zhuanyefenlei' | 'icon-tongzhuang' | 'icon-chaoliumianliao' | 'icon-nvzhuang' | 'icon-dingwei' | 'icon-xuanzhongyanse' | 'icon-sekajianyanglingqu' | 'icon-lingseka' | 'icon-lingjianyang' | 'icon-gerenzhongxin-dianji' | 'icon-shouye-dianji' | 'icon-gouwuche-weidianji' | 'icon-gerenzhongxin-weidianji' | 'icon-gouwuche-dianji' | 'icon-shouye-weidianji' | 'icon-paixu1' | 'icon-zhankai' | 'icon-shouqi' | 'icon-tips' | 'icon-dianhua' | 'icon-paixu' | 'icon-shaixuan' | 'icon-bodakehujingli' | 'icon-guanfangweixinkefu' | 'icon-tuijianbiaoqian' | 'icon-rukou' | 'icon-renzhengchenggong' | 'icon-wodekefu' | 'icon-yanseduibi' | 'icon-dizhiguanli' | 'icon-weixin' | 'icon-riqi' | 'icon-shuru' | 'icon-a-0tianzhangqi' | 'icon-huodaofukuan' | 'icon-huozhuziti' | 'icon-saomazhifu' | 'icon-xianxiahuikuan' | 'icon-yufukuan' | 'icon-xinzengshoucangjia' | 'icon-qingchusousuo' | 'icon-xuanzechenggong' | 'icon-gongnengtubiao-saomiao' | 'icon-bianjizidingyimadan' | 'icon-zidingyimadanyulan' | 'icon-yuanshimadanyulan' | 'icon-xiala' | 'icon-shangla' | 'icon-qingchuxinxi' | 'icon-sousuo' | 'icon-guanli' | 'icon-bianji' | 'icon-shoucangjia' | 'icon-shezhi' | 'icon-tishi' | 'icon-erweima' | 'icon-dianjishoucang' | 'icon-gouwuche' | 'icon-shoucangchenggong' | 'icon-fenxiangshangpin' | 'icon-kefu' | 'icon-xinzenganniu' | 'icon-jianshaoanniu' | 'icon-daifahuo2' | 'icon-daishouhuo2' | 'icon-tuikuan-shouhou' | 'icon-daipeibu2' | 'icon-daifukuan2'; export type IconNames = 'icon-yanseduibi1' | 'icon-shoucangshangpin' | 'icon-lijitixian' | 'icon-hongbao' | 'icon-xuanzhongshijian' | 'icon-zhankai1' | 'icon-shouqi1' | 'icon-shoucang1' | 'icon-weixinyijiandenglu' | 'icon-nanzhuang' | 'icon-zhuanyefenlei' | 'icon-tongzhuang' | 'icon-chaoliumianliao' | 'icon-nvzhuang' | 'icon-dingwei' | 'icon-xuanzhongyanse' | 'icon-sekajianyanglingqu' | 'icon-lingseka' | 'icon-lingjianyang' | 'icon-gerenzhongxin-dianji' | 'icon-shouye-dianji' | 'icon-gouwuche-weidianji' | 'icon-gerenzhongxin-weidianji' | 'icon-gouwuche-dianji' | 'icon-shouye-weidianji' | 'icon-paixu1' | 'icon-zhankai' | 'icon-shouqi' | 'icon-tips' | 'icon-dianhua' | 'icon-paixu' | 'icon-shaixuan' | 'icon-bodakehujingli' | 'icon-guanfangweixinkefu' | 'icon-tuijianbiaoqian' | 'icon-rukou' | 'icon-renzhengchenggong' | 'icon-wodekefu' | 'icon-yanseduibi' | 'icon-dizhiguanli' | 'icon-weixin' | 'icon-riqi' | 'icon-shuru' | 'icon-a-0tianzhangqi' | 'icon-huodaofukuan' | 'icon-huozhuziti' | 'icon-saomazhifu' | 'icon-xianxiahuikuan' | 'icon-yufukuan' | 'icon-xinzengshoucangjia' | 'icon-qingchusousuo' | 'icon-xuanzechenggong' | 'icon-gongnengtubiao-saomiao' | 'icon-bianjizidingyimadan' | 'icon-zidingyimadanyulan' | 'icon-yuanshimadanyulan' | 'icon-xiala' | 'icon-shangla' | 'icon-qingchuxinxi' | 'icon-sousuo' | 'icon-guanli' | 'icon-bianji' | 'icon-shoucangjia' | 'icon-shezhi' | 'icon-tishi' | 'icon-erweima' | 'icon-dianjishoucang' | 'icon-gouwuche' | 'icon-shoucangchenggong' | 'icon-fenxiangshangpin' | 'icon-kefu' | 'icon-xinzenganniu' | 'icon-jianshaoanniu' | 'icon-daifahuo2' | 'icon-daishouhuo2' | 'icon-tuikuan-shouhou' | 'icon-daipeibu2' | 'icon-daifukuan2';
type PropsType = { type PropsType = {
name: IconNames; name: IconNames;
@ -84,7 +84,13 @@ const IconFont:FC<PropsType> = ({
className={classnames(icon, customClassName)} className={classnames(icon, customClassName)}
/> />
)} */} )} */}
{/* icon-lijitixian */} {/* icon-yanseduibi1 */}
{ name === 'icon-yanseduibi1' && (<View style={{backgroundImage: `url(${quot}data:image/svg+xml, %3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='${svgSize}px' height='${svgSize}px'%3E%3Cpath d='M522.666667 21.333333a21.333333 21.333333 0 0 1 21.333333 21.333334v53.866666C763.861333 107.648 938.666667 289.408 938.666667 512c0 222.592-174.826667 404.352-394.666667 415.466667V981.333333a21.333333 21.333333 0 0 1-21.333333 21.333334h-21.333334a21.333333 21.333333 0 0 1-21.333333-21.333334v-53.866666C260.16 916.373333 85.333333 734.613333 85.333333 512 85.333333 289.408 260.16 107.648 480 96.533333V42.666667a21.333333 21.333333 0 0 1 21.333333-21.333334h21.333334z m-42.666667 718.762667l-151.189333 78.805333A349.930667 349.930667 0 0 0 480 863.36l-0.021333-123.264z m64-579.456v702.72C728.469333 852.330667 874.666667 699.242667 874.666667 512S728.469333 171.669333 544 160.64z m-64 366.122667L190.613333 677.546667a353.536 353.536 0 0 0 86.848 106.112l-4.16-8.021334 206.698667-107.712v-141.162666z m0-213.333334l-329.664 171.733334a351.829333 351.829333 0 0 0 15.36 133.205333L480 454.592v-141.162667z m0-152.789333c-147.669333 8.810667-270.826667 108.693333-314.069333 244.266667L480 241.237333v-80.64z' fill='${(isStr ? colors : colors?.[0]) || 'rgb(45,39,57)'}'/%3E%3C/svg%3E${quot})`, width: `${svgSize}px`, height: `${svgSize}px`, ...customStyle}} className={classnames("icon", customClassName)} />) }
{/* icon-shoucangshangpin */}
{ name === 'icon-shoucangshangpin' && (<View style={{backgroundImage: `url(${quot}data:image/svg+xml, %3Csvg viewBox='0 0 1063 1024' xmlns='http://www.w3.org/2000/svg' width='${svgSize}px' height='${svgSize}px'%3E%3Cpath d='M544.042667 50.133333c14.293333 7.04 25.834667 18.581333 32.874666 32.853334l95.573334 193.237333c10.538667 21.333333 30.933333 36.117333 54.506666 39.530667l213.674667 30.997333a72.234667 72.234667 0 1 1 40.128 123.264l-154.624 150.442667c-17.066667 16.597333-24.853333 40.533333-20.821333 63.957333l36.501333 212.416a72.277333 72.277333 0 0 1-59.114667 83.456 72.533333 72.533333 0 0 1-45.952-7.253333l-191.104-100.309334a72.533333 72.533333 0 0 0-67.392 0l-191.104 100.288a72.469333 72.469333 0 0 1-97.770666-30.336 72.149333 72.149333 0 0 1-7.274667-45.866666l36.48-212.394667a72.192 72.192 0 0 0-20.821333-63.957333l-154.602667-150.442667a72.170667 72.170667 0 0 1-1.301333-102.186667 72.448 72.448 0 0 1 41.429333-21.077333L297.002667 315.733333a72.405333 72.405333 0 0 0 54.506666-39.530666l95.573334-193.258667a72.469333 72.469333 0 0 1 96.96-32.810667zM512 114.965333l-95.573333 193.28c-21.077333 42.666667-61.866667 72.213333-109.013334 79.061334L93.738667 418.261333l154.602666 150.442667a144.384 144.384 0 0 1 41.664 127.936l-36.501333 212.416 191.104-100.288a145.066667 145.066667 0 0 1 134.784 0l191.104 100.266667-36.501333-212.394667a144.384 144.384 0 0 1 41.642666-127.936l154.624-150.442667-213.674666-30.976a144.789333 144.789333 0 0 1-109.034667-79.082666l-95.573333-193.258667z m143.978667 353.92a32 32 0 0 1 3.093333 45.141334l-148.778667 170.666666a32 32 0 0 1-48.789333-0.64l-64.554667-78.144a32 32 0 1 1 49.344-40.746666l40.533334 49.066666 123.989333-142.250666a32 32 0 0 1 45.162667-3.093334z' fill='${(isStr ? colors : colors?.[0]) || 'rgb(45,39,57)'}'/%3E%3C/svg%3E${quot})`, width: `${svgSize}px`, height: `${svgSize}px`, ...customStyle}} className={classnames("icon", customClassName)} />) }
{/* icon-lijitixian */}
{ name === 'icon-lijitixian' && (<View style={{backgroundImage: `url(${quot}data:image/svg+xml, %3Csvg viewBox='0 0 1396 1024' xmlns='http://www.w3.org/2000/svg' width='${svgSize}px' height='${svgSize}px'%3E%3Cpath d='M1349.818182 512v418.909091a46.405818 46.405818 0 0 1-46.545455 46.545454H93.090909a46.405818 46.405818 0 0 1-46.545454-46.545454v-418.909091h1303.272727z m-866.350546 139.636364H152.669091l-77.544727 232.727272H405.876364l77.544727-232.727272zM1303.272727 46.545455a46.405818 46.405818 0 0 1 46.545455 46.545454v186.181818H46.545455V93.090909a46.405818 46.405818 0 0 1 46.545454-46.545454z' fill='${(isStr ? colors : colors?.[0]) || 'rgb(255,255,255)'}'/%3E%3C/svg%3E${quot})`, width: `${svgSize}px`, height: `${svgSize}px`, ...customStyle}} className={classnames("icon", customClassName)} />) } { name === 'icon-lijitixian' && (<View style={{backgroundImage: `url(${quot}data:image/svg+xml, %3Csvg viewBox='0 0 1396 1024' xmlns='http://www.w3.org/2000/svg' width='${svgSize}px' height='${svgSize}px'%3E%3Cpath d='M1349.818182 512v418.909091a46.405818 46.405818 0 0 1-46.545455 46.545454H93.090909a46.405818 46.405818 0 0 1-46.545454-46.545454v-418.909091h1303.272727z m-866.350546 139.636364H152.669091l-77.544727 232.727272H405.876364l77.544727-232.727272zM1303.272727 46.545455a46.405818 46.405818 0 0 1 46.545455 46.545454v186.181818H46.545455V93.090909a46.405818 46.405818 0 0 1 46.545454-46.545454z' fill='${(isStr ? colors : colors?.[0]) || 'rgb(255,255,255)'}'/%3E%3C/svg%3E${quot})`, width: `${svgSize}px`, height: `${svgSize}px`, ...customStyle}} className={classnames("icon", customClassName)} />) }
{/* icon-hongbao */} {/* icon-hongbao */}

View File

@ -51,12 +51,8 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
border-top: 1px #fff solid;
padding-left: 48px; padding-left: 48px;
box-sizing: border-box; box-sizing: border-box;
&:nth-child(1) {
border-right: 1px #fff solid;
}
text { text {
display: block; display: block;
&:nth-child(2) { &:nth-child(2) {
@ -80,12 +76,12 @@
font-weight: 500; font-weight: 500;
padding-top: 40px; padding-top: 40px;
.text { .text {
display: flex;
flex-flow: row nowrap;
align-items: center;
font-size: 28px; font-size: 28px;
font-weight: 500; font-weight: 500;
} }
.miconfont {
font-size: 30px;
}
.price { .price {
font-size: 66px; font-size: 66px;
margin-top: 16px; margin-top: 16px;

View File

@ -1,11 +1,14 @@
import { Icon, Text, View } from '@tarojs/components' import { Icon, Text, View } from '@tarojs/components'
import Taro from '@tarojs/taro' import Taro, { useReady } from '@tarojs/taro'
import classNames from 'classnames' import classNames from 'classnames'
import { useState } from 'react' import { useState } from 'react'
import styles from './index.module.scss' import styles from './index.module.scss'
import IconFont from '@/components/iconfont/iconfont' import IconFont from '@/components/iconfont/iconfont'
import { alert } from '@/common/common' import { alert } from '@/common/common'
import { GetRebateDetail } from '@/api/user'
import { formatPriceDiv } from '@/common/fotmat'
import Divider from '@/components/divider'
export default () => { export default () => {
const openMsg = () => { const openMsg = () => {
@ -13,22 +16,29 @@ export default () => {
title: '提示', title: '提示',
showCancel: false, showCancel: false,
content: '每笔订单产生的返佣在已收货14天后会自动到账账户余额中期间中途产生的退货条数会自动扣除每天9:00自动更新收益。', content: '每笔订单产生的返佣在已收货14天后会自动到账账户余额中期间中途产生的退货条数会自动扣除每天9:00自动更新收益。',
success(res) { confirmColor: '#337fff',
}, confirmText: '我知道了',
}) })
} }
const openWithdraw = () => { const openWithdraw = () => {
alert.none('若需提现,请联系线上客服进行处理') alert.none('若需提现,请联系线上客服进行处理')
} }
const { fetchData, state } = GetRebateDetail()
useReady(() => {
fetchData()
})
return ( return (
<View className={styles.main}> <View className={styles.main}>
<View className={styles.header}> <View className={styles.header}>
<View className={styles.header_balance_total}> <View className={styles.header_balance_total}>
<View className={styles.balance}> <View className={styles.balance}>
<View>(</View> <View></View>
<View className={styles.balance_num}>20,330.00</View> <View className={styles.balance_num}>{formatPriceDiv(state.data.balance).toLocaleString()}</View>
<View className={styles.accumulative_count}><Text>20,330.00</Text></View> <View className={styles.accumulative_count}><Text>{formatPriceDiv(state.data.total_income).toLocaleString()}</Text></View>
</View> </View>
<View className={styles.withdraw} onClick={openWithdraw}> <View className={styles.withdraw} onClick={openWithdraw}>
<IconFont name="icon-lijitixian" size={37} /> <IconFont name="icon-lijitixian" size={37} />
@ -36,21 +46,26 @@ export default () => {
<IconFont name="icon-rukou" color="#fff" size={35} /> <IconFont name="icon-rukou" color="#fff" size={35} />
</View> </View>
</View> </View>
<Divider direction="horizontal" customStyles={{ margin: '0', opacity: '0.6', transform: 'translateY(1px) scaleY(0.6)' }}></Divider>
<View className={styles.price_list}> <View className={styles.price_list}>
<View className={styles.price_list_item}> <View className={styles.price_list_item}>
<Text>(</Text> <Text></Text>
<Text>5,000.00</Text> <Text>{formatPriceDiv(state.data.today_income).toLocaleString()}</Text>
</View> </View>
<Divider direction="vertical" customStyles={{ margin: '0', height: '100rpx', opacity: '0.6', transform: 'scaleX(0.6)' }}></Divider>
<View className={styles.price_list_item}> <View className={styles.price_list_item}>
<Text>14(</Text> <Text>14</Text>
<Text>5,000.00</Text> <Text>{formatPriceDiv(state.data.recently_fourteen_day_income).toLocaleString()}</Text>
</View> </View>
</View> </View>
</View> </View>
<View className={styles.con}> <View className={styles.con}>
<View className={styles.toBeSettled}> <View className={styles.toBeSettled}>
<View className={styles.text} onClick={openMsg}>()<Text className={classNames(styles.miconfont, 'iconfont icon-zhushi')}></Text></View> <View className={styles.text} onClick={openMsg}>
<View className={styles.price}>180.00</View> <Text></Text>
<IconFont name="icon-tishi" size={30}></IconFont>
</View>
<View className={styles.price}>{formatPriceDiv(state.data.wait_settle_income).toLocaleString()}</View>
</View> </View>
<View className={styles.card}> <View className={styles.card}>
<View className={styles.title}> <View className={styles.title}>
@ -59,11 +74,11 @@ export default () => {
</View> </View>
<View className={styles.card_list}> <View className={styles.card_list}>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>10</Text> <Text>{state.data.wait_settle_bulk_roll}</Text>
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>120</Text> <Text>{formatPriceDiv(state.data.wait_settle_bulk_income).toLocaleString()}</Text>
<Text></Text> <Text></Text>
</View> </View>
</View> </View>
@ -75,20 +90,20 @@ export default () => {
</View> </View>
<View className={styles.card_list}> <View className={styles.card_list}>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>10</Text> <Text>{state.data.passive_wait_settle_bulk_roll}</Text>
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>120</Text> <Text>{formatPriceDiv(state.data.passive_wait_settle_bulk_income).toLocaleString()}</Text>
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>120</Text> <Text>{state.data.passive_wait_settle_user_nums}</Text>
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.card_item}> <View className={styles.card_item}>
<Text>120</Text> <Text>{state.data.passive_wait_settle_bulk_order_nums}</Text>
<Text></Text> <Text></Text>
</View> </View>
</View> </View>
</View> </View>

View File

@ -59,14 +59,15 @@
.updateBtn { .updateBtn {
width: 200px; width: 200px;
font-size: $font_size_min; font-size: $font_size_min;
background-color: #f0f0f0; // background-color: #f0f0f0;
height: 64px; height: 64px;
border-radius: 24px; // border-radius: 24px;
color: $color_font_two; color: $color_font_two;
position: absolute; position: absolute;
bottom: 10px; bottom: 10px;
right: 10px; right: 10px;
z-index: 999; z-index: 999;
display: flex;
.updateBtn_list { .updateBtn_list {
position: absolute; position: absolute;
display: flex; display: flex;
@ -77,14 +78,17 @@
} }
} }
.updateBtn_item { .updateBtn_item {
display: flex;
align-items: center;
flex: 1; flex: 1;
text-align: center; text-align: center;
line-height: 64px; line-height: 64px;
color: #666666;
} }
.updateBtn_item_select_update { .updateBtn_item_select_update {
background-color: #007aff; // background-color: #007aff;
color: #fff; color: #007aff;
border-radius: 24px; // border-radius: 24px;
} }
.updateBtn_select { .updateBtn_select {
color: #fff; color: #fff;

View File

@ -11,6 +11,7 @@ import { ORDER_STATUS } from '@/common/enum'
import { debounce, throttle } from '@/common/util' import { debounce, throttle } from '@/common/util'
import AddressList from '@/components/AddressList' import AddressList from '@/components/AddressList'
import Popup from '@/components/popup' import Popup from '@/components/popup'
import IconFont from '@/components/iconfont/iconfont'
interface Param { interface Param {
onSelect?: (val: any) => void // 选择地址 onSelect?: (val: any) => void // 选择地址
@ -180,11 +181,21 @@ const AddressInfoDetail = ({ onSelect, onChangeShipmentMode, orderInfo, status =
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
changeShow, changeShow,
})) }))
const handleTips = (e) => {
e.stopPropagation()
Taro.showToast({ title: '暂不支持提货', icon: 'none' })
}
return ( return (
<View> <View>
<View className={styles.order_address} onClick={() => changeShow()}> <View className={styles.order_address}>
<View className={classnames(styles.order_address_icon, 'iconfont', receivingStatus == 2 ? 'icon-daohang' : 'icon-fahuo')}></View> <View className={classnames(styles.order_address_icon)}>
<View className={styles.order_address_text_con}> {
receivingStatus == 2 ? <IconFont name="icon-dingwei" size={50}></IconFont> : <IconFont name="icon-daifahuo2" size={50}></IconFont>
}
</View>
<View onClick={() => changeShow()} className={styles.order_address_text_con}>
<View className={styles.order_address_text_title}> <View className={styles.order_address_text_title}>
<Text className={classnames(styles.address_text, styles.address_text_no)}>{formatAddress || '请选择收货地址及信息'}</Text> <Text className={classnames(styles.address_text, styles.address_text_no)}>{formatAddress || '请选择收货地址及信息'}</Text>
{receivingStatus == 2 && !logisticsShow && <Text className={classnames(styles.moreIconfont, 'iconfont icon-a-moreback')}></Text>} {receivingStatus == 2 && !logisticsShow && <Text className={classnames(styles.moreIconfont, 'iconfont icon-a-moreback')}></Text>}
@ -196,11 +207,18 @@ const AddressInfoDetail = ({ onSelect, onChangeShipmentMode, orderInfo, status =
</View> </View>
{(!logisticsShow && ( {(!logisticsShow && (
<View className={styles.updateBtn}> <View className={styles.updateBtn}>
<View
className={classnames(styles.updateBtn_item)}
onClick={handleTips}
>
<Text style={{ marginRight: '3px' }}></Text>
<IconFont name="icon-tishi" size={30} color="#666666"></IconFont>
</View>
<View <View
className={classnames(styles.updateBtn_item, styles.updateBtn_item_select_update)} className={classnames(styles.updateBtn_item, styles.updateBtn_item_select_update)}
onClick={e => onReceivingStatus(2, e)} onClick={e => onReceivingStatus(2, e)}
> >
</View> </View>
{/* <View className={styles.updateBtn_list}> {/* <View className={styles.updateBtn_list}>
<View <View

View File

@ -5,7 +5,6 @@
} }
.order_con { .order_con {
position: relative; position: relative;
margin-top: 70px;
} }
.orders_list_con { .orders_list_con {
background-color: #fff; background-color: #fff;

View File

@ -1,7 +1,7 @@
import { Text, View } from '@tarojs/components' import { Text, View } from '@tarojs/components'
import { memo, useCallback, useMemo, useState } from 'react' import { memo, useCallback, useMemo, useState } from 'react'
import styles from './index.module.scss' import styles from './index.module.scss'
import { ORDER_STATUS } from '@/common/enum' import { ENUM_SALE_MODE, ORDER_STATUS } from '@/common/enum'
import { formatHashTag, formatPriceDiv, formatWeightDiv } from '@/common/fotmat' import { formatHashTag, formatPriceDiv, formatWeightDiv } from '@/common/fotmat'
import EstimatedAmount from '@/components/estimatedAmount' import EstimatedAmount from '@/components/estimatedAmount'
import LabAndImg from '@/components/LabAndImg' import LabAndImg from '@/components/LabAndImg'
@ -12,6 +12,8 @@ import Dialog from '@/components/Dialog'
interface OrderParam { interface OrderParam {
estimate_amount: number // 预估金额 estimate_amount: number // 预估金额
is_open_rebate: boolean
rebate_money: number
list: any[] list: any[]
sale_mode: number sale_mode: number
sale_mode_name: string sale_mode_name: string
@ -128,14 +130,14 @@ const KindList = ({ order, comfirm = false }: Param) => {
// 对应数量 // 对应数量
const formatCount = useCallback( const formatCount = useCallback(
(item) => { (item) => {
return order?.sale_mode == 0 ? item.roll : Number(item.length / 100) return order?.sale_mode === ENUM_SALE_MODE.SALE_MODE_BULK ? item.roll : Number(item.length / 100)
}, },
[order], [order],
) )
// 对应单价 // 对应单价
const standardPrice = useCallback( const standardPrice = useCallback(
(price) => { (price) => {
return `${formatPriceDiv(price)}/${order?.sale_mode == 1 ? 'm' : 'kg'}` return `${formatPriceDiv(price)}/${order?.sale_mode === ENUM_SALE_MODE.SALE_MODE_LENGTH_CUT ? 'm' : 'kg'}`
}, },
[order], [order],
) )
@ -143,7 +145,7 @@ const KindList = ({ order, comfirm = false }: Param) => {
// 数量格式 // 数量格式
const numText = useMemo(() => { const numText = useMemo(() => {
if (order) { if (order) {
const total_number = order?.sale_mode == 0 ? order?.total_number : order?.total_number / 100 const total_number = order?.sale_mode === ENUM_SALE_MODE.SALE_MODE_BULK ? order?.total_number : order?.total_number / 100
return `${order?.total_fabrics} 种面料,${order?.total_colors} 种颜色,共 ${total_number} ${order?.unit}` return `${order?.total_fabrics} 种面料,${order?.total_colors} 种颜色,共 ${total_number} ${order?.unit}`
} }
}, [order]) }, [order])
@ -189,15 +191,21 @@ const KindList = ({ order, comfirm = false }: Param) => {
[order], [order],
) )
const showCashBackInfo = useMemo(() => {
return order?.sale_mode === ENUM_SALE_MODE.SALE_MODE_BULK && order?.is_open_rebate
}, [order?.sale_mode, order?.is_open_rebate])
const [returnCashShow, setReturnCashShow] = useState(false) const [returnCashShow, setReturnCashShow] = useState(false)
return ( return (
<> <>
<View className={styles.orders_list_title}>{numText}</View> <View className={styles.orders_list_title}>{numText}</View>
<View className={styles.order_con}> <View className={styles.order_con} style={showCashBackInfo ? { marginTop: '70rpx' } : {}}>
<View className={styles.return_money} onClick={() => setReturnCashShow(true)}> {
<View className={styles.money_line}><IconFont name="icon-hongbao" size={30} /><Text> 48 </Text> <View className={styles.rukou}><IconFont name="icon-rukou" size={30} /></View></View> showCashBackInfo && <View className={styles.return_money} onClick={() => setReturnCashShow(true)}>
</View> <View className={styles.money_line}><IconFont name="icon-hongbao" size={30} /><Text> {formatPriceDiv(order?.rebate_money).toLocaleString()} </Text> <View className={styles.rukou}><IconFont name="icon-rukou" size={30} /></View></View>
</View>
}
<View className={styles.orders_list_con}> <View className={styles.orders_list_con}>
{order?.list?.map((item) => { {order?.list?.map((item) => {
return ( return (

View File

@ -18,6 +18,7 @@ import { UseSubscriptionMessage } from '@/use/useCommon'
import { throttle } from '@/common/util' import { throttle } from '@/common/util'
import MoveBtn from '@/components/moveBtn' import MoveBtn from '@/components/moveBtn'
import { MallsaleOrderadd, SaleOrderpreView } from '@/api/shopCart' import { MallsaleOrderadd, SaleOrderpreView } from '@/api/shopCart'
import IconFont from '@/components/iconfont/iconfont'
const SpeedComfirm = () => { const SpeedComfirm = () => {
const router = useRouter() const router = useRouter()
@ -76,6 +77,8 @@ const SpeedComfirm = () => {
setFormatPreViewOrder({ setFormatPreViewOrder({
estimate_amount: preViewOrder.estimate_amount, // 预估金额 estimate_amount: preViewOrder.estimate_amount, // 预估金额
sale_mode: preViewOrder.sale_mode, sale_mode: preViewOrder.sale_mode,
is_open_rebate: preViewOrder.is_open_rebate,
rebate_money: preViewOrder.rebate_money,
sale_mode_name: preViewOrder.sale_mode_name, sale_mode_name: preViewOrder.sale_mode_name,
total_colors: preViewOrder.total_colors, // 总颜色数量 total_colors: preViewOrder.total_colors, // 总颜色数量
total_number: preViewOrder.total_number, // 总数量 total_number: preViewOrder.total_number, // 总数量
@ -226,7 +229,7 @@ const SpeedComfirm = () => {
<View className={styles.order_desc} onClick={() => setShowDesc(true)}> <View className={styles.order_desc} onClick={() => setShowDesc(true)}>
<View className={styles.order_desc_con}></View> <View className={styles.order_desc_con}></View>
{(submitOrderData?.remark && <View className={styles.order_desc_text}>{submitOrderData?.remark}</View>) || <View className={styles.order_desc_text_hint}></View>} {(submitOrderData?.remark && <View className={styles.order_desc_text}>{submitOrderData?.remark}</View>) || <View className={styles.order_desc_text_hint}></View>}
<View className={classnames(styles.miconfont, 'iconfont icon-a-moreback')}></View> <IconFont name="icon-rukou" size={28} color="#474747"></IconFont>
</View> </View>
<View className={styles.submit_order}> <View className={styles.submit_order}>
<View className={styles.submit_order_number}> <View className={styles.submit_order_number}>

View File

@ -53,7 +53,7 @@
flex-direction: column; flex-direction: column;
flex: 1; flex: 1;
position: relative; position: relative;
.header_user{ .header_user {
display: flex; display: flex;
align-items: center; align-items: center;
} }
@ -67,7 +67,7 @@
} }
.header_user_name { .header_user_name {
font-size: 36px; font-size: 36px;
font-weight: 500; font-weight: 550;
} }
.arcd-info-left-phone { .arcd-info-left-phone {
position: relative; position: relative;
@ -321,6 +321,7 @@
height: 136px; height: 136px;
box-shadow: 0px 0px 9px 0px rgba(202, 214, 255, 0.49); box-shadow: 0px 0px 9px 0px rgba(202, 214, 255, 0.49);
box-sizing: border-box; box-sizing: border-box;
background: url('https://cdn.zzfzyc.com/mall/cash_back_bar.png') center center no-repeat;
.earnings_price { .earnings_price {
.earnings_title { .earnings_title {
font-size: 24px; font-size: 24px;
@ -337,9 +338,9 @@
font-weight: bold; font-weight: bold;
} }
.today_earnings { .today_earnings {
width: 159px;
height: 38px; height: 38px;
font-size: 22px; font-size: 22px;
padding: 0 10px;
background: linear-gradient(270deg, #6798ff 0%, #4581ff 100%); background: linear-gradient(270deg, #6798ff 0%, #4581ff 100%);
border-radius: 8px; border-radius: 8px;
color: #fff; color: #fff;

View File

@ -12,6 +12,7 @@ import useLogin from '@/use/useLogin'
import IconFont from '@/components/iconfont/iconfont' import IconFont from '@/components/iconfont/iconfont'
import SvgIconfont from '@/components/svgIconfont' import SvgIconfont from '@/components/svgIconfont'
import { BASE_URL, getCDNSource } from '@/common/constant' import { BASE_URL, getCDNSource } from '@/common/constant'
import { GetCashBackInfo } from '@/api/user'
export default () => { export default () => {
const userInfo = useSelector(state => state.userInfo) const userInfo = useSelector(state => state.userInfo)
@ -19,8 +20,11 @@ export default () => {
const { fetchData: ApigetTotal, state: orderState } = userorderStatistics() const { fetchData: ApigetTotal, state: orderState } = userorderStatistics()
const { getAdminUserInfo, getPhoneNumber } = useLogin() const { getAdminUserInfo, getPhoneNumber } = useLogin()
const { fetchData, state } = GetCashBackInfo()
useDidShow(() => { useDidShow(() => {
ApigetTotal() ApigetTotal()
fetchData()
getAdminUserInfo() getAdminUserInfo()
Apiassets() Apiassets()
}) })
@ -60,7 +64,7 @@ export default () => {
{ label: '地址管理', icon: 'icon-dizhiguanli', callback: () => goLink('/pages/addressManager/index') }, { label: '地址管理', icon: 'icon-dizhiguanli', callback: () => goLink('/pages/addressManager/index') },
{ label: '码单管理', icon: 'icon-mdgl', icon_status: 'local', callback: () => goLink('/pages/codeList/index') }, { label: '码单管理', icon: 'icon-mdgl', icon_status: 'local', callback: () => goLink('/pages/codeList/index') },
{ label: '色卡剪样', icon: 'icon-sekajianyanglingqu', callback: () => goLink('/pages/colorCardClipping/index') }, { label: '色卡剪样', icon: 'icon-sekajianyanglingqu', callback: () => goLink('/pages/colorCardClipping/index') },
{ label: '颜色对比', icon: 'icon-yanseduibi', callback: () => goLink('/pages/sampleComparison/index') }, // { label: '颜色对比', icon: 'icon-yanseduibi', callback: () => goLink('/pages/sampleComparison/index') },
{ label: '我的客服', icon: 'icon-wodekefu', text: '7x24小时服务', callback: () => (set_customer_service_show(true)) }, { label: '我的客服', icon: 'icon-wodekefu', text: '7x24小时服务', callback: () => (set_customer_service_show(true)) },
] ]
@ -77,7 +81,8 @@ export default () => {
} }
const integral = () => { const integral = () => {
alert.none('【积分】暂未对外开放 敬请期待') // alert.none('【积分】暂未对外开放 敬请期待')
goLink('/pages/sampleComparison/index')
} }
usePullDownRefresh(async() => { usePullDownRefresh(async() => {
@ -110,7 +115,7 @@ export default () => {
</View> </View>
<View className={styles.header_name}> <View className={styles.header_name}>
<View className={styles.header_user}> <View className={styles.header_user}>
<Text className={styles.header_user_name}>{userInfo?.adminUserInfo?.phone ? userInfo?.adminUserInfo?.user_name : '点击登录'}</Text> <Text className={styles.header_user_name}>{userInfo?.adminUserInfo?.phone ? userInfo?.adminUserInfo?.company_name : '点击登录'}</Text>
{ {
userInfo?.adminUserInfo?.is_bd && <View className={styles.header_user_label}> userInfo?.adminUserInfo?.is_bd && <View className={styles.header_user_label}>
<Image className={styles.BD_label} mode="aspectFill" src={getCDNSource('/mall/BD_label.png')}></Image> <Image className={styles.BD_label} mode="aspectFill" src={getCDNSource('/mall/BD_label.png')}></Image>
@ -120,9 +125,9 @@ export default () => {
<View className={styles['arcd-info-left-phone']}> <View className={styles['arcd-info-left-phone']}>
<View className={styles.header_title}> {userInfo?.adminUserInfo?.phone || 'Hi,欢迎来到商城'}</View> <View className={styles.header_title}> {userInfo?.adminUserInfo?.phone || 'Hi,欢迎来到商城'}</View>
</View> </View>
{!!userInfo?.adminUserInfo?.company_name && <View className={styles.header_picture} > {/* {!!userInfo?.adminUserInfo?.company_name && <View className={styles.header_picture} >
<View className={styles.icon_renzhengchenggong}><IconFont name="icon-renzhengchenggong" size={24} /></View> <View className={styles.icon_renzhengchenggong}><IconFont name="icon-renzhengchenggong" size={24} /></View>
<View className={styles.header_picture_name}>{userInfo?.adminUserInfo?.company_name}</View></View>} <View className={styles.header_picture_name}>{userInfo?.adminUserInfo?.company_name}</View></View>} */}
</View> </View>
<View className={styles.header_setting} onClick={() => goLink('/pages/userEdit/index')}> <View className={styles.header_setting} onClick={() => goLink('/pages/userEdit/index')}>
<IconFont name="icon-shezhi" size={50} /> <IconFont name="icon-shezhi" size={50} />
@ -130,12 +135,12 @@ export default () => {
</View> </View>
<View className={styles.header_count}> <View className={styles.header_count}>
<View className={styles.header_count__item} onClick={() => goLink('/pages/collection/index')}> <View className={styles.header_count__item} onClick={() => goLink('/pages/collection/index')}>
<Text>{orderState?.data?.collection_quantity || 0}</Text> <IconFont name="icon-shoucangshangpin" size={50} />
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.header_count__item} onClick={integral}> <View className={styles.header_count__item} onClick={integral}>
<Text>0</Text> <IconFont name="icon-yanseduibi1" size={50} />
<Text></Text> <Text></Text>
</View> </View>
<View className={styles.header_count__item} onClick={handleClickInviteFriends}> <View className={styles.header_count__item} onClick={handleClickInviteFriends}>
<IconFont name="icon-erweima" size={50} /> <IconFont name="icon-erweima" size={50} />
@ -182,8 +187,8 @@ export default () => {
</View> </View>
<View className={styles.earnings_con}> <View className={styles.earnings_con}>
<View className={styles.earnings_price}> <View className={styles.earnings_price}>
<Text className={styles.earnings_title}>(</Text> <Text className={styles.earnings_title}></Text>
<View className={styles.earnings_total}><Text>¥</Text> <Text className={styles.all_earnings}>20330.00</Text> <View className={styles.today_earnings}> 5000</View></View> <View className={styles.earnings_total}><Text>¥</Text> <Text className={styles.all_earnings}>{formatPriceDiv(state.data.total_income).toLocaleString()}</Text> <View className={styles.today_earnings}> {formatPriceDiv(state.data.today_income).toLocaleString()}</View></View>
</View> </View>
<View className={styles.more} onClick={() => goLink('/pages/activityIncome/index')}><Text></Text><IconFont name="icon-rukou" size={30} /></View> <View className={styles.more} onClick={() => goLink('/pages/activityIncome/index')}><Text></Text><IconFont name="icon-rukou" size={30} /></View>
</View> </View>