Commit 506ea510 by liujinbo

航班保障-页面

parent 0f17c728
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
})
}
......@@ -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: 24rpx 0 !important;
.u-form-item__body__left__content__label {
color: $mocp-text-5 !important;
font-size: 28rpx !important;
}
.u-input__content__field-wrapper__field {
color: $mocp-text-4 !important;
}
.u-textarea {
margin-top: 8rpx;
.u-textarea__field {
font-size: 28rpx !important;
color: $mocp-text-4 !important;
......@@ -327,9 +334,11 @@ export default {
}
}
}
.cancel {
font-size: 28rpx;
}
.footer-btn {
padding: 24rpx 32rpx;
background-color: #fff;
......
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
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: () => {
......
......@@ -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"
//启动页面,必选
}
]
}
......
<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: 24rpx 24rpx 0 24rpx;
background: #fff;
}
.footer-btn {
padding: 24rpx 32rpx;
background-color: #fff;
}
</style>
<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
@charset "utf-8";
.inforDisclosureItem {
padding: 24rpx;
margin-bottom: 16rpx;
border-radius: 12rpx;
.top {
justify-content: space-between;
}
}
.flex {
display: flex;
align-items: center;
}
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment