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
5a884623
Commit
5a884623
authored
Sep 22, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完善bug和预订舱计划,报价单特价申请等
parent
a64ed272
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
534 additions
and
139 deletions
+534
-139
futureBox.js
src/api/ecw/futureBox.js
+25
-0
offer.js
src/api/ecw/offer.js
+18
-0
index.vue
src/components/ChooseContactDialog/index.vue
+1
-1
index.vue
src/components/SupplierSelector/index.vue
+2
-1
index.js
src/i18n/index.js
+11
-1
index.js
src/store/index.js
+1
-1
cache.js
src/utils/cache.js
+9
-0
dict.js
src/utils/dict.js
+1
-0
detail.vue
src/views/bpm/processInstance/detail.vue
+2
-2
indexFutureBox.vue
src/views/ecw/box/indexFutureBox.vue
+149
-51
index.vue
src/views/ecw/customerCommission/index.vue
+3
-0
Commossion.vue
src/views/ecw/offer/components/Commossion.vue
+183
-0
specialDiscount.vue
src/views/ecw/offer/components/specialDiscount.vue
+7
-3
index.vue
src/views/ecw/offer/index.vue
+31
-17
special.vue
src/views/ecw/offer/special.vue
+9
-5
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+2
-2
Release.vue
src/views/ecw/order/components/Release.vue
+7
-1
TransferCargo.vue
src/views/ecw/order/components/TransferCargo.vue
+3
-1
detail.vue
src/views/ecw/order/detail.vue
+3
-3
edit.vue
src/views/ecw/order/edit.vue
+34
-21
release.vue
src/views/ecw/order/release.vue
+4
-3
edit.vue
src/views/ecw/productPrice/edit.vue
+24
-24
index.vue
src/views/ecw/productPrice/index.vue
+4
-1
index.vue
src/views/ecw/supplier/index.vue
+1
-1
No files found.
src/api/ecw/futureBox.js
View file @
5a884623
...
...
@@ -52,3 +52,28 @@ export function exportFutureBoxExcel(query) {
responseType
:
'
blob
'
})
}
// 根据运输方式ID得到已封柜方数
export
function
getBoxedVolume
(
params
){
return
request
({
url
:
'
/ecw/future-box/getBoxedVolume
'
,
method
:
'
get
'
,
params
})
}
// 根据运输方式ID得到待入仓方数
export
function
getToBeWareHousedVolume
(
params
){
return
request
({
url
:
'
/ecw/future-box/getToBeWareHousedVolume
'
,
method
:
'
get
'
,
params
})
}
// 根据运输方式ID得到已入仓方数
export
function
getWareHousedVolume
(
params
){
return
request
({
url
:
'
/ecw/future-box/getWareHousedVolume
'
,
method
:
'
get
'
,
params
})
}
\ No newline at end of file
src/api/ecw/offer.js
View file @
5a884623
...
...
@@ -106,3 +106,21 @@ export function getOfferSpecialByApproveId(approveId) {
})
}
// 取消报价管理
export
function
cancel
(
id
)
{
return
request
({
url
:
'
/ecw/offer/cancel
'
,
method
:
'
delete
'
,
params
:
{
id
}
})
}
// 恢复取消的报价管理
export
function
recovery
(
id
)
{
return
request
({
url
:
'
/ecw/offer/recovery
'
,
method
:
'
delete
'
,
params
:
{
id
}
})
}
\ No newline at end of file
src/components/ChooseContactDialog/index.vue
View file @
5a884623
...
...
@@ -55,7 +55,7 @@ export default {
},
methods
:{
handleQuery
(){
//
this.form.pageNo = 1
this
.
form
.
pageNo
=
1
this
.
loadList
()
},
loadList
(){
...
...
src/components/SupplierSelector/index.vue
View file @
5a884623
...
...
@@ -57,7 +57,8 @@ export default {
},
remoteMethod
(
keyword
){
let
params
=
{
pageSize
:
100
pageSize
:
500
,
companyType
:
this
.
companyType
}
params
.
keyword
=
keyword
this
.
loading
=
true
...
...
src/i18n/index.js
View file @
5a884623
...
...
@@ -12,10 +12,20 @@ const i18n = new VueI18n({
}
})
console
.
log
({
i18n
})
/*
用法
$l('title') => titleZh
$l(item, 'title') => item.titleZh
$l(null, 'title') => titleZh
$l() => Zh
*/
Vue
.
prototype
.
$l
=
(
object
,
field
=
''
)
=>
{
let
prefix
=
i18n
.
locale
.
split
(
'
_
'
)[
0
]
let
append
=
prefix
.
charAt
(
0
).
toUpperCase
()
+
prefix
.
toLowerCase
().
substr
(
1
)
// 如果object是null则返回字段名
if
(
typeof
object
==
'
string
'
){
return
object
+
append
}
// 如果object是null或者字符串则返回字段名
if
(
!
object
)
return
field
+
append
return
object
[
field
+
append
]
||
object
[
field
]
...
...
src/store/index.js
View file @
5a884623
...
...
@@ -17,7 +17,7 @@ const store = new Vuex.Store({
tagsView
,
permission
,
settings
,
dict
dict
,
},
getters
})
...
...
src/utils/cache.js
0 → 100644
View file @
5a884623
import
store
from
'
../store
'
export
default
{
getChannels
(){
if
(
!
store
.
state
.
cache
.
channelList
){
store
.
dispatch
(
'
cache/getChannelList
'
)
}
return
store
.
state
.
cache
.
channelList
}
}
\ No newline at end of file
src/utils/dict.js
View file @
5a884623
...
...
@@ -110,6 +110,7 @@ export const DICT_TYPE = {
ECW_RELEASE_STATUS
:
'
release_status
'
,
// 放货状态
ECW_PICK_RECURRENT_NUCLEAR_TYPE
:
'
PICK_RECURRENT_NUCLEAR_TYPE
'
,
// 放货反复核类型
ECW_COST_FEE_TYPE
:
'
cost_fee_type
'
,
// 清单费用类型
ECW_PRICE_AUDIT_STATUS
:
'
price_audit_status
'
,
// 路线价格审核状态
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
src/views/bpm/processInstance/detail.vue
View file @
5a884623
...
...
@@ -131,7 +131,7 @@ import {approveTask, getTaskListByProcessInstanceId, rejectTask, updateTaskAssig
import
{
getDate
}
from
"
@/utils/dateUtils
"
;
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
;
import
{
getActivityList
}
from
"
@/api/bpm/activity
"
;
import
specialDetail
from
"
@/views/ecw/offer/components/s
pecialDetail
"
import
SpecialDetail
from
"
@/views/ecw/offer/components/S
pecialDetail
"
import
warehouseDetails
from
"
@/views/ecw/order/components/warehouseDetails
"
;
import
shippingDetail
from
'
@/views/ecw/box/shippingDetail
'
import
SplitDetail
from
'
@/views/ecw/order/components/SplitDetail
'
...
...
@@ -142,7 +142,7 @@ export default {
name
:
"
ProcessInstanceDetail
"
,
components
:
{
Parser
,
s
pecialDetail
,
S
pecialDetail
,
warehouseDetails
,
shippingDetail
,
SplitDetail
,
...
...
src/views/ecw/box/indexFutureBox.vue
View file @
5a884623
This diff is collapsed.
Click to expand it.
src/views/ecw/customerCommission/index.vue
View file @
5a884623
...
...
@@ -194,6 +194,9 @@ export default {
},
},
created
()
{
if
(
this
.
$route
.
query
.
customerId
){
this
.
queryParams
.
customerId
=
this
.
$route
.
query
.
customerId
}
this
.
getList
();
getTradeCityList
().
then
(
res
=>
{
this
.
tradeCityList
=
res
.
data
...
...
src/views/ecw/offer/components/Commossion.vue
0 → 100644
View file @
5a884623
<
template
>
<el-dialog
visible
:close-on-click-modal=
"false"
:before-close=
"closeDialog"
:title=
"$t('佣金规则申请')"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
:rules=
"rules"
>
<el-form-item
:label=
"$t('商品类型')"
>
<span>
{{
getProductAttrNameById
(
form
.
productType
)
}}
</span>
</el-form-item>
<el-form-item
:label=
"$t('商品名称')"
>
<span>
{{
form
.
prodTitleZh
}}
</span>
</el-form-item>
<el-form-item
:label=
"$t('英文名称')"
>
<span>
{{
form
.
prodTitleEn
}}
</span>
</el-form-item>
<el-form-item
:label=
"$t('线路')"
>
{{
`【${getDictDataLabel(DICT_TYPE.TRANSPORT_TYPE, form.transportId)
}
】${ getChannelNameById(form.channelId)
}
从【${form.departureName
}
】发往【${form.objectiveName
}
】`
}}
<
/el-form-item
>
<
el
-
row
v
-
if
=
"
!form.charging
"
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
:
label
=
"
$t('运费')
"
>
{{
form
.
orgSeaFreight
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/el-form-item
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
:
label
=
"
$t('清关费')
"
>
{{
form
.
orgClearanceFreight
}}
{{
currentMap
[
form
.
orgClearanceFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgClearanceFreightVolume
]
}}
<
/el-form-item
>
<
/el-col
>
<
/el-row
>
<
el
-
form
-
item
:
label
=
"
$t('全包价')
"
v
-
if
=
"
form.charging
"
>
{{
form
.
orgSeaFreight
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('佣金类型')
"
prop
=
"
commissionType
"
>
<
dict
-
selector
:
type
=
"
DICT_TYPE.COMMISSION_TYPE
"
v
-
model
=
"
form.commissionType
"
form
-
type
=
"
radio
"
/>
<
/el-form-item
>
<!--
明佣或者明佣
+
暗佣才显示
-->
<
el
-
form
-
item
label
=
"
明佣佣金
"
v
-
if
=
"
form.commissionType == 1 || form.commissionType == 3
"
>
<
el
-
input
v
-
model
.
number
=
"
form.lightCommissionAmount
"
placeholder
=
""
class
=
"
w-100
"
><
/el-input
>
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/el-form-item
>
<!--
明佣
+
暗佣才显示
-->
<
el
-
form
-
item
label
=
"
暗佣佣金
"
v
-
if
=
"
form.commissionType == 3
"
>
<
el
-
input
v
-
model
.
number
=
"
form.shadeCommissionAmount
"
placeholder
=
""
class
=
"
w-100
"
><
/el-input
>
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/el-form-item
>
<!--
无佣金不显示
-->
<
div
class
=
"
pl-50
"
v
-
if
=
"
form.commissionType != 0
"
>
<
div
>
{{
$l
(
form
,
'
prodTitle
'
)
}}
<
/div
>
<!--
明佣
+
暗佣显示
-->
<
div
v
-
if
=
"
form.commissionType == 3
"
>
成本价:
{{
form
.
orgSeaFreight
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/div
>
<!--
暗佣显示
-->
<
div
v
-
if
=
"
form.commissionType == 2
"
>
暗佣:
// TODO
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
el
-
link
type
=
"
primary
"
@
click
.
native
=
"
$router.push('/customer/customerCommission?customerId=' + customerId)
"
>
去设置
<
/el-link
>
<
/div
>
<
div
v
-
if
=
"
form.commissionType == 1 || form.commissionType == 3
"
>
销售价:
{{
form
.
orgSeaFreight
+
form
.
shadeCommissionAmount
+
form
.
lightCommissionAmount
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/div
>
<
div
v
-
if
=
"
form.commissionType == 3
"
>
实际佣金返点:
{{
form
.
shadeCommissionAmount
+
form
.
lightCommissionAmount
}}
{{
currentMap
[
form
.
orgSeaFreightCurrency
]
}}
/
{{
unitMap
[
form
.
orgSeaFreightVolume
]
}}
<
/div
>
<
/div
>
<
/el-form
>
<
div
class
=
"
page-title
"
>
审批流程
<
/div
>
<
work
-
flow
xmlkey
=
"
sheet_sale
"
v
-
model
=
"
ccIdArr
"
/>
<
div
v
-
if
=
"
!form.applyStatus
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.APPLY_STATUS
"
:
value
=
"
form.applyStatus
"
/>
<
/el-button
>
<
/div
>
<
/el-dialog
>
<
/template
>
<
script
>
import
{
createOfferSpecial
,
getOfferSpecial
,
getOfferSpecialByApproveId
}
from
"
@/api/ecw/offer
"
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
'
import
WorkFlow
from
'
@/components/WorkFlow
'
export
default
{
name
:
"
Commossion
"
,
props
:
{
offerProdId
:
Number
,
customerId
:
Number
}
,
components
:
{
DictSelector
,
WorkFlow
}
,
created
()
{
// 查看详情,列表进来的
if
(
this
.
offerProdId
){
this
.
getOfferSpecial
()
}
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
:[],
ccIdArr
:
[],
form
:
{
type
:
2
}
,
rules
:{
commissionType
:
{
required
:
true
,
message
:
'
请选择佣金类型
'
}
,
}
}
}
,
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
]
=
this
.
$l
(
item
,
'
title
'
)
}
)
return
map
}
,
unitMap
(){
let
map
=
{
}
this
.
unitList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
'
title
'
)
}
)
return
map
}
,
}
,
watch
:{
ccIdArr
(){
this
.
$set
(
this
.
form
,
'
ccIds
'
,
this
.
ccIdArr
.
join
(
'
,
'
))
}
,
'
form.commissionType
'
(
val
){
this
.
$set
(
this
.
form
,
'
lightCommissionAmount
'
,
0
)
this
.
$set
(
this
.
form
,
'
shadeCommissionAmount
'
,
0
)
}
}
,
methods
:
{
handleSubmit
(){
this
.
$refs
.
form
.
validate
().
then
(
res
=>
{
// 接口运费不能为空,所以这里提交了运费字段
createOfferSpecial
(
Object
.
assign
({
clearanceFreight
:
this
.
form
.
orgClearanceFreight
,
seaFreight
:
this
.
form
.
orgSeaFreight
}
,
this
.
form
,
{
type
:
2
}
)).
then
(
res
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
提交成功
'
))
this
.
$emit
(
'
success
'
)
}
)
}
)
}
,
getOfferSpecial
(){
getOfferSpecial
(
this
.
offerProdId
,
{
type
:
2
}
).
then
(
r
=>
{
this
.
form
=
r
.
data
}
)
}
,
getProductAttrNameById
(
id
){
return
this
.
productAttrList
.
find
(
e
=>
e
.
id
===
id
)?.
attrName
||
''
}
,
closeDialog
(){
this
.
$emit
(
'
close
'
)
}
}
}
<
/script
>
src/views/ecw/offer/components/specialDiscount.vue
View file @
5a884623
...
...
@@ -55,9 +55,14 @@
<
/el-form
>
<
div
class
=
"
page-title
"
>
审批流程
<
/div
>
<
work
-
flow
xmlkey
=
"
sheet_sale
"
v
-
model
=
"
ccIdArr
"
/>
<
div
>
<
div
v
-
if
=
"
!form.applyStatus
"
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
handleSubmit
"
>
提交
<
/el-button
>
<
/div
>
<
div
v
-
else
>
<
el
-
button
type
=
"
primary
"
@
click
=
"
$router.push('/bpm/process-instance/detail?id=' + form.formId)
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.APPLY_STATUS
"
:
value
=
"
form.applyStatus
"
/>
<
/el-button
>
<
/div
>
<
/el-dialog
>
<
/template
>
...
...
@@ -116,10 +121,9 @@ export default {
methods
:
{
handleSubmit
(){
this
.
$refs
.
form
.
validate
().
then
(
res
=>
{
console
.
log
(
this
.
form
.
type
)
createOfferSpecial
(
Object
.
assign
({
}
,
this
.
form
,
{
type
:
1
}
)).
then
(
res
=>
{
this
.
$message
.
success
(
this
.
$t
(
'
提交成功
'
))
this
.
$emit
(
'
success
'
)
}
)
}
)
}
,
...
...
src/views/ecw/offer/index.vue
View file @
5a884623
...
...
@@ -3,14 +3,12 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-form-item
:label=
"$t('编号')"
prop=
"number"
>
<el-input
v-model=
"queryParams.number"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<!--// TODO -->
<el-form-item
:label=
"$t('编号')"
prop=
"searchNumber"
>
<el-input
v-model=
"queryParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户')"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<!--// TODO -->
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
prop=
"orderNo"
>
...
...
@@ -30,19 +28,17 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('运输方式')"
prop=
"
orderNo
"
>
<el-form-item
:label=
"$t('运输方式')"
prop=
"
transportId
"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
/>
</el-form-item>
<el-form-item
:label=
"$t('商品')"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.product"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<!--// TODO -->
<el-form-item
:label=
"$t('商品')"
prop=
"prodTitle"
>
<el-input
v-model=
"queryParams.prodTitle"
:placeholder=
"$t('请输入商品类型、品名或品牌')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('控货')"
prop=
"control"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model=
"queryParams.control"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"orderNo"
>
<user-selector
v-model=
"queryParams.salesman"
/>
<!--// TODO -->
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUpSalesmanId"
>
<user-selector
v-model=
"queryParams.followUpSalesmanId"
/>
</el-form-item>
<el-form-item
:label=
"$t('销售阶段')"
prop=
"status"
>
<dict-selector
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
v-model=
"queryParams.status"
/>
...
...
@@ -130,9 +126,9 @@
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('logList?offerId=' + scope.row.offerId)
"
v
-
if
=
"
[1,3].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
跟进
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push(`result?offerId=${scope.row.offerId
}
&number=${scope.row.number
}
`)
"
v
-
if
=
"
[3].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
结果
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('/offer/special?offerId=' + scope.row.offerId)
"
v
-
if
=
"
[3].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
特价
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$alert('// TODO'
)
"
v
-
if
=
"
[1,3].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$alert('// TODO'
)
"
v
-
if
=
"
[0].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
恢复
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$alert('// TODO'
)
"
v
-
if
=
"
[1,2,3,4,5,6].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:delete']
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
cancel(scope.row.offerId
)
"
v
-
if
=
"
[1,3].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
取消
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
recovery(scope.row.offerId
)
"
v
-
if
=
"
[0].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
'
恢复
'
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
deleteOffer(scope.row.offerId
)
"
v
-
if
=
"
[1,2,3,4,5,6].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:delete']
"
>
{{
$t
(
'
删除
'
)
}}
<
/el-dropdown-item
>
<
/el-dropdown-menu
>
<
/el-dropdown
>
...
...
@@ -184,7 +180,7 @@
<
/template
>
<
script
>
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
}
from
"
@/api/ecw/offer
"
;
import
{
deleteOffer
,
getOfferPage
,
exportOfferExcel
,
cancel
,
recovery
}
from
"
@/api/ecw/offer
"
;
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
;
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
UserSelector
from
'
@/components/UserSelector
'
...
...
@@ -342,6 +338,24 @@ export default {
this
.
$download
.
excel
(
response
,
'
${table.classComment
}
.xls
'
);
this
.
exportLoading
=
false
;
}
).
catch
(()
=>
{
}
);
}
,
cancel
(
id
){
this
.
doAction
(
'
确定要取消此报价单么?
'
,
cancel
,
id
);
}
,
recovery
(
id
){
this
.
doAction
(
'
确定要恢复此报价单么?
'
,
recovery
,
id
);
}
,
deleteOffer
(
id
){
this
.
doAction
(
'
确定要删除此报价单么?
'
,
deleteOffer
,
id
);
}
,
doAction
(
tips
,
action
,
id
){
this
.
$confirm
(
tips
).
then
(
res
=>
{
return
action
(
id
)
}
)
.
then
(()
=>
{
this
.
$message
.
success
(
'
操作成功
'
)
this
.
handleQuery
()
}
)
}
}
}
;
...
...
src/views/ecw/offer/special.vue
View file @
5a884623
...
...
@@ -72,7 +72,7 @@
:label=
"$t('操作')"
>
<
template
v-slot=
"{row}"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"showOfferProdId=row.offerProdId"
>
{{
$t
(
'
优惠申请
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"
$alert('// TODO')
"
>
{{
$t
(
'
佣金规则
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"
showCommissionProdId=row.offerProdId
"
>
{{
$t
(
'
佣金规则
'
)
}}
</el-button>
</
template
>
</el-table-column>
...
...
@@ -83,7 +83,8 @@
<el-button type="primary">申请泡货优惠</el-button>
<el-button type="primary">关闭窗口</el-button>
</div> -->
<special-discount
v-if=
"showOfferProdId"
:offerProdId=
"showOfferProdId"
@
close=
"showOfferProdId=null"
@
success=
"onSuccess"
/>
<special-discount
v-if=
"showOfferProdId"
:offerProdId=
"showOfferProdId"
@
close=
"showOfferProdId=null"
@
success=
"onSuccess"
/>
<commossion
v-if=
"showCommissionProdId"
:offerProdId=
"showCommissionProdId"
:customer-id=
"offer.relationId"
@
close=
"showCommissionProdId=null"
@
success=
"onSuccess"
/>
</el-card>
</div>
</template>
...
...
@@ -97,11 +98,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr"
import
{
parseTime
}
from
'
@/utils/ruoyi
'
import
{
listByIds
}
from
'
@/api/ecw/region
'
import
{
getChannel
}
from
'
@/api/ecw/channel
'
import
specialDiscount
from
'
@/views/ecw/offer/components/specialDiscount
'
import
SpecialDiscount
from
'
@/views/ecw/offer/components/SpecialDiscount
'
import
Commossion
from
'
@/views/ecw/offer/components/Commossion
'
export
default
{
name
:
"
OfferSpecial
"
,
components
:
{
specialDiscount
SpecialDiscount
,
Commossion
},
props
:
{
offerId
:
String
...
...
@@ -133,7 +136,8 @@ export default {
objective
:
null
,
departure
:
null
,
channel
:
null
,
// 渠道信息
showOfferProdId
:
null
// 显示申请优惠的产品id
showOfferProdId
:
null
,
// 显示申请优惠的产品id
showCommissionProdId
:
null
,
// 修改佣金规则的产品ID
};
},
watch
:{
...
...
src/views/ecw/order/cargoControl.vue
View file @
5a884623
...
...
@@ -139,7 +139,7 @@
<transfer
v-if=
"showTransferOrder"
v-bind=
"showTransferOrder"
@
close=
"showTransferOrder=null"
/>
<release
v-if=
"showReleaseOrderId"
:order-id=
"showReleaseOrderId"
@
close=
"showReleaseOrderId=null"
@
success=
"onReleaseSuccess"
/>
<transfer-cargo
v-if=
"showTransferCargoOrderId"
:order-id=
"showTransferCargoOrderId"
@
close=
"showTransferCargoOrderId=null"
@
success=
"on
Re
ansferCargoSuccess"
/>
<transfer-cargo
v-if=
"showTransferCargoOrderId"
:order-id=
"showTransferCargoOrderId"
@
close=
"showTransferCargoOrderId=null"
@
success=
"on
Tr
ansferCargoSuccess"
/>
<fallback
v-if=
"showFallbackOrder !== null"
:order=
"showFallbackOrder"
@
close=
"showFallbackOrder=null"
@
success=
"onFallbackSuccess"
:index=
"null"
/>
</div>
</template>
...
...
@@ -296,7 +296,7 @@ export default {
this
.
showFallbackOrder
=
null
this
.
handleQuery
()
},
on
Re
ansferCargoSuccess
(){
on
Tr
ansferCargoSuccess
(){
this
.
showTransferCargoOrderId
=
null
this
.
handleQuery
()
}
...
...
src/views/ecw/order/components/Release.vue
View file @
5a884623
...
...
@@ -142,7 +142,13 @@ export default {
},
methods
:{
loadData
(){
getRleaseInfo
(
this
.
orderId
).
then
(
res
=>
this
.
detail
=
res
.
data
)
getRleaseInfo
(
this
.
orderId
).
then
(
res
=>
{
this
.
detail
=
res
.
data
this
.
$set
(
this
.
formData
,
'
consigneeName
'
,
res
.
data
.
consigneeName
)
this
.
$set
(
this
.
formData
,
'
consigneeCountryCode
'
,
'
+
'
+
res
.
data
.
consigneeCountryCode
)
this
.
$set
(
this
.
formData
,
'
consigneePhone
'
,
res
.
data
.
consigneePhone
)
this
.
$set
(
this
.
formData
,
'
consigneeEmail
'
,
res
.
data
.
consigneeEmail
)
})
},
closeDialog
(){
this
.
show
=
false
...
...
src/views/ecw/order/components/TransferCargo.vue
View file @
5a884623
...
...
@@ -24,7 +24,9 @@
<el-table
:data=
"selectedOrders"
border
>
<el-table-column
:label=
"$t('订单号')"
>
{{
detail
.
orderNo
}}
<template
slot-scope=
"
{row}">
{{
row
.
orderNo
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('目的地')"
>
<
template
slot-scope=
"{row}"
>
...
...
src/views/ecw/order/detail.vue
View file @
5a884623
...
...
@@ -128,15 +128,15 @@
<template
v-if=
"row.charging ==1"
>
<template
v-if=
"!row.seaFreight"
>
未报价
</
template
>
<
template
>
{{
$t
(
'
全包价
'
)
}}
{{
row
.
s
eaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</
template
>
<
template
>
{{
$t
(
'
全包价
'
)
}}
{{
row
.
oneS
eaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</
template
>
</template>
<
template
v-else-if=
"!row.seaFreight && !row.clearanceFreight"
>
未报价
</
template
>
<
template
v-else
>
<div>
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
s
eaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
oneS
eaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div>
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
c
learanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
oneC
learanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
</
template
>
</template>
...
...
src/views/ecw/order/edit.vue
View file @
5a884623
...
...
@@ -93,8 +93,8 @@
<el-card
class=
"mt-10"
>
<div
slot=
"header"
class=
"card-title"
>
<div
class=
"card-name"
>
{{$t('商品信息')}}
</div>
<el-button
type=
"primary"
size=
"mini"
@
click=
"addProduct(null)"
:disabled=
"!
form.lineId
"
>
{{$t('添加货物')}}
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"showBatchImportDialog=true"
:disabled=
"!
form.lineId
"
>
{{$t('批量添加货物')}}
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"addProduct(null)"
:disabled=
"!
canAddProduct
"
>
{{$t('添加货物')}}
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"showBatchImportDialog=true"
:disabled=
"!
canAddProduct
"
>
{{$t('批量添加货物')}}
</el-button>
</div>
<el-table
:data=
"form.orderItemVOList"
border
class=
"product-list"
>
<el-table-column
:label=
"$t('序号')"
width=
"60px"
fixed
>
...
...
@@ -111,13 +111,13 @@
}"
class="mb-0 mr-0"
>
<product-selector
v-model=
"scope.row.prodId"
@
change=
"onProductChange(scope.row, $event)"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<product-selector
v-model=
"scope.row.prodId"
@
change=
"onProductChange(scope.row, $event)"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('英文品名')"
width=
"160px"
>
<
template
slot-scope=
"scope"
>
<product-selector
lang=
"En"
v-model=
"scope.row.prodId"
@
change=
"onProductChange(scope.row, $event)"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<product-selector
lang=
"En"
v-model=
"scope.row.prodId"
@
change=
"onProductChange(scope.row, $event)"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<!-- <el-table-column label="商品类型" width="160px">
...
...
@@ -135,33 +135,33 @@
}"
class="mb-0 mr-0"
>
<dict-selector
v-model=
"scope.row.brandType"
:type=
"DICT_TYPE.ECW_IS_BRAND"
defaultable
:disabled=
"!
form.lineId
|| !productEditable"
/>
<dict-selector
v-model=
"scope.row.brandType"
:type=
"DICT_TYPE.ECW_IS_BRAND"
defaultable
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('件数')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model.number=
"row.num"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<el-input
v-model.number=
"row.num"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('包装单位')"
>
<
template
slot-scope=
"{row}"
>
<dict-selector
v-model=
"row.unit"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
defaultable
:disabled=
"!
form.lineId
|| !productEditable"
/>
<dict-selector
v-model=
"row.unit"
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
defaultable
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('数量') + '(个)'"
width=
"120px"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.quantity"
type=
"number"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<el-input
v-model=
"row.quantity"
type=
"number"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总体积') + '(m³)'"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.volume"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<el-input
v-model=
"row.volume"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总重量') + '(kg)'"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.weight"
:disabled=
"!
form.lineId
|| !productEditable"
/>
<el-input
v-model=
"row.weight"
:disabled=
"!
canAddProduct
|| !productEditable"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('总货值') + '(RMB)'"
width=
"100px"
>
...
...
@@ -173,13 +173,13 @@
}"
class="mb-0 mr-0"
>
<el-input
v-model=
"scope.row.worth"
:disabled=
"!
form.lineId
"
@
input=
"calculationPrice"
/>
<el-input
v-model=
"scope.row.worth"
:disabled=
"!
canAddProduct
"
@
input=
"calculationPrice"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('商品特性')"
width=
"250px"
>
<
template
slot-scope=
"{row}"
>
<el-checkbox-group
v-model=
"row.prodAttrArr"
@
change=
"onProductAttrChange(row, $event)"
:disabled=
"!
form.lineId
|| !productEditable"
>
<el-checkbox-group
v-model=
"row.prodAttrArr"
@
change=
"onProductAttrChange(row, $event)"
:disabled=
"!
canAddProduct
|| !productEditable"
>
<el-checkbox
v-for=
"item in productAttrList"
:label=
"item.id"
:key=
"item.id"
>
{{
$l
(
item
,
'
attrName
'
)
}}
</el-checkbox>
</el-checkbox-group>
</
template
>
...
...
@@ -415,15 +415,12 @@
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('航空公司')"
>
<!--待查询备选数据-->
<el-select
placeholder=
""
v-model=
"form.airlineCompany"
>
</el-select>
<supplier-selector
v-model=
"form.airlineCompany"
company-type=
"10"
/>
</el-form-item>
</div>
<div
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('船公司')"
>
<el-select
placeholder=
""
v-model=
"form.shippingCompany"
>
</el-select>
<supplier-selector
v-model=
"form.shippingCompany"
company-type=
"9"
/>
</el-form-item>
</div>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
...
...
@@ -520,14 +517,14 @@ import AreaCodeSelector from '@/components/AreaCodeSelector'
import
ChooseContactDialog
from
'
@/components/ChooseContactDialog
'
import
QuickCreateCustomer
from
'
@/components/QuickCreateCustomer
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
SupplierSelector
from
'
@/components/SupplierSelector
'
// 缓存默认的表单数据
let
defaultFormData
=
null
export
default
{
name
:
"
EcwOrderEdit
"
,
components
:
{
ProductSelector
,
Selector
,
CustomerContactSelector
,
AreaSelector
,
FileUpload
,
AreaCodeSelector
,
ChooseContactDialog
,
QuickCreateCustomer
ProductSelector
,
Selector
,
CustomerContactSelector
,
AreaSelector
,
FileUpload
,
AreaCodeSelector
,
ChooseContactDialog
,
QuickCreateCustomer
,
SupplierSelector
},
data
()
{
return
{
...
...
@@ -689,6 +686,17 @@ export default {
routeOtherServices
(){
if
(
!
this
.
selectedRouter
||
!
this
.
selectedRouter
.
otherService
)
return
[]
return
this
.
selectedRouter
.
otherService
.
split
(
'
,
'
)
},
// 是否可以添加商品
canAddProduct
(){
if
(
!
this
.
form
.
lineId
){
return
false
}
// 如果是海空联运或者空运专线则必须选择渠道
if
(
this
.
transport
&&
this
.
transport
.
cssClass
==
'
channel
'
&&
!
this
.
form
.
channelId
){
return
false
}
return
true
}
},
watch
:{
...
...
@@ -797,8 +805,13 @@ export default {
let
form
=
new
FormData
()
form
.
append
(
'
file
'
,
e
.
file
)
orderImport
(
form
).
then
(
res
=>
{
if
(
!
this
.
importList
.
length
){
return
this
.
$message
.
error
(
'
无有效数据
'
)
}
this
.
importList
=
res
.
data
.
list
this
.
$set
(
this
.
form
,
'
packingListUrl
'
,
res
.
data
.
packingListUrl
)
})
},
addToProductList
(){
...
...
@@ -831,7 +844,7 @@ export default {
this
.
$set
(
row
,
'
link
'
,
value
)
})
},
onFileChoosed
(
e
){
/*
onFileChoosed(e){
window.choosed = e
console.log('onFileChoosed', e)
...
...
@@ -845,7 +858,7 @@ export default {
window.zzexcel = zzexcel
window.tableJson = xlsx.utils.sheet_to_json(zzexcel.Sheets[zzexcel.SheetNames[0]])
}
},
},
*/
onProductChange
(
row
,
product
){
console
.
log
(
product
)
// row.goodsType = product ? product.typeId : null
...
...
src/views/ecw/order/release.vue
View file @
5a884623
...
...
@@ -48,7 +48,8 @@
</div>
</template>
<
script
>
import
{
getOrder
,
createOrderPickup
}
from
'
@/api/ecw/order
'
import
{
getOrder
}
from
'
@/api/ecw/order
'
import
{
create
}
from
'
@/api/ecw/orderPickup
'
import
ImageUpload
from
'
@/components/ImageUpload
'
export
default
{
components
:
{
ImageUpload
},
...
...
@@ -69,10 +70,10 @@ export default {
})
},
submit
(){
create
OrderPickup
(
Object
.
assign
({
orderId
:
this
.
order
.
orderNo
},
this
.
form
)).
then
(
res
=>
{
create
(
Object
.
assign
({
orderId
:
this
.
order
.
orderNo
},
this
.
form
)).
then
(
res
=>
{
return
this
.
$alert
(
res
.
message
||
this
.
$t
(
'
操作成功
'
))
}).
then
(
res
=>
{
this
.
$
router
.
back
(
)
this
.
$
store
.
dispatch
(
'
tagsView/delCurrentView
'
)
})
}
}
...
...
src/views/ecw/productPrice/edit.vue
View file @
5a884623
This diff is collapsed.
Click to expand it.
src/views/ecw/productPrice/index.vue
View file @
5a884623
...
...
@@ -48,7 +48,10 @@
</el-select>
</el-form-item>
<el-form-item
:label=
"$t('状态')"
prop=
"destCityId"
v-if=
"!$route.query.product_id"
>
<el-form-item
:label=
"$t('审核状态')"
prop=
"auditStatus"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRICE_AUDIT_STATUS"
v-model=
"queryParams.auditStatus"
/>
</el-form-item>
<el-form-item
:label=
"$t('状态')"
prop=
"status"
>
// TODO
</el-form-item>
...
...
src/views/ecw/supplier/index.vue
View file @
5a884623
...
...
@@ -44,7 +44,7 @@
<el-option
v-for=
"dict in this.getDictDatas('company_type')"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select-->
<dict-selector
:type=
"DICT_TYPE.COMPANY_TYPE"
v-model=
"queryParams.companyType"
/>
<dict-selector
:type=
"DICT_TYPE.
ECW_
COMPANY_TYPE"
v-model=
"queryParams.companyType"
/>
</el-form-item>
<el-form-item
:label=
"$t('合作类型')"
prop=
"cooperationType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_COOPERATION_TYPE"
v-model=
"queryParams.cooperationType"
/>
...
...
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