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
b5e9caca
Commit
b5e9caca
authored
Jun 07, 2025
by
wuqian
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of 47.122.114.111:qinjianhui/factory_front into wq
parents
15e919c3
e1a021c3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
203 additions
and
92 deletions
+203
-92
components.d.ts
+1
-0
src/api/logistics.ts
+6
-0
src/api/podUsOrder.ts
+27
-0
src/styles/index.scss
+3
-3
src/types/api/podUsOrder.ts
+2
-0
src/views/logistics/logisticsCompany.vue
+10
-10
src/views/logistics/shippingAddress.vue
+89
-67
src/views/logistics/types/shippingAddress.ts
+10
-0
src/views/order/podUs/PodMakeOrder.vue
+24
-11
src/views/order/podUs/index.vue
+0
-0
src/views/system/UserPage.vue
+31
-1
No files found.
components.d.ts
View file @
b5e9caca
...
@@ -51,6 +51,7 @@ declare module 'vue' {
...
@@ -51,6 +51,7 @@ declare module 'vue' {
ElTag
:
typeof
import
(
'element-plus/es'
)[
'ElTag'
]
ElTag
:
typeof
import
(
'element-plus/es'
)[
'ElTag'
]
ElTooltip
:
typeof
import
(
'element-plus/es'
)[
'ElTooltip'
]
ElTooltip
:
typeof
import
(
'element-plus/es'
)[
'ElTooltip'
]
ElTree
:
typeof
import
(
'element-plus/es'
)[
'ElTree'
]
ElTree
:
typeof
import
(
'element-plus/es'
)[
'ElTree'
]
ElUpload
:
typeof
import
(
'element-plus/es'
)[
'ElUpload'
]
Icon
:
typeof
import
(
'./src/components/Icon.vue'
)[
'default'
]
Icon
:
typeof
import
(
'./src/components/Icon.vue'
)[
'default'
]
ImageView
:
typeof
import
(
'./src/components/ImageView.vue'
)[
'default'
]
ImageView
:
typeof
import
(
'./src/components/ImageView.vue'
)[
'default'
]
LogList
:
typeof
import
(
'./src/components/LogList.vue'
)[
'default'
]
LogList
:
typeof
import
(
'./src/components/LogList.vue'
)[
'default'
]
...
...
src/api/logistics.ts
View file @
b5e9caca
...
@@ -193,6 +193,12 @@ export function deleteAddressByIds(params: { ids: string }) {
...
@@ -193,6 +193,12 @@ export function deleteAddressByIds(params: { ids: string }) {
},
},
)
)
}
}
//获取国家名称及代码
export
function
getAllCountryApi
()
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
'/logisticsAddress/getAllCountry'
,
)
}
/**
/**
* @description 物流报价
* @description 物流报价
...
...
src/api/podUsOrder.ts
View file @
b5e9caca
...
@@ -16,6 +16,7 @@ export interface LogisticsData {
...
@@ -16,6 +16,7 @@ export interface LogisticsData {
status
:
boolean
status
:
boolean
logisticsWayCode
:
string
// 物流编码
logisticsWayCode
:
string
// 物流编码
partition
:
string
// 所在分区
partition
:
string
// 所在分区
logisticsWayId
?:
number
|
null
}
}
export
function
getOrderTabData
()
{
export
function
getOrderTabData
()
{
return
axios
.
get
<
never
,
BaseRespData
<
Tab
[]
>>
(
return
axios
.
get
<
never
,
BaseRespData
<
Tab
[]
>>
(
...
@@ -270,3 +271,29 @@ export function cancelLogisticsOrderApi(orderIds: (string | number)[]) {
...
@@ -270,3 +271,29 @@ export function cancelLogisticsOrderApi(orderIds: (string | number)[]) {
orderIds
,
orderIds
,
)
)
}
}
// 更改物流
export
function
changeLogisticsApi
(
params
:
{
updateByIdParam
:
{
id
:
string
|
number
dataVersion
:
number
}
logisticsTrialCalculation
:
LogisticsData
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/changeLogistics'
,
params
,
)
}
// 创建物流
export
function
createLogisticsOrderApi
(
params
:
{
updateByIdParam
:
{
id
:
string
|
number
dataVersion
:
number
}
logisticsTrialCalculation
:
LogisticsData
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/createLogisticsOrder'
,
params
,
)
}
src/styles/index.scss
View file @
b5e9caca
@import
'./common.scss'
;
@use
'./common.scss'
;
@import
'./element.scss'
;
@use
'./element.scss'
;
\ No newline at end of file
\ No newline at end of file
src/types/api/podUsOrder.ts
View file @
b5e9caca
...
@@ -57,6 +57,8 @@ export interface PodUsOrderListData {
...
@@ -57,6 +57,8 @@ export interface PodUsOrderListData {
version
?:
number
version
?:
number
productList
?:
ProductList
[]
productList
?:
ProductList
[]
orderNumber
?:
string
orderNumber
?:
string
logisticsWayId
?:
number
|
null
logisticsWayName
?:
string
}
}
export
interface
ProductList
{
export
interface
ProductList
{
id
:
number
id
:
number
...
...
src/views/logistics/logisticsCompany.vue
View file @
b5e9caca
...
@@ -292,12 +292,12 @@ getLogisticsList()
...
@@ -292,12 +292,12 @@ getLogisticsList()
<span>
{{ item.description }}
</span>
<span>
{{ item.description }}
</span>
</div>
</div>
</LogDialog>
</LogDialog>
<el-dialog
v-model=
"createData.show"
:close-on-click-modal=
"false"
width=
"
7
00px"
:title=
"createData.title"
>
<el-dialog
v-model=
"createData.show"
:close-on-click-modal=
"false"
width=
"
9
00px"
:title=
"createData.title"
>
<el-form
v-if=
"createData.show"
ref=
"formRef"
label-width=
"110px"
:rules=
"rules"
:model=
"form
"
>
<el-form
v-if=
"createData.show"
ref=
"formRef"
style=
"padding: 30px"
label-width=
"110px"
:rules=
"rules"
:model=
"form"
class=
"el-row
"
>
<el-form-item
label=
"物流公司编码"
prop=
"code"
>
<el-form-item
class=
"el-col-12"
label=
"物流公司编码"
prop=
"code"
>
<el-select
v-model=
"form.code"
clearable
filterable
@
change=
"codeChange"
>
<el-select
v-model=
"form.code"
clearable
filterable
@
change=
"codeChange"
>
<el-option
<el-option
v-for=
"it in logisticsList"
:key=
"it.code"
:label=
"it.
basicsNam
e"
v-for=
"it in logisticsList"
:key=
"it.code"
:label=
"it.
cod
e"
:value=
"it.code"
>
:value=
"it.code"
>
{{ it.code }}
{{ it.code }}
<span
style=
"font-size: 14px; color: #999; line-height: 24px"
>
<span
style=
"font-size: 14px; color: #999; line-height: 24px"
>
...
@@ -306,22 +306,22 @@ getLogisticsList()
...
@@ -306,22 +306,22 @@ getLogisticsList()
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"名称"
prop=
"name"
>
<el-form-item
class=
"el-col-12"
label=
"名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
clearable
placeholder=
"请输入名称"
></el-input>
<el-input
v-model=
"form.name"
clearable
placeholder=
"请输入名称"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"联系人"
prop=
"contact"
>
<el-form-item
class=
"el-col-12"
label=
"联系人"
prop=
"contact"
>
<el-input
v-model=
"form.contact"
clearable
placeholder=
"请输入联系人"
></el-input>
<el-input
v-model=
"form.contact"
clearable
placeholder=
"请输入联系人"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"电话/手机"
prop=
"phone"
>
<el-form-item
class=
"el-col-12"
label=
"电话/手机"
prop=
"phone"
>
<el-input
v-model=
"form.phone"
clearable
placeholder=
"请输入电话/手机"
></el-input>
<el-input
v-model=
"form.phone"
clearable
placeholder=
"请输入电话/手机"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"网址"
prop=
"siteUrl"
>
<el-form-item
class=
"el-col-12"
label=
"网址"
prop=
"siteUrl"
>
<el-input
v-model=
"form.siteUrl"
clearable
placeholder=
"请输入网址"
></el-input>
<el-input
v-model=
"form.siteUrl"
clearable
placeholder=
"请输入网址"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"地址"
prop=
"address"
>
<el-form-item
class=
"el-col-12"
label=
"地址"
prop=
"address"
>
<el-input
v-model=
"form.address"
clearable
placeholder=
"请输入地址"
></el-input>
<el-input
v-model=
"form.address"
clearable
placeholder=
"请输入地址"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
v-for=
"o in otherFields"
:key=
"o"
required
:label=
"o"
:prop=
"`apiData.${o}`"
>
<el-form-item
v-for=
"o in otherFields"
:key=
"o"
class=
"el-col-12"
required
:label=
"o"
:prop=
"`apiData.${o}`"
>
<el-input
v-model=
"form.apiData[o]"
clearable
:placeholder=
"`请输入${o}`"
></el-input>
<el-input
v-model=
"form.apiData[o]"
clearable
:placeholder=
"`请输入${o}`"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
...
src/views/logistics/shippingAddress.vue
View file @
b5e9caca
...
@@ -43,36 +43,11 @@
...
@@ -43,36 +43,11 @@
</el-tag>
</el-tag>
</div>
</div>
<p
<p
:title=
"
style=
"white-space: pre"
[
:title=
"getJosn(item)"
item.countryName,
// item.countryCode,
item.stateProvince,
// item.stateProvinceAbbr,
item.district,
// item.districtCode,
item.city,
// item.cityCode,
]
.filter((el) => el != null && el !== '')
.join(' ')
"
class=
"address"
class=
"address"
>
>
{{
{{
getJosn
(
item
)
}}
[
item
.
countryName
,
// item.countryCode,
item
.
stateProvince
,
// item.stateProvinceAbbr,
item
.
district
,
// item.districtCode,
item
.
city
,
// item.cityCode,
]
.
filter
((
el
)
=>
el
!=
null
&&
el
!==
''
)
.
join
(
' '
)
}}
</p>
</p>
<p
<p
:title=
"
:title=
"
...
@@ -187,6 +162,7 @@ import {
...
@@ -187,6 +162,7 @@ import {
updateAddress
,
updateAddress
,
getLogisticsLog
,
getLogisticsLog
,
deleteAddressByIds
,
deleteAddressByIds
,
getAllCountryApi
,
}
from
'@/api/logistics'
}
from
'@/api/logistics'
import
{
IFormConfig
}
from
'@/components/CustomizeForm.tsx'
import
{
IFormConfig
}
from
'@/components/CustomizeForm.tsx'
...
@@ -196,7 +172,7 @@ import CustomizeForm from '@/components/CustomizeForm.tsx'
...
@@ -196,7 +172,7 @@ import CustomizeForm from '@/components/CustomizeForm.tsx'
import
{
Edit
,
Delete
,
List
}
from
'@element-plus/icons-vue'
import
{
Edit
,
Delete
,
List
}
from
'@element-plus/icons-vue'
import
{
debounce
}
from
'lodash-es'
import
{
debounce
}
from
'lodash-es'
import
{
ShippingAddressObj
}
from
'./types/shippingAddress.ts'
import
{
ShippingAddressObj
,
ICountryObj
}
from
'./types/shippingAddress.ts'
import
usePageList
from
'@/utils/hooks/usePageList'
import
usePageList
from
'@/utils/hooks/usePageList'
import
{
useValue
}
from
'./hooks/useValue'
import
{
useValue
}
from
'./hooks/useValue'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
showConfirm
}
from
'@/utils/ui'
...
@@ -205,6 +181,7 @@ const [editForm, resetEditForm] = useValue<ShippingAddressObj>({
...
@@ -205,6 +181,7 @@ const [editForm, resetEditForm] = useValue<ShippingAddressObj>({
swDefault
:
false
,
swDefault
:
false
,
})
})
const
{
const
{
loading
,
currentPage
,
currentPage
,
pageSize
,
pageSize
,
total
,
total
,
...
@@ -225,8 +202,9 @@ const {
...
@@ -225,8 +202,9 @@ const {
const
dialogVisible
=
ref
(
false
)
const
dialogVisible
=
ref
(
false
)
const
logDialogVisible
=
ref
(
false
)
const
logDialogVisible
=
ref
(
false
)
const
editFormRef
=
ref
<
InstanceType
<
typeof
CustomizeForm
>
|
null
>
(
null
)
const
editFormRef
=
ref
<
InstanceType
<
typeof
CustomizeForm
>
|
null
>
(
null
)
const
countryList
=
ref
([])
const
formConfig
=
ref
<
IFormConfig
[]
>
(
[
const
formConfig
=
computed
<
IFormConfig
[]
>
(()
=>
[
{
{
prop
:
'shipperName'
,
prop
:
'shipperName'
,
type
:
'input'
,
type
:
'input'
,
...
@@ -265,88 +243,103 @@ const formConfig = ref<IFormConfig[]>([
...
@@ -265,88 +243,103 @@ const formConfig = ref<IFormConfig[]>([
},
},
},
},
{
{
prop
:
'c
ity
'
,
prop
:
'c
ountryCode
'
,
type
:
'
inpu
t'
,
type
:
'
selec
t'
,
label
:
'
城市
'
,
label
:
'
国家代码
'
,
attrs
:
{
attrs
:
{
// options: [],
options
:
countryList
.
value
,
placeholder
:
'请输入城市'
,
label
:
'countryCode'
,
value
:
'countryCode'
,
filterable
:
true
,
placeholder
:
'请选择国家代码'
,
onChange
:
(
val
:
ICountryObj
)
=>
{
editForm
.
value
.
countryName
=
val
.
nameCn
},
},
},
rules
:
[{
required
:
true
,
message
:
'请
输入城市
'
}],
rules
:
[{
required
:
true
,
message
:
'请
选择国家代码
'
}],
},
},
{
{
prop
:
'c
ityCod
e'
,
prop
:
'c
ountryNam
e'
,
type
:
'
inpu
t'
,
type
:
'
selec
t'
,
label
:
'
城市编码
'
,
label
:
'
国家名称
'
,
attrs
:
{
attrs
:
{
// options: [],
options
:
countryList
.
value
,
placeholder
:
'请输入城市编码'
,
label
:
'nameCn'
,
value
:
'nameCn'
,
filterable
:
true
,
placeholder
:
'请选择国家名称'
,
onChange
:
(
val
:
ICountryObj
)
=>
{
editForm
.
value
.
countryCode
=
val
.
countryCode
},
},
},
rules
:
[{
required
:
true
,
message
:
'请选择国家名称'
}],
},
},
{
{
prop
:
'
district
'
,
prop
:
'
stateProvince
'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
区
'
,
label
:
'
州/省
'
,
attrs
:
{
attrs
:
{
// options: [],
// options: [],
placeholder
:
'请
选择区
'
,
placeholder
:
'请
输入州/省
'
,
},
},
},
},
{
{
prop
:
'
districtCode
'
,
prop
:
'
stateProvinceAbbr
'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
区编码
'
,
label
:
'
州/省简称
'
,
attrs
:
{
attrs
:
{
// options: [],
// options: [],
placeholder
:
'请
选择区
'
,
placeholder
:
'请
输入州/省简称
'
,
},
},
},
},
{
{
prop
:
'
postal
Code'
,
prop
:
'
city
Code'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
邮编
'
,
label
:
'
城市编码
'
,
attrs
:
{
attrs
:
{
placeholder
:
'请输入邮编'
,
// options: [],
placeholder
:
'请输入城市编码'
,
},
},
},
},
{
{
prop
:
'
stateProvince
'
,
prop
:
'
city
'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
州/省
'
,
label
:
'
城市
'
,
attrs
:
{
attrs
:
{
// options: [],
// options: [],
placeholder
:
'请输入
州/省
'
,
placeholder
:
'请输入
城市
'
,
},
},
rules
:
[{
required
:
true
,
message
:
'请输入城市'
}],
},
},
{
{
prop
:
'
stateProvinceAbbr
'
,
prop
:
'
districtCode
'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
州/省简称
'
,
label
:
'
区编码
'
,
attrs
:
{
attrs
:
{
// options: [],
// options: [],
placeholder
:
'请
输入州/省简称
'
,
placeholder
:
'请
选择区
'
,
},
},
},
},
{
{
prop
:
'
countryName
'
,
prop
:
'
district
'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
国家名称
'
,
label
:
'
区
'
,
attrs
:
{
attrs
:
{
// options: [],
// options: [],
placeholder
:
'请
输入国家名称
'
,
placeholder
:
'请
选择区
'
,
},
},
rules
:
[{
required
:
true
,
message
:
'请输入国家名称'
}],
},
},
{
{
prop
:
'
country
Code'
,
prop
:
'
postal
Code'
,
type
:
'input'
,
type
:
'input'
,
label
:
'
国家代码
'
,
label
:
'
邮编
'
,
attrs
:
{
attrs
:
{
// options: [],
placeholder
:
'请输入邮编'
,
placeholder
:
'请输入国家代码'
,
},
},
rules
:
[{
required
:
true
,
message
:
'请输入邮编'
}],
},
},
{
{
prop
:
'phoneNumber'
,
prop
:
'phoneNumber'
,
...
@@ -364,7 +357,36 @@ const formConfig = ref<IFormConfig[]>([
...
@@ -364,7 +357,36 @@ const formConfig = ref<IFormConfig[]>([
},
},
])
])
const
loading
=
ref
(
false
)
async
function
getCountryList
()
{
try
{
const
{
data
}
=
await
getAllCountryApi
()
countryList
.
value
=
data
console
.
log
(
372
,
countryList
.
value
)
}
catch
(
error
)
{
console
.
log
(
error
)
}
}
function
getJosn
(
item
:
ShippingAddressObj
)
{
return
[
[
item
.
countryName
,
item
.
countryCode
],
[
item
.
stateProvince
,
item
.
stateProvinceAbbr
],
[
item
.
district
,
item
.
districtCode
],
[
item
.
city
,
item
.
cityCode
],
]
.
map
(([
value
,
code
])
=>
{
if
(
value
&&
code
)
return
`
${
value
}
(
${
code
}
)`
if
(
value
)
return
value
if
(
code
)
return
code
// 当 value 不存在但 code 存在时,不使用括号
return
null
})
.
filter
(
Boolean
)
.
join
(
` `
)
// 使用三个空格作为分隔符增大间距
}
onMounted
(()
=>
{
getCountryList
()
})
/**
/**
* @description: 取消按钮
* @description: 取消按钮
...
...
src/views/logistics/types/shippingAddress.ts
View file @
b5e9caca
...
@@ -22,3 +22,13 @@ export interface ShippingAddressObj {
...
@@ -22,3 +22,13 @@ export interface ShippingAddressObj {
updateTime
?:
string
updateTime
?:
string
checked
?:
boolean
checked
?:
boolean
}
}
export
interface
ICountryObj
{
aeCountryCode
:
string
continentCode
:
string
countryCode
:
string
id
:
number
nameCn
:
string
nameEn
:
string
needProviceAbbr
:
number
}
src/views/order/podUs/PodMakeOrder.vue
View file @
b5e9caca
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
@
opened=
"handleOpened"
@
opened=
"handleOpened"
@
close=
"onClose"
@
close=
"onClose"
>
>
<template
#
title
>
<template
#
header
>
<div
class=
"title"
>
<div
class=
"title"
>
<span>
POD打单
</span>
<span>
POD打单
</span>
<span
v-if=
"socketConnect === 'online'"
class=
"online"
>
[在线]
</span>
<span
v-if=
"socketConnect === 'online'"
class=
"online"
>
[在线]
</span>
...
@@ -300,7 +300,6 @@ const boxChange = ref<boolean>(false)
...
@@ -300,7 +300,6 @@ const boxChange = ref<boolean>(false)
const
boxIndex
=
ref
<
number
|
null
>
(
null
)
const
boxIndex
=
ref
<
number
|
null
>
(
null
)
const
orderStore
=
useOrderStore
()
const
orderStore
=
useOrderStore
()
const
isLock
=
ref
<
boolean
>
(
false
)
const
isLock
=
ref
<
boolean
>
(
false
)
const
renderLock
=
ref
<
boolean
>
(
false
)
const
productionOrderRef
=
ref
()
const
productionOrderRef
=
ref
()
const
socketConnect
=
computed
(()
=>
orderStore
.
socketConnect
)
const
socketConnect
=
computed
(()
=>
orderStore
.
socketConnect
)
const
podBoxList
=
computed
(()
=>
orderStore
.
podBoxList
)
const
podBoxList
=
computed
(()
=>
orderStore
.
podBoxList
)
...
@@ -372,6 +371,9 @@ watch(
...
@@ -372,6 +371,9 @@ watch(
{
deep
:
true
},
{
deep
:
true
},
)
)
const
podBoxIndex
=
computed
(()
=>
orderStore
.
podBoxIndex
)
const
podBoxIndex
=
computed
(()
=>
orderStore
.
podBoxIndex
)
let
renderLock
=
false
const
renderItemBox
=
(
bool
:
boolean
)
=>
{
const
renderItemBox
=
(
bool
:
boolean
)
=>
{
if
(
if
(
!
podBoxList
.
value
||
!
podBoxList
.
value
||
...
@@ -380,13 +382,13 @@ const renderItemBox = (bool: boolean) => {
...
@@ -380,13 +382,13 @@ const renderItemBox = (bool: boolean) => {
(
bool
&&
boxIndex
.
value
!==
podBoxIndex
.
value
)
(
bool
&&
boxIndex
.
value
!==
podBoxIndex
.
value
)
)
)
return
return
if
(
renderLock
.
value
)
return
if
(
renderLock
)
return
renderLock
.
value
=
true
renderLock
=
true
let
boxItem
=
podBoxList
.
value
.
find
((
item
)
=>
item
.
box
===
boxIndex
.
value
)
let
boxItem
=
podBoxList
.
value
.
find
((
item
)
=>
item
.
box
===
boxIndex
.
value
)
if
(
!
boxItem
)
boxItem
=
{
data
:
{
productList
:
[]
}
}
if
(
!
boxItem
)
boxItem
=
{
data
:
{
productList
:
[]
}
}
const
{
data
}
=
boxItem
const
{
data
}
=
boxItem
if
(
!
data
)
{
if
(
!
data
)
{
renderLock
.
value
=
false
renderLock
=
false
currentCode
=
''
currentCode
=
''
podOrderDetailsData
.
value
=
{}
podOrderDetailsData
.
value
=
{}
return
return
...
@@ -416,9 +418,12 @@ const renderItemBox = (bool: boolean) => {
...
@@ -416,9 +418,12 @@ const renderItemBox = (bool: boolean) => {
}
}
podOrderDetailsData
.
value
=
data
podOrderDetailsData
.
value
=
data
if
(
productList
.
every
((
item
)
=>
item
.
power
))
{
if
(
productList
.
every
((
item
)
=>
item
.
power
))
{
print
(
data
)
print
(
data
,
false
,
()
=>
{
renderLock
=
false
})
}
else
{
renderLock
=
false
}
}
renderLock
.
value
=
false
}
}
const
messageChange
=
(
data
:
WebSocketMessage
)
=>
{
const
messageChange
=
(
data
:
WebSocketMessage
)
=>
{
if
(
!
data
)
return
if
(
!
data
)
return
...
@@ -443,7 +448,7 @@ const setPodBoxList = (data: WebSocketMessage) => {
...
@@ -443,7 +448,7 @@ const setPodBoxList = (data: WebSocketMessage) => {
const
obj
=
data
.
txt
const
obj
=
data
.
txt
if
(
obj
&&
typeof
obj
===
'string'
)
{
if
(
obj
&&
typeof
obj
===
'string'
)
{
const
parsedData
=
JSON
.
parse
(
obj
)
const
parsedData
=
JSON
.
parse
(
obj
)
useOrderStore
()
.
setPodBoxList
(
parsedData
)
orderStore
.
setPodBoxList
(
parsedData
)
}
}
}
}
const
initPrintDevice
=
()
=>
{
const
initPrintDevice
=
()
=>
{
...
@@ -511,6 +516,8 @@ const userStore = useUserStore()
...
@@ -511,6 +516,8 @@ const userStore = useUserStore()
const
getPackingData
=
async
(
code
:
string
)
=>
{
const
getPackingData
=
async
(
code
:
string
)
=>
{
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'加载中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
})
currentCode
=
code
currentCode
=
code
try
{
try
{
...
@@ -587,6 +594,8 @@ const initOrderDetailBox = async () => {
...
@@ -587,6 +594,8 @@ const initOrderDetailBox = async () => {
}
}
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'加载中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
})
try
{
try
{
const
res
=
await
getPodBoxListApi
(
factoryNo
,
warehouseId
.
value
)
const
res
=
await
getPodBoxListApi
(
factoryNo
,
warehouseId
.
value
)
...
@@ -657,7 +666,7 @@ const initOrderDetailBox = async () => {
...
@@ -657,7 +666,7 @@ const initOrderDetailBox = async () => {
})
})
}
}
renderLock
.
value
=
false
renderLock
=
false
productionOrder
.
value
=
''
productionOrder
.
value
=
''
isLock
.
value
=
false
isLock
.
value
=
false
productionOrderRef
.
value
.
focus
()
productionOrderRef
.
value
.
focus
()
...
@@ -792,12 +801,16 @@ const handlePrinterChange = (value: string) => {
...
@@ -792,12 +801,16 @@ const handlePrinterChange = (value: string) => {
emit
(
'set-printer'
,
value
)
emit
(
'set-printer'
,
value
)
}
}
const
print
=
(
data
:
OrderData
,
forcePrint
=
false
)
=>
{
const
print
=
(
data
:
OrderData
,
forcePrint
=
false
,
callback
?:
()
=>
void
)
=>
{
const
_boxIndex
=
boxIndex
.
value
const
_boxIndex
=
boxIndex
.
value
if
(
!
forcePrint
&&
data
.
printResult
)
return
if
(
!
forcePrint
&&
data
.
printResult
)
{
callback
&&
callback
()
return
}
props
.
printOrder
(
data
,
(
status
:
boolean
)
=>
{
props
.
printOrder
(
data
,
(
status
:
boolean
)
=>
{
callback
&&
callback
()
const
item
=
podBoxList
.
value
?.
find
((
item
)
=>
item
.
box
===
_boxIndex
)
const
item
=
podBoxList
.
value
?.
find
((
item
)
=>
item
.
box
===
_boxIndex
)
if
(
item
&&
item
.
data
)
{
if
(
item
&&
item
.
data
)
{
if
(
status
)
{
if
(
status
)
{
...
...
src/views/order/podUs/index.vue
View file @
b5e9caca
This diff is collapsed.
Click to expand it.
src/views/system/UserPage.vue
View file @
b5e9caca
...
@@ -119,6 +119,14 @@
...
@@ -119,6 +119,14 @@
>
>
<Edit
/>
<Edit
/>
</el-icon>
</el-icon>
<el-icon
size=
"24"
title=
"重置密码"
color=
"#67C23A"
style=
"cursor: pointer; vertical-align: middle"
@
click
.
stop=
"resetPwd(scope.row)"
><RefreshLeft
/></el-icon>
</
template
>
</
template
>
</ElTableColumn>
</ElTableColumn>
</ElTable>
</ElTable>
...
@@ -202,13 +210,14 @@ import {
...
@@ -202,13 +210,14 @@ import {
deleteUserApi
,
deleteUserApi
,
getDetailsByIdApi
,
getDetailsByIdApi
,
changeUserStatusApi
,
changeUserStatusApi
,
resetPasswordApi
,
}
from
'@/api/auth'
}
from
'@/api/auth'
import
Icon
from
'@/components/Icon.vue'
import
Icon
from
'@/components/Icon.vue'
import
{
UserEditForm
,
userData
,
userSearchForm
}
from
'@/types/api/user'
import
{
UserEditForm
,
userData
,
userSearchForm
}
from
'@/types/api/user'
import
usePageList
from
'@/utils/hooks/usePageList'
import
usePageList
from
'@/utils/hooks/usePageList'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
Edit
}
from
'@element-plus/icons-vue'
import
{
Edit
,
RefreshLeft
}
from
'@element-plus/icons-vue'
import
type
{
FormRules
}
from
'element-plus'
import
type
{
FormRules
}
from
'element-plus'
import
{
reactive
,
ref
}
from
'vue'
import
{
reactive
,
ref
}
from
'vue'
const
[
searchForm
,
resetSearchForm
]
=
useValue
<
userSearchForm
>
({})
const
[
searchForm
,
resetSearchForm
]
=
useValue
<
userSearchForm
>
({})
...
@@ -347,6 +356,27 @@ const onChangeStatus = async (value: number, item: userData) => {
...
@@ -347,6 +356,27 @@ const onChangeStatus = async (value: number, item: userData) => {
//showError(e)
//showError(e)
}
}
}
}
const
resetPwd
=
async
(
row
:
userData
)
=>
{
try
{
await
showConfirm
(
`确认要重置用户
${
row
.
account
}
的密码?`
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
})
}
catch
{
return
}
try
{
const
res
=
await
resetPasswordApi
(
row
.
id
)
await
ElMessageBox
.
alert
(
'重置成功
\
n
\
r 新密码为:'
+
res
.
data
.
passWord
,
{
confirmButtonText
:
'确定'
,
type
:
'warning'
,
})
search
()
}
catch
(
e
)
{
search
()
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
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