✨ 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} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -1,184 +1,182 @@
|
|||||||
.order_item{
|
.order_item {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.header{
|
.header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.user {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.name {
|
||||||
|
color: #000;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-left: 15px;
|
||||||
|
font-size: $font_size;
|
||||||
|
width: 100px;
|
||||||
|
@include common_ellipsis();
|
||||||
|
}
|
||||||
|
image {
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.order_con {
|
||||||
|
padding-left: 15px;
|
||||||
|
width: 100%;
|
||||||
|
.name {
|
||||||
|
color: #000;
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: $font_size;
|
||||||
|
}
|
||||||
|
.order_num {
|
||||||
|
flex: 1;
|
||||||
|
font-size: $font_size_medium;
|
||||||
|
color: $color_font_one;
|
||||||
|
padding-right: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.user{
|
.order_num_con {
|
||||||
display: flex;
|
flex: 1;
|
||||||
align-items: center;
|
|
||||||
.name {
|
|
||||||
color: #000;
|
|
||||||
font-weight: 700;
|
|
||||||
margin-left: 15px;
|
|
||||||
font-size: $font_size;
|
|
||||||
width: 100px;
|
|
||||||
@include common_ellipsis();
|
|
||||||
}
|
|
||||||
image{
|
|
||||||
width: 70px;
|
|
||||||
height: 70px;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.order_con {
|
.miconfont {
|
||||||
padding-left: 15px;
|
font-size: 20px;
|
||||||
width: 100%;
|
|
||||||
.name {
|
|
||||||
color: #000;
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: $font_size;
|
|
||||||
}
|
|
||||||
.order_num {
|
|
||||||
flex: 1;
|
|
||||||
font-size: $font_size_medium;
|
|
||||||
color: $color_font_one;
|
|
||||||
padding-right: 10px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-start;
|
|
||||||
align-items: center;
|
|
||||||
.order_num_con{
|
|
||||||
flex:1;
|
|
||||||
}
|
|
||||||
.miconfont {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.tag{
|
|
||||||
font-size: $font_size_min;
|
|
||||||
padding: 5px 15px;
|
|
||||||
background-color: $color_main;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 0px 20px 0px 20px;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.product_title{
|
.tag {
|
||||||
display: flex;
|
font-size: $font_size_min;
|
||||||
align-items: center;
|
padding: 5px 15px;
|
||||||
padding: 35px 0;
|
background-color: $color_main;
|
||||||
.product_tag{
|
color: #fff;
|
||||||
background-color: #CDE5FF;
|
border-radius: 0px 20px 0px 20px;
|
||||||
font-size: $font_size_min;
|
|
||||||
padding: 5px 10px;
|
|
||||||
color: $color_main;
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
.product_name{
|
|
||||||
flex:1;
|
|
||||||
font-size: $font_size;
|
|
||||||
font-weight: 700;
|
|
||||||
padding: 0 20px;
|
|
||||||
@include common_ellipsis()
|
|
||||||
}
|
|
||||||
.product_status{
|
|
||||||
font-size: $font_size;
|
|
||||||
color: $color_main;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.product_list{
|
}
|
||||||
display: flex;
|
.product_title {
|
||||||
.image{
|
display: flex;
|
||||||
width: 126px;
|
align-items: center;
|
||||||
height: 126px;
|
padding: 35px 0;
|
||||||
border-radius: 20px ;
|
.product_tag {
|
||||||
position: relative;
|
background-color: #cde5ff;
|
||||||
image{
|
font-size: $font_size_min;
|
||||||
width: 100%;
|
padding: 5px 10px;
|
||||||
height: 100%;
|
color: $color_main;
|
||||||
border-radius: 20px ;
|
border-radius: 6px;
|
||||||
}
|
|
||||||
.color_num {
|
|
||||||
background: rgba(0,0,0, 0.5);
|
|
||||||
border-radius: 36px 0px 20px 0px;
|
|
||||||
font-size: $font_size_min;
|
|
||||||
color: #fff;
|
|
||||||
position: absolute;
|
|
||||||
right:0;
|
|
||||||
bottom:0;
|
|
||||||
padding: 5px 10px 5px 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.color_list{
|
|
||||||
flex:1;
|
|
||||||
padding-left: 30px;
|
|
||||||
.color_item{
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
font-size: $font_size_min;
|
|
||||||
color: $color_font_three;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
.color_title{
|
|
||||||
font-weight: 700;
|
|
||||||
font-size: $font_size;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.color_more{
|
|
||||||
color: $color_font_three;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
.color_count_num{
|
.product_name {
|
||||||
|
flex: 1;
|
||||||
|
font-size: $font_size;
|
||||||
|
font-weight: 700;
|
||||||
|
padding: 0 20px;
|
||||||
|
@include common_ellipsis();
|
||||||
|
}
|
||||||
|
.product_status {
|
||||||
|
font-size: $font_size;
|
||||||
|
color: $color_main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.product_list {
|
||||||
|
display: flex;
|
||||||
|
.image {
|
||||||
|
width: 126px;
|
||||||
|
height: 126px;
|
||||||
|
border-radius: 20px;
|
||||||
|
position: relative;
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
.color_num {
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: 36px 0px 20px 0px;
|
||||||
font-size: $font_size_min;
|
font-size: $font_size_min;
|
||||||
color: $color_font_two;
|
color: #fff;
|
||||||
background-color: #F6F6F6;
|
position: absolute;
|
||||||
border-radius: 10px;
|
right: 0;
|
||||||
padding: 10px 22px;
|
bottom: 0;
|
||||||
margin-top: 20px;
|
padding: 5px 10px 5px 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.color_list {
|
||||||
|
flex: 1;
|
||||||
|
padding-left: 30px;
|
||||||
|
.color_item {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.refund_amount{
|
font-size: $font_size_min;
|
||||||
font-size: 30rpx;
|
color: $color_font_three;
|
||||||
color: #007AFF;
|
|
||||||
text{
|
|
||||||
&:nth-child(1) {
|
|
||||||
font-size: 23px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.order_number{
|
|
||||||
display: flex;
|
|
||||||
background-color: #F6F6F6;
|
|
||||||
padding: 20px;
|
|
||||||
margin: 20px 0;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: $font_size_medium;
|
margin-bottom: 20px;
|
||||||
border-radius: 10px;
|
.color_title {
|
||||||
text{
|
font-weight: 700;
|
||||||
&:nth-child(1) {
|
font-size: $font_size;
|
||||||
|
color: #000;
|
||||||
font-weight: 700;
|
|
||||||
color: $color_font_three;
|
|
||||||
border-right: 2px solid #CCCCCC;
|
|
||||||
padding-right: 20px;
|
|
||||||
}
|
|
||||||
&:nth-child(2) {
|
|
||||||
padding-left: 20px;
|
|
||||||
color: $color_font_one;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
.color_more {
|
||||||
.inspection{
|
color: $color_font_three;
|
||||||
height: 82px;
|
|
||||||
background-color: #F6F6F6;
|
|
||||||
border-radius: 10px;
|
|
||||||
padding: 0 20px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: #007AFF;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin: 20px 0;
|
|
||||||
font-size: 28px;
|
|
||||||
.miconfont{
|
|
||||||
font-size: 50px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
.color_count_num {
|
||||||
|
font-size: $font_size_min;
|
||||||
|
color: $color_font_two;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px 22px;
|
||||||
|
margin-top: 20px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.refund_amount {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #007aff;
|
||||||
|
text {
|
||||||
|
&:nth-child(1) {
|
||||||
|
font-size: 23px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.order_number {
|
||||||
|
display: flex;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 20px 0;
|
||||||
|
align-items: center;
|
||||||
|
font-size: $font_size_medium;
|
||||||
|
border-radius: 10px;
|
||||||
|
text {
|
||||||
|
&:nth-child(1) {
|
||||||
|
font-weight: 700;
|
||||||
|
color: $color_font_three;
|
||||||
|
border-right: 2px solid #cccccc;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
&:nth-child(2) {
|
||||||
|
padding-left: 20px;
|
||||||
|
color: $color_font_one;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.inspection {
|
||||||
|
height: 82px;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #007aff;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 20px 0;
|
||||||
|
font-size: 28px;
|
||||||
|
.miconfont {
|
||||||
|
font-size: 50px;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -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