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
f3197757
Commit
f3197757
authored
Oct 12, 2022
by
dcy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
95ef0c58
d337293c
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
762 additions
and
72 deletions
+762
-72
.gitignore
.gitignore
+1
-1
collectI18nMessages.js
collectI18nMessages.js
+3
-2
ProcessDesigner.vue
.../bpmnProcessDesigner/package/designer/ProcessDesigner.vue
+5
-0
copy.vue
src/views/bpm/task/copy.vue
+3
-3
done.vue
src/views/bpm/task/done.vue
+2
-2
creatPayment.vue
src/views/ecw/financial/creatPayment.vue
+3
-3
paymentDetail.vue
src/views/ecw/financial/paymentDetail.vue
+605
-0
paymentVoucher.vue
src/views/ecw/financial/paymentVoucher.vue
+12
-4
voucher.vue
src/views/ecw/financial/voucher.vue
+5
-5
edit.vue
src/views/ecw/offer/edit.vue
+1
-0
edit.vue
src/views/ecw/order/edit.vue
+51
-27
prepayDeal.vue
src/views/ecw/order/prepayDeal.vue
+41
-12
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+25
-10
index.vue
src/views/ecw/order/warehousing/index.vue
+5
-3
No files found.
.gitignore
View file @
f3197757
...
...
@@ -10,7 +10,7 @@ tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# 提取的需要翻译的文件列表
messages.txt
i18n-
messages.txt
# Editor directories and files
.idea
.vscode
...
...
collectI18nMessages.js
View file @
f3197757
...
...
@@ -2,6 +2,7 @@ const fs = require('fs');
const
root
=
"
./src
"
let
allFiles
=
[]
function
getFiles
(
dir
){
let
files
=
fs
.
readdirSync
(
dir
)
files
.
forEach
(
file
=>
{
...
...
@@ -16,12 +17,12 @@ getFiles(root)
let
messages
=
new
Set
()
allFiles
.
forEach
(
file
=>
{
let
data
=
fs
.
readFileSync
(
file
,
{
encoding
:
'
utf-8
'
})
let
matched
=
data
.
matchAll
(
/
\$
t
\([\'\"]{1}([^\"\']
+
)[\'\"]{1}
\)
/g
)
let
matched
=
data
.
matchAll
(
/
\$
t
\([\'\"]{1}([^\"\']
+
)[\'\"]{1}
/g
)
let
i
=
0
for
(
let
item
of
matched
){
i
++
messages
.
add
(
item
[
1
])
}
})
fs
.
writeFileSync
(
"
./messages.txt
"
,
Array
.
from
(
messages
).
join
(
"
\n
"
))
fs
.
writeFileSync
(
"
./
i18n-
messages.txt
"
,
Array
.
from
(
messages
).
join
(
"
\n
"
))
console
.
log
(
"
done!
"
)
\ No newline at end of file
src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
View file @
f3197757
...
...
@@ -478,3 +478,8 @@ export default {
}
};
</
script
>
<
style
scoped
>
.my-process-designer
{
height
:
calc
(
100vh
-
84px
-
40px
);
}
</
style
>
src/views/bpm/task/copy.vue
View file @
f3197757
...
...
@@ -11,8 +11,8 @@
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"
流程
名称"
prop=
"processName"
>
<el-input
v-model=
"queryParams.processName"
placeholder=
"请输入
流程
名称"
clearable
/>
<el-form-item
label=
"
任务
名称"
prop=
"processName"
>
<el-input
v-model=
"queryParams.processName"
placeholder=
"请输入
任务
名称"
clearable
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
...
...
@@ -32,7 +32,7 @@
<dict-tag
:type=
"DICT_TYPE.BPM_MODEL_CATEGORY"
:value=
"scope.row.categoryId"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"
流程
名称"
align=
"center"
prop=
"processName"
/>
<el-table-column
label=
"
任务
名称"
align=
"center"
prop=
"processName"
/>
<el-table-column
label=
"流程发起人"
align=
"center"
prop=
"originatorName"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
...
...
src/views/bpm/task/done.vue
View file @
f3197757
...
...
@@ -2,8 +2,8 @@
<div
class=
"app-container"
>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
:label=
"$t('
流程名
')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入
流程名
')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-form-item
:label=
"$t('
任务名称
')"
prop=
"name"
>
<el-input
v-model=
"queryParams.name"
:placeholder=
"$t('请输入
任务名称
')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
...
...
src/views/ecw/financial/creatPayment.vue
View file @
f3197757
...
...
@@ -196,7 +196,7 @@
</el-table-column>
<el-table-column
label=
"价税合计(RMB)"
align=
"center"
prop=
"total"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
total
=
(
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
+
(
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
*
(
scope
.
row
.
taxRate
/
100
)
}}
</span>
<span>
{{
scope
.
row
.
total
=
(
(
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
+
(
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
*
(
scope
.
row
.
taxRate
/
100
)).
toFixed
(
6
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -247,7 +247,7 @@
</el-card>
<div
slot=
"footer"
style=
"margin: 20px 0"
>
<!-- <el-button type="primary" @click="submitDraft">保 存</el-button> -->
<el-button
type=
"primary"
@
click=
"submitForm"
>
新 增
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{id==0?'新 增':'编 辑'}}
</el-button>
</div>
<el-dialog
:visible.sync=
"open"
...
...
@@ -542,7 +542,7 @@ export default {
const
index
=
sums
.
length
-
1
sums
[
index
-
1
]
=
'
价税合计大写
'
const
t
=
data
.
map
(
v
=>
v
.
total
).
reduce
((
prev
,
curr
)
=>
{
return
p
rev
+
curr
;
return
p
arseFloat
(
prev
)
+
parseFloat
(
curr
)
;
},
0
)
sums
[
index
]
=
this
.
convertCurrency
(
t
)
return
sums
;
...
...
src/views/ecw/financial/paymentDetail.vue
0 → 100644
View file @
f3197757
<
template
>
<div
class=
"app-container"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
付款单详情
</div>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
label-position=
"left"
>
<el-descriptions
:column=
"3"
class=
"card"
border
>
<el-descriptions-item
label=
"供应商"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"supplierId"
>
<!--
<customer-selector
v-model=
"form.supplierId"
@
change=
"consignor = $event"
/>
-->
<el-select
v-model=
"form.supplierId"
placeholder=
"请选择供应商"
disabled
>
<el-option
v-for=
"supplier in allSupplier"
:key=
"supplier.id"
:label=
"supplier.companyZh"
:value=
"supplier.id"
></el-option>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"部门"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"departmentId"
>
<el-select
v-model=
"form.departmentId"
style=
"width: 300px"
disabled
>
<el-option
v-for=
"item in deptData"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"业务员"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"salesmanName"
>
<el-select
v-model=
"form.salesmanName"
disabled
>
<el-option
v-for=
"item in creatorData"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.nickname"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"申请日期"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"applicationAt"
>
<el-date-picker
clearable
v-model=
"form.applicationAt"
value-format=
"yyyy-MM-dd"
format=
"yyyy-MM-dd"
type=
"date"
disabled
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"供应商银行账号"
style=
"width: 50%"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"supplierBankAccount"
>
<el-select
v-model=
"form.supplierBankAccount"
disabled
>
<el-option
v-for=
"item in bankData"
:key=
"item.id"
:label=
"item.bankName + '(' + item.bankAccount+ ')'"
:value=
"item.bankAccount"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"3"
class=
"card"
border
>
<el-descriptions-item
label=
"最后付款日期"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"latestPayAt"
>
<el-date-picker
clearable
v-model=
"form.latestPayAt"
value-format=
"yyyy-MM-dd"
format=
"yyyy-MM-dd"
type=
"date"
disabled
/>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"结算方式"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"settlementType"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_BALANCE"
v-model=
"form.settlementType"
/>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
费用信息
</div>
<el-table
v-loading=
"loadings"
:data=
"list"
border
:show-summary=
"!!list.length"
:summary-method=
"getSummaries"
>
<el-table-column
label=
"自编号"
align=
"center"
prop=
"payableNo"
/>
<el-table-column
label=
"费用类型"
align=
"center"
prop=
"feeType"
>
<template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.FEE_TYPE"
:value=
"scope.row.feeType"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"发票号码"
align=
"center"
prop=
"invoiceNumber"
/>
<el-table-column
label=
"应付金额"
align=
"center"
prop=
"totalAmount"
/>
<el-table-column
label=
"币种"
align=
"center"
prop=
"currencyId"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPPING_PRICE_UNIT"
:value=
"scope.row.currencyId"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"汇率"
align=
"center"
prop=
"exchangeRate"
/>
<el-table-column
label=
"税率%"
align=
"center"
prop=
"taxRate"
/>
<el-table-column
label=
"价税合计(RMB)"
align=
"center"
prop=
"total"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
total
=
((
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
+
(
scope
.
row
.
totalAmount
*
scope
.
row
.
exchangeRate
)
*
(
scope
.
row
.
taxRate
/
100
)).
toFixed
(
6
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
<el-form
ref=
"forms"
:model=
"form"
label-width=
"120px"
label-position=
"left"
style=
"width: 50%"
>
<el-descriptions
:column=
"1"
class=
"card"
border
>
<el-descriptions-item
label=
"账单号"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
required
error=
"账单号不能为空"
prop=
"accountNumber"
>
<el-input
v-model=
"form.accountNumber"
disabled
></el-input>
</el-form-item>
</el-descriptions-item>
<el-descriptions-item
label=
"发票"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"invoiceStatus"
>
<el-select
v-model=
"form.invoiceStatus"
disabled
>
<el-option
label=
"未开票"
value=
"0"
/>
<el-option
label=
"已开票"
value=
"1"
/>
</el-select>
</el-form-item>
</el-descriptions-item>
</el-descriptions>
</el-form>
</el-card>
<div
slot=
"footer"
style=
"margin: 20px 0"
>
<!-- <el-button type="primary" @click="submitDraft">保 存</el-button> -->
<el-button
type=
"primary"
@
click=
"$store.dispatch('tagsView/delCurrentView')"
>
返回
</el-button>
</div>
</div>
</template>
<
script
>
import
{
listSimpleUsers
}
from
"
@/api/system/user
"
;
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
;
import
{
getToken
}
from
"
@/utils/auth
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
CustomerSelector
from
"
@/components/CustomerSelector
"
;
import
{
listSimpleDepts
}
from
"
@/api/system/dept
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getSupplierPage
,
getSupplier
}
from
"
@/api/ecw/supplier
"
;
import
{
getPayableList
,
getPayableInfoByIds
,
createPayment
,
getPaymentInfoByIds
,
getPaymentItem
,
updatePayment
}
from
"
@/api/ecw/financial
"
import
{
getCurrencyPage
}
from
"
@/api/ecw/currency
"
;
import
NP
from
'
number-precision
'
export
default
{
name
:
"
CreatPayment
"
,
components
:
{
CustomerSelector
},
data
()
{
return
{
id
:
0
,
payableId
:
0
,
orderData
:
[],
total
:
0
,
loadings
:
false
,
open
:
false
,
form
:
{},
creatorData
:
[],
list
:
[],
defaultList
:
[],
channelList
:
[],
loading
:
""
,
bankData
:
[],
params
:
{
page
:
1
,
rows
:
20
,
},
deptData
:
[],
deptArr
:
[],
queryParams
:
{
page
:
1
,
rows
:
20
,
},
multipleSelection
:
[],
tradeCityList
:
[],
allSupplier
:
[],
currencyList
:
[],
};
},
async
created
()
{
await
getCurrencyPage
(
this
.
params
).
then
(
res
=>
this
.
currencyList
=
res
.
data
.
list
)
let
that
=
this
;
if
(
that
.
$route
.
query
.
payableId
&&
that
.
$route
.
query
.
payableId
!==
'
0
'
)
{
this
.
payableId
=
this
.
$route
.
query
.
payableId
;
getPayableInfoByIds
({
id
:
this
.
payableId
}).
then
(
res
=>
{
this
.
list
=
[{...
res
.
data
}]
this
.
$set
(
this
.
form
,
'
supplierId
'
,
res
.
data
.
supplierId
)
})
}
if
(
that
.
$route
.
query
.
id
&&
that
.
$route
.
query
.
id
!==
'
0
'
)
{
this
.
id
=
this
.
$route
.
query
.
id
;
getPaymentInfoByIds
({
id
:
this
.
id
}).
then
(
res
=>
{
this
.
form
=
{
...
res
.
data
,
latestPayAt
:
this
.
parseTime
(
res
.
data
.
latestPayAt
,
'
{y}-{m}-{d}
'
),
applicationAt
:
this
.
parseTime
(
res
.
data
.
applicationAt
,
'
{y}-{m}-{d}
'
),
invoiceStatus
:
String
(
res
.
data
.
invoiceStatus
),
}
this
.
$set
(
this
.
form
,
'
supplierBankAccount
'
,
res
.
data
.
supplierBankAccount
)
console
.
log
(
this
.
form
)
})
getPaymentItem
({
id
:
this
.
id
}).
then
(
res
=>
{
this
.
list
=
[...
res
.
data
]
this
.
defaultList
=
[...
res
.
data
]
})
}
listSimpleUsers
().
then
((
res
)
=>
(
that
.
creatorData
=
res
.
data
));
getChannelList
().
then
((
res
)
=>
(
that
.
channelList
=
res
.
data
));
getTradeCityList
().
then
((
res
)
=>
(
that
.
tradeCityList
=
res
.
data
));
// getBankAccountPage(that.params).then(
// (res) => (that.bankData = res.data.list)
// );
getSupplierPage
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allSupplier
=
data
.
list
;
this
.
selectChange
(
this
.
form
.
supplierId
)
});
listSimpleDepts
().
then
((
res
)
=>
{
res
.
data
.
forEach
((
item
)
=>
{
if
(
item
.
parentId
==
0
)
{
that
.
deptArr
.
push
(
item
);
}
else
{
that
.
deptData
.
push
(
item
);
}
});
that
.
deptData
.
forEach
((
value
)
=>
{
var
dept
=
that
.
deptArr
.
filter
((
itt
)
=>
itt
.
id
==
value
.
parentId
);
if
(
dept
.
length
>
0
)
{
value
.
name
=
dept
[
0
].
name
+
"
|
"
+
value
.
name
;
}
});
});
},
computed
:
{
expoerCityList
()
{
return
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
type
==
2
);
},
importCityList
()
{
return
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
type
==
1
);
},
},
methods
:
{
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{
...
this
.
queryParams
};
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行查询
getPayableList
(
params
).
then
((
response
)
=>
{
this
.
orderData
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
this
.
$nextTick
(()
=>
{
this
.
list
.
forEach
(
itm
=>
{
const
t
=
this
.
orderData
.
find
(
v
=>
v
.
id
==
itm
.
id
)
t
&&
this
.
$refs
.
multipleTable
.
toggleRowSelection
(
t
,
true
)
})
})
});
},
getSummaries
(
param
)
{
const
{
columns
,
data
}
=
param
;
const
sums
=
new
Array
(
columns
.
length
).
map
(
v
=>
''
);
const
index
=
sums
.
length
-
1
sums
[
index
-
1
]
=
'
价税合计大写
'
const
t
=
data
.
map
(
v
=>
v
.
total
).
reduce
((
prev
,
curr
)
=>
{
return
parseFloat
(
prev
)
+
parseFloat
(
curr
);
},
0
)
sums
[
index
]
=
this
.
convertCurrency
(
t
)
return
sums
;
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
open
=
true
;
},
submitForm
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
$refs
.
forms
.
validate
((
val
)
=>
{
if
(
val
)
{
const
params
=
{...
this
.
form
}
if
(
this
.
list
&&
this
.
list
.
length
>
0
)
{
params
.
payableReqVOList
=
[...
this
.
list
]
}
else
{
this
.
$modal
.
msgError
(
"
请选择供应商未付款项
"
);
return
}
if
(
!
params
.
supplierBankAccount
){
this
.
$modal
.
msgError
(
"
请选择供应商银行账号
"
);
return
}
if
(
this
.
id
&&
this
.
id
!==
'
0
'
)
{
updatePayment
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$router
.
back
();
})
}
else
{
createPayment
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$router
.
back
();
})
}
}
})
}
})
},
submitDraft
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
const
params
=
{...
this
.
form
}
if
(
this
.
list
&&
this
.
list
.
length
>
0
)
{
params
.
payableReqVOList
=
[...
this
.
list
]
}
else
{
this
.
$modal
.
msgError
(
"
请选择供应商未付款项
"
);
return
}
if
(
!
params
.
supplierBankAccount
){
this
.
$modal
.
msgError
(
"
请选择供应商银行账号
"
);
return
}
if
(
this
.
id
&&
this
.
id
!==
'
0
'
)
{
updatePayment
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$router
.
back
();
})
}
else
{
createPayment
(
params
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$router
.
back
();
})
}
// console.log(params, '-----params---------')
}
})
},
selectChangeBank
(
val
){
this
.
$forceUpdate
()
},
selectChange
(
val
)
{
this
.
bankData
=
[]
// this.form.supplierBankAccount=''
if
(
val
){
getSupplier
(
val
).
then
((
res
)
=>
{
this
.
bankData
=
res
.
data
.
bankList
var
bank
=
this
.
bankData
.
find
(
item
=>
item
.
bankAccount
==
this
.
form
.
supplierBankAccount
)
if
(
this
.
bankData
.
length
==
0
||!
bank
)
this
.
form
.
supplierBankAccount
=
''
})
}
const
t
=
this
.
allSupplier
.
find
(
v
=>
v
.
id
==
val
)
t
&&
(
this
.
form
.
supplierName
=
t
.
companyZh
)
// t && (this.bankData = t.bankList)
},
handleQuery
()
{
this
.
queryParams
.
page
=
1
;
this
.
getList
()
},
UStoRMB
()
{
return
NP
.
divide
(
this
.
currencyList
.
find
(
v
=>
v
.
titleEn
===
'
USD
'
).
huilv
,
100
).
toFixed
(
6
)
},
NANtoRMB
()
{
return
NP
.
divide
(
this
.
currencyList
.
find
(
v
=>
v
.
titleEn
===
'
NGN
'
).
huilv
,
100
).
toFixed
(
6
)
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
.
map
(
v
=>
{
if
(
v
.
currencyId
===
1
)
return
Object
.
assign
(
v
,
{
exchangeRate
:
this
.
UStoRMB
()
})
if
(
v
.
currencyId
===
2
)
return
Object
.
assign
(
v
,
{
exchangeRate
:
1
})
if
(
v
.
currencyId
===
3
)
return
Object
.
assign
(
v
,
{
exchangeRate
:
this
.
NANtoRMB
()
})
});
},
hiddenDialog
()
{
this
.
open
=
false
;
},
saveSelectList
()
{
if
(
this
.
id
&&
this
.
id
!==
'
0
'
)
{
this
.
list
=
[...
this
.
defaultList
,
...
this
.
multipleSelection
]
}
else
{
this
.
list
=
this
.
multipleSelection
}
this
.
open
=
false
;
},
convertCurrency
(
money
)
{
//汉字的数字
var
cnNums
=
new
Array
(
'
零
'
,
'
壹
'
,
'
贰
'
,
'
叁
'
,
'
肆
'
,
'
伍
'
,
'
陆
'
,
'
柒
'
,
'
捌
'
,
'
玖
'
);
//基本单位
var
cnIntRadice
=
new
Array
(
''
,
'
拾
'
,
'
佰
'
,
'
仟
'
);
//对应整数部分扩展单位
var
cnIntUnits
=
new
Array
(
''
,
'
万
'
,
'
亿
'
,
'
兆
'
);
//对应小数部分单位
var
cnDecUnits
=
new
Array
(
'
角
'
,
'
分
'
,
'
毫
'
,
'
厘
'
);
//整数金额时后面跟的字符
var
cnInteger
=
'
整
'
;
//整型完以后的单位
var
cnIntLast
=
'
元
'
;
//最大处理的数字
var
maxNum
=
999999999999999.9999
;
//金额整数部分
var
integerNum
;
//金额小数部分
var
decimalNum
;
//输出的中文金额字符串
var
chineseStr
=
''
;
//分离金额后用的数组,预定义
var
parts
;
// 传入的参数为空情况
if
(
money
===
''
)
{
return
''
;
}
money
=
parseFloat
(
money
)
if
(
money
>=
maxNum
){
return
''
}
// 传入的参数为0情况
if
(
money
===
0
)
{
chineseStr
=
cnNums
[
0
]
+
cnIntLast
+
cnInteger
;
return
chineseStr
}
// 转为字符串
money
=
money
.
toString
();
// indexOf 检测某字符在字符串中首次出现的位置 返回索引值(从0 开始) -1 代表无
if
(
money
.
indexOf
(
'
.
'
)
==
-
1
)
{
integerNum
=
money
;
decimalNum
=
''
}
else
{
parts
=
money
.
split
(
'
.
'
);
integerNum
=
parts
[
0
];
decimalNum
=
parts
[
1
].
substr
(
0
,
4
);
}
//转换整数部分
if
(
parseInt
(
integerNum
,
10
)
>
0
){
let
zeroCount
=
0
;
let
IntLen
=
integerNum
.
length
for
(
let
i
=
0
;
i
<
IntLen
;
i
++
){
let
n
=
integerNum
.
substr
(
i
,
1
);
let
p
=
IntLen
-
i
-
1
;
let
q
=
p
/
4
;
let
m
=
p
%
4
;
if
(
n
==
'
0
'
){
zeroCount
++
;
}
else
{
if
(
zeroCount
>
0
){
chineseStr
+=
cnNums
[
0
]
}
zeroCount
=
0
;
chineseStr
+=
cnNums
[
parseInt
(
n
)]
+
cnIntRadice
[
m
];
}
if
(
m
==
0
&&
zeroCount
<
4
){
chineseStr
+=
cnIntUnits
[
q
];
}
}
// 最后+ 元
chineseStr
+=
cnIntLast
;
}
// 转换小数部分
if
(
decimalNum
!=
''
){
let
decLen
=
decimalNum
.
length
;
for
(
let
i
=
0
;
i
<
decLen
;
i
++
){
let
n
=
decimalNum
.
substr
(
i
,
1
);
if
(
n
!=
'
0
'
){
chineseStr
+=
cnNums
[
Number
(
n
)]
+
cnDecUnits
[
i
]
}
}
}
if
(
chineseStr
==
''
){
chineseStr
+=
cnNums
[
0
]
+
cnIntLast
+
cnInteger
;
}
else
if
(
decimalNum
==
''
){
chineseStr
+=
cnInteger
;
}
return
chineseStr
},
openDialog
()
{
this
.
getList
()
},
oninput
(
num
)
{
let
str
=
num
let
len1
=
str
.
substr
(
0
,
1
)
let
len2
=
str
.
substr
(
1
,
1
)
//如果第一位是0,第二位不是点,就用数字把点替换掉
if
(
str
.
length
>
1
&&
len1
==
0
&&
len2
!=
'
.
'
)
{
str
=
str
.
substr
(
1
,
1
)
}
//第一位不能是.
if
(
len1
==
'
.
'
)
{
str
=
''
}
//限制只能输入一个小数点
if
(
str
.
indexOf
(
'
.
'
)
!=
-
1
)
{
let
str_
=
str
.
substr
(
str
.
indexOf
(
'
.
'
)
+
1
)
if
(
str_
.
indexOf
(
'
.
'
)
!=
-
1
)
{
str
=
str
.
substr
(
0
,
str
.
indexOf
(
'
.
'
)
+
str_
.
indexOf
(
'
.
'
)
+
1
)
}
else
{
// if (str_.length > 2) {
// str = str.substr(0, str.indexOf('.') + 1) + str_.substr(0, 2)
// }
}
}
//正则替换
str
=
str
.
replace
(
/
[^\d
^
\.]
+/g
,
''
)
// 保留数字和小数点
// str = str.replace(/\.\d\d\d$/,'') // 小数点后只能输两位
return
str
}
},
};
</
script
>
<
style
scoped
>
.card
{
margin-top
:
20px
;
}
.dialog-footer
{
padding
:
40px
;
}
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
}
</
style
>
src/views/ecw/financial/paymentVoucher.vue
View file @
f3197757
...
...
@@ -98,7 +98,11 @@
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"付款单号"
align=
"center"
prop=
"paymentNo"
/>
<el-table-column
label=
"付款单号"
align=
"center"
prop=
"paymentNo"
>
<
template
slot-scope=
"scope"
>
<span
style=
"color: #1890ff;"
@
click=
"paymentDetail(scope.row)"
>
{{
scope
.
row
.
paymentNo
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"供应商"
align=
"center"
prop=
"supplierName"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -119,7 +123,7 @@
<
template
slot
-
scope
=
"
scope
"
>
<
dict
-
tag
:
type
=
"
DICT_TYPE.ECW_PAYMENT_STATE
"
:
value
=
"
scope.row.state
"
:
value
=
"
scope.row.state
"
/>
<
/template
>
<
/el-table-column
>
...
...
@@ -137,7 +141,7 @@
<
el
-
button
v
-
if
=
"
scope.row.state == 4
"
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
verificationCancelClick(scope.row)
"
>
反核销
<
/el-button
>
<!--
<
el
-
button
v
-
if
=
"
scope.row.state == 3
"
size
=
"
mini
"
type
=
"
text
"
>
开票
<
/el-button> --
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
toprint(scope.row.id)
"
>
打印
<
/el-button
>
<
el
-
button
v
-
if
=
"
scope.row.state == 1 || scope.row.state == 3
"
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
deleteClick(scope.row)
"
>
删除
<
/el-button
>
<!--
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
@
click
=
"
open = true
"
>
导出订单
<
/el-button> --
>
...
...
@@ -198,7 +202,7 @@ export default {
}
,
data
()
{
return
{
open
:
false
,
open
:
false
,
showSearch
:
true
,
loadings
:
false
,
form
:
{
}
,
...
...
@@ -256,6 +260,10 @@ export default {
this
.
loading
=
false
;
}
);
}
,
paymentDetail
(
row
){
const
id
=
row
.
id
;
return
this
.
$router
.
push
(
"
paymentDetail?id=
"
+
id
);
}
,
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
page
=
1
;
...
...
src/views/ecw/financial/voucher.vue
View file @
f3197757
...
...
@@ -120,12 +120,12 @@
</
template
>
</el-table-column>
<!-- <el-table-column label="自编号" align="center" prop="orderNo" /> -->
<
el-table-column
label=
"订单号"
align=
"center"
prop=
"orderNo"
>
<
template
slot-scope=
"scope"
>
<
span
style=
"color: #1890ff;"
@
click=
"verificationCancelClick(scope.row)"
>
{{
scope
.
row
.
orderNo
}}
</span
>
<
!-- <el-table-column label="订单号" align="center" prop="orderNo"> --
>
<
!-- <template slot-scope="scope"> --
>
<
!-- <span style="color: #1890ff;" @click="verificationCancelClick(scope.row)">{{scope.row.orderNo}}</span> --
>
<!-- <el-button size="mini" type="text" @click="verificationCancelClick(scope.row)">{{ scope.row.receiptNo }}</el-button> -->
<
/
template
>
<
/el-table-column
>
<
!-- </template> --
>
<
!-- </el-table-column> --
>
<el-table-column
label=
"客户名称"
align=
"center"
prop=
"customerName"
/>
<el-table-column
label=
"创建日期"
align=
"center"
prop=
"createTime"
>
<
template
slot-scope=
"scope"
>
...
...
src/views/ecw/offer/edit.vue
View file @
f3197757
...
...
@@ -1021,6 +1021,7 @@ export default {
console
.
log
(
'
产品未选择
'
,
item
)
calcable
=
false
}
item
.
brandType
=
item
.
brand
})
if
(
this
.
calculating
||
!
calcable
)
return
false
this
.
calculating
=
true
...
...
src/views/ecw/order/edit.vue
View file @
f3197757
...
...
@@ -261,37 +261,37 @@
<el-input
v-model=
"form.marks"
></el-input>
</el-form-item>
<el-form-item
label=
"是否控货"
prop=
"isCargoControl"
class=
"ml-20"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCargoControl"
form-type=
"radio"
:disabled=
"inWarehouse"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCargoControl"
form-type=
"radio"
/>
</el-form-item>
</div>
<div
class=
"form-section"
v-if=
"collectionProxy"
>
<el-form-item
:label=
"$t('是否代收货款')"
prop=
"isCollection"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCollection"
form-type=
"radio"
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCollection"
form-type=
"radio"
:disabled=
"
fal
se"
/>
</el-form-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-form-item
:label=
"$t('代收货款金额')"
v-if=
"collectionProxy && form.isCollection"
prop=
"collectionProxy"
class=
"ml-20"
>
<el-input
v-model=
"form.collectionProxy"
class=
"w-200 mr-10"
:disabled=
"
inWarehou
se"
></el-input>
<selector
v-model=
"form.collectionProxyCurrency"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
:disabled=
"
inWarehou
se"
/>
<el-input
v-model=
"form.collectionProxy"
class=
"w-200 mr-10"
:disabled=
"
fal
se"
></el-input>
<selector
v-model=
"form.collectionProxyCurrency"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单证报关')"
:span=
"2"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div>
<el-form-item
:label=
"$t('出单方式')"
prop=
"issuingMethod"
>
<dict-selector
:type=
"DICT_TYPE.ECW_SUING_METHOD"
v-model=
"form.issuingMethod"
form-type=
"radio"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_SUING_METHOD"
v-model=
"form.issuingMethod"
form-type=
"radio"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div>
<el-form-item
:label=
"$t('入仓类型')"
prop=
"warehouseType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"form.warehouseType"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"form.warehouseType"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div>
<el-form-item
:label=
"$t('外部仓库')"
prop=
"warehouseType"
>
<el-checkbox
label=
""
:checked=
"!!form.isExternalWarehouse"
@
change=
"form.isExternalWarehouse=$event"
:disabled=
"
inWarehou
se"
></el-checkbox>
<el-checkbox
label=
""
:checked=
"!!form.isExternalWarehouse"
@
change=
"form.isExternalWarehouse=$event"
:disabled=
"
fal
se"
></el-checkbox>
</el-form-item>
<div
v-if=
"form.isExternalWarehouse"
class=
"pl-50"
>
<div
v-for=
"(item, index) in form.externalWarehouseDtoList"
class=
"flex"
:key=
"index"
>
...
...
@@ -327,7 +327,7 @@
</div>
<div>
<el-form-item
:label=
"$t('收货方式')"
prop=
"harvestMethod"
class=
"ml-20"
>
<dict-selector
:type=
"DICT_TYPE.ECW_HARVEST_METHOD"
v-model=
"form.harvestMethod"
:filter=
"item => item.value == 1 || homeDeliveryService"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_HARVEST_METHOD"
v-model=
"form.harvestMethod"
:filter=
"item => item.value == 1 || homeDeliveryService"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
v-if=
"homeDeliveryService && form.harvestMethod == 2"
>
...
...
@@ -339,21 +339,21 @@
@
countryChange=
"onAreaChange('country', $event)"
@
provinceChange=
"onAreaChange('province', $event)"
@
cityChange=
"onAreaChange('city', $event)"
:disabled=
"
inWarehou
se"
:disabled=
"
fal
se"
></area-selector>
</el-form-item>
<el-form-item
:label=
"$t('收货详细地址')"
prop=
"consigneeAddress"
>
<el-input
v-model=
"form.consigneeAddress"
:disabled=
"
inWarehou
se"
></el-input>
<el-input
v-model=
"form.consigneeAddress"
:disabled=
"
fal
se"
></el-input>
</el-form-item>
</div>
<div>
<el-form-item
:label=
"$t('付款人')"
prop=
"drawee"
>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
v-model=
"form.drawee"
defaultable
form-type=
"radio"
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
v-model=
"form.drawee"
defaultable
form-type=
"radio"
:disabled=
"
fal
se"
/>
<el-table
:data=
"customDraweeList"
v-if=
"form.drawee==3"
>
<el-table-column
label=
"费用类型"
prop=
"label"
width=
"200px"
></el-table-column>
<el-table-column
label=
"付款人"
width=
"300px"
>
<
template
slot-scope=
"{row}"
>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
:filter=
"(e) => e.value == '1' || e.value == '2'"
v-model=
"row.value"
form-type=
"radio"
:disabled=
"
inWarehou
se"
/>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
:filter=
"(e) => e.value == '1' || e.value == '2'"
v-model=
"row.value"
form-type=
"radio"
:disabled=
"
fal
se"
/>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -364,57 +364,57 @@
<el-card
class=
"mt-10"
v-if=
"transport"
>
<div
class=
"card-title"
slot=
"header"
>
{{transport.label}}
</div>
<el-form-item
:label=
"$t('快递单号')"
>
<el-input
v-model=
"form.number"
:placeholder=
"$t('请输入购买商品的快递单号')"
:disabled=
"
inWarehou
se"
>
<el-button
type=
"primary"
slot=
"append"
@
click=
"getOrderCourierNumber"
:disabled=
"
inWarehou
se"
>
{{$t('生成单号')}}
</el-button>
<el-input
v-model=
"form.number"
:placeholder=
"$t('请输入购买商品的快递单号')"
:disabled=
"
fal
se"
>
<el-button
type=
"primary"
slot=
"append"
@
click=
"getOrderCourierNumber"
:disabled=
"
fal
se"
>
{{$t('生成单号')}}
</el-button>
</el-input>
</el-form-item>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('航空公司')"
>
<supplier-selector
v-model=
"form.airlineCompany"
company-type=
"10"
:disabled=
"
inWarehou
se"
/>
<supplier-selector
v-model=
"form.airlineCompany"
company-type=
"10"
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('船公司')"
>
<supplier-selector
v-model=
"form.shippingCompany"
company-type=
"9"
:disabled=
"
inWarehou
se"
/>
<supplier-selector
v-model=
"form.shippingCompany"
company-type=
"9"
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('清关证书')"
>
<dict-selector
v-model=
"form.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
v-model=
"form.customsClearCert"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
<el-form-item
label=
"清关证书备注"
>
<el-input
v-model=
"form.remarks"
:disabled=
"
inWarehou
se"
></el-input>
<el-input
v-model=
"form.remarks"
:disabled=
"
fal
se"
></el-input>
</el-form-item>
</div>
<div
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
label=
"是否拆包"
>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单票立刻转运')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
inWarehou
se"
/>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
defaultable
:disabled=
"
fal
se"
/>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<dict-selector
v-model=
"form.packageTypeArr"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
:disabled=
"
inWarehou
se"
/>
<dict-selector
v-model=
"form.packageTypeArr"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
:disabled=
"
fal
se"
/>
</el-form-item>
</div>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-input
v-model=
"form.packageRemarks"
:disabled=
"
inWarehou
se"
></el-input>
<el-input
v-model=
"form.packageRemarks"
:disabled=
"
fal
se"
></el-input>
</el-form-item>
</el-card>
<el-card
class=
"mt-10"
v-if=
"
inWarehouse
"
>
<el-card
class=
"mt-10"
v-if=
"
showWorkFlow
"
>
<div
class=
"card-title"
slot=
"header"
>
{{$t('审批流程')}}
</div>
<work-flow
xmlkey=
"order_modify"
v-model=
"ccIdArr"
/>
</el-card>
...
...
@@ -561,9 +561,15 @@ export default {
objectiveId
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择目的城市
'
)}],
lineId
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择路线
'
)}],
channelId
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择出货渠道
'
)}],
deliveryDate
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择送货日期
'
)}],
deliveryDate
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择
预计
送货日期
'
)}],
consigneeAddress
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请填写详细地址
'
)}],
country
:
[{
required
:
true
,
message
:
this
.
$t
(
'
收货地区填写不完整
'
)}]
country
:
[{
required
:
true
,
message
:
this
.
$t
(
'
收货地区填写不完整
'
)}],
isCargoControl
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择是否控货
'
)}],
isCollection
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择代收货款
'
)}],
collectionProxy
:
[{
required
:
true
,
message
:
this
.
$t
(
'
代收货款不能为空
'
)}],
customsType
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择单证报关
'
)}],
warehouseType
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择入仓类型
'
)}],
harvestMethod
:
[{
required
:
true
,
message
:
this
.
$t
(
'
请选择收货方式
'
)}]
},
labelStyle
:
'
width:120px
'
,
showBatchImportDialog
:
false
,
// 显示批量导入弹窗
...
...
@@ -571,6 +577,7 @@ export default {
exportLoading
:
false
,
// 装下单模板下载状态
contactChooseType
:
null
,
// 联系人选择对象consignor(发货人) 或者 consignee(收货人)
quickCreateType
:
null
,
// 快速新建客户类型,1发货人,2收货人
showWorkFlow
:
false
,
// 是否显示工作流表单
};
},
computed
:{
...
...
@@ -794,6 +801,23 @@ export default {
if
(
res
.
data
.
ccIds
){
this
.
ccIdArr
=
res
.
data
.
ccIds
.
split
(
"
,
"
).
filter
(
item
=>
item
&&
item
!=
''
)
}
// 审核中需要显示流程表单
if
(
this
.
form
.
applyStaus
==
1
){
this
.
showWorkFlow
=
true
}
// 如果已完成入仓,则需要监听必填内容,发生更改后需要填写审批表单
this
.
$nextTick
(
res
=>
{
if
(
this
.
inWarehouse
){
Object
.
keys
(
this
.
rules
).
forEach
(
field
=>
{
console
.
log
(
"
watch
"
,
field
)
this
.
$watch
(
`form.
${
field
}
`
,
()
=>
{
this
.
showWorkFlow
=
true
})
})
}
})
})
},
onContactChoose
(
contact
){
...
...
src/views/ecw/order/prepayDeal.vue
View file @
f3197757
...
...
@@ -32,12 +32,12 @@
<div
v-if=
"orderExceptionData.orderExceptionType!='order_doc_exception'&&orderExceptionData.orderExceptionType!='order_consignor_exception'&&orderExceptionData.orderExceptionType!='order_other_exception'"
>
<el-row>
<el-form-item
:label=
"$t('填单参数')+':'"
>
{{
(
shopData
.
num
||
0
)
+
$t
(
'
箱
'
)
+
(
shopData
.
volume
||
0
)
+
'
m³
'
+
(
shopData
.
weight
||
0
)
+
'
kg
'
+
(
shopData
.
q
uantity
||
0
)
+
$t
(
'
个
'
)
}}
{{
(
orderData
.
costVO
.
totalNum
||
0
)
+
$t
(
'
箱
'
)
+
(
orderData
.
costVO
.
totalVolume
||
0
)
+
'
m³
'
+
(
orderData
.
costVO
.
totalWeight
||
0
)
+
'
kg
'
+
(
orderData
.
costVO
.
totalQ
uantity
||
0
)
+
$t
(
'
个
'
)
}}
</el-form-item>
</el-row>
<el-row>
<el-form-item
:label=
"$t('入仓参数')+':'"
>
<span>
{{
(
shopData
.
warehouseInInfoVO
?
shopData
.
warehouseInInfoVO
.
cartonsNum
:
0
)
+
$t
(
'
箱
'
)
+
(
shopData
.
warehouseInInfoVO
?
shopData
.
warehouseInInfoVO
.
volume
:
0
)
+
'
m³
'
+
(
shopData
.
warehouseInInfoVO
?
shopData
.
warehouseInInfoVO
.
weight
:
0
)
+
'
kg
'
+
(
shopData
.
warehouseInInfoVO
?
shopData
.
warehouseInInfoVO
.
quantityAll
:
0
)
+
$t
(
'
个
'
)
}}
</span>
<span>
{{
(
orderData
.
sumNum
||
0
)
+
$t
(
'
箱
'
)
+
(
orderData
.
sumVolume
||
0
)
+
'
m³
'
+
(
orderData
.
sumWeight
||
0
)
+
'
kg
'
+
(
orderData
.
sumQuantity
||
0
)
+
$t
(
'
个
'
)
}}
</span>
</el-form-item>
</el-row>
<el-row
:span=
"12"
>
...
...
@@ -48,7 +48,7 @@
</el-row>
<el-row
v-if=
"orderExceptionData.orderExceptionType=='order_pay_exception'"
>
<el-form-item
:label=
"$t('收费参数')+':'"
>
<span>
{{
orderData
.
entryNum
||
0
}}{{
$t
(
'
箱
'
)
}}
{{
orderData
.
entryVolume
||
0
}}
m³
{{
orderData
.
entryWeight
||
0
}}
Kg
{{
orderData
.
entry
Quantity
||
0
}}{{
$t
(
'
个
'
)
}}
</span>
<span>
{{
orderData
.
sumNum
||
0
}}{{
$t
(
'
箱
'
)
}}
{{
orderData
.
wvolume
||
0
}}
m³
{{
orderData
.
vweight
||
0
}}
Kg
{{
orderData
.
sum
Quantity
||
0
}}{{
$t
(
'
个
'
)
}}
</span>
</el-form-item>
</el-row>
<!--
<el-row
:span=
"12"
>
...
...
@@ -78,10 +78,15 @@
</el-table-column>
<el-table-column
:label=
"$t('收入类型')"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.
ECW_TRANSPORT
_TYPE"
:value=
"scope.row.feeType"
></dict-tag>
<dict-tag
:type=
"DICT_TYPE.
FEE
_TYPE"
:value=
"scope.row.feeType"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('应收金额')"
prop=
"totalAmount"
/>
<el-table-column
:label=
"$t('应收金额')"
prop=
"totalAmount"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
totalAmount
}}
{{
currentMap
[
row
.
currencyId
]
}}
</
template
>
</el-table-column>
<!-- <el-table-column label="总金额美元" align="center" prop="totalAmount">
<template slot-scope="{row}">
{{row.totalAmount}}({{row.exchangeRate}})
...
...
@@ -123,9 +128,21 @@
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
cartonsNum
:
0
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('方数')"
prop=
"volume"
/>
<el-table-column
:label=
"$t('重量')"
prop=
"weight"
/>
<el-table-column
:label=
"$t('数量')"
prop=
"quantity"
/>
<el-table-column
:label=
"$t('方数')"
prop=
"volume"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
volume
:
0
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('重量')"
prop=
"weight"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
weight
:
0
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('数量')"
prop=
"quantity"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
quantityAll
:
0
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('货值')"
prop=
"worth"
/>
</el-table>
<el-form
:model=
"handlerParams"
ref=
"queryForms"
size=
"small"
:inline=
"true"
label-width=
"120px"
class=
"card"
>
...
...
@@ -271,6 +288,7 @@
import
FileUpload
from
'
@/components/FileUpload
'
import
{
getDictData
,
getDictDatas
}
from
'
@/utils/dict
'
import
{
getOrder
}
from
'
@/api/ecw/order
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getExceptionById
,
handlerExceptionByExceptionId
,
getOrderItemById
,
getOrderFeeById
}
from
"
@/api/ecw/orderException
"
import
{
getFirstReceivableListByOrderId
}
from
'
@/api/ecw/financial
'
...
...
@@ -301,7 +319,8 @@
routerList
:[],
multipleSelection
:[],
preException
:[],
orderFee
:[]
orderFee
:[],
currencyList
:[],
};
},
created
()
{
...
...
@@ -311,6 +330,16 @@
this
.
getList
()
}
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
},
computed
:
{
currentMap
(){
let
map
=
{}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
'
title
'
)
})
return
map
},
},
methods
:
{
/** 查询列表 */
...
...
@@ -325,9 +354,9 @@
that
.
loading
=
false
;
that
.
orderId
=
response
.
data
.
orderId
that
.
getOrderData
()
if
(
response
.
data
.
hasOwnProperty
(
'
orderItemId
'
)){
that
.
getShopData
(
response
.
data
.
orderItemId
)
}
//
if(response.data.hasOwnProperty('orderItemId')){
//
that.getShopData(response.data.orderItemId)
//
}
if
(
that
.
orderExceptionData
.
orderExceptionType
==
'
order_pay_exception
'
){
that
.
getOrderFeeByIdData
()
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
f3197757
...
...
@@ -3,7 +3,7 @@
<el-dialog
:title=
"title + ' - ' + warehousing.orderNo"
:visible.sync=
"opened"
width=
"1
0
80px"
width=
"1
2
80px"
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleTabs"
>
<el-tab-pane
:label=
"edit ? '货物修改' : '货物入仓'"
name=
"first"
>
...
...
@@ -73,6 +73,9 @@
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
label=
"箱数"
width=
"150px"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
箱数
</
template
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item
:rules=
"tableFormRules.cartonsNum"
:prop=
"$index + '.cartonsNum'"
>
<span
v-if=
"tableData[$index].id && !edit"
>
...
...
@@ -86,6 +89,9 @@
</
template
>
</el-table-column>
<el-table-column
label=
"包装类型"
width=
"100px"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
包装类型
</
template
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item>
<span
v-if=
"tableData[$index].id && !edit"
>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_PACKAGING_TYPE
,
tableData
[
$index
].
unit
)
}}
</span>
...
...
@@ -118,22 +124,31 @@
</
template
>
</el-table-column>
<el-table-column
label=
"体积(m³)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
体积(m³)
</
template
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item
:rules=
"tableFormRules.volume"
:prop=
"$index + '.volume'"
>
<span
v-if=
"tableData[$index].id && !edit"
>
{{
tableData
[
$index
].
volume
}}
</span>
<el-input
v-else
v-model
.number=
"tableData[$index].volume"
placeholder=
"
"
></el-input>
<el-input
v-else
v-model
=
"tableData[$index].volume"
placeholder=
""
type=
"number
"
></el-input>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
label=
"重量(Kg)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
重量(Kg)
</
template
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item
:rules=
"tableFormRules.weight"
:prop=
"$index + '.weight'"
>
<span
v-if=
"tableData[$index].id && !edit"
>
{{
tableData
[
$index
].
weight
}}
</span>
<el-input
v-else
v-model
.number=
"tableData[$index].weight"
placeholder=
"
"
></el-input>
<el-input
v-else
v-model
=
"tableData[$index].weight"
placeholder=
""
type=
"number
"
></el-input>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
label=
"数量"
width=
"130px"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
数量
</
template
>
<
template
v-slot=
"{r,c,$index}"
>
<el-form-item
:rules=
"tableFormRules.quantityAll"
:prop=
"$index + '.quantityAll'"
>
<span
v-if=
"tableData[$index].id && !edit"
>
{{
tableData
[
$index
].
quantityAll
}}
</span>
...
...
@@ -400,13 +415,13 @@ export default {
recordMode
:
undefined
},
tableFormRules
:
{
cartonsNum
:
[{
required
:
true
,
message
:
this
.
$t
(
"
箱数不能为空
"
),
trigger
:
"
blur
"
}],
boxGauge1
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物长不能为空
"
),
trigger
:
"
blur
"
}],
boxGauge2
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物宽不能为空
"
),
trigger
:
"
blur
"
}],
boxGauge3
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物高不能为空
"
),
trigger
:
"
blur
"
}],
volume
:
[{
required
:
true
,
message
:
this
.
$t
(
"
体积不能为空
"
),
trigger
:
"
blur
"
}],
weight
:
[{
required
:
true
,
message
:
this
.
$t
(
"
重量不能为空
"
),
trigger
:
"
blur
"
}],
quantityAll
:
[{
required
:
true
,
message
:
"
数量不能为空
"
,
trigger
:
"
blur
"
}]
cartonsNum
:
[{
required
:
true
,
message
:
this
.
$t
(
"
箱数不能为空
"
),
trigger
:
"
change
"
}],
boxGauge1
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物长不能为空
"
),
trigger
:
"
change
"
}],
boxGauge2
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物宽不能为空
"
),
trigger
:
"
change
"
}],
boxGauge3
:
[{
required
:
true
,
message
:
this
.
$t
(
"
货物高不能为空
"
),
trigger
:
"
change
"
}],
volume
:
[{
required
:
true
,
message
:
this
.
$t
(
"
体积不能为空
"
),
trigger
:
"
change
"
}],
weight
:
[{
required
:
true
,
message
:
this
.
$t
(
"
重量不能为空
"
),
trigger
:
"
change
"
}],
quantityAll
:
[{
required
:
true
,
message
:
"
数量不能为空
"
,
trigger
:
"
change
"
}]
},
form1
:
{
"
brand
"
:
"
0
"
,
...
...
src/views/ecw/order/warehousing/index.vue
View file @
f3197757
...
...
@@ -42,7 +42,7 @@
label=
"入库货物属性"
>
<
template
v-slot=
"{row}"
>
<template
v-if=
"row.warehouseInInfoVO"
>
品牌:
{{
[
'
无牌
'
,
'
有牌
'
,
'
中性
'
][
row
.
brand
Type
]
}}
<br>
品牌:
{{
[
'
无牌
'
,
'
有牌
'
,
'
中性
'
][
row
.
fee
Type
]
}}
<br>
箱数:
{{
row
.
warehouseInInfoVO
.
cartonsNum
}}
<br>
体积:
{{
row
.
warehouseInInfoVO
.
volume
}}
m³
<br>
重量:
{{
row
.
warehouseInInfoVO
.
weight
}}
Kg
...
...
@@ -343,12 +343,14 @@ export default {
if
(
r
.
code
===
0
)
{
this
.
escapeBol
=
false
;
this
.
finishVisible
=
false
const
message
=
!
r
.
data
?
'
该订单已成功入仓,是否打印?
'
:
"
<h3>货物已入仓,存在异常</h3>该订单已成功入仓,是否打印?
"
this
.
$confirm
(
'
该订单已成功入仓,是否打印?
'
,
message
,
'
货物已入仓
'
,
{
confirmButtonText
:
'
是
'
,
cancelButtonText
:
'
否
'
cancelButtonText
:
'
否
'
,
dangerouslyUseHTMLString
:
true
}
).
then
(()
=>
{
this
.
isShowPrint
=
true
...
...
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