Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
dcf1ad6b
authored
Oct 13, 2024
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【代码优化】商城:门店自提的员工绑定
parent
ca9a389a
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
122 additions
and
136 deletions
+122
-136
src/api/mall/trade/delivery/pickUpStore/index.ts
+5
-9
src/views/mall/trade/delivery/pickUpOrder/index.vue
+76
-64
src/views/mall/trade/delivery/pickUpStore/DeliveryPickUpStoreBindForm.vue
+30
-48
src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue
+5
-10
src/views/mall/trade/delivery/pickUpStore/index.vue
+4
-3
src/views/mall/trade/order/index.vue
+1
-1
src/views/member/user/detail/UserOrderList.vue
+1
-1
No files found.
src/api/mall/trade/delivery/pickUpStore/index.ts
View file @
dcf1ad6b
...
@@ -13,10 +13,11 @@ export interface DeliveryPickUpStoreVO {
...
@@ -13,10 +13,11 @@ export interface DeliveryPickUpStoreVO {
latitude
:
number
latitude
:
number
longitude
:
number
longitude
:
number
status
:
number
status
:
number
verifyUserIds
:
number
[]
// 绑定用户编号组数
}
}
// 查询自提门店列表
// 查询自提门店列表
export
const
getDeliveryPickUpStorePage
=
async
(
params
)
=>
{
export
const
getDeliveryPickUpStorePage
=
async
(
params
:
any
)
=>
{
return
await
request
.
get
({
url
:
'/trade/delivery/pick-up-store/page'
,
params
})
return
await
request
.
get
({
url
:
'/trade/delivery/pick-up-store/page'
,
params
})
}
}
...
@@ -26,8 +27,8 @@ export const getDeliveryPickUpStore = async (id: number) => {
...
@@ -26,8 +27,8 @@ export const getDeliveryPickUpStore = async (id: number) => {
}
}
// 查询自提门店精简列表
// 查询自提门店精简列表
export
const
get
ListAllSimple
=
async
():
Promise
<
DeliveryPickUpStoreVO
[]
>
=>
{
export
const
get
SimpleDeliveryPickUpStoreList
=
async
():
Promise
<
DeliveryPickUpStoreVO
[]
>
=>
{
return
await
request
.
get
({
url
:
'/trade/delivery/pick-up-store/
list-all-simple
'
})
return
await
request
.
get
({
url
:
'/trade/delivery/pick-up-store/
simple-list
'
})
}
}
// 新增自提门店
// 新增自提门店
...
@@ -45,12 +46,7 @@ export const deleteDeliveryPickUpStore = async (id: number) => {
...
@@ -45,12 +46,7 @@ export const deleteDeliveryPickUpStore = async (id: number) => {
return
await
request
.
delete
({
url
:
'/trade/delivery/pick-up-store/delete?id='
+
id
})
return
await
request
.
delete
({
url
:
'/trade/delivery/pick-up-store/delete?id='
+
id
})
}
}
//绑定自提店员
//
绑定自提店员
export
const
bindStoreStaffId
=
async
(
data
:
any
)
=>
{
export
const
bindStoreStaffId
=
async
(
data
:
any
)
=>
{
return
await
request
.
post
({
url
:
'/trade/delivery/pick-up-store/bind'
,
data
})
return
await
request
.
post
({
url
:
'/trade/delivery/pick-up-store/bind'
,
data
})
}
}
//查询门店绑定情况
export
const
getDeliveryPickUpStoreStaff
=
async
(
id
:
number
)
=>
{
return
await
request
.
get
({
url
:
'/trade/delivery/pick-up-store/get-store-staff?id='
+
id
})
}
src/views/mall/trade/delivery/pickUpOrder/index.vue
View file @
dcf1ad6b
...
@@ -72,7 +72,13 @@
...
@@ -72,7 +72,13 @@
<Icon
class=
"mr-5px"
icon=
"ep:refresh"
/>
<Icon
class=
"mr-5px"
icon=
"ep:refresh"
/>
重置
重置
</el-button>
</el-button>
<el-button
@
click=
"handlePickup"
type=
"success"
plain
v-hasPermi=
"['trade:order:pick-up']"
:disabled=
"isUse"
>
<el-button
@
click=
"handlePickup"
type=
"success"
plain
v-hasPermi=
"['trade:order:pick-up']"
:disabled=
"isUse"
>
<Icon
class=
"mr-5px"
icon=
"ep:check"
/>
<Icon
class=
"mr-5px"
icon=
"ep:check"
/>
核销
核销
</el-button>
</el-button>
...
@@ -221,26 +227,20 @@ import { DeliveryTypeEnum } from '@/utils/constants'
...
@@ -221,26 +227,20 @@ import { DeliveryTypeEnum } from '@/utils/constants'
import
{
TradeOrderSummaryRespVO
}
from
'@/api/mall/trade/order'
import
{
TradeOrderSummaryRespVO
}
from
'@/api/mall/trade/order'
import
{
DeliveryPickUpStoreVO
}
from
'@/api/mall/trade/delivery/pickUpStore'
import
{
DeliveryPickUpStoreVO
}
from
'@/api/mall/trade/delivery/pickUpStore'
import
OrderPickUpForm
from
'@/views/mall/trade/order/form/OrderPickUpForm.vue'
import
OrderPickUpForm
from
'@/views/mall/trade/order/form/OrderPickUpForm.vue'
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
ref
,
onMounted
}
from
'vue'
import
{
useUserStore
}
from
'@/store/modules/user'
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
const
port
=
ref
(
""
);
const
port
=
ref
(
''
)
const
ports
=
ref
([])
;
const
ports
=
ref
([])
const
reader
=
ref
(
""
);
const
reader
=
ref
(
''
)
defineOptions
({
name
:
'PickUpOrder'
})
defineOptions
({
name
:
'PickUpOrder'
})
// 列表的加载中
const
loading
=
ref
(
true
)
// 列表的加载中
const
loading
=
ref
(
true
)
const
total
=
ref
(
2
)
// 列表的总页数
// 列表的总页数
const
list
=
ref
<
TradeOrderApi
.
OrderVO
[]
>
([])
// 列表的数据
const
total
=
ref
(
2
)
const
queryFormRef
=
ref
<
FormInstance
>
()
// 搜索的表单
// 列表的数据
const
list
=
ref
<
TradeOrderApi
.
OrderVO
[]
>
([])
// 搜索的表单
const
queryFormRef
=
ref
<
FormInstance
>
()
const
serialPort
=
ref
(
false
)
const
isUse
=
ref
(
true
)
// 初始表单参数
const
INIT_QUERY_PARAMS
=
{
const
INIT_QUERY_PARAMS
=
{
// 页数
// 页数
pageNo
:
1
,
pageNo
:
1
,
...
@@ -251,15 +251,15 @@ const INIT_QUERY_PARAMS = {
...
@@ -251,15 +251,15 @@ const INIT_QUERY_PARAMS = {
// 配送方式
// 配送方式
deliveryType
:
DeliveryTypeEnum
.
PICK_UP
.
type
,
deliveryType
:
DeliveryTypeEnum
.
PICK_UP
.
type
,
// 自提门店
// 自提门店
pickUpStoreId
:
undefined
pickUpStoreId
:
-
1
}
}
// 初始表单参数
const
queryParams
=
ref
({
...
INIT_QUERY_PARAMS
})
// 表单搜索
const
queryType
=
reactive
({
queryParam
:
'no'
})
// 订单搜索类型 queryParam
const
summary
=
ref
<
TradeOrderSummaryRespVO
>
()
// 订单统计数据
// 表单搜索
const
serialPort
=
ref
(
false
)
// 是否连接扫码枪
const
queryParams
=
ref
({
...
INIT_QUERY_PARAMS
})
const
isUse
=
ref
(
true
)
// 是否可核销
// 订单搜索类型 queryParam
const
queryType
=
reactive
({
queryParam
:
'no'
})
// 订单统计数据
const
summary
=
ref
<
TradeOrderSummaryRespVO
>
()
// 订单聚合搜索 select 类型配置(动态搜索)
// 订单聚合搜索 select 类型配置(动态搜索)
const
dynamicSearchList
=
ref
([
const
dynamicSearchList
=
ref
([
...
@@ -308,7 +308,7 @@ const handleQuery = async () => {
...
@@ -308,7 +308,7 @@ const handleQuery = async () => {
const
resetQuery
=
()
=>
{
const
resetQuery
=
()
=>
{
queryFormRef
.
value
?.
resetFields
()
queryFormRef
.
value
?.
resetFields
()
queryParams
.
value
=
{
...
INIT_QUERY_PARAMS
}
queryParams
.
value
=
{
...
INIT_QUERY_PARAMS
}
if
(
pickUpStoreList
.
value
.
length
>
0
)
{
if
(
pickUpStoreList
.
value
.
length
>
0
)
{
queryParams
.
value
.
pickUpStoreId
=
pickUpStoreList
.
value
[
0
].
id
queryParams
.
value
.
pickUpStoreId
=
pickUpStoreList
.
value
[
0
].
id
}
}
handleQuery
()
handleQuery
()
...
@@ -317,7 +317,12 @@ const resetQuery = () => {
...
@@ -317,7 +317,12 @@ const resetQuery = () => {
/** 自提门店精简列表 */
/** 自提门店精简列表 */
const
pickUpStoreList
=
ref
<
DeliveryPickUpStoreVO
[]
>
([])
const
pickUpStoreList
=
ref
<
DeliveryPickUpStoreVO
[]
>
([])
const
getPickUpStoreList
=
async
()
=>
{
const
getPickUpStoreList
=
async
()
=>
{
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
getListAllSimple
()
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
getSimpleDeliveryPickUpStoreList
()
// 移除自己无法核销的门店
const
userId
=
useUserStore
().
getUser
.
id
pickUpStoreList
.
value
=
pickUpStoreList
.
value
.
filter
((
item
)
=>
item
.
verifyUserIds
?.
includes
(
userId
)
)
}
}
/** 显示核销表单 */
/** 显示核销表单 */
...
@@ -330,85 +335,92 @@ const handlePickup = () => {
...
@@ -330,85 +335,92 @@ const handlePickup = () => {
const
connectToSerialPort
=
async
()
=>
{
const
connectToSerialPort
=
async
()
=>
{
try
{
try
{
// 判断浏览器支持串口通信
// 判断浏览器支持串口通信
if
(
"serial"
in
navigator
&&
navigator
.
serial
!=
null
&&
typeof
navigator
.
serial
===
'object'
&&
"requestPort"
in
navigator
.
serial
)
{
if
(
'serial'
in
navigator
&&
navigator
.
serial
!=
null
&&
typeof
navigator
.
serial
===
'object'
&&
'requestPort'
in
navigator
.
serial
)
{
// 提示用户选择一个串口
// 提示用户选择一个串口
port
.
value
=
await
navigator
.
serial
.
requestPort
()
;
port
.
value
=
await
navigator
.
serial
.
requestPort
()
}
else
{
}
else
{
message
.
error
(
"浏览器不支持扫码枪连接,请更换浏览器重试"
)
message
.
error
(
'浏览器不支持扫码枪连接,请更换浏览器重试'
)
return
return
}
}
// 获取用户之前授予该网站访问权限的所有串口。
// 获取用户之前授予该网站访问权限的所有串口。
ports
.
value
=
await
navigator
.
serial
.
getPorts
()
;
ports
.
value
=
await
navigator
.
serial
.
getPorts
()
// console.log(port.value, ports.value);
// console.log(port.value, ports.value);
console
.
log
(
port
.
value
);
// console.log(port.value)
// 等待串口打开
// 等待串口打开
await
port
.
value
.
open
({
baudRate
:
9600
,
dataBits
:
8
,
stopBits
:
2
});
await
port
.
value
.
open
({
baudRate
:
9600
,
dataBits
:
8
,
stopBits
:
2
})
// console.log(typeof port.value);
// console.log(typeof port.value);
message
.
success
(
"成功连接扫码枪"
)
message
.
success
(
'成功连接扫码枪'
)
serialPort
.
value
=
true
;
serialPort
.
value
=
true
// readData(port.value);
// readData(port.value);
readData
()
;
readData
()
}
catch
(
error
)
{
}
catch
(
error
)
{
// 处理连接串口出错的情况
// 处理连接串口出错的情况
console
.
log
(
"Error connecting to serial port:"
,
error
);
console
.
log
(
'Error connecting to serial port:'
,
error
)
}
}
}
;
}
/** 监听扫码枪输入 */
/** 监听扫码枪输入 */
const
readData
=
async
()
=>
{
const
readData
=
async
()
=>
{
reader
.
value
=
port
.
value
.
readable
.
getReader
()
;
reader
.
value
=
port
.
value
.
readable
.
getReader
()
let
data
=
""
;
//扫码数据
let
data
=
''
//扫码数据
// 监听来自串口的数据
// 监听来自串口的数据
while
(
true
)
{
while
(
true
)
{
const
{
value
,
done
}
=
await
reader
.
value
.
read
()
;
const
{
value
,
done
}
=
await
reader
.
value
.
read
()
if
(
done
)
{
if
(
done
)
{
// 允许稍后关闭串口
// 允许稍后关闭串口
reader
.
value
.
releaseLock
()
;
reader
.
value
.
releaseLock
()
break
;
break
}
}
// 获取发送的数据
// 获取发送的数据
const
serialData
=
new
TextDecoder
().
decode
(
value
)
;
const
serialData
=
new
TextDecoder
().
decode
(
value
)
data
=
`
${
data
}${
serialData
}
`
;
data
=
`
${
data
}${
serialData
}
`
if
(
serialData
.
includes
(
"\r"
))
{
if
(
serialData
.
includes
(
'\r'
))
{
//读取结束
//读取结束
let
codeData
=
data
.
replace
(
"\r"
,
""
);
let
codeData
=
data
.
replace
(
'\r'
,
''
)
data
=
""
;
//清空下次读取不会叠加
data
=
''
//清空下次读取不会叠加
console
.
log
(
`二维码数据:
${
codeData
}
`
)
;
console
.
log
(
`二维码数据:
${
codeData
}
`
)
//处理拿到数据逻辑
//处理拿到数据逻辑
pickUpForm
.
value
.
open
(
codeData
)
pickUpForm
.
value
.
open
(
codeData
)
}
}
}
}
}
;
}
/** 断开扫码枪 */
/** 断开扫码枪 */
const
cutPort
=
async
()
=>
{
const
cutPort
=
async
()
=>
{
if
(
port
.
value
!==
""
)
{
if
(
port
.
value
!==
''
)
{
await
reader
.
value
.
cancel
()
;
await
reader
.
value
.
cancel
()
await
port
.
value
.
close
()
;
await
port
.
value
.
close
()
port
.
value
=
""
;
port
.
value
=
''
console
.
log
(
"断开扫码枪连接"
);
console
.
log
(
'断开扫码枪连接'
)
message
.
success
(
"已成功断开扫码枪连接"
)
message
.
success
(
'已成功断开扫码枪连接'
)
serialPort
.
value
=
false
;
serialPort
.
value
=
false
}
else
{
}
else
{
message
.
warning
(
"请先连接或打开扫码枪"
)
message
.
warning
(
'请先连接或打开扫码枪'
)
}
}
}
;
}
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getPickUpStoreList
()
await
getPickUpStoreList
()
if
(
pickUpStoreList
.
value
.
length
>
0
){
if
(
pickUpStoreList
.
value
.
length
===
0
)
{
queryParams
.
value
.
pickUpStoreId
=
pickUpStoreList
.
value
[
0
].
id
message
.
error
(
'当前登录人没绑定任何自提点'
)
isUse
.
value
=
false
await
getList
()
}
else
{
message
.
error
(
"当前登录人没绑定任何自提点"
)
loading
.
value
=
false
loading
.
value
=
false
isUse
.
value
=
true
isUse
.
value
=
true
return
}
}
// 查询
queryParams
.
value
.
pickUpStoreId
=
pickUpStoreList
.
value
[
0
].
id
isUse
.
value
=
false
await
getList
()
})
})
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/mall/trade/delivery/pickUpStore/DeliveryPickUpStoreBindForm.vue
View file @
dcf1ad6b
...
@@ -10,18 +10,18 @@
...
@@ -10,18 +10,18 @@
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"门店名称"
prop=
"name"
>
<el-form-item
label=
"门店名称"
prop=
"name"
>
<el-input
v-model=
"formData.name"
placeholder=
"请输入门店名称"
:disabled=
"true"
/>
<el-input
v-model=
"formData.name"
placeholder=
"请输入门店名称"
readonly
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-row>
<el-row>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"门店店员"
prop=
"
storeStaff
Ids"
>
<el-form-item
label=
"门店店员"
prop=
"
verifyUser
Ids"
>
<el-button
type=
"primary"
@
click=
"storeStaffTableSelect.open()"
>
选择店员
</el-button>
<el-button
type=
"primary"
@
click=
"storeStaffTableSelect.open()"
>
选择店员
</el-button>
</el-form-item>
</el-form-item>
<!-- 店员列表 -->
<!-- 店员列表 -->
<ContentWrap
v-if=
"
usersList
.length > 0"
>
<ContentWrap
v-if=
"
formData.verifyUsers
.length > 0"
>
<el-table
:data=
"
usersList
"
>
<el-table
:data=
"
formData.verifyUsers
"
>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
<el-table-column
label=
"用户昵称"
label=
"用户昵称"
...
@@ -56,15 +56,16 @@
...
@@ -56,15 +56,16 @@
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
</
template
>
</
template
>
</Dialog>
</Dialog>
<StoreStaffTableSelect
ref=
"storeStaffTableSelect"
@
change=
"changeStoreStaff"
/>
<!-- 选择员工弹窗 -->
<StoreStaffTableSelect
ref=
"storeStaffTableSelect"
@
change=
"handleSelect"
/>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
*
as
DeliveryPickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
import
*
as
DeliveryPickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
import
StoreStaffTableSelect
from
'./components/StoreStaffTableSelect.vue'
import
StoreStaffTableSelect
from
'./components/StoreStaffTableSelect.vue'
import
{
DICT_TYPE
}
from
"@/utils/dict"
;
import
{
DICT_TYPE
}
from
'@/utils/dict'
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
const
{
t
}
=
useI18n
()
// 国际化
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
dialogVisible
=
ref
(
false
)
// 弹窗的是否展示
const
dialogTitle
=
ref
(
''
)
// 弹窗的标题
const
dialogTitle
=
ref
(
''
)
// 弹窗的标题
...
@@ -72,12 +73,10 @@ const formLoading = ref(false) // 表单的加载中:1)修改时的数据加
...
@@ -72,12 +73,10 @@ const formLoading = ref(false) // 表单的加载中:1)修改时的数据加
const
formData
=
ref
({
const
formData
=
ref
({
id
:
undefined
,
id
:
undefined
,
name
:
''
,
name
:
''
,
storeStaffIds
:
[],
verifyUserIds
:
[],
storeStaffs
:
[],
verifyUsers
:
[]
})
const
formRules
=
reactive
({
name
:
[{
required
:
true
,
message
:
'门店名称不能为空'
,
trigger
:
'blur'
}],
})
})
const
formRules
=
reactive
({})
const
formRef
=
ref
()
// 表单 Ref
const
formRef
=
ref
()
// 表单 Ref
const
storeStaffTableSelect
=
ref
()
// 表单 Ref
const
storeStaffTableSelect
=
ref
()
// 表单 Ref
...
@@ -88,7 +87,7 @@ const open = async (id: number) => {
...
@@ -88,7 +87,7 @@ const open = async (id: number) => {
resetForm
()
resetForm
()
formLoading
.
value
=
true
formLoading
.
value
=
true
try
{
try
{
await
getList
(
id
)
formData
.
value
=
await
DeliveryPickUpStoreApi
.
getDeliveryPickUpStore
(
id
)
}
finally
{
}
finally
{
formLoading
.
value
=
false
formLoading
.
value
=
false
}
}
...
@@ -97,7 +96,6 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
...
@@ -97,7 +96,6 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
/** 提交表单 */
/** 提交表单 */
const
submitForm
=
async
()
=>
{
const
submitForm
=
async
()
=>
{
formData
.
value
.
storeStaffIds
=
usersList
.
value
.
map
(
item
=>
item
.
id
)
as
[];
// 校验表单
// 校验表单
if
(
!
formRef
)
return
if
(
!
formRef
)
return
const
valid
=
await
formRef
.
value
.
validate
()
const
valid
=
await
formRef
.
value
.
validate
()
...
@@ -105,42 +103,31 @@ const submitForm = async () => {
...
@@ -105,42 +103,31 @@ const submitForm = async () => {
// 提交请求
// 提交请求
formLoading
.
value
=
true
formLoading
.
value
=
true
try
{
try
{
const
data
=
formData
.
value
const
data
=
{
id
:
formData
.
value
.
id
,
verifyUserIds
:
formData
.
value
.
verifyUsers
.
map
((
item
:
any
)
=>
item
.
id
)
}
await
DeliveryPickUpStoreApi
.
bindStoreStaffId
(
data
)
await
DeliveryPickUpStoreApi
.
bindStoreStaffId
(
data
)
message
.
success
(
"绑定成功"
)
message
.
success
(
'绑定成功'
)
dialogVisible
.
value
=
false
dialogVisible
.
value
=
false
}
finally
{
}
finally
{
formLoading
.
value
=
false
formLoading
.
value
=
false
}
}
}
}
/** 删除按钮操作 */
/** 处理选择员工操作 */
const
handleDelete
=
async
(
id
:
number
)
=>
{
const
handleSelect
=
(
checkedUsers
:
[])
=>
{
try
{
formData
.
value
.
verifyUsers
=
checkedUsers
// 删除的二次确认
await
message
.
delConfirm
()
// 发起删除
const
index
=
usersList
.
value
.
findIndex
(
item
=>
{
if
(
item
.
id
==
id
){
return
true
;
}
})
usersList
.
value
.
splice
(
index
,
1
);
//await DeliveryPickUpStoreStaffApi.deleteDeliveryPickUpStoreStaff(id,formData.value.id)
message
.
success
(
t
(
'common.delSuccess'
))
// 刷新列表
//await getList(formData.value.id)
}
catch
{}
}
}
/**
/**
删除按钮操作 */
* 查询自提点员工绑定关系
const
handleDelete
=
async
(
id
:
number
)
=>
{
*/
const
index
=
formData
.
value
.
verifyUsers
.
findIndex
((
item
:
any
)
=>
{
const
getList
=
async
(
id
:
number
)
=>
{
if
(
item
.
id
==
id
)
{
formData
.
value
=
await
DeliveryPickUpStoreApi
.
getDeliveryPickUpStoreStaff
(
id
)
return
true
if
(
formData
.
value
.
storeStaffs
){
}
usersList
.
value
=
formData
.
value
.
storeStaffs
;
})
}
formData
.
value
.
verifyUsers
.
splice
(
index
,
1
)
}
}
/** 重置表单 */
/** 重置表单 */
...
@@ -148,14 +135,9 @@ const resetForm = () => {
...
@@ -148,14 +135,9 @@ const resetForm = () => {
formData
.
value
=
{
formData
.
value
=
{
id
:
undefined
,
id
:
undefined
,
name
:
''
,
name
:
''
,
storeStaff
Ids
:
[],
verifyUser
Ids
:
[],
storeStaffs
:
[],
verifyUsers
:
[]
}
}
formRef
.
value
?.
resetFields
()
formRef
.
value
?.
resetFields
()
}
}
const
usersList
=
ref
([])
const
changeStoreStaff
=
(
checkedUsers
:
[])
=>
{
usersList
.
value
=
checkedUsers
}
</
script
>
</
script
>
src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue
View file @
dcf1ad6b
<!-- TODO 芋艿:这块后续抽个独立的组件出来 -->
<
template
>
<
template
>
<Dialog
:title=
"dialogTitle"
v-model=
"dialogVisible"
width=
"60%"
>
<Dialog
:title=
"dialogTitle"
v-model=
"dialogVisible"
width=
"60%"
>
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
...
@@ -147,8 +148,7 @@ const checkedUsers = ref([])
...
@@ -147,8 +148,7 @@ const checkedUsers = ref([])
// 选中状态:key为用户ID,value为是否选中
// 选中状态:key为用户ID,value为是否选中
const
checkedStatus
=
ref
<
Record
<
string
,
boolean
>>
({})
const
checkedStatus
=
ref
<
Record
<
string
,
boolean
>>
({})
const
dialogTitle
=
'选择店员'
const
dialogTitle
=
"选择店员"
const
dialogVisible
=
ref
(
false
)
const
dialogVisible
=
ref
(
false
)
const
loading
=
ref
(
true
)
// 列表的加载中
const
loading
=
ref
(
true
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
total
=
ref
(
0
)
// 列表的总页数
...
@@ -221,11 +221,7 @@ const handleCheckAll = (checked: boolean) => {
...
@@ -221,11 +221,7 @@ const handleCheckAll = (checked: boolean) => {
* @param combinationActivity 活动
* @param combinationActivity 活动
* @param isCalcCheckAll 是否计算全选
* @param isCalcCheckAll 是否计算全选
*/
*/
const
handleCheckOne
=
(
const
handleCheckOne
=
(
checked
:
boolean
,
combinationActivity
,
isCalcCheckAll
:
boolean
)
=>
{
checked
:
boolean
,
combinationActivity
,
isCalcCheckAll
:
boolean
)
=>
{
if
(
checked
)
{
if
(
checked
)
{
checkedUsers
.
value
.
push
(
combinationActivity
as
never
)
checkedUsers
.
value
.
push
(
combinationActivity
as
never
)
checkedStatus
.
value
[
combinationActivity
.
id
]
=
true
checkedStatus
.
value
[
combinationActivity
.
id
]
=
true
...
@@ -245,8 +241,7 @@ const handleCheckOne = (
...
@@ -245,8 +241,7 @@ const handleCheckOne = (
}
}
// 查找活动在已选中活动列表中的索引
// 查找活动在已选中活动列表中的索引
const
findCheckedIndex
=
(
user
)
=>
const
findCheckedIndex
=
(
user
)
=>
checkedUsers
.
value
.
findIndex
((
item
)
=>
item
.
id
===
user
.
id
)
checkedUsers
.
value
.
findIndex
((
item
)
=>
item
.
id
===
user
.
id
)
// 计算全选框状态
// 计算全选框状态
const
calculateIsCheckAll
=
()
=>
{
const
calculateIsCheckAll
=
()
=>
{
...
@@ -260,7 +255,7 @@ const calculateIsCheckAll = () => {
...
@@ -260,7 +255,7 @@ const calculateIsCheckAll = () => {
const
handleEmitChange
=
()
=>
{
const
handleEmitChange
=
()
=>
{
// 关闭弹窗
// 关闭弹窗
dialogVisible
.
value
=
false
dialogVisible
.
value
=
false
emits
(
"change"
,
[...
checkedUsers
.
value
])
emits
(
'change'
,
[...
checkedUsers
.
value
])
}
}
/** 确认选择时的触发事件 */
/** 确认选择时的触发事件 */
...
...
src/views/mall/trade/delivery/pickUpStore/index.vue
View file @
dcf1ad6b
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
prop=
"createTime"
prop=
"createTime"
width=
"180"
width=
"180"
/>
/>
<el-table-column
align=
"center"
label=
"操作"
>
<el-table-column
align=
"center"
label=
"操作"
min-width=
"110"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
<el-button
v-hasPermi=
"['trade:delivery:pick-up-store:update']"
v-hasPermi=
"['trade:delivery:pick-up-store:update']"
...
@@ -104,7 +104,7 @@
...
@@ -104,7 +104,7 @@
编辑
编辑
</el-button>
</el-button>
<el-button
<el-button
v-hasPermi=
"['trade:delivery:pick-up-store:
bind
']"
v-hasPermi=
"['trade:delivery:pick-up-store:
update
']"
link
link
type=
"primary"
type=
"primary"
@
click=
"openFormBind(scope.row.id)"
@
click=
"openFormBind(scope.row.id)"
...
@@ -123,10 +123,11 @@
...
@@ -123,10 +123,11 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</ContentWrap>
</ContentWrap>
<!-- 表单弹窗:添加/修改 -->
<!-- 表单弹窗:添加/修改 -->
<DeliveryPickUpStoreForm
ref=
"formRef"
@
success=
"getList"
/>
<DeliveryPickUpStoreForm
ref=
"formRef"
@
success=
"getList"
/>
<!-- 表单弹窗:绑定店员 -->
<!-- 表单弹窗:绑定店员 -->
<DeliveryPickUpStoreBindForm
ref=
"formBindRef"
/>
<DeliveryPickUpStoreBindForm
ref=
"formBindRef"
/>
</template>
</template>
<
script
lang=
"ts"
name=
"DeliveryPickUpStore"
setup
>
<
script
lang=
"ts"
name=
"DeliveryPickUpStore"
setup
>
import
*
as
DeliveryPickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
import
*
as
DeliveryPickUpStoreApi
from
'@/api/mall/trade/delivery/pickUpStore'
...
...
src/views/mall/trade/order/index.vue
View file @
dcf1ad6b
...
@@ -351,7 +351,7 @@ const deliveryExpressList = ref<DeliveryExpressApi.DeliveryExpressVO[]>([]) //
...
@@ -351,7 +351,7 @@ const deliveryExpressList = ref<DeliveryExpressApi.DeliveryExpressVO[]>([]) //
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
get
ListAllSimple
()
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
get
SimpleDeliveryPickUpStoreList
()
deliveryExpressList
.
value
=
await
DeliveryExpressApi
.
getSimpleDeliveryExpressList
()
deliveryExpressList
.
value
=
await
DeliveryExpressApi
.
getSimpleDeliveryExpressList
()
})
})
</
script
>
</
script
>
src/views/member/user/detail/UserOrderList.vue
View file @
dcf1ad6b
...
@@ -273,7 +273,7 @@ const openDetail = (id: number) => {
...
@@ -273,7 +273,7 @@ const openDetail = (id: number) => {
/** 初始化 **/
/** 初始化 **/
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
await
getList
()
await
getList
()
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
get
ListAllSimple
()
pickUpStoreList
.
value
=
await
PickUpStoreApi
.
get
SimpleDeliveryPickUpStoreList
()
deliveryExpressList
.
value
=
await
DeliveryExpressApi
.
getSimpleDeliveryExpressList
()
deliveryExpressList
.
value
=
await
DeliveryExpressApi
.
getSimpleDeliveryExpressList
()
})
})
</
script
>
</
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