✨ feat(完成码单):
This commit is contained in:
parent
c5cbf0d196
commit
3e688d7893
@ -65,3 +65,14 @@ export const CustomPrintCalculationApi = () => {
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除自定义码单
|
||||
* @returns
|
||||
*/
|
||||
export const DeleteCustomCodeApi = () => {
|
||||
return useRequest({
|
||||
url: '/v1/mall/customPrint',
|
||||
method: 'delete',
|
||||
})
|
||||
}
|
||||
|
||||
@ -21,4 +21,8 @@
|
||||
margin-right: 24px;
|
||||
}
|
||||
}
|
||||
.del_btn {
|
||||
color: #e9546aff;
|
||||
border: 1px solid #e9546aff;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,15 +1,17 @@
|
||||
import { View } from '@tarojs/components'
|
||||
import classNames from 'classnames'
|
||||
import styles from './index.module.scss'
|
||||
|
||||
export type BottomItem = 'del'|'preview'|'save'
|
||||
interface Param {
|
||||
onClick?: (val: BottomItem) => void
|
||||
delStatus: boolean
|
||||
}
|
||||
export default (props: Param) => {
|
||||
const { onClick } = props
|
||||
const { onClick, delStatus } = props
|
||||
return <View>
|
||||
<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?.('save')}>保存码单</View>
|
||||
</View>
|
||||
|
||||
@ -73,7 +73,7 @@ const Index = memo((props: IndexParam) => {
|
||||
}
|
||||
}, [colorInfo])
|
||||
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} />
|
||||
</View>
|
||||
})
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
.product_title {
|
||||
margin-right: 8px;
|
||||
@include common_ellipsis();
|
||||
width: 380px;
|
||||
max-width: 380px;
|
||||
}
|
||||
.mode_status {
|
||||
width: 60px;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
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 PayeeHead from '../payeeHead'
|
||||
import type { CompanyItem } from '../payeeHead'
|
||||
@ -10,7 +10,7 @@ import ProductSetting from '../productSetting'
|
||||
import ColorSetting from '../colorSetting'
|
||||
import styles from './index.module.scss'
|
||||
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 { useCurrenCode } from '@/context/ContextCodeSetting'
|
||||
import { alert } from '@/common/common'
|
||||
@ -125,6 +125,9 @@ export default () => {
|
||||
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}>
|
||||
<View className={styles.code_list__head}>
|
||||
<PayeeHead defaultValue={company} onSelect={getCompany} />
|
||||
@ -203,7 +226,7 @@ export default () => {
|
||||
</View>
|
||||
</View>
|
||||
</View>}
|
||||
<BottomBtn onClick={onBottomClick} />
|
||||
<BottomBtn delStatus={!!productData.custom_print_id} onClick={onBottomClick} />
|
||||
<View className="common_safe_area_y"></View>
|
||||
</View>
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import type { adjustType } from '@/common/enum'
|
||||
|
||||
interface Param {
|
||||
codeItem: any
|
||||
settingColorStatus?: boolean
|
||||
}
|
||||
|
||||
type IndexParam = {
|
||||
@ -20,7 +21,7 @@ type IndexParam = {
|
||||
} & Param
|
||||
|
||||
export default (props: Param) => {
|
||||
const { codeItem } = props
|
||||
const { codeItem, settingColorStatus = false } = props
|
||||
const { dispatch, productData } = useCurrenCode()
|
||||
const index = codeItem.index_str.split('_')
|
||||
const getNewName = useCallback((name) => {
|
||||
@ -36,9 +37,7 @@ export default (props: Param) => {
|
||||
dispatch({ type: 'updateColorData', data: { ...productData.color_item_data } })
|
||||
}
|
||||
}, [codeItem])
|
||||
const settingColorStatus = useMemo(() => {
|
||||
return !!productData.color_item_data
|
||||
}, [productData.color_item_data])
|
||||
|
||||
return <>
|
||||
<Index codeItem={codeItem} onChange={getNewName} adjust_type={productData.adjust_type} settingColorStatus={settingColorStatus} />
|
||||
</>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
.order_item{
|
||||
.order_item {
|
||||
background-color: #fff;
|
||||
border-radius: 20px;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
.header{
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.user{
|
||||
.user {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.name {
|
||||
@ -17,7 +17,7 @@
|
||||
width: 100px;
|
||||
@include common_ellipsis();
|
||||
}
|
||||
image{
|
||||
image {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 50%;
|
||||
@ -39,15 +39,15 @@
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
.order_num_con{
|
||||
flex:1;
|
||||
.order_num_con {
|
||||
flex: 1;
|
||||
}
|
||||
.miconfont {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.tag{
|
||||
.tag {
|
||||
font-size: $font_size_min;
|
||||
padding: 5px 15px;
|
||||
background-color: $color_main;
|
||||
@ -55,108 +55,106 @@
|
||||
border-radius: 0px 20px 0px 20px;
|
||||
}
|
||||
}
|
||||
.product_title{
|
||||
.product_title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 35px 0;
|
||||
.product_tag{
|
||||
background-color: #CDE5FF;
|
||||
.product_tag {
|
||||
background-color: #cde5ff;
|
||||
font-size: $font_size_min;
|
||||
padding: 5px 10px;
|
||||
color: $color_main;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.product_name{
|
||||
flex:1;
|
||||
.product_name {
|
||||
flex: 1;
|
||||
font-size: $font_size;
|
||||
font-weight: 700;
|
||||
padding: 0 20px;
|
||||
@include common_ellipsis()
|
||||
@include common_ellipsis();
|
||||
}
|
||||
.product_status{
|
||||
.product_status {
|
||||
font-size: $font_size;
|
||||
color: $color_main;
|
||||
}
|
||||
}
|
||||
.product_list{
|
||||
.product_list {
|
||||
display: flex;
|
||||
.image{
|
||||
.image {
|
||||
width: 126px;
|
||||
height: 126px;
|
||||
border-radius: 20px ;
|
||||
border-radius: 20px;
|
||||
position: relative;
|
||||
image{
|
||||
image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 20px ;
|
||||
border-radius: 20px;
|
||||
}
|
||||
.color_num {
|
||||
background: rgba(0,0,0, 0.5);
|
||||
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;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
padding: 5px 10px 5px 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
.color_list{
|
||||
flex:1;
|
||||
.color_list {
|
||||
flex: 1;
|
||||
padding-left: 30px;
|
||||
.color_item{
|
||||
.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{
|
||||
.color_title {
|
||||
font-weight: 700;
|
||||
font-size: $font_size;
|
||||
color: #000;
|
||||
}
|
||||
.color_more{
|
||||
.color_more {
|
||||
color: $color_font_three;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.color_count_num{
|
||||
.color_count_num {
|
||||
font-size: $font_size_min;
|
||||
color: $color_font_two;
|
||||
background-color: #F6F6F6;
|
||||
background-color: #f6f6f6;
|
||||
border-radius: 10px;
|
||||
padding: 10px 22px;
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.refund_amount{
|
||||
.refund_amount {
|
||||
font-size: 30rpx;
|
||||
color: #007AFF;
|
||||
text{
|
||||
color: #007aff;
|
||||
text {
|
||||
&:nth-child(1) {
|
||||
font-size: 23px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.order_number{
|
||||
.order_number {
|
||||
display: flex;
|
||||
background-color: #F6F6F6;
|
||||
background-color: #f6f6f6;
|
||||
padding: 20px;
|
||||
margin: 20px 0;
|
||||
align-items: center;
|
||||
font-size: $font_size_medium;
|
||||
border-radius: 10px;
|
||||
text{
|
||||
text {
|
||||
&:nth-child(1) {
|
||||
|
||||
font-weight: 700;
|
||||
color: $color_font_three;
|
||||
border-right: 2px solid #CCCCCC;
|
||||
border-right: 2px solid #cccccc;
|
||||
padding-right: 20px;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
@ -165,18 +163,18 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.inspection{
|
||||
.inspection {
|
||||
height: 82px;
|
||||
background-color: #F6F6F6;
|
||||
background-color: #f6f6f6;
|
||||
border-radius: 10px;
|
||||
padding: 0 20px;
|
||||
box-sizing: border-box;
|
||||
color: #007AFF;
|
||||
color: #007aff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin: 20px 0;
|
||||
font-size: 28px;
|
||||
.miconfont{
|
||||
.miconfont {
|
||||
font-size: 50px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ export default function counter(state = INIT_USER, action: Action) {
|
||||
case 'setColorData':
|
||||
return { ...state, color_item_data: JSON.parse(JSON.stringify(data)) }
|
||||
case 'updateColorData':
|
||||
return { ...state, color_item_data: data }
|
||||
return onUpdateColorData(state, action)
|
||||
case 'setPurchaserFormTitle':
|
||||
return onUpdatePurchaserFormTitle(state, action)
|
||||
default:
|
||||
@ -203,3 +203,9 @@ const onUpdatePurchaserFormTitle = (state, action) => {
|
||||
state.admin_data.purchaser_form_title_id = data.id
|
||||
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