Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
JSH ERP
Commits
644b1851
Commit
644b1851
authored
Oct 05, 2021
by
季圣华
Browse files
移除序列号模块
parent
fdd05b13
Changes
3
Hide whitespace changes
Inline
Side-by-side
jshERP-web/src/views/system/SerialNumberList.vue
deleted
100644 → 0
View file @
fdd05b13
<
template
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"24"
>
<a-card
:bordered=
"false"
>
<!-- 查询区域 -->
<div
class=
"table-page-search-wrapper"
>
<!-- 搜索区域 -->
<a-form
layout=
"inline"
@
keyup.enter.native=
"searchQuery"
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"6"
:sm=
"24"
>
<a-form-item
label=
"序列号"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
placeholder=
"请输入序列号查询"
v-model=
"queryParam.serialNumber"
></a-input>
</a-form-item>
</a-col>
<a-col
:md=
"6"
:sm=
"24"
>
<a-form-item
label=
"商品名称"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
>
<a-input
placeholder=
"请输入商品名称查询"
v-model=
"queryParam.materialName"
></a-input>
</a-form-item>
</a-col>
<span
style=
"float: left;overflow: hidden;"
class=
"table-page-search-submitButtons"
>
<a-col
:md=
"6"
:sm=
"24"
>
<a-button
type=
"primary"
@
click=
"searchQuery"
>
查询
</a-button>
<a-button
style=
"margin-left: 8px"
@
click=
"searchReset"
>
重置
</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
style=
"margin-top: 5px"
>
<a-button
v-if=
"btnEnableList.indexOf(1)>-1"
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
v-if=
"btnEnableList.indexOf(1)>-1"
@
click=
"handleBatchAdd"
type=
"primary"
icon=
"plus"
>
批量新增
</a-button>
<a-dropdown>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
v-if=
"btnEnableList.indexOf(1)>-1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
</a-menu>
<a-button
style=
"margin-left: 8px"
>
批量操作
<a-icon
type=
"down"
/>
</a-button>
</a-dropdown>
</div>
<!-- table区域-begin -->
<div>
<a-table
ref=
"table"
size=
"middle"
bordered
rowKey=
"id"
:columns=
"columns"
:dataSource=
"dataSource"
:pagination=
"ipagination"
:loading=
"loading"
:rowSelection=
"
{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<span
slot=
"action"
slot-scope=
"text, record"
>
<a
@
click=
"handleEdit(record)"
>
编辑
</a>
<a-divider
v-if=
"btnEnableList.indexOf(1)>-1"
type=
"vertical"
/>
<a-popconfirm
v-if=
"btnEnableList.indexOf(1)>-1"
title=
"确定删除吗?"
@
confirm=
"() => handleDelete(record.id)"
>
<a>
删除
</a>
</a-popconfirm>
</span>
<span
slot=
"inBillNoCustomRender"
slot-scope=
"text, record"
>
<a
@
click=
"myHandleDetail(record.inBillNo)"
>
{{
record
.
inBillNo
}}
</a>
</span>
<span
slot=
"outBillNoCustomRender"
slot-scope=
"text, record"
>
<a
@
click=
"myHandleDetail(record.outBillNo)"
>
{{
record
.
outBillNo
}}
</a>
</span>
<!-- 状态渲染模板 -->
<template
slot=
"customRenderFlag"
slot-scope=
"isSell"
>
<a-tag
v-if=
"isSell==1"
color=
"green"
>
是
</a-tag>
<a-tag
v-if=
"isSell==0"
color=
"orange"
>
否
</a-tag>
</
template
>
<
template
slot=
"customRenderTime"
slot-scope=
"timeStr"
>
{{
simpleDateFormat
(
timeStr
,
'
yyyy-MM-dd hh:mm:ss
'
)
}}
</
template
>
</a-table>
</div>
<!-- table区域-end -->
<!-- 表单区域 -->
<serial-number-modal
ref=
"modalForm"
@
ok=
"modalFormOk"
></serial-number-modal>
<serial-number-batch-modal
ref=
"serialNumberBatchModel"
@
ok=
"modalFormOk"
></serial-number-batch-modal>
<bill-detail
ref=
"modalDetail"
></bill-detail>
</a-card>
</a-col>
</a-row>
</template>
<!-- f r o m 7 5 2 7 1 8 9 2 0 -->
<
script
>
import
SerialNumberModal
from
'
./modules/SerialNumberModal
'
import
SerialNumberBatchModal
from
'
./modules/SerialNumberBatchModal
'
import
BillDetail
from
'
../bill/dialog/BillDetail
'
import
{
JeecgListMixin
}
from
'
@/mixins/JeecgListMixin
'
import
{
formatDate
}
from
"
@/utils/util
"
import
{
findBillDetailByNumber
}
from
'
@/api/api
'
import
JDate
from
'
@/components/jeecg/JDate
'
export
default
{
name
:
"
SerialNumberList
"
,
mixins
:[
JeecgListMixin
],
components
:
{
SerialNumberModal
,
SerialNumberBatchModal
,
BillDetail
,
JDate
},
data
()
{
return
{
labelCol
:
{
span
:
5
},
wrapperCol
:
{
span
:
18
,
offset
:
1
},
// 查询条件
queryParam
:
{
materialName
:
''
,
serialNumber
:
''
},
// 表头
columns
:
[
{
title
:
'
#
'
,
dataIndex
:
''
,
key
:
'
rowIndex
'
,
width
:
40
,
align
:
"
center
"
,
customRender
:
function
(
t
,
r
,
index
)
{
return
parseInt
(
index
)
+
1
;
}
},
{
title
:
'
序列号
'
,
align
:
"
left
"
,
dataIndex
:
'
serialNumber
'
,
width
:
180
},
{
title
:
'
商品条码
'
,
align
:
"
center
"
,
dataIndex
:
'
materialCode
'
,
width
:
120
},
{
title
:
'
商品名称
'
,
align
:
"
center
"
,
dataIndex
:
'
materialName
'
,
width
:
120
},
{
title
:
'
仓库
'
,
align
:
"
center
"
,
dataIndex
:
'
depotName
'
,
width
:
150
},
{
title
:
'
入库单号
'
,
align
:
"
center
"
,
dataIndex
:
'
inBillNo
'
,
width
:
150
,
scopedSlots
:
{
customRender
:
'
inBillNoCustomRender
'
},
},
{
title
:
'
出库单号
'
,
align
:
"
center
"
,
dataIndex
:
'
outBillNo
'
,
width
:
150
,
scopedSlots
:
{
customRender
:
'
outBillNoCustomRender
'
},
},
{
title
:
'
已卖出
'
,
align
:
"
center
"
,
dataIndex
:
'
isSell
'
,
width
:
60
,
scopedSlots
:
{
customRender
:
'
customRenderFlag
'
}
},
{
title
:
'
创建时间
'
,
align
:
"
center
"
,
dataIndex
:
'
createTime
'
,
width
:
160
,
scopedSlots
:
{
customRender
:
'
customRenderTime
'
}
},
{
title
:
'
更新时间
'
,
align
:
"
center
"
,
dataIndex
:
'
updateTime
'
,
width
:
160
,
scopedSlots
:
{
customRender
:
'
customRenderTime
'
}
},
{
title
:
'
操作
'
,
dataIndex
:
'
action
'
,
width
:
200
,
align
:
"
center
"
,
scopedSlots
:
{
customRender
:
'
action
'
},
}
],
url
:
{
list
:
"
/serialNumber/list
"
,
delete
:
"
/serialNumber/delete
"
,
deleteBatch
:
"
/serialNumber/deleteBatch
"
}
}
},
computed
:
{
},
methods
:
{
handleBatchAdd
()
{
this
.
$refs
.
serialNumberBatchModel
.
add
();
this
.
$refs
.
serialNumberBatchModel
.
title
=
"
批量新增
"
;
this
.
$refs
.
serialNumberBatchModel
.
disableSubmit
=
false
;
},
simpleDateFormat
(
millisecond
,
format
)
{
return
formatDate
(
millisecond
,
format
)
},
handleEdit
:
function
(
record
)
{
this
.
$refs
.
modalForm
.
edit
(
record
);
this
.
$refs
.
modalForm
.
title
=
"
编辑
"
;
this
.
$refs
.
modalForm
.
disableSubmit
=
false
;
if
(
this
.
btnEnableList
.
indexOf
(
1
)
===-
1
)
{
this
.
$refs
.
modalForm
.
isReadOnly
=
true
}
},
myHandleDetail
(
billNo
)
{
findBillDetailByNumber
({
number
:
billNo
}).
then
((
res
)
=>
{
if
(
res
&&
res
.
code
===
200
)
{
this
.
handleDetail
(
res
.
data
,
res
.
data
.
depotHeadType
);
}
})
}
}
}
</
script
>
<
style
scoped
>
@import
'~@assets/less/common.less'
</
style
>
\ No newline at end of file
jshERP-web/src/views/system/modules/SerialNumberBatchModal.vue
deleted
100644 → 0
View file @
fdd05b13
<
template
>
<a-modal
:title=
"title"
:width=
"800"
:visible=
"visible"
:confirmLoading=
"confirmLoading"
@
ok=
"handleOk"
@
cancel=
"handleCancel"
cancelText=
"关闭"
wrapClassName=
"ant-modal-cust-warp"
style=
"top:10%;height: 80%;overflow-y: hidden"
>
<a-spin
:spinning=
"confirmLoading"
>
<a-form
:form=
"form"
>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"序列号前缀"
>
<a-input
placeholder=
"请输入序列号前缀"
v-decorator.trim=
"[ 'serialNumberPrefix', validatorRules.serialNumberPrefix]"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"序列号数量"
>
<a-input
placeholder=
"请输入序列号数量"
v-decorator.trim=
"[ 'batAddTotal', validatorRules.batAddTotal]"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"商品条码"
>
<j-select-serial-material
v-decorator=
"[ 'materialCode', validatorRules.materialCode]"
:multi=
"false"
@
change=
"onInputChange"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"商品名称"
>
<a-input
v-decorator=
"[ 'materialName' ]"
:readOnly=
"true"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"备注"
>
<a-textarea
:rows=
"2"
placeholder=
"请输入备注"
v-decorator=
"[ 'remark' ]"
/>
</a-form-item>
</a-form>
</a-spin>
</a-modal>
</
template
>
<
script
>
import
pick
from
'
lodash.pick
'
import
JSelectSerialMaterial
from
'
@/components/jeecgbiz/JSelectSerialMaterial
'
import
{
batAddSerialNumber
,
getMaterialByBarCode
}
from
'
@/api/api
'
import
{
getMpListShort
}
from
"
@/utils/util
"
import
Vue
from
'
vue
'
export
default
{
name
:
"
SerialNumberBatchModal
"
,
components
:
{
JSelectSerialMaterial
},
data
()
{
return
{
title
:
"
操作
"
,
visible
:
false
,
model
:
{},
labelCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
5
},
},
wrapperCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
16
},
},
confirmLoading
:
false
,
form
:
this
.
$form
.
createForm
(
this
),
validatorRules
:{
serialNumberPrefix
:{
rules
:
[
{
required
:
true
,
message
:
'
请输入序列号前缀!
'
},
{
min
:
2
,
max
:
30
,
message
:
'
长度在 2 到 30 个字符
'
,
trigger
:
'
blur
'
}
]
},
batAddTotal
:{
rules
:
[{
required
:
true
,
message
:
'
请输入序列号数量!
'
}]
},
materialCode
:{
rules
:
[{
required
:
true
,
message
:
'
请选择商品条码!
'
}]
}
}
}
},
created
()
{
},
methods
:
{
add
()
{
this
.
edit
({});
},
edit
(
record
)
{
this
.
form
.
resetFields
();
this
.
model
=
Object
.
assign
({},
record
);
this
.
visible
=
true
;
this
.
$nextTick
(()
=>
{
this
.
form
.
setFieldsValue
(
pick
(
this
.
model
,
'
serialNumberPrefix
'
,
'
batAddTotal
'
,
'
materialCode
'
,
'
materialName
'
,
'
remark
'
))
});
},
close
()
{
this
.
$emit
(
'
close
'
);
this
.
visible
=
false
;
},
handleOk
()
{
const
that
=
this
;
// 触发表单验证
this
.
form
.
validateFields
((
err
,
values
)
=>
{
if
(
!
err
)
{
that
.
confirmLoading
=
true
;
let
formData
=
Object
.
assign
(
this
.
model
,
values
);
let
obj
;
if
(
!
this
.
model
.
id
){
obj
=
batAddSerialNumber
(
formData
);
}
obj
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
){
that
.
$emit
(
'
ok
'
);
}
else
{
that
.
$message
.
warning
(
res
.
data
.
message
);
}
}).
finally
(()
=>
{
that
.
confirmLoading
=
false
;
that
.
close
();
})
}
})
},
handleCancel
()
{
this
.
close
()
},
onInputChange
(
value
)
{
let
param
=
{
barCode
:
value
,
mpList
:
getMpListShort
(
Vue
.
ls
.
get
(
'
materialPropertyList
'
))
//扩展属性
}
getMaterialByBarCode
(
param
).
then
((
res
)
=>
{
if
(
res
&&
res
.
code
===
200
)
{
this
.
form
.
setFieldsValue
({
'
materialName
'
:
res
.
data
[
0
].
name
})
}
})
}
}
}
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
jshERP-web/src/views/system/modules/SerialNumberModal.vue
deleted
100644 → 0
View file @
fdd05b13
<
template
>
<a-modal
:title=
"title"
:width=
"800"
:visible=
"visible"
:confirmLoading=
"confirmLoading"
@
ok=
"handleOk"
@
cancel=
"handleCancel"
cancelText=
"关闭"
wrapClassName=
"ant-modal-cust-warp"
style=
"top:15%;height: 70%;overflow-y: hidden"
>
<template
slot=
"footer"
>
<a-button
key=
"back"
v-if=
"isReadOnly"
@
click=
"handleCancel"
>
关闭
</a-button>
</
template
>
<a-spin
:spinning=
"confirmLoading"
>
<a-form
:form=
"form"
>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"序列号"
>
<a-input
placeholder=
"请输入序列号"
v-decorator.trim=
"[ 'serialNumber', validatorRules.serialNumber]"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"商品条码"
>
<j-select-serial-material
v-decorator=
"[ 'materialCode', validatorRules.materialCode]"
:multi=
"false"
@
change=
"onInputChange"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"商品名称"
>
<a-input
v-decorator=
"[ 'materialName' ]"
:readOnly=
"true"
/>
</a-form-item>
<a-form-item
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
label=
"备注"
>
<a-textarea
:rows=
"2"
placeholder=
"请输入备注"
v-decorator=
"[ 'remark' ]"
/>
</a-form-item>
</a-form>
</a-spin>
</a-modal>
</template>
<
script
>
import
pick
from
'
lodash.pick
'
import
JSelectSerialMaterial
from
'
@/components/jeecgbiz/JSelectSerialMaterial
'
import
{
addSerialNumber
,
editSerialNumber
,
checkSerialNumber
,
getMaterialByBarCode
}
from
'
@/api/api
'
import
{
getMpListShort
}
from
"
@/utils/util
"
import
Vue
from
'
vue
'
export
default
{
name
:
"
SerialNumberModal
"
,
components
:
{
JSelectSerialMaterial
},
data
()
{
return
{
title
:
"
操作
"
,
visible
:
false
,
model
:
{},
isReadOnly
:
false
,
labelCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
5
},
},
wrapperCol
:
{
xs
:
{
span
:
24
},
sm
:
{
span
:
16
},
},
confirmLoading
:
false
,
form
:
this
.
$form
.
createForm
(
this
),
validatorRules
:{
serialNumber
:{
rules
:
[
{
required
:
true
,
message
:
'
请输入序列号!
'
},
{
min
:
2
,
max
:
30
,
message
:
'
长度在 2 到 30 个字符
'
,
trigger
:
'
blur
'
},
{
validator
:
this
.
validateSerialNumberName
}
]
},
materialCode
:{
rules
:
[{
required
:
true
,
message
:
'
请选择商品条码!
'
}]
}
}
}
},
created
()
{
},
methods
:
{
add
()
{
this
.
edit
({});
},
edit
(
record
)
{
this
.
form
.
resetFields
();
this
.
model
=
Object
.
assign
({},
record
);
this
.
visible
=
true
;
this
.
$nextTick
(()
=>
{
this
.
form
.
setFieldsValue
(
pick
(
this
.
model
,
'
serialNumber
'
,
'
materialCode
'
,
'
materialName
'
,
'
remark
'
))
});
},
close
()
{
this
.
$emit
(
'
close
'
);
this
.
visible
=
false
;
},
handleOk
()
{
const
that
=
this
;
// 触发表单验证
this
.
form
.
validateFields
((
err
,
values
)
=>
{
if
(
!
err
)
{
that
.
confirmLoading
=
true
;
let
formData
=
Object
.
assign
(
this
.
model
,
values
);
let
obj
;
if
(
!
this
.
model
.
id
){
obj
=
addSerialNumber
(
formData
);
}
else
{
obj
=
editSerialNumber
(
formData
);
}
obj
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
){
that
.
$emit
(
'
ok
'
);
}
else
{
that
.
$message
.
warning
(
res
.
data
.
message
);
}
}).
finally
(()
=>
{
that
.
confirmLoading
=
false
;
that
.
close
();
})
}
})
},
handleCancel
()
{
this
.
close
()
},
validateSerialNumberName
(
rule
,
value
,
callback
){
let
params
=
{
name
:
value
,
id
:
this
.
model
.
id
?
this
.
model
.
id
:
0
};
checkSerialNumber
(
params
).
then
((
res
)
=>
{
if
(
res
&&
res
.
code
===
200
)
{
if
(
!
res
.
data
.
status
){
callback
();
}
else
{
callback
(
"
序列号已经存在
"
);
}
}
else
{
callback
(
res
.
data
);
}
});
},
onInputChange
(
value
)
{
let
param
=
{
barCode
:
value
,
mpList
:
getMpListShort
(
Vue
.
ls
.
get
(
'
materialPropertyList
'
))
//扩展属性
}
getMaterialByBarCode
(
param
).
then
((
res
)
=>
{
if
(
res
&&
res
.
code
===
200
)
{
this
.
form
.
setFieldsValue
({
'
materialName
'
:
res
.
data
[
0
].
name
})
}
})
}
}
}
</
script
>
<
style
scoped
>
</
style
>
\ No newline at end of file
Write
Preview
Supports
Markdown
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