Commit 071137a7 by pangchong

feat: bug修复

parent 57a96631
...@@ -17,3 +17,12 @@ export const getFleetDetailApi = (data, config) => { ...@@ -17,3 +17,12 @@ export const getFleetDetailApi = (data, config) => {
config config
}) })
} }
export const selectFaultTagByATAApi = (data, config) => {
return http({
method: 'POST',
url: '/technical-support/selectFaultTagByATA',
data,
config
})
}
...@@ -241,7 +241,7 @@ const confirm = (e) => { ...@@ -241,7 +241,7 @@ const confirm = (e) => {
const index = e.indexs[0] const index = e.indexs[0]
labelValue.value = getColumns.value[index][ps.labelField] labelValue.value = getColumns.value[index][ps.labelField]
es('update:modelValue', getColumns.value[index][ps.valueField]) es('update:modelValue', getColumns.value[index][ps.valueField])
es('change', getColumns.value[index][ps.valueField]) es('change', getColumns.value[index][ps.valueField], getColumns.value[index])
} }
//点击清空按钮 //点击清空按钮
const clear = () => { const clear = () => {
...@@ -259,7 +259,11 @@ const getFilterColumns = computed(() => { ...@@ -259,7 +259,11 @@ const getFilterColumns = computed(() => {
const distance = ref(0) const distance = ref(0)
const handleChoose = (value) => { const handleChoose = (value) => {
es('update:modelValue', value) es('update:modelValue', value)
es('change', value) es(
'change',
value,
getColumns.value.find((item) => item[ps.valueField] == value)
)
show.value = false show.value = false
} }
//打开默认滑动到选中的位置 //打开默认滑动到选中的位置
......
...@@ -58,3 +58,10 @@ export const aem_auditListSelect = [ ...@@ -58,3 +58,10 @@ export const aem_auditListSelect = [
{ text: '审核通过', class: 'mocp-color-success-6', value: '3' }, { text: '审核通过', class: 'mocp-color-success-6', value: '3' },
{ text: '审核不通过', class: 'mocp-color-danger-6', value: '4' } { text: '审核不通过', class: 'mocp-color-danger-6', value: '4' }
] ]
export const st_followStatus = [
{ text: '未接收', class: 'mocp-color-danger-6', value: 0 },
{ text: '已接收', class: 'mocp-color-warning-6', value: 1 },
{ text: '已出发', class: 'mocp-color-warning-6', value: 2 },
{ text: '已到位', class: 'mocp-color-warning-6', value: 3 },
{ text: '已登机', class: 'mocp-color-success-6', value: 4 }
]
...@@ -15,3 +15,4 @@ export * from './qualityAnalysis' ...@@ -15,3 +15,4 @@ export * from './qualityAnalysis'
export * from './technicalAnalysis' export * from './technicalAnalysis'
export * from './engineeringEvaluation' export * from './engineeringEvaluation'
export * from './windDamageManagement' export * from './windDamageManagement'
export * from './inforDisclosure'
// 建议以文件名首字母作为前缀id_
export const id_isType = [
{ label: 'MOCP', value: '1' },
{ label: 'ELB', value: '2' }
]
...@@ -102,6 +102,7 @@ const useBaseStore = defineStore('base', { ...@@ -102,6 +102,7 @@ const useBaseStore = defineStore('base', {
} }
return uniqueArray( return uniqueArray(
selectATAList.map((q) => ({ selectATAList.map((q) => ({
id: q.id,
label: q.label, label: q.label,
value: q.label value: q.label
})) }))
......
...@@ -18,7 +18,9 @@ const useFleetStore = defineStore('fleet', { ...@@ -18,7 +18,9 @@ const useFleetStore = defineStore('fleet', {
isTime: 2, isTime: 2,
isUpdateTime: 2, isUpdateTime: 2,
faultDescribe: '', faultDescribe: '',
dateEnd dateEnd,
professionalType: '',
faultLabel: ''
}, },
detailsId: undefined detailsId: undefined
} }
...@@ -37,7 +39,9 @@ const useFleetStore = defineStore('fleet', { ...@@ -37,7 +39,9 @@ const useFleetStore = defineStore('fleet', {
isTime: 2, isTime: 2,
isUpdateTime: 2, isUpdateTime: 2,
faultDescribe: '', faultDescribe: '',
dateEnd dateEnd,
professionalType: '',
faultLabel: ''
} }
}, },
setState(...args) { setState(...args) {
......
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
import useUserStore from 'mocp/store/user' import useUserStore from 'mocp/store/user'
import { decideTimeRange, listTab, listScreen } from 'mocp/utils/getFlightList' import { decideTimeRange, listTab, listScreen } from 'mocp/utils/getFlightList'
import Day from 'mocp/utils/dayjs'
const { startT, stopT } = decideTimeRange(new Date().getTime()) const { startT, stopT } = decideTimeRange(new Date().getTime())
const useFlightSupportStore = defineStore('flightSupport', { const useFlightSupportStore = defineStore('flightSupport', {
state: () => { state: () => {
return { return {
...@@ -12,20 +10,14 @@ const useFlightSupportStore = defineStore('flightSupport', { ...@@ -12,20 +10,14 @@ const useFlightSupportStore = defineStore('flightSupport', {
isOut: 0, //0-进港 1-出港 2-无航班 isOut: 0, //0-进港 1-出港 2-无航班
startT, startT,
stopT, stopT,
isInbound: 1, isInbound: 1
ac: '', //机号
flightNo: '', //航班号
acOwns2: '',
acTerminals1: '',
acTypes2: '',
acs1: ''
}, },
screenData: { screenData: {
terminal: 'WUH', //航站 terminal: '', //航站
acType: '', //机型 acType: '', //机型
acOwn: '' //航司 acOwn: '', //航司
ac: '', //机号
flightNo: '' //航班号
}, },
listTab, listTab,
listScreen, listScreen,
...@@ -52,20 +44,23 @@ const useFlightSupportStore = defineStore('flightSupport', { ...@@ -52,20 +44,23 @@ const useFlightSupportStore = defineStore('flightSupport', {
} }
}, },
actions: { actions: {
setTerminal() {
this.screenData.terminal = this.getTerminal
},
resetScreenForm() { resetScreenForm() {
const userStore = useUserStore() const userStore = useUserStore()
this.screenData = { this.screenData = {
terminal: userStore.userInfo?.terminal || 'WUH', terminal: this.getTerminal,
acType: '', acType: '',
acOwn: '' acOwn: '',
ac: '',
flightNo: ''
} }
}, },
setStateScreen(state) { setStateScreen(state) {
const userStore = useUserStore()
this.screenData = { this.screenData = {
terminal: state.terminal || userStore.userInfo?.terminal || 'WUH', ...state,
acType: state.acType, terminal: this.getTerminal
acOwn: state.acOwn
} }
}, },
// 设置列表tab筛选数据 // 设置列表tab筛选数据
......
...@@ -15,7 +15,9 @@ const useInforDisclosureStore = defineStore('inforDisclosure', { ...@@ -15,7 +15,9 @@ const useInforDisclosureStore = defineStore('inforDisclosure', {
rlease_state: '', rlease_state: '',
function_Info: '', function_Info: '',
failure_state: '', failure_state: '',
professional: '' professional: '',
isType: '',
reporter: ''
}, },
details: undefined, details: undefined,
releaseBasisDetails: undefined, releaseBasisDetails: undefined,
...@@ -24,7 +26,7 @@ const useInforDisclosureStore = defineStore('inforDisclosure', { ...@@ -24,7 +26,7 @@ const useInforDisclosureStore = defineStore('inforDisclosure', {
}, },
getters: {}, getters: {},
actions: { actions: {
resetForm () { resetForm() {
this.searchData = { this.searchData = {
state: '', state: '',
machine_number: '', machine_number: '',
...@@ -37,11 +39,13 @@ const useInforDisclosureStore = defineStore('inforDisclosure', { ...@@ -37,11 +39,13 @@ const useInforDisclosureStore = defineStore('inforDisclosure', {
rlease_state: '', rlease_state: '',
function_Info: '', function_Info: '',
failure_state: '', failure_state: '',
professional: '' professional: '',
isType: '',
reporter: ''
} }
}, },
setState (...args) { setState(...args) {
this.$patch({[args[0]]: args[1]}) this.$patch({ [args[0]]: args[1] })
} }
}, },
// 配置持久化 // 配置持久化
......
import { defineStore } from 'pinia'
import useUserStore from 'mocp/store/user'
const useInforDisclosureStore = defineStore('supportedTask', {
state: () => {
return {
searchData: {}
}
},
getters: {},
actions: {
resetForm () {
const userStore = useUserStore()
this.searchData.userId = userStore.userInfo.id
},
setState (...args) {
this.$patch({[args[0]]: args[1]})
}
},
// 配置持久化
persist: false
})
export default useInforDisclosureStore
import useUserStore from 'mocp/store/user' import useUserStore from 'mocp/store/user'
const baseURL = 'https://hna-platform.anyremote.cn' //测试 // const baseURL = 'https://hna-platform.anyremote.cn' //测试
// const baseURL = 'https://moc.hnatechnic.com/api' //生产 // const baseURL = 'https://moc.hnatechnic.com/api' //生产
// const baseURL = "http://10.123.48.67/api" //Amms内网 // const baseURL = 'http://10.123.48.67/api' //Amms内网
// const baseURL = 'https://hnaelbtest.hnatechnic.com/mocptest/api' //内网 const baseURL = 'https://hnaelbtest.hnatechnic.com/mocptest/api' //内网
class ServiceLoading { class ServiceLoading {
open(loading) { open(loading) {
......
...@@ -3,7 +3,7 @@ export const loginFormRef = ref() ...@@ -3,7 +3,7 @@ export const loginFormRef = ref()
//表单数据 //表单数据
export const loginForm = reactive({ export const loginForm = reactive({
username: 'devzj3', //devzj3 username: 'devzj3', //devzj3
password: 'Ifar2016_0525', //Ifar_9527008 / Ifar2016_0525 password: 'Ifar_9527008', //Ifar_9527008 / Ifar2016_0525
verifyCode: '' verifyCode: ''
}) })
export const showLoad = ref(false) export const showLoad = ref(false)
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
></global-picker> ></global-picker>
</up-form-item> </up-form-item>
<up-form-item label="专业类别" prop="major" :borderBottom="true"> <up-form-item label="专业类别" prop="major" :borderBottom="true">
<global-picker pickAlign="right" v-model="formData.major" clearable :options="baseStore.getTerminalSelect" filter></global-picker> <global-picker pickAlign="right" v-model="formData.major" clearable :options="getParamsByType('MajorCategory')"></global-picker>
</up-form-item> </up-form-item>
<up-form-item label="AOG级别" prop="aogLevel" :borderBottom="true"> <up-form-item label="AOG级别" prop="aogLevel" :borderBottom="true">
<global-picker <global-picker
...@@ -90,6 +90,7 @@ import { storeToRefs } from 'pinia' ...@@ -90,6 +90,7 @@ import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
import { ref } from 'vue' import { ref } from 'vue'
import useAogStore from 'mocp/store/aog' import useAogStore from 'mocp/store/aog'
import { getParamsByType } from 'mocp/hooks/use-params/useParams'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
......
<template> <template>
<global-page title="筛选"> <global-page title="筛选">
<view class="search-form"> <view class="search-form">
<up-form <up-form labelPosition="left" labelWidth="auto">
labelPosition="left" <up-form-item label="状态" prop="state" :borderBottom="true">
labelWidth="auto"> <global-picker v-model="formData.state" pickAlign="right" clearable dictkey="fleet_state" />
<up-form-item
label="状态"
prop="state"
:borderBottom="true">
<global-picker
v-model="formData.state"
pickAlign="right"
clearable
dictkey="fleet_state"
/>
</up-form-item> </up-form-item>
<up-form-item label="航司" prop="aviation" :borderBottom="true">
<up-form-item <global-picker v-model="formData.aviation" pickAlign="right" :options="baseStore.getAirlineSelect" clearable filter />
label="航司"
prop="aviation"
:borderBottom="true">
<global-picker
v-model="formData.aviation"
pickAlign="right"
:options="baseStore.getAirlineSelect"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item label="机号" prop="machineNumber" :borderBottom="true">
<up-form-item <global-picker pickAlign="right" v-model="formData.machineNumber" :options="deviceNumList" clearable filter />
label="机号"
prop="machineNumber"
:borderBottom="true">
<global-picker
pickAlign="right"
v-model="formData.machineNumber"
:options="deviceNumList"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item label="机型" prop="model" :borderBottom="true">
<up-form-item <global-picker v-model="formData.model" pickAlign="right" :options="baseStore.getTypeSelect" clearable filter />
label="机型" </up-form-item>
prop="model" <up-form-item label="ATA章节" prop="ata" :borderBottom="true">
:borderBottom="true">
<global-picker <global-picker
v-model="formData.model" v-model="formData.ata"
pickAlign="right" pickAlign="right"
:options="baseStore.getTypeSelect" :options="formData.model ? baseStore.getATAChecked(formData.model) : []"
clearable clearable
filter filter
@change="changeAta"
/> />
</up-form-item> </up-form-item>
<up-form-item label="故障现象标签" prop="faultLabel" :borderBottom="true">
<up-form-item
v-if="formData.model != ''"
label="ATA章节"
prop="ata"
:borderBottom="true">
<global-picker <global-picker
v-model="formData.ata" v-model="formData.faultLabel"
label-field="faultTag"
value-field="faultTag"
pickAlign="right" pickAlign="right"
:options="baseStore.getATAChecked(formData.model)" :options="faultTagList"
clearable clearable
filter filter
/> />
</up-form-item> </up-form-item>
<up-form-item <up-form-item label="故障描述" prop="faultDescribe" :borderBottom="true">
label="发生日期" <up-input v-model="formData.faultDescribe" inputAlign="right" border="none" placeholder="请输入" clearable></up-input>
:borderBottom="true"> </up-form-item>
<global-calendar <up-form-item label="发生日期" :borderBottom="true">
<global-calendar pickAlign="right" v-model:startTime="formData.startTime" v-model:endTime="formData.stopTime" clearable />
</up-form-item>
<up-form-item label="专业类别" prop="professionalType" :borderBottom="true">
<global-picker
pickAlign="right" pickAlign="right"
v-model:startTime="formData.startTime" v-model="formData.professionalType"
v-model:endTime="formData.stopTime"
clearable clearable
/> :options="getParamsByType('MajorCategory')"
</up-form-item> ></global-picker>
<up-form-item
label="故障描述"
prop="sponsor"
:borderBottom="true">
<up-input
v-model="formData.faultDescribe"
inputAlign="right"
border="none"
placeholder="请输入"
clearable></up-input>
</up-form-item> </up-form-item>
</up-form> </up-form>
</view> </view>
...@@ -95,23 +55,10 @@ ...@@ -95,23 +55,10 @@
<view class="footer-btn"> <view class="footer-btn">
<up-row gutter="10"> <up-row gutter="10">
<up-col span="6"> <up-col span="6">
<global-button <global-button type="primary" plain size="large" :radius="5" @tap="handleReset">重置</global-button>
type="primary"
plain
size="large"
:radius="5"
@tap="handleReset">
重置
</global-button>
</up-col> </up-col>
<up-col span="6"> <up-col span="6">
<global-button <global-button type="primary" size="large" :radius="5" @tap="handleConfirm">确定</global-button>
type="primary"
size="large"
:radius="5"
@tap="handleConfirm">
确定
</global-button>
</up-col> </up-col>
</up-row> </up-row>
</view> </view>
...@@ -125,13 +72,17 @@ import { storeToRefs } from 'pinia' ...@@ -125,13 +72,17 @@ import { storeToRefs } from 'pinia'
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
import { ref } from 'vue' import { ref } from 'vue'
import useFleetStore from 'mocp/store/fleet' import useFleetStore from 'mocp/store/fleet'
import { getParamsByType } from 'mocp/hooks/use-params/useParams'
import { selectFaultTagByATAApi } from 'mocp/api/fleet'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
const {selectList: {deviceNumList}} = useBaseStore() const {
selectList: { deviceNumList }
} = useBaseStore()
const fleetStore = useFleetStore() const fleetStore = useFleetStore()
//获取查询表单数据 //获取查询表单数据
const {searchData} = storeToRefs(fleetStore) const { searchData } = storeToRefs(fleetStore)
const formData = ref(cloneDeep(searchData.value)) const formData = ref(cloneDeep(searchData.value))
const handleReset = () => { const handleReset = () => {
fleetStore.resetForm() fleetStore.resetForm()
...@@ -143,10 +94,23 @@ const handleConfirm = () => { ...@@ -143,10 +94,23 @@ const handleConfirm = () => {
uni.$mocpJump.navigateTo('/panel/fleet/list') uni.$mocpJump.navigateTo('/panel/fleet/list')
uni.$emit('fleetReload') uni.$emit('fleetReload')
} }
//故障现象标签
const faultTagList = ref([])
const changeAta = async (value, data) => {
if (value) {
const res = await selectFaultTagByATAApi({ ataId: data.id }, { loading: true })
if (res.code == 200) {
faultTagList.value = res.data
} else {
faultTagList.value = []
}
} else {
faultTagList.value = []
formData.faultLabel = ''
}
}
</script> </script>
<style <style lang="scss" scoped>
lang="scss"
scoped>
.search-form { .search-form {
padding: 24rpx 24rpx 0 24rpx; padding: 24rpx 24rpx 0 24rpx;
background: #fff; background: #fff;
......
...@@ -7,41 +7,19 @@ ...@@ -7,41 +7,19 @@
</up-form-item> </up-form-item>
<up-form-item label="机型" prop="acType" :borderBottom="true"> <up-form-item label="机型" prop="acType" :borderBottom="true">
<global-picker <global-picker v-model="formData.acType" pickAlign="right" :options="baseStore.getTypeSelect" clearable filter />
v-model="formData.acType"
pickAlign="right"
:options="baseStore.getTypeSelect"
clearable filter />
</up-form-item> </up-form-item>
<up-form-item label="航站" prop="terminal" :borderBottom="true"> <up-form-item label="航站" prop="terminal" :borderBottom="true">
<global-picker <global-picker pickAlign="right" v-model="formData.terminal" clearable :options="baseStore.getTerminalSelect" filter />
pickAlign="right"
v-model="formData.terminal"
clearable
:options="baseStore.getTerminalSelect"
filter
/>
</up-form-item> </up-form-item>
<up-form-item label="航司" prop="acOwn" :borderBottom="true"> <up-form-item label="航司" prop="acOwn" :borderBottom="true">
<global-picker <global-picker v-model="formData.acOwn" pickAlign="right" :options="baseStore.getAirlineSelect" clearable filter />
v-model="formData.acOwn"
pickAlign="right"
:options="baseStore.getAirlineSelect"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item label="航班号" prop="flightNo" :borderBottom="true"> <up-form-item label="航班号" prop="flightNo" :borderBottom="true">
<global-picker <global-picker v-model="formData.flightNo" pickAlign="right" :options="baseStore.selectList.flightNumList" clearable filter />
v-model="formData.flightNo"
pickAlign="right"
:options="baseStore.selectList.flightNumList"
clearable
filter
/>
</up-form-item> </up-form-item>
</up-form> </up-form>
</view> </view>
...@@ -49,8 +27,7 @@ ...@@ -49,8 +27,7 @@
<view class="footer-btn"> <view class="footer-btn">
<up-row gutter="10"> <up-row gutter="10">
<up-col span="6"> <up-col span="6">
<global-button type="primary" plain size="large" :radius="5" @tap="handleReset">重置 <global-button type="primary" plain size="large" :radius="5" @tap="handleReset">重置</global-button>
</global-button>
</up-col> </up-col>
<up-col span="6"> <up-col span="6">
<global-button type="primary" size="large" :radius="5" @tap="handleConfirm">确定</global-button> <global-button type="primary" size="large" :radius="5" @tap="handleConfirm">确定</global-button>
...@@ -72,28 +49,27 @@ import { onUnload } from '@dcloudio/uni-app' ...@@ -72,28 +49,27 @@ import { onUnload } from '@dcloudio/uni-app'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
const { const {
selectList: {deviceNumList} selectList: { deviceNumList }
} = useBaseStore() } = useBaseStore()
const flightSupportStore = useFlightSupportStore() const flightSupportStore = useFlightSupportStore()
//获取查询表单数据 //获取查询表单数据
const {screenData} = storeToRefs(flightSupportStore) const { screenData } = storeToRefs(flightSupportStore)
const formData = ref(cloneDeep(screenData.value)) const formData = ref(cloneDeep(screenData.value))
// 重置 // 重置
const handleReset = () => { const handleReset = () => {
flightSupportStore.resetScreenForm() flightSupportStore.resetScreenForm()
uni.$mocpJump.redirectTo('/panel/flight-support/list') uni.$mocpJump.navigateBack()
uni.$emit('screenReload') uni.$emit('screenReload')
} }
// 提交 // 提交
const handleConfirm = () => { const handleConfirm = () => {
flightSupportStore.setStateScreen(formData.value) flightSupportStore.setStateScreen(formData.value)
uni.$mocpJump.redirectTo('/panel/flight-support/list') uni.$mocpJump.navigateBack()
uni.$emit('screenReload') uni.$emit('screenReload')
} }
onUnload(() => { onUnload(() => {
uni.$off('screenReload') uni.$off('screenReload')
}) })
......
...@@ -24,12 +24,7 @@ ...@@ -24,12 +24,7 @@
<template v-slot:top> <template v-slot:top>
<view class="flex listTopTab text-center"> <view class="flex listTopTab text-center">
<view <view v-for="item of getSelectedList" :key="item.id" class="topTabItem" :style="{ flex: item.flex }">
v-for="item of getSelectedList"
:key="item.id"
class="topTabItem"
:style="{ flex: item.flex }"
>
{{ item.label }} {{ item.label }}
<!--<up-icon <!--<up-icon
v-if="item.keyValue == 'time' || item.keyValue == 'staChn'" v-if="item.keyValue == 'time' || item.keyValue == 'staChn'"
...@@ -68,12 +63,12 @@ import useFlightSupportStore from 'mocp/store/flight-support' ...@@ -68,12 +63,12 @@ import useFlightSupportStore from 'mocp/store/flight-support'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import TableTow from './components/TableRow.vue' import TableTow from './components/TableRow.vue'
import { finishedStatus } from 'mocp/utils/getFlightList' import { finishedStatus } from 'mocp/utils/getFlightList'
import { onUnload } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { currentInBoundModeForFlightTablePage, allInBoundMode } from './utils/currentInBoundMode' import { currentInBoundModeForFlightTablePage, allInBoundMode } from './utils/currentInBoundMode'
const paging = ref(null) const paging = ref(null)
const flightSupportStore = useFlightSupportStore() const flightSupportStore = useFlightSupportStore()
const {searchData, getSearchData, listScreen, getSelectedList, listTab} = storeToRefs(flightSupportStore) const { searchData, getSearchData, listScreen, getSelectedList, listTab } = storeToRefs(flightSupportStore)
const handleRightClick = () => { const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/flight-support/components/Screen') uni.$mocpJump.navigateTo('/panel/flight-support/components/Screen')
...@@ -81,7 +76,8 @@ const handleRightClick = () => { ...@@ -81,7 +76,8 @@ const handleRightClick = () => {
const transformData = (data) => { const transformData = (data) => {
const currentTime = Date.now() const currentTime = Date.now()
const listMsg = data?.reduce( const listMsg = data
?.reduce(
(q, w) => { (q, w) => {
if (finishedStatus.includes(w.status)) { if (finishedStatus.includes(w.status)) {
w.isFinished = true w.isFinished = true
...@@ -97,14 +93,16 @@ const transformData = (data) => { ...@@ -97,14 +93,16 @@ const transformData = (data) => {
return q return q
}, },
[[], [], []] [[], [], []]
).map((q, w) => { )
.map((q, w) => {
if (w === 0) { if (w === 0) {
q.sort((a, s) => { q.sort((a, s) => {
return Math.abs(currentTime - a.stdChn) - Math.abs(currentTime - s.stdChn) return Math.abs(currentTime - a.stdChn) - Math.abs(currentTime - s.stdChn)
}) })
} }
return q return q
}).flat() })
.flat()
console.log('@@listMsg', listMsg) console.log('@@listMsg', listMsg)
return listMsg return listMsg
} }
...@@ -131,6 +129,9 @@ const subsectionChange = (e) => { ...@@ -131,6 +129,9 @@ const subsectionChange = (e) => {
uni.$on('screenReload', () => { uni.$on('screenReload', () => {
paging.value?.reload() paging.value?.reload()
}) })
onLoad(() => {
flightSupportStore.setTerminal()
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
......
<template> <template>
<view <view @tap="goDetails(item)" class="item">
@tap="goDetails(item)"
class="item"
>
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<text v-if="currentTabsIndex == 1 && item.status == '未完成'" class="statusTxt"> <text v-if="currentTabsIndex == 1 && item.status == '未完成'" class="statusTxt">
{{ item.status?.toUpperCase() }} {{ item.status?.toUpperCase() }}
</text> </text>
<custom-state <custom-state v-else :value="item.status?.toUpperCase()" />
v-else
:value="item.status?.toUpperCase()" />
</view> </view>
<view class="right inforDisTags"> <view class="right inforDisTags">
<global-tag <global-tag v-for="tagItem of item.tags" :key="tagItem.text" :type="tagItem.type" class="txt">
v-for="tagItem of item.tags"
:key="tagItem.text"
:type="tagItem.type" class="txt">
{{ tagItem.text }} {{ tagItem.text }}
</global-tag> </global-tag>
</view> </view>
...@@ -37,9 +29,7 @@ ...@@ -37,9 +29,7 @@
</view> </view>
<view class="label right"> <view class="label right">
<global-icon icon="idcard" /> <global-icon icon="idcard" />
<text class="txt"> <text class="txt">故障报告人:{{ item.filledBy }}</text>
值班人员:{{ item.filledBy }}
</text>
</view> </view>
</view> </view>
</view> </view>
...@@ -50,8 +40,6 @@ import { ref } from 'vue' ...@@ -50,8 +40,6 @@ import { ref } from 'vue'
import useInforDisclosureStore from 'mocp/store/inforDisclosure' import useInforDisclosureStore from 'mocp/store/inforDisclosure'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { onUnload } from '@dcloudio/uni-app' import { onUnload } from '@dcloudio/uni-app'
import { getMocinfoListApi } from 'mocp/api/inforDisclosure'
import { getParamsByType } from 'mocp/hooks/use-params/useParams'
const ps = defineProps({ const ps = defineProps({
item: { item: {
...@@ -59,12 +47,12 @@ const ps = defineProps({ ...@@ -59,12 +47,12 @@ const ps = defineProps({
default: () => ({}) default: () => ({})
} }
}) })
const {item} = ps const { item } = ps
const inforDisclosureStore = useInforDisclosureStore() const inforDisclosureStore = useInforDisclosureStore()
const {currentTabsIndex} = storeToRefs(inforDisclosureStore) const { currentTabsIndex } = storeToRefs(inforDisclosureStore)
const goDetails = (data) => { const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/inforDisclosure/details', {id: data.id}).then(() => { uni.$mocpJump.navigateTo('/panel/inforDisclosure/details', { id: data.id }).then(() => {
inforDisclosureStore.setState('details', data) inforDisclosureStore.setState('details', data)
}) })
} }
......
<template> <template>
<global-page title="筛选"> <global-page title="筛选">
<view class="search-form"> <view class="search-form">
<up-form <up-form labelPosition="left" labelWidth="auto">
labelPosition="left" <up-form-item label="机号" prop="machine_number" :borderBottom="true">
labelWidth="auto"> <global-picker pickAlign="right" v-model="formData.machine_number" :options="deviceNumList" clearable filter />
<up-form-item
label="机号"
prop="machine_number"
:borderBottom="true">
<global-picker
pickAlign="right"
v-model="formData.machine_number"
:options="deviceNumList"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item <up-form-item label="机型" prop="planeModel" :borderBottom="true">
label="机型" <global-picker v-model="formData.planeModel" pickAlign="right" :options="baseStore.getTypeSelect" clearable filter />
prop="planeModel"
:borderBottom="true">
<global-picker
v-model="formData.planeModel"
pickAlign="right"
:options="baseStore.getTypeSelect"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item <up-form-item label="航司" prop="aviation" :borderBottom="true">
label="航司" <global-picker v-model="formData.aviation" pickAlign="right" :options="baseStore.getAirlineSelect" clearable filter />
prop="aviation"
:borderBottom="true">
<global-picker
v-model="formData.aviation"
pickAlign="right"
:options="baseStore.getAirlineSelect"
clearable
filter
/>
</up-form-item> </up-form-item>
<up-form-item label="航站" prop="termin" :borderBottom="true"> <up-form-item label="航站" prop="termin" :borderBottom="true">
...@@ -53,15 +24,8 @@ ...@@ -53,15 +24,8 @@
></global-picker> ></global-picker>
</up-form-item> </up-form-item>
<up-form-item <up-form-item label="填报日期" :borderBottom="true">
label="填报日期" <global-calendar pickAlign="right" v-model:startTime="formData.startTime" v-model:endTime="formData.stopTime" clearable />
:borderBottom="true">
<global-calendar
pickAlign="right"
v-model:startTime="formData.startTime"
v-model:endTime="formData.stopTime"
clearable
/>
</up-form-item> </up-form-item>
<up-form-item label="保障阶段" prop="guarantee" :borderBottom="true"> <up-form-item label="保障阶段" prop="guarantee" :borderBottom="true">
...@@ -114,30 +78,27 @@ ...@@ -114,30 +78,27 @@
></global-picker> ></global-picker>
</up-form-item> </up-form-item>
<up-form-item label="数据来源" prop="isType" :borderBottom="true">
<global-picker pickAlign="right" v-model="formData.isType" clearable dictkey="id_isType"></global-picker>
</up-form-item>
<up-form-item label="故障报告人" prop="reporter" :borderBottom="true">
<global-picker
pickAlign="right"
v-model="formData.reporter"
clearable
:options="getParamsByType('FaultReporting')"
></global-picker>
</up-form-item>
</up-form> </up-form>
</view> </view>
<template #bottom> <template #bottom>
<view class="footer-btn"> <view class="footer-btn">
<up-row gutter="10"> <up-row gutter="10">
<up-col span="6"> <up-col span="6">
<global-button <global-button type="primary" plain size="large" :radius="5" @tap="handleReset">重置</global-button>
type="primary"
plain
size="large"
:radius="5"
@tap="handleReset">
重置
</global-button>
</up-col> </up-col>
<up-col span="6"> <up-col span="6">
<global-button <global-button type="primary" size="large" :radius="5" @tap="handleConfirm">确定</global-button>
type="primary"
size="large"
:radius="5"
@tap="handleConfirm">
确定
</global-button>
</up-col> </up-col>
</up-row> </up-row>
</view> </view>
...@@ -155,10 +116,12 @@ import { getParamsByType } from 'mocp/hooks/use-params/useParams' ...@@ -155,10 +116,12 @@ import { getParamsByType } from 'mocp/hooks/use-params/useParams'
//获取下拉框选项 //获取下拉框选项
const baseStore = useBaseStore() const baseStore = useBaseStore()
const {selectList: {deviceNumList}} = useBaseStore() const {
selectList: { deviceNumList }
} = useBaseStore()
const inforDisclosureStore = useInforDisclosureStore() const inforDisclosureStore = useInforDisclosureStore()
//获取查询表单数据 //获取查询表单数据
const {searchData} = storeToRefs(inforDisclosureStore) const { searchData } = storeToRefs(inforDisclosureStore)
const formData = ref(cloneDeep(searchData.value)) const formData = ref(cloneDeep(searchData.value))
const handleReset = () => { const handleReset = () => {
inforDisclosureStore.resetForm() inforDisclosureStore.resetForm()
...@@ -171,9 +134,7 @@ const handleConfirm = () => { ...@@ -171,9 +134,7 @@ const handleConfirm = () => {
uni.$emit('inforDisclosureReload') uni.$emit('inforDisclosureReload')
} }
</script> </script>
<style <style lang="scss" scoped>
lang="scss"
scoped>
.search-form { .search-form {
padding: 24rpx 24rpx 0 24rpx; padding: 24rpx 24rpx 0 24rpx;
background: #fff; background: #fff;
......
<template> <template>
<view class="supportedTaskItem f-flex-1"> <view class="supportedTaskItem f-flex-1">
<view class="itemFlex itemTop"> <view class="itemFlex itemTop">
<view class="txt f-flex-2 text-left">{{ followAcTagAll[item.followStatus] }}</view> <view class="txt f-flex-2 text-left">
<global-text-status :value="item.followStatus" dictkey="st_followStatus"></global-text-status>
</view>
<view class="txt f-flex-3 text-center"> <view class="txt f-flex-3 text-center">
{{ timeStampFormat(item.flightDate, {format: 'YYYY-MM-DD'}) || '-' }} {{ timeStampFormat(item.flightDate, { format: 'YYYY-MM-DD' }) || '-' }}
</view> </view>
<view class="txt f-flex-2 text-center"> <view class="txt f-flex-2 text-center">
{{ timeStampFormat(item.stdChn, {format: 'HH:mm'}) || '-' }} {{ timeStampFormat(item.stdChn, { format: 'HH:mm' }) || '-' }}
</view> </view>
<view class="txt f-flex-3 text-right">航站:{{ item.depStn }}</view> <view class="txt f-flex-3 text-right">航站:{{ item.depStn }}</view>
</view> </view>
...@@ -17,8 +19,6 @@ ...@@ -17,8 +19,6 @@
<view class="txt f-flex-3 text-right">{{ item.acType }}</view> <view class="txt f-flex-3 text-right">{{ item.acType }}</view>
</view> </view>
</view> </view>
</template> </template>
<script setup> <script setup>
...@@ -26,16 +26,13 @@ import { ref } from 'vue' ...@@ -26,16 +26,13 @@ import { ref } from 'vue'
import { timeStampFormat } from 'mocp/utils/tool' import { timeStampFormat } from 'mocp/utils/tool'
import { followAcTagAll } from 'mocp/utils/getFlightList' import { followAcTagAll } from 'mocp/utils/getFlightList'
const ps = defineProps({ const ps = defineProps({
item: { item: {
type: Object, type: Object,
default: () => ({}) default: () => ({})
} }
}) })
const {item} = ps const { item } = ps
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../constants/supportedTask.scss'; @import '../constants/supportedTask.scss';
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
tabsWidth="50%" tabsWidth="50%"
chooseDataType="checkbox" chooseDataType="checkbox"
@handleChooseData="handleChooseData" @handleChooseData="handleChooseData"
localPaging
alone alone
> >
<template #="{ item }"> <template #="{ item }">
...@@ -38,19 +39,14 @@ ...@@ -38,19 +39,14 @@
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import useSupportedTaskStore from 'mocp/store/supportedTask' import { userTasksApi, updateFlyFollowAcApi } from 'mocp/api/supportedTask'
import { storeToRefs } from 'pinia'
import { userTasksApi, updateFlyFollowAcApi, getMoveListApi } from 'mocp/api/supportedTask'
import supportedTaskItem from './components/supportedTaskItem.vue' import supportedTaskItem from './components/supportedTaskItem.vue'
import { followAcTagAll } from 'mocp/utils/getFlightList' import { followAcTagAll } from 'mocp/utils/getFlightList'
import { orderBy } from 'lodash' import { orderBy } from 'lodash'
import useUserStore from 'mocp/store/user' import Day from 'mocp/utils/dayjs'
const userStore = useUserStore()
const paging = ref(null) const paging = ref(null)
const showAction = ref(false) const showAction = ref(false)
const supportedTaskStore = useSupportedTaskStore()
const { searchData } = storeToRefs(supportedTaskStore)
const followAcTagAllDispose = followAcTagAll.map((item) => { const followAcTagAllDispose = followAcTagAll.map((item) => {
return { return {
label: item, label: item,
...@@ -60,46 +56,24 @@ const followAcTagAllDispose = followAcTagAll.map((item) => { ...@@ -60,46 +56,24 @@ const followAcTagAllDispose = followAcTagAll.map((item) => {
const tabList = [ const tabList = [
{ {
name: '今日及次日后跟机任务', name: '今日及次日后跟机任务',
value: 1, params: {
params: {}, startT: Day().hour(0).minute(0).second(0).valueOf(),
stopT: Day().add(1, 'day').hour(23).minute(59).second(59).valueOf()
},
api: userTasksApi api: userTasksApi
}, },
{ {
name: '历史跟机任务', name: '历史跟机任务',
value: 2,
params: { params: {
userId: userStore.userInfo?.id startT: Day().subtract(30, 'day').minute(0).second(0).valueOf(),
stopT: Day().subtract(1, 'day').hour(23).minute(59).second(59).valueOf()
}, },
api: getMoveListApi api: userTasksApi
} }
] ]
const selectList = ref([]) const selectList = ref([])
const transformData = (data) => { const transformData = (data) => {
const test = [
{
followStatus: 1, //跟机状态
flightDate: 1, //跟机航班日期
stdChn: 1, //起飞时间
depStn: 1, //跟机航站
acOwn: 1, //航司
flightNo: 1, //航班号
ac: 1, //机号
acType: 1 //机型
},
{
followStatus: 2, //跟机状态
flightDate: 2, //跟机航班日期
stdChn: 2, //起飞时间
depStn: 2, //跟机航站
acOwn: 2, //航司
flightNo: 2, //航班号
ac: 2, //机号
acType: 2 //机型
}
]
console.log('@@mappedData', data.followAc)
return orderBy(data.followAc, 'stdChn') return orderBy(data.followAc, 'stdChn')
} }
const handleChooseData = (data) => { const handleChooseData = (data) => {
......
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