Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
factory_front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qinjianhui
factory_front
Commits
b27963ec
Commit
b27963ec
authored
Jul 01, 2026
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 删除功能调整
parent
1f311f82
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
10 deletions
+140
-10
src/api/warehouse/warehouseRuleSetting.ts
+9
-0
src/types/api/warehouse/warehouseRuleSetting.ts
+2
-0
src/views/warehouse/warehouseRuleSetting/components/EditDialog.vue
+29
-4
src/views/warehouse/warehouseRuleSetting/hooks/useWarehouseRuleSettingTableColumns.tsx
+14
-2
src/views/warehouse/warehouseRuleSetting/index.vue
+86
-4
No files found.
src/api/warehouse/warehouseRuleSetting.ts
View file @
b27963ec
...
@@ -47,3 +47,12 @@ export function getWarehouseRuleSettingDetailApi(id: number | undefined) {
...
@@ -47,3 +47,12 @@ export function getWarehouseRuleSettingDetailApi(id: number | undefined) {
},
},
)
)
}
}
export
function
deleteSharedInventoryGroupApi
(
ids
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
'/factory/sharedInventoryGroup/delete-ids'
,
{
params
:
{
ids
},
},
)
}
src/types/api/warehouse/warehouseRuleSetting.ts
View file @
b27963ec
...
@@ -23,6 +23,7 @@ export interface WarehouseRuleSpuItem {
...
@@ -23,6 +23,7 @@ export interface WarehouseRuleSpuItem {
skuImage
?:
string
skuImage
?:
string
skuName
?:
string
skuName
?:
string
warehouseId
?:
number
warehouseId
?:
number
warehouseName
?:
string
}
}
export
interface
EditForm
{
export
interface
EditForm
{
...
@@ -30,6 +31,7 @@ export interface EditForm {
...
@@ -30,6 +31,7 @@ export interface EditForm {
groupName
?:
string
groupName
?:
string
status
?:
boolean
status
?:
boolean
warehouseId
?:
number
warehouseId
?:
number
dataVersion
?:
number
spuList
?:
WarehouseRuleSpuItem
[]
spuList
?:
WarehouseRuleSpuItem
[]
skuList
?:
WarehouseRuleSpuItem
[]
skuList
?:
WarehouseRuleSpuItem
[]
}
}
src/views/warehouse/warehouseRuleSetting/components/EditDialog.vue
View file @
b27963ec
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
v-model=
"editForm.status"
v-model=
"editForm.status"
:active-value=
"true"
:active-value=
"true"
:inactive-value=
"false"
:inactive-value=
"false"
style=
"--el-switch-on-color: #
42b983
"
style=
"--el-switch-on-color: #
13ce66; --el-switch-off-color: #ff4949
"
/>
/>
</ElFormItem>
</ElFormItem>
...
@@ -114,8 +114,8 @@
...
@@ -114,8 +114,8 @@
<
template
#
spuImage=
"{ row }"
>
<
template
#
spuImage=
"{ row }"
>
<ImageView
:src=
"row.skuImage"
width=
"40px"
height=
"40px"
/>
<ImageView
:src=
"row.skuImage"
width=
"40px"
height=
"40px"
/>
</
template
>
</
template
>
<
template
#
operation=
"{ index }"
>
<
template
#
operation=
"{ index
, row
}"
>
<ElButton
link
type=
"danger"
@
click=
"handleRemoveSpu(index)"
>
<ElButton
link
type=
"danger"
@
click=
"handleRemoveSpu(index
, row
)"
>
删除
删除
</ElButton>
</ElButton>
</
template
>
</
template
>
...
@@ -211,6 +211,7 @@ const resetFields = (data?: EditForm) => {
...
@@ -211,6 +211,7 @@ const resetFields = (data?: EditForm) => {
editForm
.
value
=
{
editForm
.
value
=
{
id
:
data
.
id
,
id
:
data
.
id
,
groupName
:
data
.
groupName
??
''
,
groupName
:
data
.
groupName
??
''
,
dataVersion
:
data
.
dataVersion
??
0
,
status
:
status
:
typeof
data
.
status
===
'boolean'
?
data
.
status
:
data
.
status
===
1
,
typeof
data
.
status
===
'boolean'
?
data
.
status
:
data
.
status
===
1
,
spuList
:
updateSortNo
(
spuList
:
updateSortNo
(
...
@@ -337,6 +338,16 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
...
@@ -337,6 +338,16 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
ElMessage
.
warning
(
'该SPU已添加'
)
ElMessage
.
warning
(
'该SPU已添加'
)
return
return
}
}
const
existingList
=
editForm
.
value
.
spuList
??
[]
if
(
existingList
.
length
>
0
&&
existingList
[
0
].
warehouseId
!==
row
.
warehouseId
)
{
ElMessageBox
.
alert
(
'请选择同一仓库内的SPU'
,
'提示'
,
{
type
:
'warning'
,
})
return
}
editForm
.
value
.
spuList
=
updateSortNo
([
editForm
.
value
.
spuList
=
updateSortNo
([
...(
editForm
.
value
.
spuList
??
[]),
...(
editForm
.
value
.
spuList
??
[]),
{
{
...
@@ -344,6 +355,7 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
...
@@ -344,6 +355,7 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
skuName
:
row
.
skuName
,
skuName
:
row
.
skuName
,
skuImage
:
row
.
skuImage
,
skuImage
:
row
.
skuImage
,
warehouseId
:
row
.
warehouseId
,
warehouseId
:
row
.
warehouseId
,
warehouseName
:
row
.
warehouseName
,
},
},
])
])
spuSearchResultList
.
value
=
spuSearchResultList
.
value
.
filter
(
spuSearchResultList
.
value
=
spuSearchResultList
.
value
.
filter
(
...
@@ -354,7 +366,18 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
...
@@ -354,7 +366,18 @@ const handleAddSpu = (row: WarehouseRuleSpuItem) => {
}
}
}
}
const
handleRemoveSpu
=
(
index
:
number
)
=>
{
const
handleRemoveSpu
=
async
(
index
:
number
,
row
:
WarehouseRuleSpuItem
)
=>
{
try
{
await
ElMessageBox
.
confirm
(
`确定删除
${
row
.
warehouseSpu
}
与共享库存组
${
editForm
.
value
.
groupName
}
关系吗?`
,
'提示'
,
{
type
:
'warning'
,
},
)
}
catch
{
return
}
const
list
=
[...(
editForm
.
value
.
spuList
??
[])]
const
list
=
[...(
editForm
.
value
.
spuList
??
[])]
list
.
splice
(
index
,
1
)
list
.
splice
(
index
,
1
)
editForm
.
value
.
spuList
=
updateSortNo
(
list
)
editForm
.
value
.
spuList
=
updateSortNo
(
list
)
...
@@ -388,6 +411,8 @@ const handleSave = async () => {
...
@@ -388,6 +411,8 @@ const handleSave = async () => {
const
res
=
await
request
({
const
res
=
await
request
({
groupName
:
editForm
.
value
.
groupName
!
,
groupName
:
editForm
.
value
.
groupName
!
,
status
:
!!
editForm
.
value
.
status
,
status
:
!!
editForm
.
value
.
status
,
id
:
editId
,
dataVersion
:
editForm
.
value
.
dataVersion
!
,
skuList
:
editForm
.
value
.
spuList
.
map
((
item
)
=>
({
skuList
:
editForm
.
value
.
spuList
.
map
((
item
)
=>
({
warehouseSpu
:
item
.
warehouseSpu
!
,
warehouseSpu
:
item
.
warehouseSpu
!
,
sortOrder
:
item
.
sortOrder
!
,
sortOrder
:
item
.
sortOrder
!
,
...
...
src/views/warehouse/warehouseRuleSetting/hooks/useWarehouseRuleSettingTableColumns.tsx
View file @
b27963ec
import
{
ElButton
,
ElTag
}
from
'element-plus'
import
{
ElButton
,
ElTag
}
from
'element-plus'
import
type
{
WarehouseRuleSettingData
}
from
'@/types/api/warehouse/warehouseRuleSetting'
import
type
{
WarehouseRuleSettingData
}
from
'@/types/api/warehouse/warehouseRuleSetting'
const
statusMap
:
Record
<
'true'
|
'false'
,
{
label
:
string
;
type
:
'success'
|
'
info
'
}
>
=
{
const
statusMap
:
Record
<
'true'
|
'false'
,
{
label
:
string
;
type
:
'success'
|
'
danger
'
}
>
=
{
true
:
{
label
:
'启用'
,
type
:
'success'
},
true
:
{
label
:
'启用'
,
type
:
'success'
},
false
:
{
label
:
'禁用'
,
type
:
'
info
'
},
false
:
{
label
:
'禁用'
,
type
:
'
danger
'
},
}
}
export
interface
UseWarehouseRuleSettingTableColumnsOptions
{
export
interface
UseWarehouseRuleSettingTableColumnsOptions
{
...
@@ -99,6 +99,12 @@ export function useWarehouseRuleSettingTableColumns(
...
@@ -99,6 +99,12 @@ export function useWarehouseRuleSettingTableColumns(
align
:
'left'
,
align
:
'left'
,
},
},
{
{
label
:
'所属仓库'
,
prop
:
'warehouseName'
,
width
:
120
,
align
:
'center'
,
},
{
label
:
'操作'
,
label
:
'操作'
,
width
:
80
,
width
:
80
,
align
:
'center'
,
align
:
'center'
,
...
@@ -125,6 +131,12 @@ export function useWarehouseRuleSettingTableColumns(
...
@@ -125,6 +131,12 @@ export function useWarehouseRuleSettingTableColumns(
align
:
'left'
,
align
:
'left'
,
},
},
{
{
label
:
'所属仓库'
,
prop
:
'warehouseName'
,
width
:
120
,
align
:
'center'
,
},
{
label
:
'操作'
,
label
:
'操作'
,
width
:
80
,
width
:
80
,
align
:
'center'
,
align
:
'center'
,
...
...
src/views/warehouse/warehouseRuleSetting/index.vue
View file @
b27963ec
...
@@ -50,6 +50,7 @@
...
@@ -50,6 +50,7 @@
v-model=
"searchForm.status"
v-model=
"searchForm.status"
placeholder=
"请选择"
placeholder=
"请选择"
style=
"width: 140px"
style=
"width: 140px"
clearable
>
>
<ElOption
label=
"启用"
:value=
"1"
/>
<ElOption
label=
"启用"
:value=
"1"
/>
<ElOption
label=
"禁用"
:value=
"0"
/>
<ElOption
label=
"禁用"
:value=
"0"
/>
...
@@ -65,7 +66,7 @@
...
@@ -65,7 +66,7 @@
<ElButton
type=
"success"
@
click=
"() => handleEdit()"
>
新增
</ElButton>
<ElButton
type=
"success"
@
click=
"() => handleEdit()"
>
新增
</ElButton>
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElFormItem>
<ElButton
type=
"danger"
>
删除
</ElButton>
<ElButton
type=
"danger"
@
click=
"handleDelete"
>
删除
</ElButton>
</ElFormItem>
</ElFormItem>
</ElForm>
</ElForm>
</div>
</div>
...
@@ -109,6 +110,7 @@
...
@@ -109,6 +110,7 @@
import
{
import
{
getWarehouseRuleSettingListApi
,
getWarehouseRuleSettingListApi
,
getWarehouseRuleSettingDetailApi
,
getWarehouseRuleSettingDetailApi
,
deleteSharedInventoryGroupApi
,
}
from
'@/api/warehouse/warehouseRuleSetting'
}
from
'@/api/warehouse/warehouseRuleSetting'
import
{
import
{
SearchForm
,
SearchForm
,
...
@@ -147,9 +149,15 @@ const {
...
@@ -147,9 +149,15 @@ const {
onPageSizeChange
:
handleSizeChange
,
onPageSizeChange
:
handleSizeChange
,
}
=
usePageList
<
WarehouseRuleSettingData
>
({
}
=
usePageList
<
WarehouseRuleSettingData
>
({
query
:
(
page
,
pageSize
)
=>
query
:
(
page
,
pageSize
)
=>
getWarehouseRuleSettingListApi
(
searchForm
.
value
,
page
,
pageSize
).
then
(
getWarehouseRuleSettingListApi
(
(
res
)
=>
res
.
data
,
{
),
...
searchForm
.
value
,
createEndTime
:
dateRange
.
value
&&
dateRange
.
value
[
1
],
createStartTime
:
dateRange
.
value
&&
dateRange
.
value
[
0
],
},
page
,
pageSize
,
).
then
((
res
)
=>
res
.
data
),
})
})
const
selectedRows
=
ref
<
WarehouseRuleSettingData
[]
>
([])
const
selectedRows
=
ref
<
WarehouseRuleSettingData
[]
>
([])
const
handleSelectionChange
=
(
selection
:
WarehouseRuleSettingData
[])
=>
{
const
handleSelectionChange
=
(
selection
:
WarehouseRuleSettingData
[])
=>
{
...
@@ -178,7 +186,66 @@ const handleEdit = async (row?: WarehouseRuleSettingData) => {
...
@@ -178,7 +186,66 @@ const handleEdit = async (row?: WarehouseRuleSettingData) => {
}
}
editDialogVisible
.
value
=
true
editDialogVisible
.
value
=
true
}
}
const
getSharedSpuText
=
(
rows
:
WarehouseRuleSettingData
[])
=>
[
...
new
Set
(
rows
.
flatMap
((
row
)
=>
(
row
.
skuList
??
[])
.
map
((
item
)
=>
item
.
warehouseSpu
)
.
filter
(
Boolean
),
),
),
].
join
(
','
)
const
handleDelete
=
async
()
=>
{
if
(
selectedRows
.
value
.
length
===
0
)
{
ElMessage
.
warning
(
'请选择要删除的数据'
)
return
}
const
groupNames
=
selectedRows
.
value
.
map
((
item
)
=>
item
.
groupName
)
.
join
(
','
)
const
spuText
=
getSharedSpuText
(
selectedRows
.
value
)
try
{
await
ElMessageBox
.
confirm
(
`<div>
<div style="font-size: 16px; color: #303133; line-height: 24px; margin-bottom: 8px;">
确定删除共享库存组
${
groupNames
}
吗?
</div>
<div style="font-size: 14px; color: #606266; line-height: 22px;">
共享库存组SPU:
${
spuText
||
'-'
}
</div>
</div>`
,
''
,
{
type
:
'warning'
,
dangerouslyUseHTMLString
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
customClass
:
'delete-shared-inventory-group-box'
,
},
)
}
catch
{
return
}
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
text
:
'加载中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
try
{
const
res
=
await
deleteSharedInventoryGroupApi
(
selectedRows
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
),
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
res
.
message
)
search
()
}
catch
(
error
)
{
console
.
error
(
error
)
}
finally
{
loading
.
close
()
}
}
const
{
columns
:
tableColumns
}
=
useWarehouseRuleSettingTableColumns
({
const
{
columns
:
tableColumns
}
=
useWarehouseRuleSettingTableColumns
({
onEdit
:
handleEdit
,
onEdit
:
handleEdit
,
})
})
...
@@ -225,3 +292,18 @@ onMounted(async () => {
...
@@ -225,3 +292,18 @@ onMounted(async () => {
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
</
style
>
</
style
>
<
style
>
.delete-shared-inventory-group-box
.el-message-box__title
{
display
:
none
;
}
.delete-shared-inventory-group-box
.el-message-box__header
{
padding-bottom
:
0
;
}
.delete-shared-inventory-group-box
.el-message-box__message
{
word-break
:
break-all
;
line-height
:
1.6
;
padding
:
10px
0
;
}
</
style
>
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