Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mocp-uniapp
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
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
pangchong
mocp-uniapp
Commits
506ea510
Commit
506ea510
authored
Jul 17, 2024
by
liujinbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
航班保障-页面
parent
0f17c728
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
301 additions
and
16 deletions
+301
-16
src/mocp/api/flight-support.js
+18
-0
src/mocp/components/global-page/global-page.vue
+13
-4
src/mocp/store/flight-support.js
+45
-0
src/mocp/store/user.js
+2
-1
src/pages.json
+24
-7
src/pages/modules/mocp/panel/flight-support/components/screen.vue
+115
-0
src/pages/modules/mocp/panel/flight-support/constants/flightSupportList.scss
+1
-0
src/pages/modules/mocp/panel/flight-support/list.vue
+56
-0
src/pages/modules/mocp/panel/information-disclosure/constants/inforDisclosureList.scss
+16
-0
src/pages/modules/mocp/panel/information-disclosure/list.vue
+11
-4
No files found.
src/mocp/api/flight-support.js
0 → 100644
View file @
506ea510
import
{
http
}
from
'mocp/utils/http'
export
const
flightSupportGetListApi
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/flighting/getFList'
,
data
,
config
})
}
export
const
getAircraftTerminalsApi
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/resource/flight/getAircraftTerminals'
,
data
,
config
})
}
src/mocp/components/global-page/global-page.vue
View file @
506ea510
...
...
@@ -26,17 +26,20 @@
<!-- 自定义导航栏 -->
<global-navbar
:title=
"title"
v-if=
"showNavbar"
>
<template
#
left
v-if=
"pages.length > 1 && showNavLeft"
>
<up-icon
v-if=
"navLeftType == 'icon'"
:name=
"navLeftIcon"
size=
"16"
@
tap=
"handleLeftClick"
></up-icon>
<up-icon
v-if=
"navLeftType == 'icon'"
:name=
"navLeftIcon"
size=
"16"
@
tap=
"handleLeftClick"
></up-icon>
<view
v-if=
"navLeftType == 'text'"
class=
"cancel"
@
tap=
"handleLeftClick"
>
{{
navLeftText
}}
</view>
</
template
>
<
template
#
right
v-if=
"showNavRight"
>
<global-button
type=
"text"
size=
"small"
v-if=
"navRightType == 'text'"
@
tap=
"handleRightClick"
>
{{
navRightText
}}
</global-button>
<global-button
type=
"primary"
size=
"small"
v-if=
"navRightType == 'button'"
style=
"padding: 0 32rpx"
@
tap=
"handleRightClick"
>
<global-button
type=
"primary"
size=
"small"
v-if=
"navRightType == 'button'"
style=
"padding: 0 32rpx"
@
tap=
"handleRightClick"
>
{{
navRightText
}}
</global-button>
<global-icon
v-if=
"navRightType == 'icon'"
:icon=
"navRightIcon"
@
tap=
"handleRightClick"
></global-icon>
<global-icon
v-if=
"navRightType == 'icon'"
:icon=
"navRightIcon"
@
tap=
"handleRightClick"
></global-icon>
</
template
>
</global-navbar>
<slot
name=
"top"
></slot>
...
...
@@ -244,7 +247,7 @@ const queryList = (pageIndex, pageSize) => {
if
(
Object
.
prototype
.
toString
.
call
(
ps
.
api
)
==
'[object Function]'
)
{
ps
.
api
(
params
,
{
loading
:
true
})
.
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
||
res
.
list
?.
length
)
{
paging
.
value
?.
complete
(
res
.
list
||
res
.
data
?.
list
||
[])
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
...
...
@@ -311,15 +314,19 @@ export default {
//
表单内容
:deep(.u-form-item__body)
{
padding
:
24
rpx
0
!important
;
.u-form-item__body__left__content__label
{
color
:
$
mocp-text-5
!important
;
font-size
:
28
rpx
!important
;
}
.u-input__content__field-wrapper__field
{
color
:
$
mocp-text-4
!important
;
}
.u-textarea
{
margin-top
:
8
rpx
;
.u-textarea__field
{
font-size
:
28
rpx
!important
;
color
:
$
mocp-text-4
!important
;
...
...
@@ -327,9 +334,11 @@ export default {
}
}
}
.cancel
{
font-size
:
28
rpx
;
}
.footer-btn
{
padding
:
24
rpx
32
rpx
;
background-color
:
#fff
;
...
...
src/mocp/store/flight-support.js
0 → 100644
View file @
506ea510
import
{
defineStore
}
from
'pinia'
const
useFlightSupportStore
=
defineStore
(
'informationDisclosure'
,
{
state
:
()
=>
{
return
{
searchData
:
{
startT
:
'1721163600000'
,
stopT
:
'1721249999000'
,
acTerminals2
:
'WUH'
,
sortType
:
'stdChn'
,
apiPwd
:
'Ifar$2_0160_525_Mocp'
,
isAsc
:
'1'
,
pageIndex
:
1
,
pageSize
:
50
,
requestFrom
:
6
,
realUserId
:
10
},
details
:
undefined
,
screenData
:
{}
}
},
getters
:
{},
actions
:
{
resetForm
()
{
this
.
searchData
=
{
startT
:
''
,
stopT
:
''
,
acTerminals2
:
''
,
sortType
:
''
,
apiPwd
:
''
,
isAsc
:
''
,
pageIndex
:
''
,
pageSize
:
''
,
requestFrom
:
''
,
realUserId
:
''
}
},
setState
(...
args
)
{
this
.
$patch
({
[
args
[
0
]]:
args
[
1
]
})
}
},
// 配置持久化
persist
:
false
})
export
default
useFlightSupportStore
src/mocp/store/user.js
View file @
506ea510
import
{
defineStore
}
from
'pinia'
import
{
ref
}
from
'vue'
const
menuList
=
ref
([
{
id
:
1
,
name
:
'信息通报'
,
icon
:
'xxtb'
,
group
:
'技术支援'
,
count
:
12
,
url
:
'/panel/information-disclosure/list'
},
{
id
:
2
,
name
:
'机队状态'
,
icon
:
'jdzt'
,
group
:
'技术支援'
,
count
:
0
},
...
...
@@ -15,7 +16,7 @@ const menuList = ref([
{
id
:
12
,
name
:
'考核记录'
,
icon
:
'khjl'
,
group
:
'运行品质'
,
count
:
0
,
url
:
'/panel/appraisal-record/list'
},
{
id
:
13
,
name
:
'AOG任务'
,
icon
:
'AOG'
,
group
:
'运行品质'
,
count
:
0
},
{
id
:
14
,
name
:
'MCO'
,
icon
:
'MCO'
,
group
:
'运行品质'
,
count
:
0
},
{
id
:
15
,
name
:
'航班保障'
,
icon
:
'hbbz'
,
group
:
'运行品质'
,
count
:
0
}
{
id
:
15
,
name
:
'航班保障'
,
icon
:
'hbbz'
,
group
:
'运行品质'
,
count
:
0
,
url
:
'/panel/flight-support/list'
}
])
const
useUserStore
=
defineStore
(
'user'
,
{
state
:
()
=>
{
...
...
src/pages.json
View file @
506ea510
...
...
@@ -52,7 +52,8 @@
"style"
:
{
"navigationBarTitleText"
:
"tab页面"
,
"app-plus"
:
{
"bounce"
:
"none"
//关闭窗口回弹效果
"bounce"
:
"none"
//关闭窗口回弹效果
}
}
},
...
...
@@ -176,7 +177,6 @@
"navigationBarTitleText"
:
"公司值班经理意见"
}
},
/*信息通报*/
{
"path"
:
"pages/modules/mocp/panel/information-disclosure/list"
,
"style"
:
{
...
...
@@ -184,6 +184,18 @@
}
},
{
"path"
:
"pages/modules/mocp/panel/flight-support/list"
,
"style"
:
{
"navigationBarTitleText"
:
"航班保障"
}
},
{
"path"
:
"pages/modules/mocp/panel/flight-support/components/screen"
,
"style"
:
{
"navigationBarTitleText"
:
"筛选"
}
},
{
"path"
:
"pages/modules/mocp/panel/technology-evaluation/list"
,
"style"
:
{
"navigationBarTitleText"
:
"技术评估"
...
...
@@ -256,15 +268,20 @@
},
"condition"
:
{
//模式配置,仅开发期间生效
"current"
:
1
,
//当前激活的模式(list
的索引项)
"current"
:
1
,
//当前激活的模式(list
的索引项)
"list"
:
[
{
"name"
:
"test"
,
//模式名称
"path"
:
"pages/modules/mocp/tab/index"
//启动页面,必选
"name"
:
"test"
,
//模式名称
"path"
:
"pages/modules/mocp/tab/index"
//启动页面,必选
},
{
"name"
:
"login"
,
//模式名称
"path"
:
"pages/modules/mocp/login/index"
//启动页面,必选
"name"
:
"login"
,
//模式名称
"path"
:
"pages/modules/mocp/login/index"
//启动页面,必选
}
]
}
...
...
src/pages/modules/mocp/panel/flight-support/components/screen.vue
0 → 100644
View file @
506ea510
<
template
>
<global-page
title=
"筛选"
>
<view
class=
"search-form"
>
<up-form
labelPosition=
"left"
labelWidth=
"auto"
>
<up-form-item
label=
"状态"
prop=
"state"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.state"
pickAlign=
"right"
clearable
dictkey=
"md_state"
></global-picker>
</up-form-item>
<up-form-item
label=
"航站"
prop=
"terminal"
:borderBottom=
"true"
>
<global-picker
pickAlign=
"right"
v-model=
"formData.terminal"
clearable
:options=
"baseStore.getTerminalSelect"
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"是否有效"
prop=
"valid"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.valid"
pickAlign=
"right"
:options=
"[
{ label: '有效', value: '1' },
{ label: '无效', value: '0' }
]"
clearable
>
</global-picker>
</up-form-item>
<up-form-item
label=
"决策结果"
prop=
"decisionState"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.decisionState"
pickAlign=
"right"
:options=
"[
{ label: '同意', value: '1' },
{ label: '不同意', value: '0' }
]"
clearable
>
</global-picker>
</up-form-item>
<up-form-item
label=
"航司"
prop=
"aviation"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.aviation"
pickAlign=
"right"
:options=
"baseStore.getAirlineSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"机号"
prop=
"machineNumber"
:borderBottom=
"true"
>
<global-picker
pickAlign=
"right"
v-model=
"formData.machineNumber"
:options=
"deviceNumList"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"日期"
:borderBottom=
"true"
>
<global-calendar
pickAlign=
"right"
v-model:startTime=
"formData.startDateTime"
v-model:endTime=
"formData.endDateTime"
clearable
></global-calendar>
</up-form-item>
</up-form>
</view>
<template
#
bottom
>
<view
class=
"footer-btn"
>
<up-row
gutter=
"10"
>
<up-col
span=
"6"
>
<global-button
type=
"light"
size=
"large"
:radius=
"5"
@
tap=
"handleReset"
>
重置
</global-button>
</up-col>
<up-col
span=
"6"
>
<global-button
type=
"primary"
size=
"large"
:radius=
"5"
@
tap=
"handleConfirm"
>
确定
</global-button>
</up-col>
</up-row>
</view>
</
template
>
</global-page>
</template>
<
script
setup
>
import
useBaseStore
from
'mocp/store/base'
import
useMoveDecisionStore
from
'mocp/store/move-decision'
import
{
storeToRefs
}
from
'pinia'
import
{
cloneDeep
}
from
'lodash'
import
{
ref
}
from
'vue'
//获取下拉框选项
const
baseStore
=
useBaseStore
()
const
{
selectList
:
{
deviceNumList
}
}
=
useBaseStore
()
const
moveDecisionStore
=
useMoveDecisionStore
()
//获取查询表单数据
const
{
searchData
}
=
storeToRefs
(
moveDecisionStore
)
const
formData
=
ref
(
cloneDeep
(
searchData
.
value
))
const
handleReset
=
()
=>
{
moveDecisionStore
.
resetForm
()
uni
.
$mocpJump
.
redirectTo
(
'/panel/work-assignment/list'
)
uni
.
$emit
(
'workAssignmentReload'
)
}
const
handleConfirm
=
()
=>
{
moveDecisionStore
.
setState
(
'searchData'
,
formData
.
value
)
uni
.
$mocpJump
.
redirectTo
(
'/panel/work-assignment/list'
)
uni
.
$emit
(
'workAssignmentReload'
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
.search-form
{
padding
:
24
rpx
24
rpx
0
24
rpx
;
background
:
#fff
;
}
.footer-btn
{
padding
:
24
rpx
32
rpx
;
background-color
:
#fff
;
}
</
style
>
src/
static/mocp/css/inforDisclosure
List.scss
→
src/
pages/modules/mocp/panel/flight-support/constants/flightSupport
List.scss
View file @
506ea510
...
...
@@ -13,3 +13,4 @@
display
:
flex
;
align-items
:
center
;
}
src/pages/modules/mocp/panel/flight-support/list.vue
0 → 100644
View file @
506ea510
<
template
>
<global-page
title=
"航班保障"
isDataList
refresherEnabled
loadingMoreEnabled
auto
ref=
"paging"
:params=
"searchData"
showNavRight
navRightType=
"icon"
navRightIcon=
"saixuan-01"
@
handleRightClick=
"handleRightClick"
:api=
"flightSupportGetListApi"
:padding=
"24"
>
<template
#="
{ dataList }">
<view
v-for=
"(item, index) in dataList"
:key=
"item.id"
class=
"inforDisclosureItem flex mocp-bg-fill-4"
>
<view
class=
"top"
>
<view
class=
"flex"
>
{{
item
.
airlineCode
}}
</view>
</view>
</view>
</
template
>
<
template
v-slot:top
>
123456
</
template
>
<
template
v-slot:bottom
>
<view></view>
</
template
>
</global-page>
</template>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
flightSupportGetListApi
}
from
'mocp/api/flight-support'
import
useFlightSupportStore
from
'mocp/store/flight-support'
import
{
storeToRefs
}
from
'pinia'
const
flightSupportStore
=
useFlightSupportStore
()
const
{
searchData
}
=
storeToRefs
(
flightSupportStore
)
const
handleRightClick
=
()
=>
{
console
.
log
(
'handleRightClick information-disclosure'
,
flightSupportStore
)
uni
.
$mocpJump
.
navigateTo
(
'/panel/flight-support/components/screen'
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
@import
'./constants/flightSupportList'
;
</
style
>
\ No newline at end of file
src/pages/modules/mocp/panel/information-disclosure/constants/inforDisclosureList.scss
0 → 100644
View file @
506ea510
@charset
"utf-8"
;
.inforDisclosureItem
{
padding
:
24rpx
;
margin-bottom
:
16rpx
;
border-radius
:
12rpx
;
.top
{
justify-content
:
space-between
;
}
}
.flex
{
display
:
flex
;
align-items
:
center
;
}
src/pages/modules/mocp/panel/information-disclosure/list.vue
View file @
506ea510
...
...
@@ -7,7 +7,6 @@
auto
ref=
"paging"
:params=
"searchData"
showNavRight
navRightType=
"icon"
navRightIcon=
"saixuan-01"
@
handleRightClick=
"handleRightClick"
...
...
@@ -15,16 +14,21 @@
:padding=
"24"
>
<template
#="
{ dataList }">
<view
v-for=
"item in dataList"
:key=
"item.id"
class=
"inforDisclosureItem flex"
>
<view
v-for=
"(item, index) in dataList"
:key=
"item.id"
class=
"inforDisclosureItem flex mocp-bg-fill-4"
>
<view
class=
"top"
>
<view
class=
"flex"
></view>
<view
class=
"flex"
>
{{
item
.
presenter
}}
</view>
</view>
</view>
</
template
>
</global-page>
</template>
<
script
setup
>
import
{
ref
}
from
'vue'
//临时调用接口
import
{
getArrangeWorkListApi
}
from
'mocp/api/assign-work'
import
useInformationDisclosureStore
from
'mocp/store/information-disclosure'
...
...
@@ -36,8 +40,10 @@ const { searchData } = storeToRefs(informationDisclosureStore)
const
handleRightClick
=
()
=>
{
console
.
log
(
'handleRightClick information-disclosure'
,
informationDisclosureStore
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
@import
'
mocpStatic/css/inforDisclosureList.scss
'
;
@import
'
./constants/inforDisclosureList
'
;
</
style
>
\ No newline at end of file
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