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
c21f7a41
Commit
c21f7a41
authored
Sep 27, 2024
by
pangchong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 技术分析收尾
parent
9619bcfa
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
271 additions
and
311 deletions
+271
-311
src/mocp/api/technicalAnalysis.js
+8
-0
src/mocp/components/global-table/global-table.vue
+6
-1
src/mocp/hooks/use-dict/dict-data/index.js
+1
-0
src/mocp/hooks/use-dict/dict-data/technicalAnalysis.js
+8
-0
src/mocp/store/base.js
+36
-6
src/mocp/store/index.js
+1
-3
src/mocp/store/operationalSurvey.js
+0
-9
src/mocp/store/qualityAnalysis.js
+3
-12
src/mocp/store/technicalAnalysis.js
+7
-21
src/pages.json
+12
-0
src/pages/modules/mocp/panel/operationalSurvey/analysisList.vue
+2
-6
src/pages/modules/mocp/panel/operationalSurvey/details.vue
+1
-13
src/pages/modules/mocp/panel/operationalSurvey/list.vue
+1
-4
src/pages/modules/mocp/panel/qualityAnalysis/details.vue
+2
-14
src/pages/modules/mocp/panel/qualityAnalysis/list.vue
+0
-1
src/pages/modules/mocp/panel/technicalAnalysis/details.vue
+78
-161
src/pages/modules/mocp/panel/technicalAnalysis/historicalFault.vue
+3
-3
src/pages/modules/mocp/panel/technicalAnalysis/list.vue
+10
-26
src/pages/modules/mocp/panel/technicalAnalysis/partList.vue
+41
-0
src/pages/modules/mocp/panel/technicalAnalysis/search.vue
+24
-31
src/pages/modules/mocp/panel/technicalAnalysis/similarEvents.vue
+27
-0
No files found.
src/mocp/api/technicalAnalysis.js
View file @
c21f7a41
...
...
@@ -8,3 +8,11 @@ export const getTaDataList2Api = (data, config) => {
config
})
}
export
const
getTaData2Api
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/repaircontrol/getTaData2'
,
data
,
config
})
}
src/mocp/components/global-table/global-table.vue
View file @
c21f7a41
...
...
@@ -28,6 +28,10 @@
<
script
setup
>
const
ps
=
defineProps
({
width
:
{
type
:
Number
,
default
:
null
},
columns
:
{
type
:
Array
,
default
:
()
=>
[]
...
...
@@ -44,7 +48,8 @@ const ps = defineProps({
const
getCellStyle
=
(
column
)
=>
{
return
{
width
:
column
?.
width
?
`
${
column
.
width
}
rpx`
:
`
${
750
/
ps
.
columns
.
length
}
rpx`
,
textAlign
:
column
?.
align
||
''
textAlign
:
column
?.
align
||
''
,
minWidth
:
column
?.
minWidth
?
`
${
column
.
minWidth
}
rpx`
:
`
${
ps
.
width
}
rpx`
}
}
</
script
>
...
...
src/mocp/hooks/use-dict/dict-data/index.js
View file @
c21f7a41
...
...
@@ -12,3 +12,4 @@ export * from './abnormalEventManage'
export
*
from
'./mechanicalAbnormalEvents'
export
*
from
'./operationalSurvey'
export
*
from
'./qualityAnalysis'
export
*
from
'./technicalAnalysis'
src/mocp/hooks/use-dict/dict-data/technicalAnalysis.js
View file @
c21f7a41
...
...
@@ -4,3 +4,11 @@ export const ta_isOpen = [
{
label
:
'CLOSE'
,
value
:
0
},
{
label
:
'跟踪'
,
value
:
2
}
]
export
const
ta_teamTop
=
[
{
label
:
'是'
,
value
:
1
},
{
label
:
'否'
,
value
:
0
}
]
export
const
ta_localMaterials
=
[
{
label
:
'有'
,
value
:
1
},
{
label
:
'无'
,
value
:
0
}
]
src/mocp/store/base.js
View file @
c21f7a41
...
...
@@ -10,6 +10,7 @@ import {
getRcOptionsApi
,
getRepairUnitApi
}
from
'mocp/api/base'
import
{
getSysSeatListApi
}
from
'mocp/api/system'
import
{
uniqueArray
}
from
'mocp/utils/tool'
import
{
defineStore
}
from
'pinia'
...
...
@@ -37,7 +38,8 @@ const useBaseStore = defineStore('base', {
typeList
:
[],
//机型下拉数据
ATAList
:
[],
//章节下拉数据
engineList
:
[],
//发动机型号列表
repairUnitList
:
[]
//责任单位列表
repairUnitList
:
[],
//责任单位列表
allSeatSelect
:
[]
//席位
},
allBasicParams
:
{}
//系统基础参数
}
...
...
@@ -92,11 +94,18 @@ const useBaseStore = defineStore('base', {
},
getATAChecked
:
(
state
)
=>
{
return
(
model
)
=>
{
const
selectATAList
=
state
.
selectList
.
ATAList
.
filter
((
item
)
=>
item
.
zstortGc
==
model
)
return
selectATAList
.
map
((
q
)
=>
({
label
:
q
.
label
,
value
:
q
.
label
}))
let
selectATAList
=
[]
if
(
model
)
{
selectATAList
=
state
.
selectList
.
ATAList
.
filter
((
item
)
=>
item
.
zstortGc
==
model
)
}
else
{
selectATAList
=
state
.
selectList
.
ATAList
}
return
uniqueArray
(
selectATAList
.
map
((
q
)
=>
({
label
:
q
.
label
,
value
:
q
.
label
}))
)
}
},
//格式化发动机型号数据
...
...
@@ -107,6 +116,20 @@ const useBaseStore = defineStore('base', {
value
:
v
.
zMETYPE
}
})
},
//获取席位
getSeat
(
state
)
{
return
(
seat
)
=>
{
return
(
seat
?.
split
(
','
)
.
map
((
item
)
=>
{
const
seat
=
state
.
selectList
.
allSeatSelect
.
find
((
option
)
=>
item
==
option
.
id
)
return
seat
?.
seatName
||
''
})
.
join
(
','
)
||
'-'
)
}
}
},
actions
:
{
...
...
@@ -126,6 +149,7 @@ const useBaseStore = defineStore('base', {
this
.
getATA
(),
this
.
getEngineList
(),
this
.
getRepairUnit
(),
this
.
getSysSeatList
(),
this
.
getRcOptions
()
])
}
finally
{
...
...
@@ -202,6 +226,12 @@ const useBaseStore = defineStore('base', {
this
.
selectList
.
repairUnitList
=
res
.
data
}
},
async
getSysSeatList
()
{
const
res
=
await
getSysSeatListApi
({
pid
:
0
,
pageSize
:
9999
})
if
(
res
.
code
==
200
)
{
this
.
selectList
.
allSeatSelect
=
res
.
data
.
list
||
[]
}
},
async
getRcOptions
()
{
const
res
=
await
getRcOptionsApi
({})
if
(
res
.
code
==
200
)
{
...
...
src/mocp/store/index.js
View file @
c21f7a41
...
...
@@ -6,5 +6,4 @@ const pinia = createPinia()
// 使用持久化存储插件
pinia
.
use
(
persist
)
// 默认导出,给 main.ts 使用
export
default
pinia
\ No newline at end of file
export
default
pinia
src/mocp/store/operationalSurvey.js
View file @
c21f7a41
import
{
getRsData2Api
}
from
'mocp/api/operationalSurvey'
import
{
getSysSeatListApi
}
from
'mocp/api/system'
import
{
defineStore
}
from
'pinia'
const
useOperationalSurveyStore
=
defineStore
(
'operationalSurvey'
,
{
...
...
@@ -24,14 +23,6 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
},
getters
:
{},
actions
:
{
async
getSysSeatList
()
{
const
res
=
await
getSysSeatListApi
({
pid
:
0
,
pageSize
:
9999
})
if
(
res
.
code
==
200
)
{
this
.
selectList
.
allSeatSelect
=
res
.
data
.
list
||
[]
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
},
async
getRsData2
()
{
const
res
=
await
getRsData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
if
(
res
.
code
==
200
)
{
...
...
src/mocp/store/qualityAnalysis.js
View file @
c21f7a41
import
{
getEnetOrgTreeApi
}
from
'mocp/api/assign-work'
import
{
getQaData2Api
,
getQaDimensionTree2Api
}
from
'mocp/api/qualityAnalysis'
import
{
getSysSeatListApi
}
from
'mocp/api/system'
import
{
defineStore
}
from
'pinia'
function
findRelatedLabelOfEnetOrg
(
items
,
id
)
{
...
...
@@ -30,7 +29,7 @@ const useQualityAnalysisStore = defineStore('qualityAnalysis', {
EnetOrgRepeatTreeZh
:
[]
},
searchData
:
{
isOpen
:
0
,
isOpen
:
1
,
acTerminal
:
''
,
acOwn
:
''
,
acType
:
''
,
...
...
@@ -54,14 +53,6 @@ const useQualityAnalysisStore = defineStore('qualityAnalysis', {
}
},
actions
:
{
async
getSysSeatList
()
{
const
res
=
await
getSysSeatListApi
({
pid
:
0
,
pageSize
:
9999
})
if
(
res
.
code
==
200
)
{
this
.
selectList
.
allSeatSelect
=
res
.
data
.
list
||
[]
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
},
async
getQaDimensionTree2
()
{
const
res
=
await
getQaDimensionTree2Api
({})
if
(
res
.
code
==
200
)
{
...
...
@@ -163,7 +154,7 @@ const useQualityAnalysisStore = defineStore('qualityAnalysis', {
},
resetForm
()
{
this
.
searchData
=
{
isOpen
:
0
,
isOpen
:
1
,
acTerminal
:
''
,
acOwn
:
''
,
acType
:
''
,
...
...
@@ -178,6 +169,6 @@ const useQualityAnalysisStore = defineStore('qualityAnalysis', {
}
},
// 配置持久化
persist
:
tru
e
persist
:
fals
e
})
export
default
useQualityAnalysisStore
src/mocp/store/technicalAnalysis.js
View file @
c21f7a41
import
{
getRsData2Api
}
from
'mocp/api/operationalSurvey'
import
{
getSysSeatListApi
}
from
'mocp/api/system'
import
{
getTaData2Api
}
from
'mocp/api/technicalAnalysis'
import
{
defineStore
}
from
'pinia'
const
useTechnicalAnalysisStore
=
defineStore
(
'technicalAnalysis'
,
{
state
:
()
=>
{
return
{
selectList
:
{
allSeatSelect
:
[]
},
searchData
:
{
isOpen
:
1
,
acTerminal
:
''
,
acOwn
:
''
,
acType
:
''
,
ac
:
''
,
startTime
:
null
,
stopTime
:
null
,
seat
:
''
majorClass
:
null
,
ataChapter
:
''
},
workbenchId
:
''
,
details
:
undefined
...
...
@@ -24,16 +19,8 @@ const useTechnicalAnalysisStore = defineStore('technicalAnalysis', {
},
getters
:
{},
actions
:
{
async
getSysSeatList
()
{
const
res
=
await
getSysSeatListApi
({
pid
:
0
,
pageSize
:
9999
})
if
(
res
.
code
==
200
)
{
this
.
selectList
.
allSeatSelect
=
res
.
data
.
list
||
[]
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
},
async
getRsData2
()
{
const
res
=
await
getRsData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
async
getTaData2
()
{
const
res
=
await
getTaData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
if
(
res
.
code
==
200
)
{
this
.
details
=
res
.
data
}
else
{
...
...
@@ -47,9 +34,8 @@ const useTechnicalAnalysisStore = defineStore('technicalAnalysis', {
acOwn
:
''
,
acType
:
''
,
ac
:
''
,
startTime
:
null
,
stopTime
:
null
,
seat
:
''
majorClass
:
null
,
ataChapter
:
''
}
},
setState
(...
args
)
{
...
...
src/pages.json
View file @
c21f7a41
...
...
@@ -668,6 +668,18 @@
"style"
:
{
"navigationBarTitleText"
:
"故障历史详情"
}
},
{
"path"
:
"pages/modules/mocp/panel/technicalAnalysis/partList"
,
"style"
:
{
"navigationBarTitleText"
:
"部件信息详情"
}
},
{
"path"
:
"pages/modules/mocp/panel/technicalAnalysis/similarEvents"
,
"style"
:
{
"navigationBarTitleText"
:
"同类事件详情"
}
}
],
"globalStyle"
:
{
...
...
src/pages/modules/mocp/panel/operationalSurvey/analysisList.vue
View file @
c21f7a41
<
template
>
<global-page
title=
"事件分析详情"
>
<global-table
:columns=
"columns"
:data=
"details?.analysisList"
>
<template
#
index=
"
{ index }">
{{
index
+
1
}}
</
template
>
</global-table>
<global-table
:columns=
"columns"
:data=
"details?.analysisList"
></global-table>
</global-page>
</
template
>
...
...
@@ -16,7 +12,7 @@ import useOperationalSurveyStore from 'mocp/store/operationalSurvey'
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
const
columns
=
ref
([
{
title
:
'序号'
,
dataIndex
:
'
index'
,
width
:
60
},
{
title
:
'序号'
,
dataIndex
:
'
ord'
},
{
title
:
'分析一级维度'
,
dataIndex
:
'dimension1'
},
{
title
:
'分析二级维度'
,
dataIndex
:
'dimension2'
},
{
title
:
'分析三级维度'
,
dataIndex
:
'dimension3'
},
...
...
src/pages/modules/mocp/panel/operationalSurvey/details.vue
View file @
c21f7a41
...
...
@@ -9,7 +9,7 @@
<up-cell
title=
"航司"
:value=
"details.acOwn || '-'"
/>
<up-cell
title=
"航站"
:value=
"baseStore.getTerminalObject[details.acTerminal] || '-'"
/>
<up-cell
title=
"提出人"
:value=
"details.proposer || '-'"
/>
<up-cell
title=
"发起席位"
:value=
"
getSeat
"
/>
<up-cell
title=
"发起席位"
:value=
"
baseStore.getSeat(details.seat)
"
/>
<up-cell
title=
"调查等级"
:value=
"useGetDictByValue('os_surveyLevel', details.surveyLevel) || '-'"
/>
<up-cell
title=
"标题"
:label=
"details.title || '无'"
/>
</up-cell-group>
...
...
@@ -218,18 +218,6 @@ onLoad(() => {
operationalSurveyStore
.
getRsData2
()
})
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
// 获取发起席位
const
getSeat
=
computed
(()
=>
{
return
(
details
.
value
?.
seat
.
split
(
','
)
.
map
((
item
)
=>
{
const
seat
=
operationalSurveyStore
.
selectList
.
allSeatSelect
.
find
((
option
)
=>
item
==
option
.
id
)
return
seat
?.
seatName
||
''
})
.
join
(
','
)
||
'-'
)
})
//获取事件分类
const
getEventclass
=
computed
(()
=>
{
return
(
...
...
src/pages/modules/mocp/panel/operationalSurvey/list.vue
View file @
c21f7a41
...
...
@@ -50,7 +50,7 @@
<
script
setup
>
import
{
storeToRefs
}
from
'pinia'
import
{
useGetDictByValue
}
from
'mocp/hooks/use-dict/useDict'
import
{
on
Load
,
on
Unload
}
from
'@dcloudio/uni-app'
import
{
onUnload
}
from
'@dcloudio/uni-app'
import
{
ref
}
from
'vue'
import
useOperationalSurveyStore
from
'mocp/store/operationalSurvey'
import
{
getRsDataList2Api
}
from
'mocp/api/operationalSurvey'
...
...
@@ -65,9 +65,6 @@ const goDetails = (data) => {
//加载下拉框数据
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
{
searchData
}
=
storeToRefs
(
operationalSurveyStore
)
onLoad
(()
=>
{
operationalSurveyStore
.
getSysSeatList
()
})
//筛选
const
handleRightClick
=
()
=>
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/operationalSurvey/search'
)
...
...
src/pages/modules/mocp/panel/qualityAnalysis/details.vue
View file @
c21f7a41
<
template
>
<global-page
:padding=
"24"
title=
"
运行调查
详情"
>
<global-page
:padding=
"24"
title=
"
品质分析
详情"
>
<template
v-if=
"details"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
...
...
@@ -9,7 +9,7 @@
<up-cell
title=
"航司"
:value=
"details.acOwn || '-'"
/>
<up-cell
title=
"航站"
:value=
"baseStore.getTerminalObject[details.acTerminal] || '-'"
/>
<up-cell
title=
"提出人"
:value=
"details.proposer || '-'"
/>
<up-cell
title=
"发起席位"
:value=
"
getSeat
"
/>
<up-cell
title=
"发起席位"
:value=
"
baseStore.getSeat(details.seat)
"
/>
<up-cell
title=
"调查等级"
:value=
"useGetDictByValue('qa_surveyLevel', details.surveyLevel) || '-'"
/>
<up-cell
title=
"标题"
:label=
"details.title || '无'"
/>
</up-cell-group>
...
...
@@ -157,18 +157,6 @@ onLoad(async () => {
uni
.
hideLoading
()
})
const
{
details
}
=
storeToRefs
(
qualityAnalysisStore
)
// 获取发起席位
const
getSeat
=
computed
(()
=>
{
return
(
details
.
value
?.
seat
.
split
(
','
)
.
map
((
item
)
=>
{
const
seat
=
qualityAnalysisStore
.
selectList
.
allSeatSelect
.
find
((
option
)
=>
item
==
option
.
id
)
return
seat
?.
seatName
||
''
})
.
join
(
','
)
||
'-'
)
})
//获取事件分类
const
getEventclass
=
computed
(()
=>
{
return
(
...
...
src/pages/modules/mocp/panel/qualityAnalysis/list.vue
View file @
c21f7a41
...
...
@@ -64,7 +64,6 @@ const qualityAnalysisStore = useQualityAnalysisStore()
const
{
searchData
}
=
storeToRefs
(
qualityAnalysisStore
)
onLoad
(()
=>
{
qualityAnalysisStore
.
getQaDimensionTree2
()
qualityAnalysisStore
.
getSysSeatList
()
})
//筛选
const
handleRightClick
=
()
=>
{
...
...
src/pages/modules/mocp/panel/technicalAnalysis/details.vue
View file @
c21f7a41
...
...
@@ -4,27 +4,36 @@
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"发起时间"
:value=
"timeStampFormat(details.proposedTime,
{ format: 'YYYY/MM/DD HH:mm' }) || '-'" />
<up-cell
title=
"发起席位"
:value=
"baseStore.getSeat(details.seat)"
/>
<up-cell
title=
"机号"
:value=
"details.ac || '-'"
/>
<up-cell
title=
"机型"
:value=
"details.acType || '-'"
/>
<up-cell
title=
"航司"
:value=
"details.acOwn || '-'"
/>
<up-cell
title=
"航站"
:value=
"baseStore.getTerminalObject[details.acTerminal] || '-'"
/>
<up-cell
title=
"提出人"
:value=
"details.proposer || '-'"
/>
<up-cell
title=
"发起席位"
:value=
"getSeat"
/>
<up-cell
title=
"调查等级"
:value=
"useGetDictByValue('os_surveyLevel', details.surveyLevel) || '-'"
/>
<up-cell
title=
"标题"
:label=
"details.title || '无'"
/>
<up-cell
title=
"专业"
:value=
"getParamNameByValue('MajorCategory', details.majorClass)"
/>
<up-cell
title=
"TA章节"
:value=
"details.ataChapter || '-'"
/>
<up-cell
title=
"故障标签"
:value=
"details.faultTag || '-'"
/>
<up-cell
title=
"故障代码"
:value=
"details.faultCode || '-'"
/>
<up-cell
title=
"是否机队TOP故障"
:value=
"useGetDictByValue('ta_teamTop', details.teamTop) || '-'"
/>
<up-cell
title=
"前两年同类延误次数"
:value=
"details.delayB2 || '-'"
/>
<up-cell
title=
"前一年同类延误次数"
:value=
"details.delayB1 || '-'"
/>
</up-cell-group>
</view>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"客户延误定性"
:value=
"delayNature[details.delayNature] || '-'"
/>
<up-cell
title=
"是否争议"
:value=
"useGetDictByValue('os_disputeMsg', details.disputeMsg) || '-'"
/>
<up-cell
title=
"申诉定性"
:value=
"delayNature[details.qualitativeAppeal] || '-'"
/>
<up-cell
title=
"第一客观延误原因"
:value=
"details.delayReason1 || '-'"
/>
<up-cell
title=
"第二客观延误原因"
:value=
"details.delayReason2 || '-'"
/>
<up-cell
title=
"左发件号"
:value=
"details.leftEngPartNo || '-'"
/>
<up-cell
title=
"左发序号"
:value=
"details.leftEngSerialNo || '-'"
/>
<up-cell
title=
"左发装机时间"
:value=
"timeStampFormat(details.leftEngInstallTime,
{ format: 'YYYY/MM/DD HH:mm' }) || '-'" />
<up-cell
title=
"左发飞行小时"
:value=
"details.leftEngFlyTime || '-'"
/>
<up-cell
title=
"左发飞行循环"
:value=
"details.leftEngFlyLoop || '-'"
/>
<up-cell
title=
"右发件号"
:value=
"details.rightEngPartNo || '-'"
/>
<up-cell
title=
"右发序号"
:value=
"details.rightEngSerialNo || '-'"
/>
<up-cell
title=
"右发装机时间"
:value=
"timeStampFormat(details.rightEngInstallTime,
{ format: 'YYYY/MM/DD HH:mm' }) || '-'" />
<up-cell
title=
"右发飞行小时"
:value=
"details.rightEngFlyTime || '-'"
/>
<up-cell
title=
"右发飞行循环"
:value=
"details.rightEngFlyLoop || '-'"
/>
</up-cell-group>
</view>
<view
class=
"mocp-cell"
>
<up-collapse
:value=
"
getCollapseValue
"
>
<up-collapse
:value=
"
['1', '2', '3', '4', '5', '6']
"
>
<up-collapse-item
title=
"事件简述"
name=
"1"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
...
...
@@ -32,88 +41,43 @@
<up-cell
title=
"相关附件"
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"details.
f
iles"
:showUpload=
"false"
></global-upload>
<global-upload
:fileList=
"details.
eventF
iles"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
<up-cell
title=
"事件分类"
:value=
"getEventclass"
/>
</up-cell-group>
</view>
</up-collapse-item>
<view
class=
"mocp-title"
>
故障历史
<global-button
type=
"text"
@
tap=
"navigateTo('/panel/
operationalSurvey
/historicalFault')"
>
点击查看
</global-button>
<global-button
type=
"text"
@
tap=
"navigateTo('/panel/
technicalAnalysis
/historicalFault')"
>
点击查看
</global-button>
</view>
<up-collapse-item
title=
"
手册标准
"
name=
"2"
>
<up-collapse-item
title=
"
处置经过
"
name=
"2"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<
template
v-for=
"item in details.manualList"
>
<up-cell
title=
"内容"
:label=
"item.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"item.files"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
</template>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item
title=
"处置经过"
name=
"3"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"内容"
:label=
"details.dispose?.content || '-'"
/>
<up-cell
title=
"内容"
:label=
"details.dispose || '-'"
/>
<up-cell
title=
"相关附件"
>
<
template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"details.dispose
?.f
iles"
:showUpload=
"false"
></global-upload>
<global-upload
:fileList=
"details.dispose
F
iles"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item
title=
"经济损失分析"
name=
"4"
>
<view
class=
"mocp-title"
>
部件信息
<global-button
type=
"text"
@
tap=
"navigateTo('/panel/technicalAnalysis/partList')"
>
点击查看
</global-button>
</view>
<view
class=
"mocp-title"
>
同类事件
<global-button
type=
"text"
@
tap=
"navigateTo('/panel/technicalAnalysis/similarEvents')"
>
点击查看
</global-button>
</view>
<up-collapse-item
title=
"故障原因分析"
name=
"3"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"不正常航班费用"
>
<
template
#
value
>
{{
details
.
economy
?.
abnormal
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"人员AOG差旅费用"
>
<
template
#
value
>
{{
details
.
economy
?.
travel
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"外委费用"
>
<
template
#
value
>
{{
details
.
economy
?.
outsourcing
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"航材保障费用"
>
<
template
#
value
>
{{
details
.
economy
?.
material
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"工具设备借用费用"
>
<
template
#
value
>
{{
details
.
economy
?.
equipment
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"其他"
>
<
template
#
value
>
{{
details
.
economy
?.
others
||
0
}}
元
</
template
>
</up-cell>
<up-cell
title=
"合计"
>
<
template
#
value
>
{{
(
details
.
economy
?.
abnormal
||
0
)
*
1
+
(
details
.
economy
?.
travel
||
0
)
*
1
+
(
details
.
economy
?.
outsourcing
||
0
)
*
1
+
(
details
.
economy
?.
material
||
0
)
*
1
+
(
details
.
economy
?.
equipment
||
0
)
*
1
+
(
details
.
economy
?.
others
||
0
)
*
1
}}
元
</
template
>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
<
template
v-for=
"item in details.elementList"
>
<up-collapse-item
:title=
"item.title || '-'"
:name=
"item.id"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<
template
v-for=
"(item, index) in details.failAnalysisList"
:key=
"index"
>
<up-cell
title=
"内容"
:label=
"item.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<template
#
label
>
...
...
@@ -122,63 +86,59 @@
</view>
</
template
>
</up-cell>
<up-cell
title=
"填报人"
:value=
"item.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(item.time) || '-'"
/>
</up-cell-group>
</view>
</up-collapse-item>
</template>
<view
class=
"mocp-title"
>
事件分析
<global-button
type=
"text"
@
tap=
"navigateTo('/panel/operationalSurvey/analysisList')"
>
点击查看
</global-button>
</view>
<up-collapse-item
title=
"事件结论"
name=
"5"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"内容"
:label=
"details.conclusion?.eventConclusion || '-'"
/>
<up-cell
title=
"相关附件"
>
<
template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"details.conclusion?.files"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
<
template
v-for=
"item in details.conclusion?.liabilities"
>
<up-cell
title=
"责任单位"
:value=
"getParamNameByValue('RcQaLiabilityBelong', item.liabilityBelong)"
/>
<up-cell
title=
"责任定性"
:value=
"getParamNameByValue('RcQaNature', item.liabilityNature)"
/>
</template>
<up-cell
title=
"填报人"
:value=
"details.conclusion?.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.conclusion?.time) || '-'"
/>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item
title=
"
改进措施"
name=
"6
"
>
<up-collapse-item
title=
"
厂家技术文件及改进措施"
name=
"4
"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"内容"
:label=
"details.improve?.content || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.improve?.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.improve?.time) || '-'"
/>
<
template
v-for=
"(item, index) in details.factoryImproveList"
:key=
"index"
>
<up-cell
title=
"标题"
:value=
"item.title || '-'"
/>
<up-cell
title=
"ATA章节"
:value=
"item.ataChapter || '-'"
/>
<up-cell
title=
"故障标签"
:value=
"item.faultTag || '-'"
/>
<up-cell
title=
"内容"
:label=
"item.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"item.files"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
</template>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item
title=
"
批准"
name=
"7
"
>
<up-collapse-item
title=
"
当前管控措施和进展"
name=
"5
"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"批示意见"
:value=
"getAuditContent"
/>
<up-cell
title=
"填报人"
:value=
"details.audit?.auditName || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.audit?.auditTime) || '-'"
/>
<
template
v-for=
"(item, index) in details.currentProgressList"
:key=
"index"
>
<up-cell
title=
"标题"
:value=
"item.title || '-'"
/>
<up-cell
title=
"ATA章节"
:value=
"item.ataChapter || '-'"
/>
<up-cell
title=
"故障标签"
:value=
"item.faultTag || '-'"
/>
<up-cell
title=
"内容"
:label=
"item.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"item.files"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
</template>
</up-cell-group>
</view>
<global-button
type=
"primary"
:radius=
"0"
size=
"large"
@
tap=
"navigateTo('/panel/operationalSurvey/audit')"
>
批示
</global-button>
</up-collapse-item>
<up-collapse-item
title=
"
MOC点评"
name=
"8
"
>
<up-collapse-item
title=
"
总结"
name=
"6
"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell
title=
"内容"
:label=
"details.reviews?.evaluation || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.reviews?.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.reviews?.time) || '-'"
/>
<up-cell
title=
"内容"
:label=
"details.summary || '-'"
/>
<up-cell
title=
"相关附件"
>
<
template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<global-upload
:fileList=
"details.summaryFiles"
:showUpload=
"false"
></global-upload>
</view>
</
template
>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
...
...
@@ -202,63 +162,19 @@ import useBaseStore from 'mocp/store/base'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
{
useGetDictByValue
}
from
'mocp/hooks/use-dict/useDict'
import
{
onLoad
}
from
'@dcloudio/uni-app'
import
useOperationalSurveyStore
from
'mocp/store/operationalSurvey'
import
{
computed
}
from
'vue'
import
{
getParamNameByValue
}
from
'mocp/hooks/use-params/useParams'
import
{
navigateTo
}
from
'mocp/utils/jump'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
const
query
=
defineProps
([
'workbenchId'
])
const
baseStore
=
useBaseStore
()
const
{
rcOptions
:
{
delayNature
}
}
=
useBaseStore
()
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
technicalAnalysisStore
=
useTechnicalAnalysisStore
()
onLoad
(()
=>
{
operationalSurveyStore
.
setState
(
'workbenchId'
,
query
.
workbenchId
)
operationalSurveyStore
.
getRsData2
()
})
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
// 获取发起席位
const
getSeat
=
computed
(()
=>
{
return
(
details
.
value
?.
seat
.
split
(
','
)
.
map
((
item
)
=>
{
const
seat
=
operationalSurveyStore
.
selectList
.
allSeatSelect
.
find
((
option
)
=>
item
==
option
.
id
)
return
seat
?.
seatName
||
''
})
.
join
(
','
)
||
'-'
)
})
//获取事件分类
const
getEventclass
=
computed
(()
=>
{
return
(
details
.
value
?.
eventclassList
.
map
((
item
)
=>
{
return
item
.
eventclass2
||
item
.
eventclass1
})
.
join
(
','
)
||
'-'
)
})
//获取批准意见
const
getAuditContent
=
computed
(()
=>
{
if
(
details
.
value
?.
audit
)
{
return
(
useGetDictByValue
(
'os_opinion'
,
details
.
value
.
audit
.
opinion
)
+
(
details
.
value
.
audit
.
content
?
','
+
details
.
value
.
audit
.
content
:
details
.
value
.
audit
.
content
)
)
}
else
{
return
'-'
}
})
//获取默认展开项
const
getCollapseValue
=
computed
(()
=>
{
const
value
=
[
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
]
details
.
value
?.
elementList
.
forEach
((
element
)
=>
{
value
.
push
(
element
.
id
)
})
return
value
technicalAnalysisStore
.
setState
(
'workbenchId'
,
query
.
workbenchId
)
technicalAnalysisStore
.
getTaData2
()
})
const
{
details
}
=
storeToRefs
(
technicalAnalysisStore
)
</
script
>
<
style
lang=
"scss"
scoped
>
.mocp-cell
{
...
...
@@ -274,7 +190,8 @@ const getCollapseValue = computed(() => {
}
.mocp-subTitle
{
padding
:
24
rpx
32
rpx
0
32
rpx
;
font-weight
:
bold
;
color
:
$
mocp-text-5
;
font-size
:
28
rpx
;
}
:deep
(
.u-collapse-item
)
{
.u-cell
{
...
...
src/pages/modules/mocp/panel/technicalAnalysis/historicalFault.vue
View file @
c21f7a41
...
...
@@ -11,11 +11,11 @@
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
useOperationalSurveyStore
from
'mocp/store/operationalSurvey'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
const
operationalSurveyStore
=
useOperationalSurvey
Store
()
const
{
details
}
=
storeToRefs
(
operationalSurvey
Store
)
const
technicalAnalysisStore
=
useTechnicalAnalysis
Store
()
const
{
details
}
=
storeToRefs
(
technicalAnalysis
Store
)
const
columns
=
ref
([
{
title
:
'机号'
,
dataIndex
:
'machineNumber'
},
{
title
:
'故障描述'
,
dataIndex
:
'faultDescribe'
},
...
...
src/pages/modules/mocp/panel/technicalAnalysis/list.vue
View file @
c21f7a41
<
template
>
<global-page
ref=
"paging"
:api=
"get
Rs
DataList2Api"
:api=
"get
Ta
DataList2Api"
:padding=
"24"
:params=
"searchData"
auto
...
...
@@ -30,18 +30,6 @@
<view
class=
"item-content u-line-3"
>
{{
item
.
eventMsg
||
'无'
}}
</view>
<view
class=
"item-footer"
>
<view
class=
"label"
>
<global-icon
icon=
"calendar"
></global-icon>
<text
class=
"txt"
>
{{
timeStampFormat
(
item
.
proposedTime
)
}}
</text>
</view>
<view
class=
"label u-line-1"
>
<global-icon
icon=
"idcard"
></global-icon>
<text
class=
"txt"
>
提出人:
{{
item
.
proposer
||
'-'
}}
</text>
</view>
</view>
</view>
</
template
>
</global-page>
...
...
@@ -50,34 +38,30 @@
<
script
setup
>
import
{
storeToRefs
}
from
'pinia'
import
{
useGetDictByValue
}
from
'mocp/hooks/use-dict/useDict'
import
{
onLoad
,
onUnload
}
from
'@dcloudio/uni-app'
import
{
onUnload
}
from
'@dcloudio/uni-app'
import
{
ref
}
from
'vue'
import
useOperationalSurveyStore
from
'mocp/store/operationalSurvey'
import
{
getRsDataList2Api
}
from
'mocp/api/operationalSurvey'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
{
getTaDataList2Api
}
from
'mocp/api/technicalAnalysis'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
//跳转
const
goDetails
=
(
data
)
=>
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/
operationalSurvey
/details'
,
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/
technicalAnalysis
/details'
,
{
workbenchId
:
data
.
workbenchId
})
}
//加载下拉框数据
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
{
searchData
}
=
storeToRefs
(
operationalSurveyStore
)
onLoad
(()
=>
{
operationalSurveyStore
.
getSysSeatList
()
})
const
technicalAnalysisStore
=
useTechnicalAnalysisStore
()
const
{
searchData
}
=
storeToRefs
(
technicalAnalysisStore
)
//筛选
const
handleRightClick
=
()
=>
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/
operationalSurvey
/search'
)
uni
.
$mocpJump
.
navigateTo
(
'/panel/
technicalAnalysis
/search'
)
}
const
paging
=
ref
()
uni
.
$on
(
'
operationalSurvey
Reload'
,
()
=>
{
uni
.
$on
(
'
technicalAnalysis
Reload'
,
()
=>
{
paging
.
value
?.
reload
()
})
onUnload
(()
=>
{
uni
.
$off
(
'
operationalSurvey
Reload'
)
uni
.
$off
(
'
technicalAnalysis
Reload'
)
})
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/pages/modules/mocp/panel/technicalAnalysis/partList.vue
0 → 100644
View file @
c21f7a41
<
template
>
<global-page
title=
"部件信息详情"
>
<global-table
:columns=
"columns"
:data=
"details?.partList"
:width=
"120"
>
<template
#
installTime=
"
{ row }">
{{
timeStampFormat
(
row
.
installTime
,
{
format
:
'YYYY/MM/DD'
}
)
}}
<
/template
>
<
template
#
localMaterials
=
"{ row
}
"
>
{{
useGetDictByValue
(
'ta_localMaterials'
,
row
.
localMaterials
)
}}
<
/template
>
<
/global-table
>
<
/global-page
>
<
/template
>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
import
{
useGetDictByValue
}
from
'mocp/hooks/use-dict/useDict'
const
technicalAnalysisStore
=
useTechnicalAnalysisStore
()
const
{
details
}
=
storeToRefs
(
technicalAnalysisStore
)
const
columns
=
ref
([
{
title
:
'件号'
,
dataIndex
:
'partNo'
,
minWidth
:
100
}
,
{
title
:
'序号'
,
dataIndex
:
'serialNo'
}
,
{
title
:
'部件名称'
,
dataIndex
:
'partName'
}
,
{
title
:
'部件性质'
,
dataIndex
:
'partNature'
}
,
{
title
:
'部件情况'
,
dataIndex
:
'partSituation'
}
,
{
title
:
'装机时间'
,
dataIndex
:
'installTime'
}
,
{
title
:
'CSN'
,
dataIndex
:
'csn'
}
,
{
title
:
'TSN'
,
dataIndex
:
'tsn'
}
,
{
title
:
'CSR'
,
dataIndex
:
'csr'
}
,
{
title
:
'TSR'
,
dataIndex
:
'tsr'
}
,
{
title
:
'当地航材'
,
dataIndex
:
'localMaterials'
}
,
{
title
:
'当地配置标准'
,
dataIndex
:
'localConf'
}
,
{
title
:
'软时限'
,
dataIndex
:
'companyReliability'
}
,
{
title
:
'航空集团平均使用时间'
,
dataIndex
:
'useAverageTime'
}
,
{
title
:
'世界机队平均使用时间'
,
dataIndex
:
'worldFleet'
}
])
<
/script
>
<
style
lang
=
"scss"
scoped
><
/style
>
src/pages/modules/mocp/panel/technicalAnalysis/search.vue
View file @
c21f7a41
...
...
@@ -3,7 +3,16 @@
<view
class=
"search-form"
>
<up-form
labelPosition=
"left"
labelWidth=
"auto"
>
<up-form-item
label=
"状态"
prop=
"isOpen"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.isOpen"
pickAlign=
"right"
clearable
dictkey=
"mae_isOpen"
></global-picker>
<global-picker
v-model=
"formData.isOpen"
pickAlign=
"right"
clearable
dictkey=
"ta_isOpen"
></global-picker>
</up-form-item>
<up-form-item
label=
"机号"
prop=
"ac"
:borderBottom=
"true"
>
<global-picker
pickAlign=
"right"
v-model=
"formData.ac"
:options=
"deviceNumList"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"机型"
prop=
"acType"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.acType"
pickAlign=
"right"
:options=
"baseStore.getTypeSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"航司"
prop=
"acOwn"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.acOwn"
pickAlign=
"right"
:options=
"baseStore.getAirlineSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"航站"
prop=
"acTerminal"
:borderBottom=
"true"
>
<global-picker
...
...
@@ -14,34 +23,17 @@
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"航司"
prop=
"acOwn"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.acOwn"
pickAlign=
"right"
:options=
"baseStore.getAirlineSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"机型"
prop=
"acType"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.acType"
pickAlign=
"right"
:options=
"baseStore.getTypeSelect"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"机号"
prop=
"ac"
:borderBottom=
"true"
>
<global-picker
pickAlign=
"right"
v-model=
"formData.ac"
:options=
"deviceNumList"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"发起日期"
:borderBottom=
"true"
>
<global-calendar
pickAlign=
"right"
v-model:startTime=
"formData.startTime"
v-model:endTime=
"formData.stopTime"
clearable
></global-calendar>
</up-form-item>
<up-form-item
label=
"发起席位"
prop=
"seat"
:borderBottom=
"true"
>
<up-form-item
label=
"专业类别"
prop=
"majorClass"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.majorClass"
pickAlign=
"right"
v-model=
"formData.seat"
:options=
"operationalSurveyStore.selectList.allSeatSelect"
label-field=
"seatName"
value-field=
"id"
:options=
"getParamsByType('MajorCategory')"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"ATA章节"
prop=
"ataChapter"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.ataChapter"
pickAlign=
"right"
:options=
"baseStore.getATAChecked()"
clearable
filter
/>
</up-form-item>
</up-form>
</view>
<template
#
bottom
>
...
...
@@ -62,26 +54,27 @@ import useBaseStore from 'mocp/store/base'
import
{
storeToRefs
}
from
'pinia'
import
{
cloneDeep
}
from
'lodash'
import
{
ref
}
from
'vue'
import
useOperationalSurveyStore
from
'mocp/store/operationalSurvey'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
import
{
getParamsByType
}
from
'mocp/hooks/use-params/useParams'
//获取下拉框选项
const
baseStore
=
useBaseStore
()
const
{
selectList
:
{
deviceNumList
}
}
=
useBaseStore
()
const
operationalSurveyStore
=
useOperationalSurvey
Store
()
const
technicalAnalysisStore
=
useTechnicalAnalysis
Store
()
//获取查询表单数据
const
{
searchData
}
=
storeToRefs
(
operationalSurvey
Store
)
const
{
searchData
}
=
storeToRefs
(
technicalAnalysis
Store
)
const
formData
=
ref
(
cloneDeep
(
searchData
.
value
))
const
handleReset
=
()
=>
{
operationalSurvey
Store
.
resetForm
()
technicalAnalysis
Store
.
resetForm
()
uni
.
$mocpJump
.
navigateBack
()
uni
.
$emit
(
'
operationalSurvey
Reload'
)
uni
.
$emit
(
'
technicalAnalysis
Reload'
)
}
const
handleConfirm
=
()
=>
{
operationalSurvey
Store
.
setState
(
'searchData'
,
formData
.
value
)
technicalAnalysis
Store
.
setState
(
'searchData'
,
formData
.
value
)
uni
.
$mocpJump
.
navigateBack
()
uni
.
$emit
(
'
operationalSurvey
Reload'
)
uni
.
$emit
(
'
technicalAnalysis
Reload'
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/pages/modules/mocp/panel/technicalAnalysis/similarEvents.vue
0 → 100644
View file @
c21f7a41
<
template
>
<global-page
title=
"同类事件详情"
>
<global-table
:columns=
"columns"
:data=
"details?.similarEvents"
>
<template
#
sendingTime=
"
{ row }">
{{
timeStampFormat
(
row
.
sendingTime
)
}}
</
template
>
</global-table>
</global-page>
</template>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
useTechnicalAnalysisStore
from
'mocp/store/technicalAnalysis'
const
technicalAnalysisStore
=
useTechnicalAnalysisStore
()
const
{
details
}
=
storeToRefs
(
technicalAnalysisStore
)
const
columns
=
ref
([
{
title
:
'机号'
,
dataIndex
:
'machineNumber'
},
{
title
:
'故障描述'
,
dataIndex
:
'faultDescribe'
},
{
title
:
'处理措施'
,
dataIndex
:
'handle'
},
{
title
:
'ATA章节'
,
dataIndex
:
'ata'
},
{
title
:
'发生时间'
,
dataIndex
:
'sendingTime'
}
])
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
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