✨ feat(完成码单):
This commit is contained in:
parent
c5cbf0d196
commit
3e688d7893
@ -65,3 +65,14 @@ export const CustomPrintCalculationApi = () => {
|
|||||||
method: 'post',
|
method: 'post',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除自定义码单
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const DeleteCustomCodeApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: '/v1/mall/customPrint',
|
||||||
|
method: 'delete',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -21,4 +21,8 @@
|
|||||||
margin-right: 24px;
|
margin-right: 24px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.del_btn {
|
||||||
|
color: #e9546aff;
|
||||||
|
border: 1px solid #e9546aff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,17 @@
|
|||||||
import { View } from '@tarojs/components'
|
import { View } from '@tarojs/components'
|
||||||
|
import classNames from 'classnames'
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
|
|
||||||
export type BottomItem = 'del'|'preview'|'save'
|
export type BottomItem = 'del'|'preview'|'save'
|
||||||
interface Param {
|
interface Param {
|
||||||
onClick?: (val: BottomItem) => void
|
onClick?: (val: BottomItem) => void
|
||||||
|
delStatus: boolean
|
||||||
}
|
}
|
||||||
export default (props: Param) => {
|
export default (props: Param) => {
|
||||||
const { onClick } = props
|
const { onClick, delStatus } = props
|
||||||
return <View>
|
return <View>
|
||||||
<View className={styles.bottom_btn}>
|
<View className={styles.bottom_btn}>
|
||||||
<View className={styles.bottom_btn_item} onClick={() => onClick?.('del')}>删除码单</View>
|
{delStatus && <View className={classNames(styles.bottom_btn_item, styles.del_btn)} onClick={() => onClick?.('del')}>删除码单</View>}
|
||||||
<View className={styles.bottom_btn_item} onClick={() => onClick?.('preview')}>预览码单</View>
|
<View className={styles.bottom_btn_item} onClick={() => onClick?.('preview')}>预览码单</View>
|
||||||
<View className={styles.bottom_btn_item} onClick={() => onClick?.('save')}>保存码单</View>
|
<View className={styles.bottom_btn_item} onClick={() => onClick?.('save')}>保存码单</View>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@ -73,7 +73,7 @@ const Index = memo((props: IndexParam) => {
|
|||||||
}
|
}
|
||||||
}, [colorInfo])
|
}, [colorInfo])
|
||||||
return <View className={styles['product_list__item--con']}>
|
return <View className={styles['product_list__item--con']}>
|
||||||
<ProductItem codeItem={colorInfo} />
|
<ProductItem codeItem={colorInfo} settingColorStatus />
|
||||||
<SettingNumber sale_mode={colorInfo.sale_mode} onNumber={getNumber} defaultValue={defaultNum} />
|
<SettingNumber sale_mode={colorInfo.sale_mode} onNumber={getNumber} defaultValue={defaultNum} />
|
||||||
</View>
|
</View>
|
||||||
})
|
})
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
.product_title {
|
.product_title {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
@include common_ellipsis();
|
@include common_ellipsis();
|
||||||
width: 380px;
|
max-width: 380px;
|
||||||
}
|
}
|
||||||
.mode_status {
|
.mode_status {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Text, View } from '@tarojs/components'
|
import { Text, View } from '@tarojs/components'
|
||||||
import { useDidShow, useRouter } from '@tarojs/taro'
|
import Taro, { useDidShow, useRouter } from '@tarojs/taro'
|
||||||
import { useCallback, useEffect, useMemo, useRef, useState, useTransition } from 'react'
|
import { useCallback, useEffect, useMemo, useRef, useState, useTransition } from 'react'
|
||||||
import PayeeHead from '../payeeHead'
|
import PayeeHead from '../payeeHead'
|
||||||
import type { CompanyItem } from '../payeeHead'
|
import type { CompanyItem } from '../payeeHead'
|
||||||
@ -10,7 +10,7 @@ import ProductSetting from '../productSetting'
|
|||||||
import ColorSetting from '../colorSetting'
|
import ColorSetting from '../colorSetting'
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import SelectList from '@/components/selectList'
|
import SelectList from '@/components/selectList'
|
||||||
import { CreateCustomCodeApi, CustomPrintCalculationApi, GetCustomCodeDetailApi, GetCustomCodeInitApi, UpdateCustomCodeApi } from '@/api/codeManage'
|
import { CreateCustomCodeApi, CustomPrintCalculationApi, DeleteCustomCodeApi, GetCustomCodeDetailApi, GetCustomCodeInitApi, UpdateCustomCodeApi } from '@/api/codeManage'
|
||||||
import { formatPriceDiv, formatWeightDiv } from '@/common/fotmat'
|
import { formatPriceDiv, formatWeightDiv } from '@/common/fotmat'
|
||||||
import { useCurrenCode } from '@/context/ContextCodeSetting'
|
import { useCurrenCode } from '@/context/ContextCodeSetting'
|
||||||
import { alert } from '@/common/common'
|
import { alert } from '@/common/common'
|
||||||
@ -125,6 +125,9 @@ export default () => {
|
|||||||
alert.success('保存成功!')
|
alert.success('保存成功!')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (type === 'del') {
|
||||||
|
deleteCode()
|
||||||
|
}
|
||||||
})()
|
})()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,6 +158,26 @@ export default () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 删除码单
|
||||||
|
const { fetchData: delFetchData } = DeleteCustomCodeApi()
|
||||||
|
const deleteCode = async() => {
|
||||||
|
Taro.showModal({
|
||||||
|
title: '确定删除该码单?',
|
||||||
|
async success(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
const res = await delFetchData({ id: submit_ids.current.custom_print_id })
|
||||||
|
if (res.success) {
|
||||||
|
alert.success('删除成功')
|
||||||
|
Taro.navigateBack()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return <View className={styles.code_list__main}>
|
return <View className={styles.code_list__main}>
|
||||||
<View className={styles.code_list__head}>
|
<View className={styles.code_list__head}>
|
||||||
<PayeeHead defaultValue={company} onSelect={getCompany} />
|
<PayeeHead defaultValue={company} onSelect={getCompany} />
|
||||||
@ -203,7 +226,7 @@ export default () => {
|
|||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</View>}
|
</View>}
|
||||||
<BottomBtn onClick={onBottomClick} />
|
<BottomBtn delStatus={!!productData.custom_print_id} onClick={onBottomClick} />
|
||||||
<View className="common_safe_area_y"></View>
|
<View className="common_safe_area_y"></View>
|
||||||
</View>
|
</View>
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import type { adjustType } from '@/common/enum'
|
|||||||
|
|
||||||
interface Param {
|
interface Param {
|
||||||
codeItem: any
|
codeItem: any
|
||||||
|
settingColorStatus?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type IndexParam = {
|
type IndexParam = {
|
||||||
@ -20,7 +21,7 @@ type IndexParam = {
|
|||||||
} & Param
|
} & Param
|
||||||
|
|
||||||
export default (props: Param) => {
|
export default (props: Param) => {
|
||||||
const { codeItem } = props
|
const { codeItem, settingColorStatus = false } = props
|
||||||
const { dispatch, productData } = useCurrenCode()
|
const { dispatch, productData } = useCurrenCode()
|
||||||
const index = codeItem.index_str.split('_')
|
const index = codeItem.index_str.split('_')
|
||||||
const getNewName = useCallback((name) => {
|
const getNewName = useCallback((name) => {
|
||||||
@ -36,9 +37,7 @@ export default (props: Param) => {
|
|||||||
dispatch({ type: 'updateColorData', data: { ...productData.color_item_data } })
|
dispatch({ type: 'updateColorData', data: { ...productData.color_item_data } })
|
||||||
}
|
}
|
||||||
}, [codeItem])
|
}, [codeItem])
|
||||||
const settingColorStatus = useMemo(() => {
|
|
||||||
return !!productData.color_item_data
|
|
||||||
}, [productData.color_item_data])
|
|
||||||
return <>
|
return <>
|
||||||
<Index codeItem={codeItem} onChange={getNewName} adjust_type={productData.adjust_type} settingColorStatus={settingColorStatus} />
|
<Index codeItem={codeItem} onChange={getNewName} adjust_type={productData.adjust_type} settingColorStatus={settingColorStatus} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -60,7 +60,7 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 35px 0;
|
padding: 35px 0;
|
||||||
.product_tag {
|
.product_tag {
|
||||||
background-color: #CDE5FF;
|
background-color: #cde5ff;
|
||||||
font-size: $font_size_min;
|
font-size: $font_size_min;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
color: $color_main;
|
color: $color_main;
|
||||||
@ -71,7 +71,7 @@
|
|||||||
font-size: $font_size;
|
font-size: $font_size;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
@include common_ellipsis()
|
@include common_ellipsis();
|
||||||
}
|
}
|
||||||
.product_status {
|
.product_status {
|
||||||
font-size: $font_size;
|
font-size: $font_size;
|
||||||
@ -122,12 +122,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.color_count_num {
|
.color_count_num {
|
||||||
font-size: $font_size_min;
|
font-size: $font_size_min;
|
||||||
color: $color_font_two;
|
color: $color_font_two;
|
||||||
background-color: #F6F6F6;
|
background-color: #f6f6f6;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 10px 22px;
|
padding: 10px 22px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
@ -135,7 +134,7 @@
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.refund_amount {
|
.refund_amount {
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #007AFF;
|
color: #007aff;
|
||||||
text {
|
text {
|
||||||
&:nth-child(1) {
|
&:nth-child(1) {
|
||||||
font-size: 23px;
|
font-size: 23px;
|
||||||
@ -145,7 +144,7 @@
|
|||||||
}
|
}
|
||||||
.order_number {
|
.order_number {
|
||||||
display: flex;
|
display: flex;
|
||||||
background-color: #F6F6F6;
|
background-color: #f6f6f6;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -153,10 +152,9 @@
|
|||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
text {
|
text {
|
||||||
&:nth-child(1) {
|
&:nth-child(1) {
|
||||||
|
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: $color_font_three;
|
color: $color_font_three;
|
||||||
border-right: 2px solid #CCCCCC;
|
border-right: 2px solid #cccccc;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
}
|
}
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
@ -167,11 +165,11 @@
|
|||||||
}
|
}
|
||||||
.inspection {
|
.inspection {
|
||||||
height: 82px;
|
height: 82px;
|
||||||
background-color: #F6F6F6;
|
background-color: #f6f6f6;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
color: #007AFF;
|
color: #007aff;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
|
|||||||
@ -72,7 +72,7 @@ export default function counter(state = INIT_USER, action: Action) {
|
|||||||
case 'setColorData':
|
case 'setColorData':
|
||||||
return { ...state, color_item_data: JSON.parse(JSON.stringify(data)) }
|
return { ...state, color_item_data: JSON.parse(JSON.stringify(data)) }
|
||||||
case 'updateColorData':
|
case 'updateColorData':
|
||||||
return { ...state, color_item_data: data }
|
return onUpdateColorData(state, action)
|
||||||
case 'setPurchaserFormTitle':
|
case 'setPurchaserFormTitle':
|
||||||
return onUpdatePurchaserFormTitle(state, action)
|
return onUpdatePurchaserFormTitle(state, action)
|
||||||
default:
|
default:
|
||||||
@ -203,3 +203,9 @@ const onUpdatePurchaserFormTitle = (state, action) => {
|
|||||||
state.admin_data.purchaser_form_title_id = data.id
|
state.admin_data.purchaser_form_title_id = data.id
|
||||||
return { ...state, purchaser_form_title: data }
|
return { ...state, purchaser_form_title: data }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 修改颜色数据
|
||||||
|
const onUpdateColorData = (state, action: Action) => {
|
||||||
|
const { data, update_status } = action
|
||||||
|
return { ...state, color_item_data: data, update_status }
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user