Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
web-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
web-ci-test
Commits
6f8be5da
提交
6f8be5da
authored
6月 12, 2023
作者:
曹云
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
ssh://git.mmcuav.cn:8222/iuav/csf-web
into feature/chuck
上级
7f71b3dd
412722ef
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
112 行增加
和
74 行删除
+112
-74
index.tsx
components/filter/compoents/typeInfo/index.tsx
+1
-1
index.tsx
...quipmentLeasing/detail/components/orderForGoods/index.tsx
+8
-7
[id].page.tsx
pages/mall/detail/[id].page.tsx
+0
-0
index.tsx
pages/mall/detail/components/intentionModal/index.tsx
+99
-62
index.tsx
pages/mall/detail/components/orderForGoods/index.tsx
+4
-4
没有找到文件。
components/filter/compoents/typeInfo/index.tsx
浏览文件 @
6f8be5da
...
...
@@ -23,7 +23,7 @@ export default function CategoryItem(props: Props) {
})
}
const
showCount
=
12
//展示数量
const
showCount
=
9
//展示数量
return
(
<
div
className=
{
styles
.
filterItem
}
>
...
...
pages/equipmentLeasing/detail/components/orderForGoods/index.tsx
浏览文件 @
6f8be5da
...
...
@@ -82,7 +82,8 @@ export default function OrderForGoods(props: PropsBox) {
if
(
res
.
code
===
'200'
)
{
message
.
success
(
'提交成功'
)
setPaymentDetail
(
res
.
result
)
setIsPaymentOpen
(
true
)
// setIsPaymentOpen(true)
setIsorderForGoods
(
false
)
}
else
{
message
.
error
(
res
.
message
)
}
...
...
@@ -340,7 +341,7 @@ export default function OrderForGoods(props: PropsBox) {
</
div
>
</
div
>
<
Modal
{
/*
<Modal
wrapClassName="Payment"
open={isPaymentOpen}
onOk={handleOkPayment}
...
...
@@ -365,7 +366,7 @@ export default function OrderForGoods(props: PropsBox) {
</div>
<div>云享飞账号: {userInfo?.uid}</div>
<div>付款方式: 可用(¥{paymentDetail?.balance})</div>
</
Modal
>
</Modal>
*/
}
<
Modal
wrapClassName=
"addAddress"
...
...
@@ -383,8 +384,8 @@ export default function OrderForGoods(props: PropsBox) {
preview=
{
{
visible
:
false
}
}
src=
{
window
.
location
.
href
.
includes
(
'https://test.iuav.shop/'
)
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal
.jpg'
||
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal1
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial1
.jpg'
||
''
}
onClick=
{
()
=>
setAddressVisible
(
true
)
}
...
...
@@ -399,8 +400,8 @@ export default function OrderForGoods(props: PropsBox) {
<
Image
src=
{
window
.
location
.
href
.
includes
(
'https://test.iuav.shop/'
)
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal
.jpg'
||
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal1
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial1
.jpg'
||
''
}
/>
...
...
pages/mall/detail/[id].page.tsx
浏览文件 @
6f8be5da
差异被折叠。
点击展开。
pages/mall/detail/components/intentionModal/index.tsx
浏览文件 @
6f8be5da
import
{
Button
,
Col
,
Image
,
message
,
Modal
,
Row
,
Space
}
from
"antd"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
errImg
from
"~/assets/errImg"
;
import
{
GetLeaseGoodsDetailResp
,
ProductSpecList
}
from
"../../api"
;
import
styles
from
"./index.module.scss"
;
import
api
from
"./api"
;
import
Item
from
"antd/es/list/Item"
;
import
{
Button
,
Col
,
Image
,
message
,
Modal
,
Row
,
Space
,
InputNumber
,
}
from
'antd'
import
{
Dispatch
,
SetStateAction
,
useEffect
,
useState
}
from
'react'
import
errImg
from
'~/assets/errImg'
import
{
GetLeaseGoodsDetailResp
,
ProductSpecList
}
from
'../../api'
import
styles
from
'./index.module.scss'
import
api
from
'./api'
import
Item
from
'antd/es/list/Item'
type
Props
=
{
open
?:
boolean
;
onOk
?:
()
=>
void
;
onCancel
:
()
=>
void
;
detail
:
GetLeaseGoodsDetailResp
|
null
;
onChange
?:
(
checkItems
:
ProductSpecList
[])
=>
void
;
};
open
?:
boolean
onOk
?:
()
=>
void
onCancel
:
()
=>
void
detail
:
GetLeaseGoodsDetailResp
|
null
setIsorderForGoods
:
Dispatch
<
SetStateAction
<
boolean
>>
setMallDetail
:
Dispatch
<
SetStateAction
<
any
>>
}
export
default
function
IntentionModal
(
props
:
Props
)
{
const
[
checkedMap
,
setCheckedMap
]
=
useState
<
{
string
?:
boolean
}
>
({});
//通过索引记录选中的产品规格 例: {'1,1': true|false} props.detail?.goodsSpec[1].productSpecList[1]
const
[
checkItems
,
setCheckItems
]
=
useState
<
ProductSpecList
[]
>
([]);
//选中的规格
const
[
loading
,
setLoading
]
=
useState
(
false
);
//下单中
const
[
checkedMap
,
setCheckedMap
]
=
useState
<
{
string
?:
boolean
}
>
({})
//通过索引记录选中的产品规格 例: {'1,1': true|false} props.detail?.goodsSpec[1].productSpecList[1]
const
[
checkItems
,
setCheckItems
]
=
useState
<
ProductSpecList
[]
>
([])
//选中的规格
const
[
loading
,
setLoading
]
=
useState
(
false
)
//下单中
const
[
numValue
,
setNumValue
]
=
useState
<
number
|
null
>
(
1
)
//数量
useEffect
(()
=>
{
let
list
:
ProductSpecList
[]
=
[]
;
let
list
:
ProductSpecList
[]
=
[]
Object
.
keys
(
checkedMap
).
forEach
((
key
)
=>
{
if
(
checkedMap
[
key
as
keyof
typeof
checkedMap
])
{
let
arr
=
key
.
split
(
","
);
let
arr
=
key
.
split
(
','
)
let
item
=
props
.
detail
?.
goodsSpec
[
Number
(
arr
[
0
])].
productSpecList
[
Number
(
arr
[
1
])
]
;
]
if
(
item
)
{
list
.
push
(
item
)
;
list
.
push
(
item
)
}
}
})
;
setCheckItems
(
list
)
;
props
.
onChange
&&
props
.
onChange
(
list
);
},
[
checkedMap
])
;
})
setCheckItems
(
list
)
setNumValue
(
1
)
},
[
checkedMap
])
//添加规格到购物车
function
addProductSpec
(
goodsSpecIndex
:
number
,
productSpecIndex
:
number
)
{
let
temp
=
{}
;
let
temp
=
{}
//@ts-ignore
temp
[
`
${
goodsSpecIndex
}
,
${
productSpecIndex
}
`
]
=
//@ts-ignore
!
checkedMap
[
`
${
goodsSpecIndex
}
,
${
productSpecIndex
}
`
]
;
!
checkedMap
[
`
${
goodsSpecIndex
}
,
${
productSpecIndex
}
`
]
setCheckedMap
({
...
checkedMap
,
...
temp
,
});
})
}
//数量
const
onChangeNum
=
(
value
:
number
|
null
)
=>
{
console
.
log
(
'changed'
,
value
)
setNumValue
(
value
)
}
//提交
function
onSubmit
()
{
let
buyNum
=
0
;
let
mallSpecIds
:
number
[]
=
[]
;
let
buyNum
=
0
let
mallSpecIds
:
number
[]
=
[]
Object
.
keys
(
checkedMap
).
forEach
((
key
)
=>
{
if
(
checkedMap
[
key
as
keyof
typeof
checkedMap
])
{
buyNum
++
;
let
arr
=
key
.
split
(
","
);
buyNum
++
let
arr
=
key
.
split
(
','
)
let
specId
=
props
.
detail
?.
goodsSpec
[
Number
(
arr
[
0
])].
productSpecList
[
Number
(
arr
[
1
])
].
id
;
].
id
if
(
specId
)
{
mallSpecIds
.
push
(
specId
)
;
mallSpecIds
.
push
(
specId
)
}
}
})
;
})
if
(
buyNum
>
0
)
{
setLoading
(
true
)
;
setLoading
(
true
)
api
.
commitMallOrder
({
buyNum
,
buyNum
:
numValue
||
1
,
directoryId
:
1
,
goodsInfoId
:
props
.
detail
!
.
id
,
mallSpecIds
,
userAddressId
:
1
,
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
"200"
)
{
message
.
success
(
"提交意向成功"
);
if
(
res
.
code
==
'200'
)
{
message
.
success
(
'提交意向成功'
)
//重置为未选中
let
temp
=
{
...
checkedMap
,
}
;
}
Object
.
keys
(
temp
).
forEach
((
key
)
=>
{
temp
[
key
as
keyof
typeof
temp
]
=
false
;
});
setCheckedMap
(
temp
);
props
.
onCancel
();
temp
[
key
as
keyof
typeof
temp
]
=
false
})
setCheckedMap
(
temp
)
props
.
onCancel
()
props
.
setIsorderForGoods
(
true
)
props
.
setMallDetail
({
...
res
.
result
,
buyNum
:
numValue
||
1
,
directoryId
:
1
,
goodsInfoId
:
props
.
detail
!
.
id
,
mallSpecIds
,
userAddressId
:
1
,
})
}
else
{
}
setLoading
(
false
)
;
setLoading
(
false
)
})
.
catch
((
err
)
=>
{
message
.
error
(
"提交意向失败"
);
console
.
log
(
"err"
,
err
);
setLoading
(
false
)
;
})
;
message
.
error
(
'提交意向失败'
)
console
.
log
(
'err'
,
err
)
setLoading
(
false
)
})
}
}
...
...
@@ -111,21 +136,20 @@ export default function IntentionModal(props: Props) {
style=
{
{
padding
:
0
}
}
className=
{
styles
.
model
}
footer=
{
<
div
style=
{
{
padding
:
"13px 36px"
}
}
>
<
div
style=
{
{
padding
:
'13px 36px'
}
}
>
<
Button
type=
"primary"
className=
{
styles
.
font5
}
style=
{
{
width
:
"100%"
,
height
:
44
}
}
style=
{
{
width
:
'100%'
,
height
:
44
}
}
onClick=
{
onSubmit
}
loading=
{
loading
}
disabled=
{
checkItems
.
length
==
0
}
>
提交意向
</
Button
>
</
div
>
}
>
<
Row
style=
{
{
padding
:
"22px 39px 12px 39px"
}
}
wrap=
{
false
}
>
<
Row
style=
{
{
padding
:
'22px 39px 12px 39px'
}
}
wrap=
{
false
}
>
<
Col
>
<
Image
width=
{
100
}
...
...
@@ -146,12 +170,12 @@ export default function IntentionModal(props: Props) {
className=
{
`${styles.font2} ${styles.ellipsis2}`
}
style=
{
{
marginTop
:
7
}
}
>
已选:
{
" "
}
已选:
{
' '
}
{
checkItems
.
map
((
item
)
=>
{
return
item
.
specName
;
return
item
.
specName
})
.
join
(
"+"
)
}
.
join
(
'+'
)
}
</
div
>
</
Col
>
</
Row
>
...
...
@@ -169,7 +193,7 @@ export default function IntentionModal(props: Props) {
>
{
item
.
goodsSpecName
}
</
div
>
<
Space
size=
{
10
}
direction=
"vertical"
style=
{
{
width
:
"100%"
}
}
>
<
Space
size=
{
10
}
direction=
"vertical"
style=
{
{
width
:
'100%'
}
}
>
{
item
.
productSpecList
?.
map
((
product
,
productSpecIndex
)
=>
{
return
(
<
Row
...
...
@@ -182,10 +206,10 @@ export default function IntentionModal(props: Props) {
border
:
checkedMap
[
`${goodsSpecIndex},${productSpecIndex}`
]
?
"1px solid #FF552D"
:
"1px solid #d6d6d6"
,
?
'1px solid #FF552D'
:
'1px solid #d6d6d6'
,
height
:
50
,
cursor
:
"pointer"
,
cursor
:
'pointer'
,
}
}
onClick=
{
()
=>
addProductSpec
(
goodsSpecIndex
,
productSpecIndex
)
...
...
@@ -207,14 +231,27 @@ export default function IntentionModal(props: Props) {
{
product
.
specName
}
</
Col
>
</
Row
>
)
;
)
})
}
</
Space
>
</
div
>
)
;
)
})
}
<
div
className=
{
styles
.
numBox
}
>
<
div
className=
{
styles
.
numLeft
}
>
<
div
className=
{
styles
.
label
}
>
数量
</
div
>
</
div
>
<
div
className=
{
styles
.
numRight
}
>
<
InputNumber
min=
{
1
}
max=
{
100
}
value=
{
numValue
}
onChange=
{
onChangeNum
}
/>
</
div
>
</
div
>
</
div
>
</
div
>
</
Modal
>
)
;
)
}
pages/mall/detail/components/orderForGoods/index.tsx
浏览文件 @
6f8be5da
...
...
@@ -283,8 +283,8 @@ export default function OrderForGoods(props: PropsBox) {
preview=
{
{
visible
:
false
}
}
src=
{
window
.
location
.
href
.
includes
(
'https://test.iuav.shop/'
)
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal
.jpg'
||
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal1
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial1
.jpg'
||
''
}
onClick=
{
()
=>
setAddressVisible
(
true
)
}
...
...
@@ -299,8 +299,8 @@ export default function OrderForGoods(props: PropsBox) {
<
Image
src=
{
window
.
location
.
href
.
includes
(
'https://test.iuav.shop/'
)
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal
.jpg'
||
?
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
formal1
.jpg'
:
'https://pad-video-x.oss-cn-shenzhen.aliyuncs.com/image/app-iuav-
trial1
.jpg'
||
''
}
/>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论