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
83f97dad
Commit
83f97dad
authored
Sep 27, 2024
by
pangchong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 品质分析收尾
parent
a5382fbd
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
488 additions
and
36 deletions
+488
-36
src/mocp/api/qualityAnalysis.js
+26
-0
src/mocp/components/global-table/global-table.vue
+9
-6
src/mocp/hooks/use-dict/dict-data/index.js
+1
-0
src/mocp/hooks/use-dict/dict-data/qualityAnalysis.js
+11
-0
src/mocp/store/operationalSurvey.js
+4
-4
src/mocp/store/qualityAnalysis.js
+107
-0
src/mocp/store/user.js
+1
-1
src/mocp/utils/jump.js
+10
-10
src/pages.json
+36
-0
src/pages/modules/mocp/panel/operationalSurvey/analysisList.vue
+3
-3
src/pages/modules/mocp/panel/operationalSurvey/audit.vue
+1
-1
src/pages/modules/mocp/panel/operationalSurvey/details.vue
+17
-10
src/pages/modules/mocp/panel/operationalSurvey/list.vue
+1
-1
src/pages/modules/mocp/panel/qualityAnalysis/arrangeWorkList.vue
+29
-0
src/pages/modules/mocp/panel/qualityAnalysis/details.vue
+0
-0
src/pages/modules/mocp/panel/qualityAnalysis/historicalFault.vue
+27
-0
src/pages/modules/mocp/panel/qualityAnalysis/list.vue
+83
-0
src/pages/modules/mocp/panel/qualityAnalysis/qualityTraceList.vue
+29
-0
src/pages/modules/mocp/panel/qualityAnalysis/search.vue
+93
-0
No files found.
src/mocp/api/qualityAnalysis.js
0 → 100644
View file @
83f97dad
import
{
http
}
from
'mocp/utils/http'
export
const
getQaDataList2Api
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/repaircontrol/getQaDataList2'
,
data
,
config
})
}
export
const
getQaDimensionTree2Api
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/repaircontrol/getQaDimensionTree2'
,
data
,
config
})
}
export
const
getQaData2Api
=
(
data
,
config
)
=>
{
return
http
({
method
:
'POST'
,
url
:
'/repaircontrol/getQaData2'
,
data
,
config
})
}
src/mocp/components/global-table/global-table.vue
View file @
83f97dad
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
</text>
</text>
</
template
>
</
template
>
</view>
</view>
<view
class=
"empty"
v-if=
"
data
.length <= 0"
>
<view
class=
"empty"
v-if=
"
!data || data?
.length <= 0"
>
<global-empty></global-empty>
<global-empty></global-empty>
</view>
</view>
</view>
</view>
...
@@ -38,12 +38,12 @@ const ps = defineProps({
...
@@ -38,12 +38,12 @@ const ps = defineProps({
},
},
bordered
:
{
bordered
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
fals
e
default
:
tru
e
}
}
})
})
const
getCellStyle
=
(
column
)
=>
{
const
getCellStyle
=
(
column
)
=>
{
return
{
return
{
width
:
column
?.
width
?
`
${
column
.
width
}
rpx`
:
`
${
750
}
rpx`
,
width
:
column
?.
width
?
`
${
column
.
width
}
rpx`
:
`
${
750
/
ps
.
columns
.
length
}
rpx`
,
textAlign
:
column
?.
align
||
''
textAlign
:
column
?.
align
||
''
}
}
}
}
...
@@ -60,16 +60,19 @@ const getCellStyle = (column) => {
...
@@ -60,16 +60,19 @@ const getCellStyle = (column) => {
.td
{
.td
{
padding
:
8px
;
padding
:
8px
;
text-align
:
left
;
text-align
:
left
;
color
:
$
mocp-text-
3
;
color
:
$
mocp-text-
4
;
font-size
:
24
rpx
;
font-size
:
24
rpx
;
word-break
:
break-all
;
word-break
:
break-all
;
}
}
.th
{
color
:
$
mocp-text-3
;
}
.table
{
.table
{
&.bordered
{
&.bordered
{
border
:
1px
solid
#f7f8fa
;
border
-bottom
:
1px
solid
#e7e7e7
;
.th,
.th,
.td
{
.td
{
border
:
1px
solid
#f7f8fa
;
border
-bottom
:
1px
solid
#e7e7e7
;
}
}
}
}
}
}
...
...
src/mocp/hooks/use-dict/dict-data/index.js
View file @
83f97dad
...
@@ -11,3 +11,4 @@ export * from './electronicBill'
...
@@ -11,3 +11,4 @@ export * from './electronicBill'
export
*
from
'./abnormalEventManage'
export
*
from
'./abnormalEventManage'
export
*
from
'./mechanicalAbnormalEvents'
export
*
from
'./mechanicalAbnormalEvents'
export
*
from
'./operationalSurvey'
export
*
from
'./operationalSurvey'
export
*
from
'./qualityAnalysis'
src/mocp/hooks/use-dict/dict-data/qualityAnalysis.js
0 → 100644
View file @
83f97dad
// 建议以文件名首字母作为前缀qa_
export
const
qa_isOpen
=
[
{
label
:
'OPEN'
,
value
:
1
},
{
label
:
'CLOSE'
,
value
:
0
},
{
label
:
'跟踪'
,
value
:
2
}
]
export
const
qa_surveyLevel
=
[
{
label
:
'A类调查'
,
value
:
'A类调查'
},
{
label
:
'B类调查'
,
value
:
'B类调查'
},
{
label
:
'例行调查'
,
value
:
'例行调查'
}
]
src/mocp/store/operationalSurvey.js
View file @
83f97dad
...
@@ -9,7 +9,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
...
@@ -9,7 +9,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
allSeatSelect
:
[]
allSeatSelect
:
[]
},
},
searchData
:
{
searchData
:
{
isOpen
:
0
,
isOpen
:
1
,
acTerminal
:
''
,
acTerminal
:
''
,
acOwn
:
''
,
acOwn
:
''
,
acType
:
''
,
acType
:
''
,
...
@@ -32,7 +32,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
...
@@ -32,7 +32,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
uni
.
$mocpMessage
.
error
(
res
.
message
)
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
}
},
},
async
getRsData
()
{
async
getRsData
2
()
{
const
res
=
await
getRsData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
const
res
=
await
getRsData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
this
.
details
=
res
.
data
this
.
details
=
res
.
data
...
@@ -42,7 +42,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
...
@@ -42,7 +42,7 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
},
},
resetForm
()
{
resetForm
()
{
this
.
searchData
=
{
this
.
searchData
=
{
isOpen
:
0
,
isOpen
:
1
,
acTerminal
:
''
,
acTerminal
:
''
,
acOwn
:
''
,
acOwn
:
''
,
acType
:
''
,
acType
:
''
,
...
@@ -57,6 +57,6 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
...
@@ -57,6 +57,6 @@ const useOperationalSurveyStore = defineStore('operationalSurvey', {
}
}
},
},
// 配置持久化
// 配置持久化
persist
:
tru
e
persist
:
fals
e
})
})
export
default
useOperationalSurveyStore
export
default
useOperationalSurveyStore
src/mocp/store/qualityAnalysis.js
0 → 100644
View file @
83f97dad
import
{
getQaData2Api
,
getQaDimensionTree2Api
}
from
'mocp/api/qualityAnalysis'
import
{
getSysSeatListApi
}
from
'mocp/api/system'
import
{
defineStore
}
from
'pinia'
const
useQualityAnalysisStore
=
defineStore
(
'qualityAnalysis'
,
{
state
:
()
=>
{
return
{
selectList
:
{
allSeatSelect
:
[],
dimensionTree
:
[]
},
searchData
:
{
isOpen
:
0
,
acTerminal
:
''
,
acOwn
:
''
,
acType
:
''
,
ac
:
''
,
dimension1
:
''
,
liabilityBelong
:
''
,
eventMsg
:
''
},
workbenchId
:
''
,
details
:
undefined
}
},
getters
:
{
getDimension1
()
{
return
this
.
selectList
.
dimensionTree
.
map
((
v
)
=>
{
return
{
label
:
v
.
label
,
value
:
v
.
label
}
})
}
},
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
)
{
let
arr
=
res
.
data
.
map
((
v
)
=>
{
let
arr1
=
v
.
subDimensionList
.
map
((
e
)
=>
{
let
arr2
=
e
.
subDimensionList
.
map
((
j
)
=>
{
return
{
label
:
j
.
name
,
key
:
j
.
name
,
eventclass1
:
v
.
name
,
eventclass2
:
e
.
name
,
eventclass3
:
j
.
name
}
})
return
{
label
:
e
.
name
,
key
:
e
.
name
,
eventclass1
:
v
.
name
,
eventclass2
:
e
.
name
,
children
:
arr2
}
})
return
{
label
:
v
.
name
,
key
:
v
.
name
,
eventclass1
:
v
.
name
,
eventclass2
:
''
,
children
:
arr1
}
})
this
.
selectList
.
dimensionTree
=
arr
||
[]
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
},
async
getQaData2
()
{
const
res
=
await
getQaData2Api
({
workbenchId
:
this
.
workbenchId
},
{
loading
:
true
})
if
(
res
.
code
==
200
)
{
this
.
details
=
res
.
data
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
}
},
resetForm
()
{
this
.
searchData
=
{
isOpen
:
0
,
acTerminal
:
''
,
acOwn
:
''
,
acType
:
''
,
ac
:
''
,
dimension1
:
''
,
liabilityBelong
:
''
,
eventMsg
:
''
}
},
setState
(...
args
)
{
this
.
$patch
({
[
args
[
0
]]:
args
[
1
]
})
}
},
// 配置持久化
persist
:
true
})
export
default
useQualityAnalysisStore
src/mocp/store/user.js
View file @
83f97dad
...
@@ -25,7 +25,7 @@ const menuList = ref([
...
@@ -25,7 +25,7 @@ const menuList = ref([
{
id
:
'MCO'
,
name
:
'MCO'
,
icon
:
'MCO'
,
group
:
'技术支援'
,
default
:
true
,
count
:
0
,
url
:
'/panel/mco/search'
},
{
id
:
'MCO'
,
name
:
'MCO'
,
icon
:
'MCO'
,
group
:
'技术支援'
,
default
:
true
,
count
:
0
,
url
:
'/panel/mco/search'
},
{
id
:
'wjll'
,
name
:
'文件浏览'
,
icon
:
'wjll'
,
group
:
'技术支援'
,
default
:
false
,
count
:
0
,
url
:
'/panel/fileList/index'
},
{
id
:
'wjll'
,
name
:
'文件浏览'
,
icon
:
'wjll'
,
group
:
'技术支援'
,
default
:
false
,
count
:
0
,
url
:
'/panel/fileList/index'
},
// 运行品质
// 运行品质
{
id
:
'pzfx'
,
name
:
'品质分析'
,
icon
:
'pzfx'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
},
{
id
:
'pzfx'
,
name
:
'品质分析'
,
icon
:
'pzfx'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
,
url
:
'/panel/qualityAnalysis/list'
},
{
id
:
'khjl'
,
name
:
'考核记录'
,
icon
:
'khjl'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
,
url
:
'/panel/appraisal-record/list'
},
{
id
:
'khjl'
,
name
:
'考核记录'
,
icon
:
'khjl'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
,
url
:
'/panel/appraisal-record/list'
},
{
id
:
'gcfx'
,
name
:
'工程分析'
,
icon
:
'gcfx'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
},
{
id
:
'gcfx'
,
name
:
'工程分析'
,
icon
:
'gcfx'
,
group
:
'运行品质'
,
default
:
false
,
count
:
0
},
// 航站管理
// 航站管理
...
...
src/mocp/utils/jump.js
View file @
83f97dad
...
@@ -19,8 +19,8 @@ export const navigateTo = (url, params = {}) => {
...
@@ -19,8 +19,8 @@ export const navigateTo = (url, params = {}) => {
// 调用 uni.navigateTo 并处理结果
// 调用 uni.navigateTo 并处理结果
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/pages/modules/mocp'
+
fullUrl
,
url
:
'/pages/modules/mocp'
+
fullUrl
,
success
:
()
=>
{
success
:
(
res
)
=>
{
resolve
()
resolve
(
res
)
},
},
fail
:
(
err
)
=>
{
fail
:
(
err
)
=>
{
reject
(
err
)
reject
(
err
)
...
@@ -44,8 +44,8 @@ export const redirectTo = (url, params = {}) => {
...
@@ -44,8 +44,8 @@ export const redirectTo = (url, params = {}) => {
// 调用 uni.redirectTo 并处理结果
// 调用 uni.redirectTo 并处理结果
uni
.
redirectTo
({
uni
.
redirectTo
({
url
:
'/pages/modules/mocp'
+
fullUrl
,
url
:
'/pages/modules/mocp'
+
fullUrl
,
success
:
()
=>
{
success
:
(
res
)
=>
{
resolve
()
resolve
(
res
)
},
},
fail
:
(
err
)
=>
{
fail
:
(
err
)
=>
{
reject
(
err
)
reject
(
err
)
...
@@ -69,8 +69,8 @@ export const reLaunch = (url, params = {}) => {
...
@@ -69,8 +69,8 @@ export const reLaunch = (url, params = {}) => {
// 调用 uni.reLaunch 并处理结果
// 调用 uni.reLaunch 并处理结果
uni
.
reLaunch
({
uni
.
reLaunch
({
url
:
'/pages/modules/mocp'
+
fullUrl
,
url
:
'/pages/modules/mocp'
+
fullUrl
,
success
:
()
=>
{
success
:
(
res
)
=>
{
resolve
()
resolve
(
res
)
},
},
fail
:
(
err
)
=>
{
fail
:
(
err
)
=>
{
reject
(
err
)
reject
(
err
)
...
@@ -89,8 +89,8 @@ export const navigateBack = (delta = 1) => {
...
@@ -89,8 +89,8 @@ export const navigateBack = (delta = 1) => {
// 调用 uni.navigateBack 并处理结果
// 调用 uni.navigateBack 并处理结果
uni
.
navigateBack
({
uni
.
navigateBack
({
delta
,
delta
,
success
:
()
=>
{
success
:
(
res
)
=>
{
resolve
()
resolve
(
res
)
},
},
fail
:
(
err
)
=>
{
fail
:
(
err
)
=>
{
reject
(
err
)
reject
(
err
)
...
@@ -110,8 +110,8 @@ export const switchTab = (name) => {
...
@@ -110,8 +110,8 @@ export const switchTab = (name) => {
const
fullUrl
=
'tab/index?name='
+
name
const
fullUrl
=
'tab/index?name='
+
name
uni
.
redirectTo
({
uni
.
redirectTo
({
url
:
'/pages/modules/mocp'
+
fullUrl
,
url
:
'/pages/modules/mocp'
+
fullUrl
,
success
:
()
=>
{
success
:
(
res
)
=>
{
resolve
()
resolve
(
res
)
},
},
fail
:
(
err
)
=>
{
fail
:
(
err
)
=>
{
reject
(
err
)
reject
(
err
)
...
...
src/pages.json
View file @
83f97dad
...
@@ -608,6 +608,42 @@
...
@@ -608,6 +608,42 @@
"style"
:
{
"style"
:
{
"navigationBarTitleText"
:
"批示"
"navigationBarTitleText"
:
"批示"
}
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/list"
,
"style"
:
{
"navigationBarTitleText"
:
"品质分析"
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/search"
,
"style"
:
{
"navigationBarTitleText"
:
"筛选"
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/details"
,
"style"
:
{
"navigationBarTitleText"
:
"品质分析详情"
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/historicalFault"
,
"style"
:
{
"navigationBarTitleText"
:
"故障历史详情"
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/arrangeWorkList"
,
"style"
:
{
"navigationBarTitleText"
:
"布置工作闭环要求详情"
}
},
{
"path"
:
"pages/modules/mocp/panel/qualityAnalysis/qualityTraceList"
,
"style"
:
{
"navigationBarTitleText"
:
"品质跟踪闭环要求详情"
}
}
}
],
],
"globalStyle"
:
{
"globalStyle"
:
{
...
...
src/pages/modules/mocp/panel/operationalSurvey/analysisList.vue
View file @
83f97dad
<
template
>
<
template
>
<global-page
title=
"事件分析详情"
>
<global-page
title=
"事件分析详情"
>
<global-table
:columns=
"columns"
:data=
"details?.analysisList"
>
<global-table
:columns=
"columns"
:data=
"details?.analysisList"
>
<template
#
ord=
"
{ row
}">
<template
#
index=
"
{ index
}">
{{
row
.
ord
+
1
}}
{{
index
+
1
}}
</
template
>
</
template
>
</global-table>
</global-table>
</global-page>
</global-page>
...
@@ -16,7 +16,7 @@ import useOperationalSurveyStore from 'mocp/store/operationalSurvey'
...
@@ -16,7 +16,7 @@ import useOperationalSurveyStore from 'mocp/store/operationalSurvey'
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
const
columns
=
ref
([
const
columns
=
ref
([
{
title
:
'序号'
,
dataIndex
:
'
ord'
,
width
:
30
0
},
{
title
:
'序号'
,
dataIndex
:
'
index'
,
width
:
6
0
},
{
title
:
'分析一级维度'
,
dataIndex
:
'dimension1'
},
{
title
:
'分析一级维度'
,
dataIndex
:
'dimension1'
},
{
title
:
'分析二级维度'
,
dataIndex
:
'dimension2'
},
{
title
:
'分析二级维度'
,
dataIndex
:
'dimension2'
},
{
title
:
'分析三级维度'
,
dataIndex
:
'dimension3'
},
{
title
:
'分析三级维度'
,
dataIndex
:
'dimension3'
},
...
...
src/pages/modules/mocp/panel/operationalSurvey/audit.vue
View file @
83f97dad
...
@@ -52,7 +52,7 @@ const handleSubmit = async (opinion) => {
...
@@ -52,7 +52,7 @@ const handleSubmit = async (opinion) => {
const
res
=
await
saveAudit2Api
({
...
formData
,
opinion
},
{
loading
:
true
})
const
res
=
await
saveAudit2Api
({
...
formData
,
opinion
},
{
loading
:
true
})
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
uni
.
$mocpJump
.
navigateBack
()
uni
.
$mocpJump
.
navigateBack
()
operationalSurveyStore
.
getRsData
()
operationalSurveyStore
.
getRsData
2
()
uni
.
$mocpMessage
.
success
(
res
.
message
)
uni
.
$mocpMessage
.
success
(
res
.
message
)
}
else
{
}
else
{
uni
.
$mocpMessage
.
error
(
res
.
message
)
uni
.
$mocpMessage
.
error
(
res
.
message
)
...
...
src/pages/modules/mocp/panel/operationalSurvey/details.vue
View file @
83f97dad
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
<up-collapse-item
title=
"事件简述"
name=
"1"
>
<up-collapse-item
title=
"事件简述"
name=
"1"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"
备注
"
:label=
"details.eventMsg || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"details.eventMsg || '-'"
/>
<up-cell
title=
"相关附件"
>
<up-cell
title=
"相关附件"
>
<template
#
label
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<view
style=
"margin-top: 16rpx"
>
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<
template
v-for=
"item in details.manualList"
>
<
template
v-for=
"item in details.manualList"
>
<up-cell
title=
"
备注
"
:label=
"item.content || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"item.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<up-cell
title=
"相关附件"
>
<template
#
label
>
<template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<view
style=
"margin-top: 16rpx"
>
...
@@ -63,7 +63,7 @@
...
@@ -63,7 +63,7 @@
<up-collapse-item
title=
"处置经过"
name=
"3"
>
<up-collapse-item
title=
"处置经过"
name=
"3"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"
备注
"
:label=
"details.dispose?.content || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"details.dispose?.content || '-'"
/>
<up-cell
title=
"相关附件"
>
<up-cell
title=
"相关附件"
>
<
template
#
label
>
<
template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<view
style=
"margin-top: 16rpx"
>
...
@@ -114,7 +114,14 @@
...
@@ -114,7 +114,14 @@
<up-collapse-item
:title=
"item.title || '-'"
:name=
"item.id"
>
<up-collapse-item
:title=
"item.title || '-'"
:name=
"item.id"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"备注"
:label=
"item.content || '-'"
/>
<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>
<up-cell
title=
"填报人"
:value=
"item.uname || '-'"
/>
<up-cell
title=
"填报人"
:value=
"item.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(item.time) || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(item.time) || '-'"
/>
</up-cell-group>
</up-cell-group>
...
@@ -128,7 +135,7 @@
...
@@ -128,7 +135,7 @@
<up-collapse-item
title=
"事件结论"
name=
"5"
>
<up-collapse-item
title=
"事件结论"
name=
"5"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"
备注
"
:label=
"details.conclusion?.eventConclusion || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"details.conclusion?.eventConclusion || '-'"
/>
<up-cell
title=
"相关附件"
>
<up-cell
title=
"相关附件"
>
<
template
#
label
>
<
template
#
label
>
<view
style=
"margin-top: 16rpx"
>
<view
style=
"margin-top: 16rpx"
>
...
@@ -148,7 +155,7 @@
...
@@ -148,7 +155,7 @@
<up-collapse-item
title=
"改进措施"
name=
"6"
>
<up-collapse-item
title=
"改进措施"
name=
"6"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"
备注
"
:label=
"details.improve?.content || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"details.improve?.content || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.improve?.uname || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.improve?.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.improve?.time) || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.improve?.time) || '-'"
/>
</up-cell-group>
</up-cell-group>
...
@@ -169,7 +176,7 @@
...
@@ -169,7 +176,7 @@
<up-collapse-item
title=
"MOC点评"
name=
"8"
>
<up-collapse-item
title=
"MOC点评"
name=
"8"
>
<view
class=
"mocp-cell"
>
<view
class=
"mocp-cell"
>
<up-cell-group>
<up-cell-group>
<up-cell
title=
"
备注
"
:label=
"details.reviews?.evaluation || '-'"
/>
<up-cell
title=
"
内容
"
:label=
"details.reviews?.evaluation || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.reviews?.uname || '-'"
/>
<up-cell
title=
"填报人"
:value=
"details.reviews?.uname || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.reviews?.time) || '-'"
/>
<up-cell
title=
"填报时间"
:value=
"timeStampFormat(details.reviews?.time) || '-'"
/>
</up-cell-group>
</up-cell-group>
...
@@ -200,7 +207,7 @@ import { computed } from 'vue'
...
@@ -200,7 +207,7 @@ import { computed } from 'vue'
import
{
getParamNameByValue
}
from
'mocp/hooks/use-params/useParams'
import
{
getParamNameByValue
}
from
'mocp/hooks/use-params/useParams'
import
{
navigateTo
}
from
'mocp/utils/jump'
import
{
navigateTo
}
from
'mocp/utils/jump'
const
query
=
defineProps
([
'
i
d'
])
const
query
=
defineProps
([
'
workbenchI
d'
])
const
baseStore
=
useBaseStore
()
const
baseStore
=
useBaseStore
()
const
{
const
{
rcOptions
:
{
delayNature
}
rcOptions
:
{
delayNature
}
...
@@ -208,7 +215,7 @@ const {
...
@@ -208,7 +215,7 @@ const {
const
operationalSurveyStore
=
useOperationalSurveyStore
()
const
operationalSurveyStore
=
useOperationalSurveyStore
()
onLoad
(()
=>
{
onLoad
(()
=>
{
operationalSurveyStore
.
setState
(
'workbenchId'
,
query
.
workbenchId
)
operationalSurveyStore
.
setState
(
'workbenchId'
,
query
.
workbenchId
)
operationalSurveyStore
.
getRsData
()
operationalSurveyStore
.
getRsData
2
()
})
})
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
const
{
details
}
=
storeToRefs
(
operationalSurveyStore
)
// 获取发起席位
// 获取发起席位
...
@@ -259,7 +266,7 @@ const getCollapseValue = computed(() => {
...
@@ -259,7 +266,7 @@ const getCollapseValue = computed(() => {
margin-bottom
:
16
rpx
;
margin-bottom
:
16
rpx
;
}
}
.mocp-title
{
.mocp-title
{
padding
:
24
rpx
32
rpx
24
rpx
32
rpx
;
padding
:
12
rpx
32
rpx
12
rpx
32
rpx
;
background-color
:
#f7f8fa
;
background-color
:
#f7f8fa
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
...
...
src/pages/modules/mocp/panel/operationalSurvey/list.vue
View file @
83f97dad
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<text
class=
"txt u-line-1"
v-if=
"item.acTerminal"
>
{{
item
.
acTerminal
}}
</text>
<text
class=
"txt u-line-1"
v-if=
"item.acTerminal"
>
{{
item
.
acTerminal
}}
</text>
</view>
</view>
</view>
</view>
<view
class=
"item-content"
>
<view
class=
"item-content
u-line-3
"
>
{{
item
.
eventMsg
||
'无'
}}
{{
item
.
eventMsg
||
'无'
}}
</view>
</view>
<view
class=
"item-footer"
>
<view
class=
"item-footer"
>
...
...
src/pages/modules/mocp/panel/qualityAnalysis/arrangeWorkList.vue
0 → 100644
View file @
83f97dad
<
template
>
<global-page
title=
"布置工作闭环要求详情"
>
<global-table
:columns=
"columns"
:data=
"details?.arrangeWorkList"
>
<template
#
index=
"
{ index }">
{{
index
+
1
}}
</
template
>
<
template
#
endTime=
"{ row }"
>
{{
timeStampFormat
(
row
.
endTime
)
}}
</
template
>
</global-table>
</global-page>
</template>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
useQualityAnalysisStore
from
'mocp/store/qualityAnalysis'
const
qualityAnalysisStore
=
useQualityAnalysisStore
()
const
{
details
}
=
storeToRefs
(
qualityAnalysisStore
)
const
columns
=
ref
([
{
title
:
'序号'
,
dataIndex
:
'index'
,
width
:
60
},
{
title
:
'责任单位'
,
dataIndex
:
'company'
},
{
title
:
'任务描述'
,
dataIndex
:
'taskDescribe'
},
{
title
:
'完成日期'
,
dataIndex
:
'endTime'
}
])
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/pages/modules/mocp/panel/qualityAnalysis/details.vue
0 → 100644
View file @
83f97dad
This diff is collapsed.
Click to expand it.
src/pages/modules/mocp/panel/qualityAnalysis/historicalFault.vue
0 → 100644
View file @
83f97dad
<
template
>
<global-page
title=
"故障历史详情"
>
<global-table
:columns=
"columns"
:data=
"details?.historicalFault"
>
<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
useQualityAnalysisStore
from
'mocp/store/qualityAnalysis'
const
qualityAnalysisStore
=
useQualityAnalysisStore
()
const
{
details
}
=
storeToRefs
(
qualityAnalysisStore
)
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
>
src/pages/modules/mocp/panel/qualityAnalysis/list.vue
0 → 100644
View file @
83f97dad
<
template
>
<global-page
ref=
"paging"
:api=
"getQaDataList2Api"
:padding=
"24"
:params=
"searchData"
auto
isDataList
loadingMoreEnabled
navRightIcon=
"saixuan-01"
navRightType=
"icon"
refresherEnabled
showNavRight
title=
"品质分析"
@
handleRightClick=
"handleRightClick"
>
<template
#
default=
"
{ item }">
<view
class=
"item"
@
tap=
"goDetails(item)"
>
<view
class=
"item-title"
>
<view
class=
"left"
>
<custom-state
:value=
"useGetDictByValue('os_isOpen', item.isOpen)"
></custom-state>
</view>
<view
class=
"right"
>
<text
class=
"txt u-line-1"
v-if=
"item.ac"
>
{{
item
.
ac
}}
</text>
<text
class=
"txt u-line-1"
v-if=
"item.acType"
>
{{
item
.
acType
}}
</text>
<text
class=
"txt u-line-1"
v-if=
"item.acOwn"
>
{{
item
.
acOwn
}}
</text>
<text
class=
"txt u-line-1"
v-if=
"item.acTerminal"
>
{{
item
.
acTerminal
}}
</text>
</view>
</view>
<view
class=
"item-content"
>
<view
style=
"margin-bottom: 20rpx"
>
事件编号 :
{{
item
.
id
}}
</view>
<view
class=
"u-line-3"
>
{{
item
.
eventMsg
||
'无'
}}
</view>
</view>
<view
class=
"item-footer"
>
<view
class=
"label"
>
<global-icon
icon=
"calendar"
></global-icon>
<text
class=
"txt"
>
{{
timeStampFormat
(
item
.
openTimeF
)
}}
</text>
</view>
</view>
</view>
</
template
>
</global-page>
</template>
<
script
setup
>
import
{
storeToRefs
}
from
'pinia'
import
{
useGetDictByValue
}
from
'mocp/hooks/use-dict/useDict'
import
{
onLoad
,
onUnload
}
from
'@dcloudio/uni-app'
import
{
ref
}
from
'vue'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
{
getQaDataList2Api
}
from
'mocp/api/qualityAnalysis'
import
useQualityAnalysisStore
from
'mocp/store/qualityAnalysis'
//跳转
const
goDetails
=
(
data
)
=>
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/qualityAnalysis/details'
,
{
workbenchId
:
data
.
workbenchId
})
}
//加载下拉框数据
const
qualityAnalysisStore
=
useQualityAnalysisStore
()
const
{
searchData
}
=
storeToRefs
(
qualityAnalysisStore
)
onLoad
(()
=>
{
qualityAnalysisStore
.
getQaDimensionTree2
()
qualityAnalysisStore
.
getSysSeatList
()
})
//筛选
const
handleRightClick
=
()
=>
{
uni
.
$mocpJump
.
navigateTo
(
'/panel/qualityAnalysis/search'
)
}
const
paging
=
ref
()
uni
.
$on
(
'qualityAnalysisReload'
,
()
=>
{
paging
.
value
?.
reload
()
})
onUnload
(()
=>
{
uni
.
$off
(
'qualityAnalysisReload'
)
})
</
script
>
<
style
lang=
"scss"
scoped
>
@import
'mocpStatic/css/list.scss'
;
</
style
>
src/pages/modules/mocp/panel/qualityAnalysis/qualityTraceList.vue
0 → 100644
View file @
83f97dad
<
template
>
<global-page
title=
"品质跟踪闭环要求详情"
>
<global-table
:columns=
"columns"
:data=
"details?.qualityTraceList"
>
<template
#
index=
"
{ index }">
{{
index
+
1
}}
</
template
>
<
template
#
endTime=
"{ row }"
>
{{
timeStampFormat
(
row
.
endTime
)
}}
</
template
>
</global-table>
</global-page>
</template>
<
script
setup
>
import
{
ref
}
from
'vue'
import
{
storeToRefs
}
from
'pinia'
import
{
timeStampFormat
}
from
'mocp/utils/tool'
import
useQualityAnalysisStore
from
'mocp/store/qualityAnalysis'
const
qualityAnalysisStore
=
useQualityAnalysisStore
()
const
{
details
}
=
storeToRefs
(
qualityAnalysisStore
)
const
columns
=
ref
([
{
title
:
'序号'
,
dataIndex
:
'index'
,
width
:
60
},
{
title
:
'责任单位'
,
dataIndex
:
'unit'
},
{
title
:
'事件类型'
,
dataIndex
:
'eventType'
},
{
title
:
'反馈期限'
,
dataIndex
:
'callbackLimit'
}
])
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/pages/modules/mocp/panel/qualityAnalysis/search.vue
0 → 100644
View file @
83f97dad
<
template
>
<global-page
title=
"筛选"
>
<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=
"qa_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
pickAlign=
"right"
v-model=
"formData.acTerminal"
clearable
:options=
"baseStore.getTerminalSelect"
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"一级责任维度"
prop=
"dimension1"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.dimension1"
pickAlign=
"right"
:options=
"getDimension1"
clearable
filter
></global-picker>
</up-form-item>
<up-form-item
label=
"责任单位"
prop=
"liabilityBelong"
:borderBottom=
"true"
>
<global-picker
v-model=
"formData.liabilityBelong"
pickAlign=
"right"
:options=
"getParamsByType('RcQaLiabilityBelong')"
clearable
filter
></global-picker>
</up-form-item>
<!--
<up-form-item
label=
"事件描述"
prop=
"eventMsg"
:borderBottom=
"true"
>
<up-input
v-model=
"formData.eventMsg"
inputAlign=
"right"
border=
"none"
placeholder=
"请输入"
clearable
></up-input>
</up-form-item>
-->
</up-form>
</view>
<template
#
bottom
>
<view
class=
"footer-btn"
>
<up-row
gutter=
"10"
>
<up-col
span=
"6"
>
<global-button
type=
"primary"
plain
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
{
storeToRefs
}
from
'pinia'
import
{
cloneDeep
}
from
'lodash'
import
{
ref
}
from
'vue'
import
useQualityAnalysisStore
from
'mocp/store/qualityAnalysis'
import
{
getParamsByType
}
from
'mocp/hooks/use-params/useParams'
//获取下拉框选项
const
baseStore
=
useBaseStore
()
const
{
selectList
:
{
deviceNumList
}
}
=
useBaseStore
()
const
qualityAnalysisStore
=
useQualityAnalysisStore
()
//获取查询表单数据
const
{
searchData
,
getDimension1
}
=
storeToRefs
(
qualityAnalysisStore
)
const
formData
=
ref
(
cloneDeep
(
searchData
.
value
))
const
handleReset
=
()
=>
{
qualityAnalysisStore
.
resetForm
()
uni
.
$mocpJump
.
navigateBack
()
uni
.
$emit
(
'qualityAnalysisReload'
)
}
const
handleConfirm
=
()
=>
{
qualityAnalysisStore
.
setState
(
'searchData'
,
formData
.
value
)
uni
.
$mocpJump
.
navigateBack
()
uni
.
$emit
(
'qualityAnalysisReload'
)
}
</
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
>
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