Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
ximai
mes-ui
Commits
e9846913
Commit
e9846913
authored
Jan 24, 2024
by
hiyonx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单模块
parent
faa6b469
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1656 additions
and
746 deletions
+1656
-746
purchaseOrder.js
src/api/mes/od/purchaseOrder.js
+51
-0
purchaseOrderDetail.js
src/api/mes/od/purchaseOrderDetail.js
+44
-0
salesOrder.js
src/api/mes/od/salesOrder.js
+17
-0
index.vue
src/components/ElInputMoney/index.vue
+1
-0
index.vue
src/components/SapPropertyData/index.vue
+1
-0
index.js
src/store/index.js
+2
-0
order.js
src/store/modules/order.js
+167
-0
index_bak.vue
src/views/mes/md/client/index_bak.vue
+0
-585
index.vue
src/views/mes/order/purchase/index.vue
+196
-10
index.vue
src/views/mes/order/purchaseDetail/index.vue
+558
-0
index.vue
src/views/mes/order/sales/index.vue
+19
-1
index.vue
src/views/mes/order/salesdetail/index.vue
+600
-150
No files found.
src/api/mes/od/purchaseOrder.js
0 → 100644
View file @
e9846913
import
request
from
'@/utils/request'
// 查询客户采购订单列表
export
function
listOrder
(
query
)
{
return
request
({
url
:
'/od/purchaseOrder/list'
,
method
:
'get'
,
params
:
query
})
}
// 查询客户采购订单详细
export
function
getOrder
(
id
)
{
return
request
({
url
:
'/od/purchaseOrder/'
+
id
,
method
:
'get'
})
}
export
function
getSalesOrder
(
purchaseId
)
{
return
request
({
url
:
'/od/purchaseOrder/getSalesOrder?id='
+
purchaseId
,
method
:
'get'
})
}
// 新增客户采购订单
export
function
addOrder
(
data
)
{
return
request
({
url
:
'/od/purchaseOrder'
,
method
:
'post'
,
data
:
data
})
}
// 修改客户采购订单
export
function
updateOrder
(
data
)
{
return
request
({
url
:
'/od/purchaseOrder'
,
method
:
'put'
,
data
:
data
})
}
// 删除客户采购订单
export
function
delOrder
(
id
)
{
return
request
({
url
:
'/od/purchaseOrder/'
+
id
,
method
:
'delete'
})
}
src/api/mes/od/purchaseOrderDetail.js
0 → 100644
View file @
e9846913
import
request
from
'@/utils/request'
// 查询客户采购订单列表
export
function
listDetail
(
query
)
{
return
request
({
url
:
'/md/purchaseOrderDetail/list'
,
method
:
'get'
,
params
:
query
})
}
// 查询客户采购订单详细
export
function
getDetail
(
id
)
{
return
request
({
url
:
'/md/purchaseOrderDetail/'
+
id
,
method
:
'get'
})
}
// 新增客户采购订单
export
function
addDetail
(
data
)
{
return
request
({
url
:
'/md/purchaseOrderDetail'
,
method
:
'post'
,
data
:
data
})
}
// 修改客户采购订单
export
function
updateDetail
(
data
)
{
return
request
({
url
:
'/md/purchaseOrderDetail'
,
method
:
'put'
,
data
:
data
})
}
// 删除客户采购订单
export
function
delDetail
(
id
)
{
return
request
({
url
:
'/md/purchaseOrderDetail/'
+
id
,
method
:
'delete'
})
}
src/api/mes/od/salesOrder.js
View file @
e9846913
...
...
@@ -17,6 +17,15 @@ export function getOrder(id) {
})
}
// 查询销售订单详细
export
function
getOrderDetail
(
params
)
{
return
request
({
url
:
'/od/salesOrder/detail'
,
method
:
'get'
,
params
})
}
// 新增销售订单
export
function
addOrder
(
data
)
{
return
request
({
...
...
@@ -35,6 +44,14 @@ export function updateOrder(data) {
})
}
// 同步销售订单
export
function
syncOrder
(
id
)
{
return
request
({
url
:
'/od/salesOrder/sync/'
+
id
,
method
:
'get'
})
}
// 删除销售订单
export
function
delOrder
(
id
)
{
return
request
({
...
...
src/components/ElInputMoney/index.vue
View file @
e9846913
...
...
@@ -21,6 +21,7 @@ export default {
value
:
{
type
:
String
|
Number
,
required
:
true
},
// 单位: 1元, 0.1角, 0.01分
unit
:
{
type
:
String
|
Number
,
default
:
1
},
prefix
:
{
type
:
String
,
default
:
'¥ '
},
placeholder
:
{
type
:
String
},
clearable
:
{
type
:
Boolean
,
default
:
false
},
readonly
:
{
type
:
Boolean
,
default
:
false
},
...
...
src/components/SapPropertyData/index.vue
View file @
e9846913
...
...
@@ -159,6 +159,7 @@ export default {
}
.footer
{
margin
:
10px
;
text-align
:
right
;
}
...
...
src/store/index.js
View file @
e9846913
...
...
@@ -3,6 +3,7 @@ import Vuex from 'vuex'
import
app
from
'./modules/app'
import
user
from
'./modules/user'
import
tagsView
from
'./modules/tagsView'
import
order
from
'./modules/order'
import
permission
from
'./modules/permission'
import
settings
from
'./modules/settings'
import
getters
from
'./getters'
...
...
@@ -14,6 +15,7 @@ const store = new Vuex.Store({
app
,
user
,
tagsView
,
order
,
permission
,
settings
},
...
...
src/store/modules/order.js
0 → 100644
View file @
e9846913
import
{
listChannel
}
from
'@/api/mes/md/saleOrder/channel'
import
{
listGroup
}
from
'@/api/mes/md/saleOrder/group'
import
{
listOffice
}
from
'@/api/mes/md/saleOrder/office'
import
{
listOrg
}
from
'@/api/mes/md/saleOrder/org'
import
{
listType
}
from
'@/api/mes/md/saleOrder/type'
import
{
listUnit
}
from
'@/api/mes/md/unit'
import
{
listClause
}
from
'@/api/mes/md/clause'
import
{
listCurrency
}
from
'@/api/mes/md/currency'
import
{
listReason
}
from
'@/api/mes/md/reason'
import
{
listPoint
}
from
'@/api/mes/md/point'
import
{
listClause
as
listPaymentClause
}
from
'@/api/mes/md/paymentClause'
const
order
=
{
namespaced
:
true
,
state
:
{
saleChannel
:
[],
saleGroup
:
[],
saleOffice
:
[],
saleOrg
:
[],
saleType
:
[],
saleUnit
:
[],
saleClause
:
[],
saleCurrency
:
[],
salePaymentClause
:
[],
saleReason
:
[],
saleShipmentPoint
:
[],
},
mutations
:
{
SET_SALE_CHANNEL
(
state
,
data
)
{
state
.
saleChannel
=
data
},
SET_SALE_GROUP
(
state
,
data
)
{
state
.
saleGroup
=
data
},
SET_SALE_OFFICE
(
state
,
data
)
{
state
.
saleOffice
=
data
},
SET_SALE_ORG
(
state
,
data
)
{
state
.
saleOrg
=
data
},
SET_SALE_TYPE
(
state
,
data
)
{
state
.
saleType
=
data
},
SET_SALE_UNIT
(
state
,
data
)
{
state
.
saleUnit
=
data
},
SET_SALE_CLAUSE
(
state
,
data
)
{
state
.
saleClause
=
data
},
SET_SALE_CURRENCY
(
state
,
data
)
{
state
.
saleCurrency
=
data
},
SET_SALE_PAYMENT_CLAUSE
(
state
,
data
)
{
state
.
salePaymentClause
=
data
},
SET_SALE_REASON
(
state
,
data
)
{
state
.
saleReason
=
data
},
SET_SALE_SHIPMENT_POINT
(
state
,
data
)
{
state
.
saleShipmentPoint
=
data
},
},
actions
:
{
getSaleChannel
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleChannel
&&
state
.
saleChannel
.
length
)
return
resolve
(
state
.
saleChannel
)
listChannel
().
then
(
res
=>
{
commit
(
'SET_SALE_CHANNEL'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleGroup
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleGroup
&&
state
.
saleGroup
.
length
)
return
resolve
(
state
.
saleGroup
)
listGroup
().
then
(
res
=>
{
commit
(
'SET_SALE_GROUP'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleOffice
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleOffice
&&
state
.
saleOffice
.
length
)
return
resolve
(
state
.
saleOffice
)
listOffice
().
then
(
res
=>
{
commit
(
'SET_SALE_OFFICE'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleOrg
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleOrg
&&
state
.
saleOrg
.
length
)
return
resolve
(
state
.
saleOrg
)
listOrg
().
then
(
res
=>
{
commit
(
'SET_SALE_ORG'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleType
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleType
&&
state
.
saleType
.
length
)
return
resolve
(
state
.
saleType
)
listType
().
then
(
res
=>
{
commit
(
'SET_SALE_TYPE'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleUnit
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleUnit
&&
state
.
saleUnit
.
length
)
return
resolve
(
state
.
saleUnit
)
listUnit
().
then
(
res
=>
{
commit
(
'SET_SALE_UNIT'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleClause
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleClause
&&
state
.
saleClause
.
length
)
return
resolve
(
state
.
saleClause
)
listClause
().
then
(
res
=>
{
commit
(
'SET_SALE_CLAUSE'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleCurrency
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleCurrency
&&
state
.
saleCurrency
.
length
)
return
resolve
(
state
.
saleCurrency
)
listCurrency
().
then
(
res
=>
{
commit
(
'SET_SALE_CURRENCY'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSalePaymentClause
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
salePaymentClause
&&
state
.
salePaymentClause
.
length
)
return
resolve
(
state
.
salePaymentClause
)
listReason
().
then
(
res
=>
{
commit
(
'SET_SALE_PAYMENT_CLAUSE'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleReason
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleReason
&&
state
.
saleReason
.
length
)
return
resolve
(
state
.
saleReason
)
listPoint
().
then
(
res
=>
{
commit
(
'SET_SALE_REASON'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
getSaleShipmentPoint
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
state
.
saleShipmentPoint
&&
state
.
saleShipmentPoint
.
length
)
return
resolve
(
state
.
saleShipmentPoint
)
listPaymentClause
().
then
(
res
=>
{
commit
(
'SET_SALE_SHIPMENT_POINT'
,
res
.
rows
)
resolve
(
res
.
rows
)
}).
catch
(()
=>
reject
())
})
},
}
}
export
default
order
src/views/mes/md/client/index_bak.vue
deleted
100644 → 0
View file @
faa6b469
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户编码"
prop=
"clientCode"
>
<el-input
v-model=
"queryParams.clientCode"
placeholder=
"请输入客户编码"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户名称"
prop=
"clientName"
>
<el-input
v-model=
"queryParams.clientName"
placeholder=
"请输入客户名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户简称"
prop=
"clientNick"
>
<el-input
v-model=
"queryParams.clientNick"
placeholder=
"请输入客户简称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户英文名称"
prop=
"clientEn"
>
<el-input
v-model=
"queryParams.clientEn"
placeholder=
"请输入客户英文名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"是否启用"
prop=
"enableFlag"
>
<el-select
v-model=
"queryParams.enableFlag"
placeholder=
"是否启用"
clearable
style=
"width: 215px"
>
<el-option
v-for=
"dict in dict.type.sys_yes_no"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['mes:md:client:add']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"success"
plain
icon=
"el-icon-edit"
size=
"mini"
:disabled=
"single"
@
click=
"handleUpdate"
v-hasPermi=
"['mes:md:client:edit']"
>
修改
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"danger"
plain
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleDelete"
v-hasPermi=
"['mes:md:client:remove']"
>
删除
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['mes:md:client:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"clientList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"客户编码"
align=
"center"
prop=
"clientCode"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleView(scope.row)"
v-hasPermi=
"['mes:md:client:query']"
>
{{
scope
.
row
.
clientCode
}}
</el-button>
</
template
>
</el-table-column>
<el-table-column
label=
"客户名称"
width=
"150px"
align=
"center"
prop=
"clientName"
:show-overflow-tooltip=
"true"
/>
<el-table-column
label=
"客户简称"
align=
"center"
prop=
"clientNick"
/>
<el-table-column
label=
"客户类型"
align=
"center"
prop=
"clientType"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:options=
"dict.type.mes_client_type"
:value=
"scope.row.clientType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"客户电话"
align=
"center"
prop=
"tel"
/>
<el-table-column
label=
"联系人"
align=
"center"
prop=
"contact1"
/>
<el-table-column
label=
"联系人-电话"
align=
"center"
prop=
"contact1Tel"
/>
<el-table-column
label=
"是否启用"
align=
"center"
prop=
"enableFlag"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:options=
"dict.type.sys_yes_no"
:value=
"scope.row.enableFlag"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['mes:md:client:edit']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['mes:md:client:remove']"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total>0"
:total=
"total"
:page
.
sync=
"queryParams.pageNum"
:limit
.
sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 添加或修改客户对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"960px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户编码"
prop=
"clientCode"
>
<el-input
v-model=
"form.clientCode"
placeholder=
"请输入客户编码"
/>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label-width=
"80"
>
<el-switch
v-model=
"autoGenFlag"
active-color=
"#13ce66"
active-text=
"自动生成"
@
change=
"handleAutoGenChange(autoGenFlag)"
v-if=
"optType != 'view'"
>
</el-switch>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户名称"
prop=
"clientName"
>
<el-input
v-model=
"form.clientName"
placeholder=
"请输入客户名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户简称"
prop=
"clientNick"
>
<el-input
v-model=
"form.clientNick"
placeholder=
"请输入客户简称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户英文名称"
prop=
"clientEn"
>
<el-input
v-model=
"form.clientEn"
placeholder=
"请输入客户英文名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户类型"
prop=
"clientType"
>
<el-select
v-model=
"form.clientType"
placeholder=
"请选择客户类型"
>
<el-option
v-for=
"dict in dict.type.mes_client_type"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"客户简介"
prop=
"clientDes"
>
<el-input
v-model=
"form.clientDes"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"客户地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
type=
"textarea"
placeholder=
"请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户官网地址"
prop=
"website"
>
<el-input
v-model=
"form.website"
placeholder=
"请输入客户官网地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户邮箱地址"
prop=
"email"
>
<el-input
v-model=
"form.email"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.email"
placeholder=
"请输入客户邮箱地址"
v-else
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户电话"
prop=
"tel"
>
<el-input
v-model=
"form.tel"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.tel"
placeholder=
"请输入客户电话"
v-else
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户LOGO"
prop=
"clientLogo"
>
<el-input
v-model=
"form.clientLogo"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.clientLogo"
placeholder=
"请输入客户LOGO"
v-else
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人1"
prop=
"contact1"
>
<el-input
v-model=
"form.contact1"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact1"
placeholder=
"请输入联系人1"
v-else
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人1-电话"
prop=
"contact1Tel"
>
<el-input
v-model=
"form.contact1Tel"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact1Tel"
placeholder=
"请输入联系人1-电话"
v-else
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人1-邮箱"
prop=
"contact1Email"
>
<el-input
v-model=
"form.contact1Email"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact1Email"
placeholder=
"请输入联系人1-邮箱"
v-else
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人2"
prop=
"contact2"
>
<el-input
v-model=
"form.contact2"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact2"
placeholder=
"请输入联系人2"
v-else
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人2-电话"
prop=
"contact2Tel"
>
<el-input
v-model=
"form.contact2Tel"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact2Tel"
placeholder=
"请输入联系人2-电话"
v-else
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"联系人2-邮箱"
prop=
"contact2Email"
>
<el-input
v-model=
"form.contact2Email"
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.contact2Email"
placeholder=
"请输入联系人2-邮箱"
v-else
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"社会信用代码"
prop=
"creditCode"
>
<el-input
v-model=
"form.creditCode"
readonly
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.creditCode"
placeholder=
"请输入统一社会信用代码"
v-else
/>
</el-form-item>
</el-col
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否有效"
prop=
"enableFlag"
>
<el-radio-group
v-model=
"form.enableFlag"
disabled
v-if=
"optType=='view'"
>
<el-radio
v-for=
"dict in dict.type.sys_yes_no"
:key=
"dict.value"
:label=
"dict.value"
>
{{dict.label}}
</el-radio>
</el-radio-group>
<el-radio-group
v-model=
"form.enableFlag"
v-else
>
<el-radio
v-for=
"dict in dict.type.sys_yes_no"
:key=
"dict.value"
:label=
"dict.value"
>
{{dict.label}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
type=
"textarea"
readonly
v-if=
"optType=='view'"
/>
<el-input
v-model=
"form.remark"
type=
"textarea"
placeholder=
"请输入内容"
v-else
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"cancel"
v-if=
"optType =='view'"
>
返回
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
v-else
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
listClient
,
getClient
,
delClient
,
addClient
,
updateClient
}
from
"@/api/mes/md/client"
;
import
{
genCode
}
from
"@/api/system/autocode/rule"
export
default
{
name
:
"Client"
,
dicts
:
[
'mes_client_type'
,
'sys_yes_no'
],
data
()
{
return
{
//自动生成编码
autoGenFlag
:
false
,
optType
:
undefined
,
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 客户表格数据
clientList
:
[],
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
clientCode
:
null
,
clientName
:
null
,
clientNick
:
null
,
clientEn
:
null
,
clientDes
:
null
,
clientLogo
:
null
,
clientType
:
null
,
address
:
null
,
website
:
null
,
email
:
null
,
tel
:
null
,
contact1
:
null
,
contact1Tel
:
null
,
contact1Email
:
null
,
contact2
:
null
,
contact2Tel
:
null
,
contact2Email
:
null
,
creditCode
:
null
,
enableFlag
:
null
,
},
// 表单参数
form
:
{},
// 表单校验
rules
:
{
clientCode
:
[
{
required
:
true
,
message
:
"客户编码不能为空"
,
trigger
:
"blur"
}
],
clientName
:
[
{
required
:
true
,
message
:
"客户名称不能为空"
,
trigger
:
"blur"
}
],
email
:[
{
type
:
"email"
,
message
:
"请输入正确的邮箱地址"
,
trigger
:
[
"blur"
,
"change"
]
}
],
contact1Email
:[
{
type
:
"email"
,
message
:
"请输入正确的邮箱地址"
,
trigger
:
[
"blur"
,
"change"
]
}
],
contact2Email
:[
{
type
:
"email"
,
message
:
"请输入正确的邮箱地址"
,
trigger
:
[
"blur"
,
"change"
]
}
],
enableFlag
:
[
{
required
:
true
,
message
:
"是否启用不能为空"
,
trigger
:
"blur"
}
],
}
};
},
created
()
{
this
.
getList
();
},
methods
:
{
/** 查询客户列表 */
getList
()
{
this
.
loading
=
true
;
listClient
(
this
.
queryParams
).
then
(
response
=>
{
this
.
clientList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
clientId
:
null
,
clientCode
:
null
,
clientName
:
null
,
clientNick
:
null
,
clientEn
:
null
,
clientDes
:
null
,
clientLogo
:
null
,
clientType
:
null
,
address
:
null
,
website
:
null
,
email
:
null
,
tel
:
null
,
contact1
:
null
,
contact1Tel
:
null
,
contact1Email
:
null
,
contact2
:
null
,
contact2Tel
:
null
,
contact2Email
:
null
,
creditCode
:
null
,
enableFlag
:
'Y'
,
remark
:
null
,
attr1
:
null
,
attr2
:
null
,
attr3
:
null
,
attr4
:
null
,
createBy
:
null
,
createTime
:
null
,
updateBy
:
null
,
updateTime
:
null
};
this
.
autoGenFlag
=
false
;
this
.
resetForm
(
"form"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
clientId
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"添加客户"
;
this
.
optType
=
"add"
;
},
// 查询明细按钮操作
handleView
(
row
){
this
.
reset
();
const
clientId
=
row
.
clientId
||
this
.
ids
getClient
(
clientId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"查看客户"
;
this
.
optType
=
"view"
;
});
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
clientId
=
row
.
clientId
||
this
.
ids
getClient
(
clientId
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"修改客户"
;
this
.
optType
=
"edit"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
clientId
!=
null
)
{
updateClient
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
open
=
false
;
this
.
getList
();
});
}
else
{
addClient
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"新增成功"
);
this
.
open
=
false
;
this
.
getList
();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
clientIds
=
row
.
clientId
||
this
.
ids
;
this
.
$modal
.
confirm
(
'是否确认删除客户编号为"'
+
clientIds
+
'"的数据项?'
).
then
(
function
()
{
return
delClient
(
clientIds
);
}).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"删除成功"
);
}).
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
this
.
download
(
'md/client/export'
,
{
...
this
.
queryParams
},
`client_
${
new
Date
().
getTime
()}
.xlsx`
)
},
//自动生成编码
handleAutoGenChange
(
autoGenFlag
){
debugger
;
if
(
autoGenFlag
){
genCode
(
'CLIENT_CODE'
).
then
(
response
=>
{
this
.
form
.
clientCode
=
response
;
});
}
else
{
this
.
form
.
clientCode
=
null
;
}
}
}
};
</
script
>
src/views/mes/order/purchase/index.vue
View file @
e9846913
<
template
>
<div
class=
"index"
>
purchase order
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"订单编号"
prop=
"orderNo"
>
<el-input
v-model=
"queryParams.orderNo"
placeholder=
"请输入订单编号"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"客户"
prop=
"clientId"
>
<el-select
v-model=
"queryParams.clientId"
placeholder=
"请选择客户"
clearable
filterable
remote
:remote-method=
"getClientList"
>
<el-option
v-for=
"item in clientList"
:key=
"item.clientId"
:value=
"item.clientId"
:label=
"item.clientName"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"交货日期"
prop=
"deliveryDate"
>
<el-date-picker
clearable
v-model=
"queryParams.deliveryDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择交货日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"state"
>
<el-input
v-model=
"queryParams.state"
placeholder=
"请输入状态"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"来源文件"
prop=
"source"
>
<el-input
v-model=
"queryParams.source"
placeholder=
"请输入来源文件"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['md:purchaseOrder:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"orderList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"订单编号"
prop=
"orderNo"
/>
<el-table-column
label=
"客户编号"
prop=
"clientNo"
/>
<el-table-column
label=
"客户名称"
prop=
"clientName"
/>
<el-table-column
label=
"交货日期"
prop=
"deliveryDate"
width=
"180"
>
<template
slot-scope=
"
{row}">
<span>
{{
parseTime
(
row
.
deliveryDate
,
'{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"备注"
prop
=
"remark"
/>
<
el
-
table
-
column
label
=
"订单状态"
prop
=
"state"
>
<
template
slot
-
scope
=
"{row
}
"
>
{{
dict
.
type
.
sales_order_state
.
find
(
item
=>
item
.
value
==
row
.
state
).
label
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"来源文件"
prop
=
"source"
/>
<
el
-
table
-
column
label
=
"操作"
class
-
name
=
"small-padding fixed-width"
width
=
"200"
>
<
template
slot
-
scope
=
"{row
}
"
>
<
el
-
button
size
=
"mini"
type
=
"text"
icon
=
"el-icon-search"
@
click
=
"onShowDetail(row)"
v
-
hasPermi
=
"['md:order:query']"
>
查看
<
/el-button
>
<
el
-
button
size
=
"mini"
type
=
"text"
icon
=
"el-icon-edit"
@
click
=
"toSalesEdit(row)"
v
-
hasPermi
=
"['md:order:edit']"
>
生成订单
<
/el-button
>
<
el
-
button
size
=
"mini"
type
=
"text"
icon
=
"el-icon-delete"
@
click
=
"handleDelete(row)"
v
-
hasPermi
=
"['md:order:remove']"
>
删除
<
/el-button
>
<
/template
>
<
/el-table-column
>
<
/el-table
>
<
pagination
v
-
show
=
"total>0"
:
total
=
"total"
:
page
.
sync
=
"queryParams.pageNum"
:
limit
.
sync
=
"queryParams.pageSize"
@
pagination
=
"getList"
/>
<
/div
>
<
/template
>
<
script
>
import
{
delOrder
,
listOrder
}
from
'@/api/mes/od/purchaseOrder'
import
{
listClient
}
from
'@/api/mes/md/client'
export
default
{
name
:
"PurchaseOrder"
,
dicts
:
[
'mes_client_type'
,
'sys_yes_no'
,
'sales_order_state'
],
data
()
{
return
{}
return
{
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 客户采购订单表格数据
orderList
:
[],
clientList
:
[],
// 是否显示弹出层
open
:
false
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
orderNo
:
null
,
clientId
:
null
,
deliveryDate
:
null
,
state
:
null
,
source
:
null
}
,
}
;
}
,
methods
:
{},
created
()
{
this
.
getList
();
this
.
getClientList
()
}
,
methods
:
{
/** 查询客户采购订单列表 */
getList
()
{
this
.
loading
=
true
;
listOrder
(
this
.
queryParams
).
then
(
response
=>
{
this
.
orderList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
}
);
}
,
getClientList
(
key
)
{
listClient
({
clientName
:
key
,
pageNum
:
1
,
pageSize
:
100
}
).
then
(
res
=>
this
.
clientList
=
res
.
rows
)
}
,
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
}
,
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
handleQuery
();
}
,
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
}
,
toSalesEdit
(
row
)
{
let
id
=
row
?
row
.
id
:
this
.
ids
[
0
]
this
.
$router
.
push
(
'/order/sales/detail?purchaseId='
+
id
)
}
,
onShowDetail
(
row
)
{
let
id
=
row
?
row
.
id
:
this
.
ids
[
0
]
this
.
$router
.
push
(
'/order/purchaseEdit?id='
+
id
)
}
,
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
;
this
.
$modal
.
confirm
(
'是否确认删除客户采购订单编号为"'
+
ids
+
'"的数据项?'
).
then
(
function
()
{
return
delOrder
(
ids
);
}
).
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"删除成功"
);
}
).
catch
(()
=>
{
}
);
}
,
/** 导出按钮操作 */
handleExport
()
{
this
.
download
(
'md/order/export'
,
{
...
this
.
queryParams
}
,
`order_${new Date().getTime()
}
.xlsx`
)
}
}
}
}
;
<
/script
>
<
style
scoped
>
</
style
>
src/views/mes/order/purchaseDetail/index.vue
0 → 100644
View file @
e9846913
<
template
>
<div
class=
"form-page"
>
<div
class=
"page-head"
>
<div
class=
"page-title"
>
客户采购订单详情
</div>
<div
class=
"head-btn"
>
<el-button
size=
"mini"
@
click=
"onGoBack"
>
返回
</el-button>
</div>
</div>
<div
class=
"page-body"
>
<div>
采购信息
</div>
<el-form
:model=
"odPurchaseOrder"
ref=
"purchaseForm"
:rules=
"rules"
label-width=
"130px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"采购订单编号"
prop=
"orderNo"
>
<el-input
v-model
.
trim=
"odPurchaseOrder.orderNo"
placeholder=
"请输入"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"客户编号"
prop=
"clientNo"
>
<el-input
v-model
.
trim=
"odPurchaseOrder.clientNo"
placeholder=
"请输入"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"客户名称"
prop=
"clientName"
>
<el-input
v-model
.
trim=
"odPurchaseOrder.clientName"
placeholder=
"请输入"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"交货日期"
prop=
"deliveryDate"
>
<el-date-picker
type=
"date"
v-model=
"odPurchaseOrder.deliveryDate"
placeholder=
"请输入"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"状态"
prop=
"state"
>
<el-select
v-model=
"odPurchaseOrder.state"
placeholder=
"请选择订单状态"
clearable
>
<el-option
v-for=
"item in dict.type.sales_order_state"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
type=
"textarea"
v-model=
"odPurchaseOrder.remark"
placeholder=
"请输入 备注"
show-word-limit
maxlength=
"120"
:rows=
"3"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table
:data=
"odPurchaseOrder.detailList"
max-height=
"600"
>
<el-table-column
label=
"产品编号"
prop=
"itemNo"
min-width=
"120"
/>
<el-table-column
label=
"产品名称"
prop=
"itemName"
min-width=
"120"
/>
<el-table-column
label=
"产品总数量"
prop=
"totalNum"
min-width=
"120"
/>
<el-table-column
label=
"loss数量"
prop=
"lossNum"
min-width=
"120"
/>
<el-table-column
label=
"产品数量"
prop=
"num"
min-width=
"120"
/>
<el-table-column
label=
"状态"
prop=
"state"
min-width=
"120"
/>
<el-table-column
label=
"宝绅内部品名"
prop=
"productName"
min-width=
"120"
/>
<el-table-column
label=
"客户产品名称"
prop=
"poProductName"
min-width=
"120"
/>
<el-table-column
label=
"客户产品代码"
prop=
"poProductNo"
min-width=
"120"
/>
<el-table-column
label=
"客户颜色"
prop=
"poColor"
min-width=
"120"
/>
<el-table-column
label=
"配色号"
prop=
"poColorNo"
min-width=
"120"
/>
<el-table-column
label=
"产地"
prop=
"region"
min-width=
"120"
/>
<el-table-column
label=
"尺码组"
prop=
"sizeGroup"
min-width=
"120"
/>
<el-table-column
label=
"尺码"
prop=
"size"
min-width=
"120"
/>
<el-table-column
label=
"整/半码"
prop=
"wholeYard"
min-width=
"120"
/>
<el-table-column
label=
"特殊size"
prop=
"specialSize"
min-width=
"120"
/>
<el-table-column
label=
"型体号"
prop=
"featureNo"
min-width=
"120"
/>
<el-table-column
label=
"指令号"
prop=
"cmdNo"
min-width=
"120"
/>
<el-table-column
label=
"订单量"
prop=
"orderNum"
min-width=
"120"
/>
<el-table-column
label=
"产品规格"
prop=
"productSize"
min-width=
"120"
/>
<el-table-column
label=
"交货日期"
prop=
"deliveryDate"
min-width=
"120"
/>
<el-table-column
label=
"客户单重"
prop=
"poKg"
min-width=
"120"
/>
<el-table-column
label=
"客户单号"
prop=
"poOrderNo"
min-width=
"120"
/>
<el-table-column
label=
"客户单位"
prop=
"customerUnit"
min-width=
"120"
/>
<el-table-column
label=
"签收人"
prop=
"signer"
min-width=
"120"
/>
<el-table-column
label=
"销线"
prop=
"salePath"
min-width=
"120"
/>
<el-table-column
label=
"段别"
prop=
"segment"
min-width=
"120"
/>
<el-table-column
label=
"版面"
prop=
"layout"
min-width=
"120"
/>
<el-table-column
label=
"季度"
prop=
"quarter"
min-width=
"120"
/>
<el-table-column
label=
"po号"
prop=
"poNo"
min-width=
"120"
/>
<el-table-column
label=
"wip号"
prop=
"wipNo"
min-width=
"120"
/>
<el-table-column
label=
"装箱数"
prop=
"packingNum"
min-width=
"120"
/>
<el-table-column
label=
"周期"
prop=
"cycle"
min-width=
"120"
/>
<el-table-column
label=
"sk编号"
prop=
"skNo"
min-width=
"120"
/>
<el-table-column
label=
"专利号"
prop=
"patentNo"
min-width=
"120"
/>
<el-table-column
label=
"材质描述"
prop=
"materialDesc"
min-width=
"120"
/>
<el-table-column
label=
"ShipToId"
prop=
"shipToId"
min-width=
"120"
/>
<el-table-column
label=
"条码"
prop=
"barCode"
min-width=
"120"
/>
<el-table-column
label=
"印刷方向"
prop=
"printingDirection"
min-width=
"120"
/>
</el-table>
</div>
<el-dialog
:visible
.
sync=
"showDetail"
title=
"客户采购单详情"
width=
"960px"
>
<el-form
:model=
"detailForm"
ref=
"detailForm"
:rules=
"detailRules"
label-width=
"120px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品编号"
prop=
"itemNo"
>
<el-input
v-model
.
trim=
"detailForm.itemNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品名称"
prop=
"itemName"
>
<el-input
v-model
.
trim=
"detailForm.itemName"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品总数量"
prop=
"totalNum"
>
<el-input
v-model
.
trim=
"detailForm.totalNum"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"loss数量"
prop=
"lossNum"
>
<el-input
v-model
.
trim=
"detailForm.lossNum"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品数量"
prop=
"num"
>
<el-input
v-model
.
trim=
"detailForm.num"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"单价"
prop=
"price"
>
<el-input-money
v-model
.
trim=
"detailForm.price"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"装运点"
prop=
"shipmentPointNo"
>
<el-input-money
v-model
.
trim=
"detailForm.shipmentPointNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"存储地点"
prop=
"storeAddr"
>
<el-input-money
v-model
.
trim=
"detailForm.storeAddr"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"批次号"
prop=
"batchNo"
>
<el-input-money
v-model
.
trim=
"detailForm.batchNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"定价值"
prop=
"pricingVal"
>
<el-input-money
v-model
.
trim=
"detailForm.pricingVal"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"实际交货日期"
prop=
"actualDeliveryDate"
>
<el-input-money
v-model
.
trim=
"detailForm.actualDeliveryDate"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"报价单位"
prop=
"offerUnit"
>
<el-input-money
v-model
.
trim=
"detailForm.offerUnit"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"销售单位"
prop=
"saleUnit"
>
<el-input-money
v-model
.
trim=
"detailForm.saleUnit"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"尺码单位"
prop=
"sizeUnit"
>
<el-input-money
v-model
.
trim=
"detailForm.sizeUnit"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户尺码单位"
prop=
"clientSizeUnit"
>
<el-input-money
v-model
.
trim=
"detailForm.clientSizeUnit"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户工厂代号"
prop=
"plantCode"
>
<el-input-money
v-model
.
trim=
"detailForm.plantCode"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"包装方式"
prop=
"packMode"
>
<el-input-money
v-model
.
trim=
"detailForm.packMode"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
prop=
"state"
>
<el-input-money
v-model
.
trim=
"detailForm.state"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"宝绅内部品名"
prop=
"productName"
>
<el-input-money
v-model
.
trim=
"detailForm.productName"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户产品名称"
prop=
"poProductName"
>
<el-input-money
v-model
.
trim=
"detailForm.poProductName"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户产品代码"
prop=
"poProductNo"
>
<el-input-money
v-model
.
trim=
"detailForm.poProductNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户颜色"
prop=
"poColor"
>
<el-input-money
v-model
.
trim=
"detailForm.poColor"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"配色号"
prop=
"poColorNo"
>
<el-input-money
v-model
.
trim=
"detailForm.poColorNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产地"
prop=
"region"
>
<el-input-money
v-model
.
trim=
"detailForm.region"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"尺码组"
prop=
"sizeGroup"
>
<el-input-money
v-model
.
trim=
"detailForm.sizeGroup"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"尺码"
prop=
"size"
>
<el-input-money
v-model
.
trim=
"detailForm.size"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"整/半码"
prop=
"wholeYard"
>
<el-input-money
v-model
.
trim=
"detailForm.wholeYard"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"特殊size"
prop=
"specialSize"
>
<el-input-money
v-model
.
trim=
"detailForm.specialSize"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"型体号"
prop=
"featureNo"
>
<el-input-money
v-model
.
trim=
"detailForm.featureNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"指令号"
prop=
"cmdNo"
>
<el-input-money
v-model
.
trim=
"detailForm.cmdNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"订单量"
prop=
"orderNum"
>
<el-input-money
v-model
.
trim=
"detailForm.orderNum"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品规格"
prop=
"productSize"
>
<el-input-money
v-model
.
trim=
"detailForm.productSize"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"交货日期"
prop=
"deliveryDate"
>
<el-input-money
v-model
.
trim=
"detailForm.deliveryDate"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户单重"
prop=
"poKg"
>
<el-input-money
v-model
.
trim=
"detailForm.poKg"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户单号"
prop=
"poOrderNo"
>
<el-input-money
v-model
.
trim=
"detailForm.poOrderNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户单位"
prop=
"customerUnit"
>
<el-input-money
v-model
.
trim=
"detailForm.customerUnit"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"签收人"
prop=
"signer"
>
<el-input-money
v-model
.
trim=
"detailForm.signer"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"销线"
prop=
"salePath"
>
<el-input-money
v-model
.
trim=
"detailForm.salePath"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"段别"
prop=
"segment"
>
<el-input-money
v-model
.
trim=
"detailForm.segment"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"版面"
prop=
"layout"
>
<el-input-money
v-model
.
trim=
"detailForm.layout"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"季度"
prop=
"quarter"
>
<el-input-money
v-model
.
trim=
"detailForm.quarter"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"po号"
prop=
"poNo"
>
<el-input-money
v-model
.
trim=
"detailForm.poNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"wip号"
prop=
"wipNo"
>
<el-input-money
v-model
.
trim=
"detailForm.wipNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"装箱数"
prop=
"packingNum"
>
<el-input-money
v-model
.
trim=
"detailForm.packingNum"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"周期"
prop=
"cycle"
>
<el-input-money
v-model
.
trim=
"detailForm.cycle"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"sk编号"
prop=
"skNo"
>
<el-input-money
v-model
.
trim=
"detailForm.skNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"专利号"
prop=
"patentNo"
>
<el-input-money
v-model
.
trim=
"detailForm.patentNo"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"材质描述"
prop=
"materialDesc"
>
<el-input-money
v-model
.
trim=
"detailForm.materialDesc"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"ShipToId"
prop=
"shipToId"
>
<el-input-money
v-model
.
trim=
"detailForm.shipToId"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"条码"
prop=
"barCode"
>
<el-input-money
v-model
.
trim=
"detailForm.barCode"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"印刷方向"
prop=
"printingDirection"
>
<el-input-money
v-model
.
trim=
"detailForm.printingDirection"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
>
<el-button
@
click=
"showDetail = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"onEditDetail"
>
确认
</el-button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
import
{
getOrder
}
from
'@/api/mes/od/purchaseOrder'
import
{
listUser
}
from
'@/api/system/user'
import
{
listClient
}
from
'@/api/mes/md/client'
import
ItemSelect
from
'@/components/itemSelect/single.vue'
export
default
{
components
:
{
ItemSelect
},
dicts
:
[
'sales_order_state'
],
computed
:
{
totalAmount
()
{
return
this
.
form
.
detailList
.
reduce
((
amount
,
item
)
=>
{
amount
=
+
item
.
amount
return
amount
},
0
)
||
0
}
},
data
()
{
return
{
showDetail
:
false
,
detailForm
:
{
itemNo
:
null
,
itemName
:
null
,
totalNum
:
null
,
lossNum
:
null
,
num
:
null
,
price
:
null
,
shipmentPointNo
:
null
,
storeAddr
:
null
,
batchNo
:
null
,
pricingVal
:
null
,
actualDeliveryDate
:
null
,
offerUnit
:
null
,
saleUnit
:
null
,
sizeUnit
:
null
,
clientSizeUnit
:
null
,
plantCode
:
null
,
packMode
:
null
,
state
:
null
,
productName
:
null
,
poProductName
:
null
,
poProductNo
:
null
,
poColor
:
null
,
poColorNo
:
null
,
region
:
null
,
sizeGroup
:
null
,
size
:
null
,
wholeYard
:
null
,
specialSize
:
null
,
featureNo
:
null
,
cmdNo
:
null
,
orderNum
:
null
,
productSize
:
null
,
deliveryDate
:
null
,
poKg
:
null
,
poOrderNo
:
null
,
customerUnit
:
null
,
signer
:
null
,
salePath
:
null
,
segment
:
null
,
layout
:
null
,
quarter
:
null
,
poNo
:
null
,
wipNo
:
null
,
packingNum
:
null
,
cycle
:
null
,
skNo
:
null
,
patentNo
:
null
,
materialDesc
:
null
,
shipToId
:
null
,
barCode
:
null
,
printingDirection
:
null
,
},
detailRules
:
{
itemName
:
{
required
:
true
,
message
:
'请选择产品名称'
,
trigger
:
[
'change'
]
},
itemCode
:
{
required
:
true
,
message
:
'请选择产品编码'
,
trigger
:
[
'change'
]
},
num
:
{
required
:
true
,
message
:
'请输入产品数量'
,
trigger
:
[
'blur'
]
},
amount
:
{
required
:
true
,
message
:
'请输入产品金额'
,
trigger
:
[
'blur'
]
},
state
:
{
required
:
true
,
message
:
'请选择产品状态'
,
trigger
:
[
'change'
]
}
},
odPurchaseOrder
:
{
orderNo
:
null
,
clientId
:
null
,
clientNo
:
null
,
clientName
:
null
,
deliveryDate
:
null
,
state
:
'1'
,
source
:
null
,
detailList
:
[]
},
odSalesOrder
:
{
orderNo
:
null
,
purchaseNo
:
null
,
purchaseDate
:
null
,
clientId
:
null
,
clientNo
:
null
,
clientName
:
null
,
typeNo
:
null
,
amount
:
null
,
merchandiser
:
null
,
custom
:
null
,
orgNo
:
null
,
channelNo
:
null
,
reasonNo
:
null
,
agencyNo
:
null
,
groupNo
:
null
,
currencyNo
:
null
,
deliveryDate
:
null
,
clauseNo
:
null
,
clauseAddr
:
null
,
netValue
:
null
,
despatchType
:
null
,
barCode
:
null
,
urgent
:
null
,
ospNo
:
null
,
state
:
'1'
,
remark
:
'1'
,
detailList
:
[]
},
rules
:
{
orderNo
:
{
required
:
true
,
message
:
'请输入订单编号'
,
trigger
:
[
'change'
]
},
clientId
:
{
required
:
true
,
message
:
'请选择客户'
,
trigger
:
[
'change'
]
},
deliveryDate
:
{
required
:
true
,
message
:
'请选择交货日期'
,
trigger
:
[
'change'
]
},
amount
:
{
required
:
true
,
message
:
'请输入订单总金额'
,
trigger
:
[
'blur'
]
},
merchandiser
:
{
required
:
true
,
message
:
'请选择更进入'
,
trigger
:
[
'change'
]
},
state
:
{
required
:
true
,
message
:
'请选择订单状态'
,
trigger
:
[
'change'
]
}
},
clientList
:
[],
userList
:
[]
}
},
methods
:
{
onGoBack
()
{
this
.
$store
.
dispatch
(
'tagsView/delView'
,
this
.
$router
.
currentRoute
)
this
.
$router
.
back
()
},
getClientList
(
key
)
{
listClient
({
clientName
:
key
,
pageNum
:
1
,
pageSize
:
100
}).
then
(
res
=>
this
.
clientList
=
res
.
rows
)
},
getUserList
(
key
)
{
listUser
({
nickName
:
key
,
pageNum
:
1
,
pageSize
:
100
}).
then
(
res
=>
this
.
userList
=
res
.
rows
)
},
getDetail
()
{
let
orderId
=
this
.
$route
.
query
.
id
if
(
orderId
)
{
getOrder
(
orderId
).
then
(
res
=>
{
let
{
odPurchaseOrder
,
odSalesOrder
}
=
res
.
data
this
.
odPurchaseOrder
=
odPurchaseOrder
this
.
odSalesOrder
=
odSalesOrder
})
}
}
},
created
()
{
this
.
getDetail
()
this
.
getUserList
()
this
.
getClientList
()
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.page-head
{
border-bottom
:
1px
solid
#dddddd
;
box-shadow
:
0
2px
2px
#dddddd
;
}
.page-title
{
line-height
:
80px
;
text-align
:
center
;
font-size
:
18px
;
font-weight
:
bold
;
}
.head-btn
{
margin
:
0
20px
20px
;
}
.page-body
{
margin
:
20px
40px
;
}
.item-spec-title
{
line-height
:
30px
;
font-size
:
20px
;
font-weight
:
bold
;
margin
:
20px
;
padding
:
10px
;
border-bottom
:
1px
solid
#dddddd
;
}
</
style
>
src/views/mes/order/sales/index.vue
View file @
e9846913
...
...
@@ -96,7 +96,7 @@
<el-table
v-loading=
"loading"
:data=
"orderList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"订单编号"
prop=
"orderNo"
/>
<el-table-column
label=
"客户编号"
prop=
"
mdClient.clientCode
"
/>
<el-table-column
label=
"客户编号"
prop=
"
clientNo
"
/>
<el-table-column
label=
"交货期"
prop=
"deliveryDate"
width=
"180"
/>
<el-table-column
label=
"总金额"
prop=
"amount"
:formatter=
"r => this.formatMoney(r.amount)"
/>
<el-table-column
label=
"跟单人"
prop=
"merchandiser"
...
...
@@ -125,6 +125,14 @@
v-hasPermi=
"['od:salesOrder:remove']"
>
删除
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-refresh"
@
click=
"onSync(scope.row)"
v-hasPermi=
"['od:salesOrder:edit']"
>
同步
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -212,6 +220,16 @@ export default {
handleUpdate
(
row
)
{
this
.
$router
.
push
(
'/order/sales/detail?id='
+
row
.
id
)
},
/** 同步数据 */
onSync
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
this
.
$modal
.
confirm
(
'是否确认同步销售订单编号为"'
+
ids
+
'"的数据项?'
).
then
(()
=>
{
syncOrder
(
ids
).
then
(()
=>
{
this
.
getList
()
this
.
$modal
.
msgSuccess
(
'删除成功'
)
})
})
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
...
...
src/views/mes/order/salesdetail/index.vue
View file @
e9846913
...
...
@@ -8,7 +8,7 @@
</div>
</div>
<div
class=
"page-body"
>
<el-form
:model=
"form"
ref=
"form"
:rules=
"rules"
label-width=
"1
0
0px"
>
<el-form
:model=
"form"
ref=
"form"
:rules=
"rules"
label-width=
"1
3
0px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"订单编号"
prop=
"orderNo"
>
...
...
@@ -16,19 +16,123 @@
<el-button
@
click=
"onGenCode"
style=
"width: 80px; margin-left: 20px"
:disabled=
"!!form.id"
>
生成
</el-button>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"订单销售类型"
prop=
"typeNo"
>
<el-select
v-model=
"form.typeNo"
clearable
placeholder=
"请选择 订单销售类型"
>
<el-option
v-for=
"item in saleType"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"销售组织"
prop=
"orgNo"
>
<el-select
v-model=
"form.orgNo"
clearable
placeholder=
"请选择 销售组织"
>
<el-option
v-for=
"item in saleOrg"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"分销渠道"
prop=
"channelNo"
>
<el-select
v-model=
"form.channelNo"
clearable
placeholder=
"请选择 分销渠道"
>
<el-option
v-for=
"item in saleChannel"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"订单原因"
prop=
"reasonNo"
>
<el-select
v-model=
"form.reasonNo"
clearable
placeholder=
"请选择 订单原因"
>
<el-option
v-for=
"item in saleReason"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"销售办事处"
prop=
"agencyNo"
>
<el-select
v-model=
"form.agencyNo"
clearable
placeholder=
"请选择 销售办事处"
>
<el-option
v-for=
"item in saleOffice"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"销售小组"
prop=
"groupNo"
>
<el-select
v-model=
"form.groupNo"
clearable
placeholder=
"请选择 销售小组"
>
<el-option
v-for=
"item in saleGroup"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户编号"
prop=
"clientNo"
>
<el-select
v-model=
"form.clientId"
placeholder=
"请选择 客户"
clearable
filterable
remote
:remote-method=
"getClientList"
>
<el-option
v-for=
"item in clientList"
:key=
"item.clientId"
:value=
"item.clientId"
:label=
"item.clientCode"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户名称"
prop=
"clientId"
>
<el-select
v-model=
"form.clientId"
placeholder=
"请选择 客户"
clearable
filterable
remote
:remote-method=
"getClientList"
>
<el-option
v-for=
"item in clientList"
:key=
"item.clientId"
:value=
"item.clientId"
:label=
"item.clientName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"交货日期"
prop=
"deliveryDate"
>
<el-form-item
label=
"客户采购订单号"
prop=
"purchaseNo"
>
<el-input
v-model=
"form.purchaseNo"
placeholder=
"请输入客户订单号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"销售币别"
prop=
"currencyNo"
>
<el-select
v-model=
"form.currencyNo"
clearable
placeholder=
"请选择 销售币别"
>
<el-option
v-for=
"item in saleCurrency"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"要求交货期"
prop=
"deliveryDate"
>
<el-date-picker
v-model=
"form.deliveryDate"
type=
"date"
value-format=
"yyyy-MM-dd 23:59:59"
placeholder=
"选择交货日期"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"国际贸易条款"
prop=
"clauseNo"
>
<el-select
v-model=
"form.clauseNo"
clearable
placeholder=
"请选择 国际贸易条款"
>
<el-option
v-for=
"item in saleClause"
:key=
"item.code"
:value=
"item.code"
:label=
"item.name"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"国际贸易条款地址"
prop=
"clauseAddr"
>
<el-input
v-model=
"form.clauseAddr"
placeholder=
"请输入国际贸易条款地址"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
title=
"凭证货币中销售订单的"
>
<el-form-item
label=
"净值"
prop=
"netValue"
>
<el-input
v-model=
"form.netValue"
placeholder=
"请输入凭证货币中销售订单的净值"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"发货方式"
prop=
"despatchType"
>
<el-select
v-model=
"form.despatchType"
placeholder=
"请选择发货方式"
>
<el-option
label=
"款到发货"
value=
"1"
/>
<el-option
label=
"款到生产"
value=
"2"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"条码"
prop=
"barCode"
>
<el-input
v-model=
"form.barCode"
placeholder=
"请输入条码"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"加急"
prop=
"urgent"
>
<el-select
v-model=
"form.urgent"
placeholder=
"请选择加急"
>
<el-option
label=
"加急"
value=
"1"
/>
<el-option
label=
"不加急"
value=
"0"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"osp订单号"
prop=
"ospNo"
>
<el-input
v-model=
"form.ospNo"
placeholder=
"请输入osp订单号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"总金额"
required
>
<el-input-money
v-model=
"totalAmount"
placeholder=
"请输入 总金额"
readonly
/>
...
...
@@ -41,6 +145,16 @@
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户采购订单日期"
prop=
"purchaseDate"
>
<el-date-picker
clearable
v-model=
"form.purchaseDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择客户采购订单日期"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户定制信息"
prop=
"custom"
>
<el-input
v-model=
"form.custom"
placeholder=
"请输入客户定制信息"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"订单状态"
prop=
"state"
>
<el-select
v-model=
"form.state"
clearable
placeholder=
"请选择订单状态"
>
...
...
@@ -48,7 +162,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col
:offset=
"
16"
:span=
"8
"
>
<el-col
:offset=
"
8"
:span=
"16
"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
type=
"textarea"
v-model=
"form.remark"
placeholder=
"请输入 备注"
show-word-limit
maxlength=
"120"
:rows=
"3"
/>
</el-form-item>
...
...
@@ -58,72 +172,309 @@
</div>
<div
class=
"page-item"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-table
:data=
"form.detailList"
@
selection-change=
"handleSelectionChange"
max-height=
"600"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"产品名称"
prop=
"itemName"
show-overflow-tooltip
/>
<el-table-column
label=
"产品编码"
prop=
"itemNo"
show-overflow-tooltip
/>
<el-table-column
label=
"总数量"
prop=
"totalNum"
show-overflow-tooltip
/>
<el-table-column
label=
"loss数量"
prop=
"lossNum"
show-overflow-tooltip
/>
<el-table-column
label=
"数量"
prop=
"num"
show-overflow-tooltip
/>
<el-table-column
label=
"单价"
:formatter=
"r => this.formatMoney(r.price)"
show-overflow-tooltip
/>
<el-table-column
label=
"装运点"
prop=
"shipmentPointNo"
show-overflow-tooltip
/>
<el-table-column
label=
"存储地点"
prop=
"storeAddr"
show-overflow-tooltip
/>
<el-table-column
label=
"批次号"
prop=
"batchNo"
show-overflow-tooltip
/>
<el-table-column
label=
"批次号"
prop=
"batchNo"
show-overflow-tooltip
/>
<el-table-column
label=
"实际交货日期"
prop=
"actualDeliveryDate"
show-overflow-tooltip
/>
<el-table-column
label=
"定价值"
prop=
"pricingVal"
show-overflow-tooltip
/>
<el-table-column
label=
"报价单位"
prop=
"offerUnit"
show-overflow-tooltip
/>
<el-table-column
label=
"销售单位"
prop=
"saleUnit"
show-overflow-tooltip
/>
<el-table-column
label=
"尺码单位"
prop=
"sizeUnit"
show-overflow-tooltip
/>
<el-table-column
label=
"客户订单号"
prop=
"poOrderNo"
show-overflow-tooltip
/>
<el-table-column
label=
"客户产品代码"
prop=
"clientItemNo"
show-overflow-tooltip
/>
<el-table-column
label=
"客户产品名称"
prop=
"clientItemName"
show-overflow-tooltip
/>
<el-table-column
label=
"客户尺码单位"
prop=
"clientSizeUnit"
show-overflow-tooltip
/>
<el-table-column
label=
"客户指令号"
prop=
"clientCmd"
show-overflow-tooltip
/>
<el-table-column
label=
"客户单重"
prop=
"clientKg"
show-overflow-tooltip
/>
<el-table-column
label=
"销线"
prop=
"salePath"
show-overflow-tooltip
/>
<el-table-column
label=
"段别"
prop=
"segment"
show-overflow-tooltip
/>
<el-table-column
label=
"版面"
prop=
"layout"
show-overflow-tooltip
/>
<el-table-column
label=
"季度"
prop=
"quarter"
show-overflow-tooltip
/>
<el-table-column
label=
"整/半码"
prop=
"wholeSize"
show-overflow-tooltip
/>
<el-table-column
label=
"特殊尺码"
prop=
"specSize"
show-overflow-tooltip
/>
<el-table-column
label=
"po号"
prop=
"poNo"
show-overflow-tooltip
/>
<el-table-column
label=
"wip号"
prop=
"wipNo"
show-overflow-tooltip
/>
<el-table-column
label=
"装箱数"
prop=
"packingNum"
show-overflow-tooltip
/>
<el-table-column
label=
"周期"
prop=
"cycle"
show-overflow-tooltip
/>
<el-table-column
label=
"周期"
prop=
"cycle"
show-overflow-tooltip
/>
<el-table-column
label=
"sk号"
prop=
"skNo"
show-overflow-tooltip
/>
<el-table-column
label=
"专利号"
prop=
"patentNo"
show-overflow-tooltip
/>
<el-table-column
label=
"材质描述"
prop=
"materialDesc"
show-overflow-tooltip
/>
<el-table-column
label=
"签收人"
prop=
"signer"
show-overflow-tooltip
/>
<el-table-column
label=
"ShipToId"
prop=
"shipToId"
show-overflow-tooltip
/>
<el-table-column
label=
"ShipToId"
prop=
"shipToId"
show-overflow-tooltip
/>
<el-table-column
label=
"交货日期"
prop=
"deliveryDate"
show-overflow-tooltip
/>
<el-table-column
label=
"尺码组"
prop=
"sizeGroup"
show-overflow-tooltip
/>
<el-table-column
label=
"订单量"
prop=
"orderNum"
show-overflow-tooltip
/>
<el-table-column
label=
"条码"
prop=
"barCode"
show-overflow-tooltip
/>
<el-table-column
label=
"印刷方向"
prop=
"printingDirection"
show-overflow-tooltip
/>
<el-table-column
label=
"产品规格"
prop=
"prodSpec"
show-overflow-tooltip
/>
<el-table-column
label=
"客户工厂代号"
prop=
"plantCode"
show-overflow-tooltip
/>
<el-table-column
label=
"包装方式"
prop=
"packMode"
show-overflow-tooltip
/>
<el-table-column
label=
"备注"
prop=
"remark"
show-overflow-tooltip
/>
<el-table-column
label=
"状态"
prop=
"state"
>
<template
slot-scope=
"
{row}">
{{
dict
.
type
.
sales_order_state
.
find
(
item
=>
item
.
value
==
row
.
state
).
label
}}
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"100"
>
<
template
slot-scope=
"{row, $index}"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
v-hasPermi=
"['od:salesOrder:edit']"
size=
"mini"
@
click=
"onShowEditDetail(null)
"
v-hasPermi=
"['mes:md:client:add']
"
>
新增
type=
"text
"
@
click=
"onShowEditDetail(row, $index)
"
>
查看
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"danger"
plain
icon=
"el-icon-delete"
v-hasPermi=
"['od:salesOrder:edit']"
size=
"mini"
:disabled=
"multiple"
@
click=
"onDeleteDetail"
v-hasPermi=
"['mes:md:client:remove']"
>
删除
type=
"text"
@
click=
"onShowSpecDetail(row)"
>
特性
</el-button>
</el-col>
</el-row>
</
template
>
</el-table-column>
</el-table>
</div>
<el-dialog
:visible=
"showEditDetail"
:title=
"itemForm.id ? '修改订单产品' : '新增订单产品'"
width=
"96
0px"
>
<el-dialog
:visible=
"showEditDetail"
title=
"订单详情"
width=
"120
0px"
>
<el-form
:model=
"itemForm"
ref=
"itemForm"
:rules=
"itemRules"
label-width=
"100px"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品名称"
prop=
"itemName"
>
<el-input
v-model=
"itemForm.itemName"
readonly
placeholder=
"请选择产品"
clearable
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"$refs['ItemSelectRef'].showFlag = true"
/>
</el-input>
<ItemSelect
ref=
"ItemSelectRef"
@
onSelected=
"onItemSelect"
/>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"产品名称"
>
<el-input
v-model=
"itemForm.itemName"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"12
"
>
<el-form-item
label=
"产品编码"
prop=
"itemName
"
>
<el-input
v-model=
"itemForm.itemCode"
placeholder=
"请输入 产品编码"
readonly
/>
<el-col
:span=
"8
"
>
<el-form-item
prop=
""
label=
"产品编码
"
>
<el-input
v-model=
"itemForm.itemNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"12
"
>
<el-form-item
label=
"数量"
prop=
"num
"
>
<el-input
v-model
.
number=
"itemForm.num"
placeholder=
"请输入 数量
"
clearable
/>
<el-col
:span=
"8
"
>
<el-form-item
prop=
""
label=
"总数量
"
>
<el-input
v-model=
"itemForm.totalNum"
placeholder=
"
"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"12
"
>
<el-form-item
label=
"金额"
prop=
"amount
"
>
<el-input-money
v-model=
"itemForm.amount"
placeholder=
"请输入 金额
"
clearable
/>
<el-col
:span=
"8
"
>
<el-form-item
prop=
""
label=
"loss数量
"
>
<el-input
v-model=
"itemForm.lossNum"
placeholder=
"
"
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
prop=
"state"
>
<el-select
v-model=
"itemForm.state"
clearable
placeholder=
"请选择订单状态"
>
<el-option
v-for=
"item in dict.type.sales_order_state"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"数量"
>
<el-input
v-model=
"itemForm.num"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<template
v-if=
"itemForm.specList"
>
<el-col
v-for=
"(spec, i) in itemForm.specList"
:span=
"12"
:key=
"spec.specId"
>
<el-form-item
:label=
"spec.specKey"
:prop=
"'specList.' + i + '.specVal'"
:rules=
"
{required: true, message: '特性值不能为空', trigger: 'blur'}">
<el-input
v-model=
"spec.specVal"
clearable
/>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"单价"
>
<el-input
v-model=
"itemForm.price"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"装运点"
>
<el-input
v-model=
"itemForm.shipmentPointNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"存储地点"
>
<el-input
v-model=
"itemForm.storeAddr"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"批次号"
>
<el-input
v-model=
"itemForm.batchNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"实际交货日期"
>
<el-date-picker
clearable
v-model=
"itemForm.actualDeliveryDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择实际交货日期"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"定价值"
>
<el-input
v-model=
"itemForm.pricingVal"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"报价单位"
>
<el-input
v-model=
"itemForm.offerUnit"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"销售单位"
>
<el-input
v-model=
"itemForm.saleUnit"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"尺码单位"
>
<el-input
v-model=
"itemForm.sizeUnit"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户订单号"
>
<el-input
v-model=
"itemForm.poOrderNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户产品代码"
>
<el-input
v-model=
"itemForm.clientItemNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户产品名称"
>
<el-input
v-model=
"itemForm.clientItemName"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户尺码单位"
>
<el-input
v-model=
"itemForm.clientSizeUnit"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户指令号"
>
<el-input
v-model=
"itemForm.clientCmd"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户单重"
>
<el-input
v-model=
"itemForm.clientKg"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"销线"
>
<el-input
v-model=
"itemForm.salePath"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"段别"
>
<el-input
v-model=
"itemForm.segment"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"版面"
>
<el-input
v-model=
"itemForm.layout"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"季度"
>
<el-input
v-model=
"itemForm.quarter"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"整/半码"
>
<el-input
v-model=
"itemForm.wholeSize"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"特殊尺码"
>
<el-input
v-model=
"itemForm.specSize"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"po号"
>
<el-input
v-model=
"itemForm.poNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"wip号"
>
<el-input
v-model=
"itemForm.wipNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"装箱数"
>
<el-input
v-model=
"itemForm.packingNum"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"周期"
>
<el-input
v-model=
"itemForm.cycle"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"sk号"
>
<el-input
v-model=
"itemForm.skNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"专利号"
>
<el-input
v-model=
"itemForm.patentNo"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"材质描述"
>
<el-input
v-model=
"itemForm.materialDesc"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"签收人"
>
<el-input
v-model=
"itemForm.signer"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"ShipToId"
>
<el-input
v-model=
"itemForm.shipToId"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"交货日期"
>
<el-date-picker
clearable
v-model=
"itemForm.deliveryDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择交货日期"
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"尺码组"
>
<el-input
v-model=
"itemForm.sizeGroup"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"订单量"
>
<el-input
v-model=
"itemForm.orderNum"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"条码"
>
<el-input
v-model=
"itemForm.barCode"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"印刷方向"
>
<el-input
v-model=
"itemForm.printingDirection"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"产品规格"
>
<el-input
v-model=
"itemForm.prodSpec"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"客户工厂代号"
>
<el-input
v-model=
"itemForm.plantCode"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"包装方式"
>
<el-input
v-model=
"itemForm.packMode"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"备注"
>
<el-input
v-model=
"itemForm.remark"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
prop=
""
label=
"状态"
>
<el-input
v-model=
"itemForm.state"
placeholder=
""
clearable
/>
</el-form-item>
</el-col>
</
template
>
</el-row>
</el-form>
<div
slot=
"footer"
>
...
...
@@ -147,58 +498,18 @@
</div>
</el-dialog>
<el-table
:data=
"form.detailList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"产品名称"
prop=
"itemName"
show-overflow-tooltip
/>
<el-table-column
label=
"产品编码"
prop=
"itemCode"
/>
<el-table-column
label=
"数量"
prop=
"num"
width=
"150"
/>
<el-table-column
label=
"金额"
:formatter=
"r => this.formatMoney(r.amount)"
width=
"250"
/>
<el-table-column
label=
"订单状态"
prop=
"state"
width=
"150"
>
<
template
slot-scope=
"{row}"
>
{{
dict
.
type
.
sales_order_state
.
find
(
item
=>
item
.
value
==
row
.
state
).
label
}}
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
width=
"180"
>
<
template
slot-scope=
"{row}"
>
<el-button
v-hasPermi=
"['od:salesOrder:edit']"
size=
"mini"
type=
"text"
icon=
"el-icon-search"
@
click=
"onShowSpecDetail(row)"
>
产品特性
</el-button>
<el-button
v-hasPermi=
"['od:salesOrder:edit']"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"onShowEditDetail(row)"
>
修改
</el-button>
<el-button
v-hasPermi=
"['od:salesOrder:remove']"
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"onDeleteDetail(row)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</template>
<
script
>
import
{
addOrder
,
getOrder
,
updateOrder
}
from
'@/api/mes/od/salesOrder'
import
{
getSalesOrder
}
from
'@/api/mes/od/purchaseOrder'
import
{
listUser
}
from
'@/api/system/user'
import
{
listClient
}
from
'@/api/mes/md/client'
import
{
listSpec
}
from
'@/api/mes/md/spec.js'
import
ItemSelect
from
'@/components/itemSelect/single.vue'
import
{
genCode
}
from
"@/api/system/autocode/rule"
import
{
genCode
}
from
'@/api/system/autocode/rule'
export
default
{
components
:
{
...
...
@@ -210,28 +521,88 @@ export default {
return
this
.
form
.
detailList
.
reduce
((
amount
,
item
)
=>
{
amount
=
+
item
.
amount
return
amount
},
0
)
}
,
},
0
)
||
0
}
},
data
()
{
return
{
form
:
{
id
:
null
,
remark
:
null
,
orderNo
:
null
,
purchaseNo
:
null
,
purchaseDate
:
null
,
clientId
:
null
,
deliveryDate
:
null
,
clientNo
:
null
,
orderNo
:
null
,
typeNo
:
null
,
amount
:
null
,
merchandiser
:
null
,
custom
:
null
,
orgNo
:
null
,
channelNo
:
null
,
reasonNo
:
null
,
agencyNo
:
null
,
groupNo
:
null
,
currencyNo
:
null
,
deliveryDate
:
null
,
clauseNo
:
null
,
clauseAddr
:
null
,
netValue
:
null
,
despatchType
:
null
,
barCode
:
null
,
urgent
:
null
,
ospNo
:
null
,
state
:
null
,
detailList
:
[]
},
itemForm
:
{
id
:
null
,
orderId
:
null
,
itemId
:
null
,
itemNo
:
null
,
itemName
:
null
,
itemCode
:
null
,
totalNum
:
null
,
num
:
null
,
amount
:
null
,
lossNum
:
null
,
price
:
null
,
shipmentPointNo
:
null
,
storeAddr
:
null
,
batchNo
:
null
,
actualDeliveryDate
:
null
,
pricingVal
:
null
,
offerUnit
:
null
,
saleUnit
:
null
,
sizeUnit
:
null
,
poOrderNo
:
null
,
clientItemNo
:
null
,
clientItemName
:
null
,
clientSizeUnit
:
null
,
clientCmd
:
null
,
clientKg
:
null
,
salePath
:
null
,
segment
:
null
,
layout
:
null
,
quarter
:
null
,
wholeSize
:
null
,
specSize
:
null
,
poNo
:
null
,
wipNo
:
null
,
packingNum
:
null
,
cycle
:
null
,
skNo
:
null
,
patentNo
:
null
,
materialDesc
:
null
,
signer
:
null
,
shipToId
:
null
,
deliveryDate
:
null
,
sizeGroup
:
null
,
size
:
null
,
orderNum
:
null
,
barCode
:
null
,
printingDirection
:
null
,
prodSpec
:
null
,
plantCode
:
null
,
packMode
:
null
,
remark
:
null
,
state
:
null
,
specList
:
[]
},
...
...
@@ -259,7 +630,19 @@ export default {
showSpecDetail
:
false
,
showEditDetail
:
false
,
loading
:
false
,
multiple
:
false
multiple
:
false
,
saleChannel
:
[],
saleGroup
:
[],
saleOffice
:
[],
saleOrg
:
[],
saleType
:
[],
saleUnit
:
[],
saleClause
:
[],
saleCurrency
:
[],
salePaymentClause
:
[],
saleReason
:
[],
saleShipmentPoint
:
[],
}
},
methods
:
{
...
...
@@ -268,6 +651,11 @@ export default {
this
.
loading
=
true
this
.
$refs
.
form
.
validate
(
valid
=>
{
if
(
valid
)
{
let
msg
=
this
.
checkedItem
()
if
(
msg
)
{
this
.
loading
=
false
return
this
.
$message
.
error
(
msg
)
}
let
editOrder
=
this
.
form
.
id
?
updateOrder
:
addOrder
editOrder
(
this
.
form
).
then
(()
=>
{
this
.
$message
.
success
(
'操作成功'
)
...
...
@@ -283,32 +671,19 @@ export default {
this
.
showEditDetail
=
false
this
.
$refs
.
itemForm
.
validate
(
valid
=>
{
if
(
valid
)
{
let
index
=
this
.
form
.
detailList
.
indexOf
(
item
=>
item
.
id
===
this
.
itemForm
.
id
)
if
(
index
!=
-
1
)
{
this
.
form
.
detailList
[
index
]
=
this
.
itemForm
}
else
{
this
.
form
.
detailList
.
push
(
this
.
itemForm
)
}
this
.
form
.
detailList
[
this
.
itemForm
.
index
]
=
this
.
itemForm
}
})
},
onItemSelect
(
row
)
{
if
(
row
!=
null
)
{
this
.
itemForm
.
itemId
=
row
.
itemId
this
.
itemForm
.
itemName
=
row
.
itemName
this
.
itemForm
.
itemCode
=
row
.
itemCode
listSpec
({
itemId
:
row
.
itemId
}).
then
(
res
=>
{
for
(
let
itemSpec
of
res
.
rows
)
{
const
itemSize
=
{
specId
:
itemSpec
.
itemSpecId
,
specKey
:
itemSpec
.
spec
,
specVal
:
null
}
this
.
itemForm
.
specList
.
push
(
itemSize
)
}
}).
finally
(()
=>
this
.
$forceUpdate
())
checkedItem
()
{
let
{
detailList
}
=
this
.
form
for
(
let
i
=
0
;
i
<
detailList
.
length
;
i
++
)
{
let
detail
=
detailList
[
i
]
if
(
!
detail
.
itemId
)
return
'第'
+
i
+
'项缺少itemId'
// todo 检测未做
}
return
null
},
onShowSpecDetail
(
row
)
{
console
.
log
(
row
)
this
.
showSpecDetail
=
true
...
...
@@ -316,11 +691,12 @@ export default {
},
onShowEditDetail
(
item
)
{
onShowEditDetail
(
item
,
$index
)
{
console
.
log
(
item
)
this
.
showEditDetail
=
true
this
.
$refs
.
itemForm
&&
this
.
$refs
.
itemForm
.
resetFields
()
this
.
itemForm
=
item
||
{
itemName
:
null
,
itemCode
:
null
,
num
:
null
,
amount
:
null
,
state
:
null
,
specList
:
[]
}
this
.
itemForm
.
index
=
$index
},
onDeleteDetail
(
row
)
{
...
...
@@ -343,13 +719,13 @@ export default {
this
.
multiple
=
!
selection
.
length
},
onGenCode
()
{
genCode
(
'SALES_ORDER
_CODE
'
).
then
(
response
=>
{
this
.
form
.
orderNo
=
response
;
})
;
genCode
(
'SALES_ORDER'
).
then
(
response
=>
{
this
.
form
.
orderNo
=
response
})
},
onGoBack
()
{
this
.
$store
.
dispatch
(
"tagsView/delView"
,
this
.
$router
.
currentRoute
)
this
.
$store
.
dispatch
(
'tagsView/delView'
,
this
.
$router
.
currentRoute
)
this
.
$router
.
back
()
},
...
...
@@ -361,19 +737,93 @@ export default {
listUser
({
nickName
:
key
,
pageNum
:
1
,
pageSize
:
100
}).
then
(
res
=>
this
.
userList
=
res
.
rows
)
},
getDetail
()
{
let
orderId
=
this
.
$route
.
query
.
id
let
{
id
:
orderId
,
purchaseId
}
=
this
.
$route
.
query
if
(
orderId
)
{
getOrder
(
orderId
).
then
(
res
=>
{
this
.
form
=
res
.
data
this
.
form
.
detailList
=
this
.
form
.
detailList
||
[]
})
}
else
if
(
purchaseId
)
{
getSalesOrder
(
purchaseId
).
then
(
res
=>
{
this
.
form
=
res
.
data
this
.
form
.
detailList
=
this
.
form
.
detailList
||
[]
})
}
},
listSaleChannel
()
{
this
.
$store
.
dispatch
(
'order/getSaleChannel'
).
then
(
res
=>
{
this
.
saleChannel
=
res
})
},
listSaleGroup
()
{
this
.
$store
.
dispatch
(
'order/getSaleGroup'
).
then
(
res
=>
{
this
.
saleGroup
=
res
})
},
listSaleOffice
()
{
this
.
$store
.
dispatch
(
'order/getSaleOffice'
).
then
(
res
=>
{
this
.
saleOffice
=
res
})
},
listSaleOrg
()
{
this
.
$store
.
dispatch
(
'order/getSaleOrg'
).
then
(
res
=>
{
this
.
saleOrg
=
res
})
},
listSaleType
()
{
this
.
$store
.
dispatch
(
'order/getSaleType'
).
then
(
res
=>
{
this
.
saleType
=
res
})
},
listSaleUnit
()
{
this
.
$store
.
dispatch
(
'order/getSaleUnit'
).
then
(
res
=>
{
this
.
saleUnit
=
res
})
},
listSaleClause
()
{
this
.
$store
.
dispatch
(
'order/getSaleClause'
).
then
(
res
=>
{
this
.
saleClause
=
res
})
},
listSaleCurrency
()
{
this
.
$store
.
dispatch
(
'order/getSaleCurrency'
).
then
(
res
=>
{
this
.
saleCurrency
=
res
})
},
listSalePaymentClause
()
{
this
.
$store
.
dispatch
(
'order/getSalePaymentClause'
).
then
(
res
=>
{
this
.
salePaymentClause
=
res
})
},
listSaleReason
()
{
this
.
$store
.
dispatch
(
'order/getSaleReason'
).
then
(
res
=>
{
this
.
saleReason
=
res
})
},
listSaleShipmentPoint
()
{
this
.
$store
.
dispatch
(
'order/getSaleShipmentPoint'
).
then
(
res
=>
{
this
.
saleShipmentPoint
=
res
})
},
getSaleNos
()
{
this
.
listSaleChannel
()
this
.
listSaleGroup
()
this
.
listSaleOffice
()
this
.
listSaleOrg
()
this
.
listSaleType
()
this
.
listSaleUnit
()
this
.
listSaleClause
()
this
.
listSaleCurrency
()
this
.
listSalePaymentClause
()
this
.
listSaleReason
()
this
.
listSaleShipmentPoint
()
}
},
created
()
{
this
.
getDetail
()
this
.
getUserList
()
this
.
getClientList
()
this
.
getSaleNos
()
}
}
</
script
>
...
...
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