Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-app-operator-master
Commits
6fde1c1a
Commit
6fde1c1a
authored
Sep 01, 2022
by
黄卓
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单特价申请,等待接口更新
parent
26ca5b61
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
341 additions
and
27 deletions
+341
-27
order.js
src/api/ecw/order.js
+27
-1
index.js
src/router/index.js
+14
-0
index.vue
src/views/ecw/order/index.vue
+1
-1
discount.vue
src/views/ecw/order/special/discount.vue
+269
-0
index.vue
src/views/ecw/order/special/index.vue
+30
-25
No files found.
src/api/ecw/order.js
View file @
6fde1c1a
...
...
@@ -326,3 +326,29 @@ export function getApproval(id){
method
:
'
get
'
})
}
// 特价申请
export
function
createOrderSpecial
(
data
)
{
return
request
({
url
:
'
/ecw/order/special/apply
'
,
method
:
'
put
'
,
data
:
data
})
}
// 获得订单特价申请详情
export
function
getOrderSpecial
(
offerProdId
,
type
=
1
)
{
return
request
({
url
:
'
/ecw/order/special/info/
'
+
offerProdId
+
'
/
'
+
type
,
method
:
'
get
'
})
}
// 根据订单项商品ID与审批类型获得订单商品的特价申请详情
export
function
getOrderSpecialByApproveId
(
approveId
)
{
return
request
({
url
:
'
/ecw/order/special/info?approveId=
'
+
approveId
,
method
:
'
get
'
})
}
src/router/index.js
View file @
6fde1c1a
...
...
@@ -289,6 +289,20 @@ export const constantRoutes = [
hidden
:
true
,
redirect
:
'
noredirect
'
,
children
:
[
{
path
:
'
special/:orderId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/order/special
'
),
props
:
true
,
name
:
'
order-special
'
,
meta
:
{
title
:
'
订单特价申请
'
,
icon
:
''
,
activeMenu
:
'
/order/index
'
}
},
{
path
:
'
discount/:offerProdId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/order/special/discount
'
),
props
:
true
,
name
:
'
discount
'
,
meta
:
{
title
:
'
订单优惠申请
'
,
icon
:
''
,
activeMenu
:
'
/order/index
'
}
},
{
path
:
'
associated-order/:orderId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/ecw/order/associatedOrder
'
],
resolve
),
...
...
src/views/ecw/order/index.vue
View file @
6fde1c1a
...
...
@@ -173,7 +173,7 @@
<el-button
type=
"text"
size=
"mini"
@
click=
"orderId = scope.row.orderId;isShow = true"
>
特需
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click=
"$router.push(`/order/associated-order/$
{scope.row.orderId}`)" >关联
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click=
"$router.push(`/order/mutex-order/$
{scope.row.orderId}`)" >互斥
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"$router.push('/order/special
?id=
' + scope.row.orderId)"
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"$router.push('/order/special
/
' + scope.row.orderId)"
v-hasPermi=
"['ecw:order:update']"
>
特价
</el-button>
<el-button
type=
"text"
size=
"mini"
@
click=
"$router.push(`/order/release?orderId=$
{scope.row.orderId}`)">确认放货
</el-button>
...
...
src/views/ecw/order/special/discount.vue
0 → 100644
View file @
6fde1c1a
<
template
>
<div
class=
"app-container"
>
<el-row
type=
"flex"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"16"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
v-if=
"!readonly"
>
<span>
优惠申请
</span>
</div>
<el-form
v-if=
"!readonly"
ref=
"form"
:model=
"form"
label-width=
"80px"
>
<el-form-item
label=
"商品类型"
>
<span>
{{
getProductAttrNameById
(
form
.
productType
)
}}
</span>
</el-form-item>
<el-form-item
label=
"商品名称"
>
<span>
{{
form
.
prodTitleZh
}}
</span>
</el-form-item>
<el-form-item
label=
"英文名称"
>
<span>
{{
form
.
prodTitleEn
}}
</span>
</el-form-item>
<el-form-item
label=
"线路"
>
{{
`【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)
}
】${ getChannelNameById(form.channelId)
}
从【${form.departureName
}
】发往【${form.objectiveName
}
】`
}}
<
/el-form-item
>
<
el
-
form
-
item
label
=
"
是否预付
"
>
{{
form
.
isPayAdvance
===
0
?
'
是
'
:
'
否
'
}}
<
/el-form-item
>
<
el
-
form
-
item
label
=
"
旧运费
"
>
<
el
-
input
v
-
model
=
"
form.orgSeaFreight
"
readonly
>
<
div
slot
=
"
prepend
"
style
=
"
width: 60px
"
>
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
<
/div
>
<
div
slot
=
"
append
"
style
=
"
width: 60px
"
>
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/div
>
<
/el-input
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"
旧清关费
"
>
<
el
-
input
v
-
model
=
"
form.orgClearanceFreight
"
readonly
>
<
div
slot
=
"
prepend
"
style
=
"
width: 60px
"
>
{{
currentMap
[
form
.
orgClearanceFreightCurrency
]
}}
<
/div
>
<
div
slot
=
"
append
"
style
=
"
width: 60px
"
>
{{
unitMap
[
form
.
orgClearanceFreightVolume
]
}}
<
/div
>
<
/el-input
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"
新运费
"
required
>
<
el
-
input
v
-
model
.
number
=
"
form.seaFreight
"
>
<
el
-
select
v
-
model
=
"
form.seaFreightCurrency
"
placeholder
=
"
请选择
"
slot
=
"
prepend
"
style
=
"
width: 100px
"
>
<
el
-
option
v
-
for
=
"
item in currencyList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
>
<
/el-option
>
<
/el-select
>
<
el
-
select
v
-
model
=
"
form.seaFreightVolume
"
placeholder
=
"
请选择
"
slot
=
"
append
"
style
=
"
width: 100px
"
>
<
el
-
option
v
-
for
=
"
item in unitList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
>
<
/el-option
>
<
/el-select
>
<
/el-input
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"
新清关费
"
required
>
<
el
-
input
v
-
model
.
number
=
"
form.clearanceFreight
"
>
<
el
-
select
v
-
model
=
"
form.clearanceFreightCurrency
"
placeholder
=
"
请选择
"
slot
=
"
prepend
"
style
=
"
width: 100px
"
>
<
el
-
option
v
-
for
=
"
item in currencyList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
>
<
/el-option
>
<
/el-select
>
<
el
-
select
v
-
model
=
"
form.clearanceFreightVolume
"
placeholder
=
"
请选择
"
slot
=
"
append
"
style
=
"
width: 100px
"
>
<
el
-
option
v
-
for
=
"
item in unitList
"
:
key
=
"
item.id
"
:
label
=
"
item.titleZh
"
:
value
=
"
item.id
"
>
<
/el-option
>
<
/el-select
>
<
/el-input
>
<
/el-form-item
>
<
/el-form
>
<
div
v
-
if
=
"
!readonly
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
/div
>
<
el
-
descriptions
border
v
-
if
=
"
readonly
"
:
column
=
"
1
"
>
<
el
-
descriptions
-
item
label
=
"
商品类型
"
>
{{
form
.
productType
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
商品名称
"
>
{{
form
.
prodTitleZh
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
英文名称
"
>
{{
form
.
prodTitleEn
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
线路
"
>
{{
`【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)
}
】${ getChannelNameById(form.channelId)
}
从【${form.departureName
}
】发往【${form.objectiveName
}
】`
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
是否预付
"
>
{{
form
.
isPayAdvance
===
0
?
'
是
'
:
'
否
'
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
旧运费
"
>
{{
form
.
orgSeaFreight
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
旧清关费
"
>
{{
form
.
orgClearanceFreight
}}
{{
currentMap
[
form
.
orgClearanceFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgClearanceFreightVolume
]
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
新运费
"
>
{{
form
.
seaFreight
}}
{{
currentMap
[
form
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
seaFreightVolume
]
}}
<
/el-descriptions-item
>
<
el
-
descriptions
-
item
label
=
"
新清关费
"
>
{{
form
.
clearanceFreight
}}
{{
currentMap
[
form
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
form
.
clearanceFreightVolume
]
}}
<
/el-descriptions-item
>
<
/el-descriptions
>
<
/el-card
>
<
/el-col
>
<
/el-row
>
<
/div
>
<
/template
>
<
script
>
import
{
createOrderSpecial
,
getOrderSpecial
,
getOrderSpecialByApproveId
}
from
"
@/api/ecw/order
"
import
{
DICT_TYPE
,
getDictDataLabel
}
from
"
@/utils/dict
"
import
DictSelector
from
"
@/components/DictSelector
"
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
export
default
{
name
:
"
specialDiscount
"
,
props
:
{
offerProdId
:
String
,
id
:
Number
,
readonly
:
{
type
:
Boolean
,
default
:
false
}
}
,
components
:
{
DictSelector
}
,
created
()
{
// 临时
if
(
this
.
$route
.
query
.
offerId
){
this
.
form
.
offerId
=
this
.
$route
.
query
.
offerId
-
0
// this.getOrder()
}
// 查看详情,列表进来的
if
(
this
.
offerProdId
){
this
.
form
.
offerProdId
=
this
.
offerProdId
-
0
this
.
getOrderSpecial
()
}
// 从流程查看详情
if
(
this
.
id
)
this
.
getOrderSpecialByApproveId
()
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getProductAttrList
().
then
(
res
=>
this
.
productAttrList
=
res
.
data
)
}
,
data
()
{
return
{
getDictDataLabel
,
DICT_TYPE
,
unitList
:[],
channelList
:[],
currencyList
:[],
productAttrList
:[],
form
:
{
"
abnormalState
"
:
0
,
"
applyResult
"
:
""
,
"
applyStatus
"
:
0
,
"
applyType
"
:
0
,
"
ccIds
"
:
""
,
"
channelId
"
:
0
,
"
charging
"
:
0
,
"
clearanceFreight
"
:
0
,
"
clearanceFreightCurrency
"
:
0
,
"
clearanceFreightVolume
"
:
0
,
"
commissionCurrencyId
"
:
0
,
"
commissionType
"
:
0
,
"
commission_id
"
:
0
,
"
destAddressEn
"
:
""
,
"
destAddressZh
"
:
""
,
"
destTitleEn
"
:
""
,
"
destTitleZh
"
:
""
,
"
destVolume
"
:
""
,
"
destWarehouseId
"
:
0
,
"
freight
"
:
0
,
"
freightCurrency
"
:
0
,
"
freightVolume
"
:
0
,
"
inWarehouseState
"
:
0
,
"
isPayAdvance
"
:
0
,
"
lightCommissionAmount
"
:
0
,
"
lineId
"
:
0
,
"
orderId
"
:
0
,
"
orderItemId
"
:
0
,
"
orderNo
"
:
""
,
"
orgClearanceFreight
"
:
0
,
"
orgClearanceFreightCurrency
"
:
0
,
"
orgClearanceFreightVolume
"
:
0
,
"
orgFreight
"
:
0
,
"
orgFreightCurrency
"
:
0
,
"
orgFreightVolume
"
:
0
,
"
orgVWeight
"
:
""
,
"
orgWVolume
"
:
""
,
"
prodId
"
:
0
,
"
prodTitleEn
"
:
""
,
"
prodTitleZh
"
:
""
,
"
prodType
"
:
0
,
"
shadeCommissionAmount
"
:
0
,
"
shipmentState
"
:
0
,
"
startAddressEn
"
:
""
,
"
startAddressZh
"
:
""
,
"
startTitleEn
"
:
""
,
"
startTitleZh
"
:
""
,
"
startVolume
"
:
""
,
"
startWarehouseId
"
:
0
,
"
status
"
:
0
,
"
toWarehouseState
"
:
0
,
"
transportId
"
:
0
,
"
vweight
"
:
""
,
"
wvolume
"
:
""
}
}
}
,
methods
:
{
handleSubmit
(){
createOrderSpecial
({
clearanceFreight
:
this
.
form
.
clearanceFreight
,
clearanceFreightCurrency
:
this
.
form
.
clearanceFreightCurrency
,
clearanceFreightVolume
:
this
.
form
.
clearanceFreightVolume
,
offerId
:
this
.
form
.
offerId
,
offerProdId
:
this
.
form
.
offerProdId
,
seaFreight
:
this
.
form
.
seaFreight
,
seaFreightCurrency
:
this
.
form
.
seaFreightCurrency
,
seaFreightVolume
:
this
.
form
.
seaFreightVolume
,
}
).
then
(
r
=>
{
this
.
$message
.
success
(
r
.
msg
||
'
提交成功
'
)
}
)
}
,
getOrderSpecial
(){
getOrderSpecial
(
this
.
form
.
offerProdId
).
then
(
r
=>
{
this
.
form
=
r
.
data
}
)
}
,
getOrderSpecialByApproveId
(){
getOrderSpecialByApproveId
(
this
.
id
).
then
(
r
=>
{
this
.
form
=
r
.
data
}
)
}
,
getProductAttrNameById
(
id
){
return
this
.
productAttrList
.
find
(
e
=>
e
.
id
===
id
)?.
attrName
||
''
}
}
,
computed
:
{
// 根据渠道id显示渠道名
getChannelNameById
(){
return
channelId
=>
{
const
s
=
this
.
channelList
.
find
(
item
=>
item
.
channelId
==
channelId
)
?.
nameZh
return
s
?
'
【
'
+
s
+
'
】
'
:
''
}
}
,
currentMap
(){
let
map
=
{
}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
item
.
titleZh
}
)
return
map
}
,
unitMap
(){
let
map
=
{
}
this
.
unitList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
item
.
titleZh
}
)
return
map
}
}
}
<
/script
>
<
style
scoped
>
<
/style
>
src/views/ecw/order/special/index.vue
View file @
6fde1c1a
...
...
@@ -3,11 +3,11 @@
<el-card>
<div
slot=
"header"
class=
"card-title"
>
申请特价
</div>
<!-- 列表 -->
<div
class=
"o
ff
er-header"
>
<span
style=
"font-size: 15px;"
>
订单号:
{{
o
ff
er
.
number
}}
</span>
<div
class=
"o
rd
er-header"
>
<span
style=
"font-size: 15px;"
>
订单号:
{{
o
rd
er
.
number
}}
</span>
</div>
<el-table
v-loading=
"loading"
:data=
"o
ffer.offerProdResp
VOList"
>
<el-table
v-loading=
"loading"
:data=
"o
rder.orderItem
VOList"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
></el-table-column>
<el-table-column
prop=
"prodTitleZh"
...
...
@@ -20,17 +20,22 @@
prop=
"prodAttrIds"
label=
"填单货物属性"
>
<
template
v-slot=
"{row}"
>
{{
getProductNamesByIds
(
row
.
prodAttrIds
)
}}
品牌:
{{
[
'
无牌
'
,
'
有牌
'
,
'
中性
'
][
row
.
brandType
]
}}
<br>
箱数:
{{
row
.
num
}}
<br>
体积:
{{
row
.
volume
}}
m³
<br>
重量:
{{
row
.
weight
}}
Kg
</
template
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"入库货物属性"
>
<
template
v-slot=
"{row}"
>
品牌:
{{
row
.
brand
?
'
有
'
:
'
无
'
}}
<br>
箱数:
{{
row
.
num
}}
<br>
体积:
{{
row
.
volume
}}
m³
<br>
重量:
{{
row
.
weight
}}
Kg
<template
v-if=
"row.warehouseInInfoVO"
>
品牌:
{{
[
'
无牌
'
,
'
有牌
'
,
'
中性
'
][
row
.
brandType
]
}}
<br>
箱数:
{{
row
.
warehouseInInfoVO
.
cartonsNum
}}
<br>
体积:
{{
row
.
warehouseInInfoVO
.
volume
}}
m³
<br>
重量:
{{
row
.
warehouseInInfoVO
.
weight
}}
Kg
</
template
>
</template>
</el-table-column>
<el-table-column
...
...
@@ -64,18 +69,18 @@
清关费:
{{
row
.
clearanceFreight
}}
{{
currentMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
:formatter=
"(v) => ['取消报价', '特价审批中', '需求确认(草稿)', '跟进中', '赢单', '输单', '报价完成', '审批通过', '审批拒绝'][v.status]"
label=
"审核状态"
>
</el-table-column
>
<!-- <el-table-column-->
<!-- prop="status"-->
<!-- :formatter="(v) => ['取消报价', '特价审批中', '需求确认(草稿)', '跟进中', '赢单', '输单', '报价完成', '审批通过', '审批拒绝'][v.status]"-->
<!-- label="审核状态">--
>
<!-- </el-table-column>--
>
<el-table-column
prop=
"address"
label=
"操作"
>
<
template
v-slot=
"{row}"
>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:o
ffer:update']"
@
click=
"$router.push(`/offer/discount/$
{row.offerProdId}?offerId=${row.off
erId}`)">优惠申请
</el-button>
<
!--
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:offer:update']"
>
佣金规则
</el-button>
--
>
<
!--
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:offer:update']"
>
管理折扣
</el-button>
--
>
<el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:o
rder:update']"
@
click=
"$router.push(`/order/discount/$
{row.prodId}?orderId=${row.ord
erId}`)">优惠申请
</el-button>
<
el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
>
佣金规则
</el-button
>
<
el-button
size=
"mini"
type=
"text"
v-hasPermi=
"['ecw:order:update']"
>
管理折扣
</el-button
>
</
template
>
</el-table-column>
...
...
@@ -102,7 +107,7 @@ export default {
components
:
{
},
props
:
{
o
fferId
:
String
o
rderId
:
[
String
,
Number
]
},
data
()
{
return
{
...
...
@@ -116,14 +121,14 @@ export default {
params
:{
page
:
1
,
rows
:
20
,
o
ff
erId
:
0
,
o
rd
erId
:
0
,
type
:
2
},
relationId
:
0
,
creatorName
:
'
test
'
,
o
ff
er
:
{
o
rd
er
:
{
number
:
''
,
o
fferProdResp
VOList
:
[]
o
rderItem
VOList
:
[]
},
unitList
:[],
currencyList
:[],
...
...
@@ -131,8 +136,8 @@ export default {
};
},
created
()
{
if
(
this
.
o
ff
erId
){
this
.
params
.
o
fferId
=
this
.
off
erId
if
(
this
.
o
rd
erId
){
this
.
params
.
o
rderId
=
this
.
ord
erId
this
.
getOrder
()
}
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
...
...
@@ -142,9 +147,9 @@ export default {
methods
:
{
getOrder
(){
this
.
loading
=
true
getOrder
(
this
.
o
ff
erId
).
then
(
response
=>
{
getOrder
(
this
.
o
rd
erId
).
then
(
response
=>
{
this
.
loading
=
false
this
.
o
ff
er
=
response
.
data
this
.
o
rd
er
=
response
.
data
})
},
getProductNamesByIds
(
ids
){
...
...
@@ -183,7 +188,7 @@ export default {
font-size
:
18px
;
font-weight
:
bold
;
}
.o
ff
er-header
{
.o
rd
er-header
{
padding-bottom
:
16px
;
display
:
flex
;
align-items
:
center
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment