Commit 83f97dad by pangchong

feat: 品质分析收尾

parent a5382fbd
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
})
}
...@@ -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: false default: true
} }
}) })
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: 24rpx; font-size: 24rpx;
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;
} }
} }
} }
......
...@@ -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'
// 建议以文件名首字母作为前缀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: '例行调查' }
]
...@@ -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 getRsData2() {
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: true persist: false
}) })
export default useOperationalSurveyStore export default useOperationalSurveyStore
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
...@@ -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 },
// 航站管理 // 航站管理
......
...@@ -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)
......
...@@ -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": {
......
<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: 300 }, { title: '序号', dataIndex: 'index', width: 60 },
{ title: '分析一级维度', dataIndex: 'dimension1' }, { title: '分析一级维度', dataIndex: 'dimension1' },
{ title: '分析二级维度', dataIndex: 'dimension2' }, { title: '分析二级维度', dataIndex: 'dimension2' },
{ title: '分析三级维度', dataIndex: 'dimension3' }, { title: '分析三级维度', dataIndex: 'dimension3' },
......
...@@ -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.getRsData2()
uni.$mocpMessage.success(res.message) uni.$mocpMessage.success(res.message)
} else { } else {
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
......
...@@ -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(['id']) const query = defineProps(['workbenchId'])
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.getRsData2()
}) })
const { details } = storeToRefs(operationalSurveyStore) const { details } = storeToRefs(operationalSurveyStore)
// 获取发起席位 // 获取发起席位
...@@ -259,7 +266,7 @@ const getCollapseValue = computed(() => { ...@@ -259,7 +266,7 @@ const getCollapseValue = computed(() => {
margin-bottom: 16rpx; margin-bottom: 16rpx;
} }
.mocp-title { .mocp-title {
padding: 24rpx 32rpx 24rpx 32rpx; padding: 12rpx 32rpx 12rpx 32rpx;
background-color: #f7f8fa; background-color: #f7f8fa;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
......
...@@ -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">
......
<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>
<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>
<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>
<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>
<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: 24rpx 24rpx 0 24rpx;
background: #fff;
}
.footer-btn {
padding: 24rpx 32rpx;
background-color: #fff;
}
</style>
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