Commit 9619bcfa by pangchong

feat: 品质分析责任单位

parent 83f97dad
import { http } from 'mocp/utils/http'
export const getTaDataList2Api = (data, config) => {
return http({
method: 'POST',
url: '/repaircontrol/getTaDataList2',
data,
config
})
}
// 建议以文件名首字母作为前缀ta_
export const ta_isOpen = [
{ label: 'OPEN', value: 1 },
{ label: 'CLOSE', value: 0 },
{ label: '跟踪', value: 2 }
]
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) {
let res = ''
for (const item of items) {
if (item.key == id) {
res = item.label
break
}
if (Array.isArray(item.children)) {
res = findRelatedLabelOfEnetOrg(item.children, id)
if (res) {
break
}
}
}
return res
}
const useQualityAnalysisStore = defineStore('qualityAnalysis', {
state: () => {
return {
selectList: {
allSeatSelect: [],
dimensionTree: []
dimensionTree: [],
EnetOrgTree: [],
EnetOrgRepeatTree: [],
EnetOrgRepeatTreeZh: []
},
searchData: {
isOpen: 0,
......@@ -78,13 +98,69 @@ const useQualityAnalysisStore = defineStore('qualityAnalysis', {
}
},
async getQaData2() {
const res = await getQaData2Api({ workbenchId: this.workbenchId }, { loading: true })
const res = await getQaData2Api({ workbenchId: this.workbenchId })
if (res.code == 200) {
this.details = res.data
} else {
uni.$mocpMessage.error(res.message)
}
},
async getEnetOrgTree() {
const res = await getEnetOrgTreeApi({})
if (res.code == 200) {
function transformData(data) {
return data.map((v) => {
let arr = []
if (v.nodeList.length) {
arr = transformData(v.nodeList)
}
return {
label: v.fullName,
key: v.nodeId + v.level,
id: v.nodeId,
children: arr
}
})
}
this.selectList.EnetOrgTree = transformData(res.data)
function transformRepeatData(data) {
return data.map((v) => {
let arr = []
if (v.nodeList.length) {
arr = transformRepeatData(v.nodeList)
}
return {
label: v.fullName,
key: v.nodeId,
id: v.nodeId,
children: arr
}
})
}
this.selectList.EnetOrgRepeatTree = transformRepeatData(res.data)
function transformRepeatDataZh(data) {
return data.map((v) => {
let arr = []
if (v.nodeList.length) {
arr = transformRepeatDataZh(v.nodeList)
}
return {
label: v.fullName,
key: v.fullName,
id: v.fullName,
children: arr
}
})
}
this.selectList.EnetOrgRepeatTreeZh = transformRepeatDataZh(res.data)
}
},
getEnetRepeatOrg(id) {
return findRelatedLabelOfEnetOrg(this.selectList.EnetOrgRepeatTree, id)
},
getEnetOrg(id) {
return findRelatedLabelOfEnetOrg(this.selectList.EnetOrgTree, id)
},
resetForm() {
this.searchData = {
isOpen: 0,
......
import { getRsData2Api } from 'mocp/api/operationalSurvey'
import { getSysSeatListApi } from 'mocp/api/system'
import { defineStore } from 'pinia'
const useTechnicalAnalysisStore = defineStore('technicalAnalysis', {
state: () => {
return {
selectList: {
allSeatSelect: []
},
searchData: {
isOpen: 1,
acTerminal: '',
acOwn: '',
acType: '',
ac: '',
startTime: null,
stopTime: null,
seat: ''
},
workbenchId: '',
details: undefined
}
},
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) {
this.details = res.data
} else {
uni.$mocpMessage.error(res.message)
}
},
resetForm() {
this.searchData = {
isOpen: 1,
acTerminal: '',
acOwn: '',
acType: '',
ac: '',
startTime: null,
stopTime: null,
seat: ''
}
},
setState(...args) {
this.$patch({ [args[0]]: args[1] })
}
},
// 配置持久化
persist: false
})
export default useTechnicalAnalysisStore
......@@ -21,7 +21,7 @@ const menuList = ref([
{ id: 'zysq', name: '支援申请', icon: 'zysq', group: '技术支援', default: false, count: 0, url: '/panel/support-application/search' },
{ id: 'gzzl', name: '工作指令', icon: 'gzzl', group: '技术支援', default: false, count: 0, url: '/panel/work-assignment/search' },
{ id: 'jspg', name: '技术评估', icon: 'jspg', group: '技术支援', default: false, count: 0, url: '/panel/technology-evaluation/list' },
{ id: 'jsfx', name: '技术分析', icon: 'jsfx', group: '技术支援', default: false, count: 0 },
{ id: 'jsfx', name: '技术分析', icon: 'jsfx', group: '技术支援', default: false, count: 0, url: '/panel/technicalAnalysis/list' },
{ 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' },
// 运行品质
......
......@@ -644,6 +644,30 @@
"style": {
"navigationBarTitleText": "品质跟踪闭环要求详情"
}
},
{
"path": "pages/modules/mocp/panel/technicalAnalysis/list",
"style": {
"navigationBarTitleText": "技术分析"
}
},
{
"path": "pages/modules/mocp/panel/technicalAnalysis/search",
"style": {
"navigationBarTitleText": "筛选"
}
},
{
"path": "pages/modules/mocp/panel/technicalAnalysis/details",
"style": {
"navigationBarTitleText": "技术分析详情"
}
},
{
"path": "pages/modules/mocp/panel/technicalAnalysis/historicalFault",
"style": {
"navigationBarTitleText": "故障历史详情"
}
}
],
"globalStyle": {
......
......@@ -191,7 +191,7 @@ import CardDetailsFooter from './components/card-details-footer.vue'
import CompanyPopup from './components/company-popup.vue'
import useAssignWorkStore from 'mocp/store/assign-work'
import { storeToRefs } from 'pinia'
import { onLoad, onUnload } from '@dcloudio/uni-app'
import { onLoad } from '@dcloudio/uni-app'
import { timeStampFormat } from 'mocp/utils/tool'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import { getParamNameByValue } from 'mocp/hooks/use-params/useParams'
......
......@@ -4,6 +4,9 @@
<template #index="{ index }">
{{ index + 1 }}
</template>
<template #company="{ row }">
{{ getCompany(row.company) }}
</template>
<template #endTime="{ row }">
{{ timeStampFormat(row.endTime) }}
</template>
......@@ -25,5 +28,13 @@ const columns = ref([
{ title: '任务描述', dataIndex: 'taskDescribe' },
{ title: '完成日期', dataIndex: 'endTime' }
])
const getCompany = (company) => {
return company
.split(',')
.map((v) => {
return qualityAnalysisStore.getEnetRepeatOrg(v) || qualityAnalysisStore.getEnetOrg(v)
})
.join(',')
}
</script>
<style lang="scss" scoped></style>
......@@ -146,9 +146,15 @@ import useQualityAnalysisStore from 'mocp/store/qualityAnalysis'
const query = defineProps(['workbenchId'])
const baseStore = useBaseStore()
const qualityAnalysisStore = useQualityAnalysisStore()
onLoad(() => {
onLoad(async () => {
qualityAnalysisStore.setState('workbenchId', query.workbenchId)
qualityAnalysisStore.getQaData2()
uni.showLoading({
title: '加载中...',
mask: true
})
await qualityAnalysisStore.getQaData2()
await qualityAnalysisStore.getEnetOrgTree()
uni.hideLoading()
})
const { details } = storeToRefs(qualityAnalysisStore)
// 获取发起席位
......
......@@ -4,6 +4,9 @@
<template #index="{ index }">
{{ index + 1 }}
</template>
<template #unit="{ row }">
{{ getCompany(row.unit) }}
</template>
<template #endTime="{ row }">
{{ timeStampFormat(row.endTime) }}
</template>
......@@ -25,5 +28,13 @@ const columns = ref([
{ title: '事件类型', dataIndex: 'eventType' },
{ title: '反馈期限', dataIndex: 'callbackLimit' }
])
const getCompany = (company) => {
return company
.split(',')
.map((v) => {
return qualityAnalysisStore.getEnetRepeatOrg(v) || qualityAnalysisStore.getEnetOrg(v)
})
.join(',')
}
</script>
<style lang="scss" scoped></style>
<template>
<global-page :padding="24" title="技术分析详情">
<template v-if="details">
<view class="mocp-cell">
<up-cell-group>
<up-cell title="发起时间" :value="timeStampFormat(details.proposedTime, { format: 'YYYY/MM/DD HH:mm' }) || '-'" />
<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-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-group>
</view>
<view class="mocp-cell">
<up-collapse :value="getCollapseValue">
<up-collapse-item title="事件简述" name="1">
<view class="mocp-cell">
<up-cell-group>
<up-cell title="内容" :label="details.eventMsg || '-'" />
<up-cell title="相关附件">
<template #label>
<view style="margin-top: 16rpx">
<global-upload :fileList="details.files" :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>
</view>
<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="相关附件">
<template #label>
<view style="margin-top: 16rpx">
<global-upload :fileList="details.dispose?.files" :showUpload="false"></global-upload>
</view>
</template>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item title="经济损失分析" name="4">
<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>
<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="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">
<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) || '-'" />
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item title="批准" name="7">
<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) || '-'" />
</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">
<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-group>
</view>
</up-collapse-item>
</up-collapse>
</view>
<view class="mocp-cell">
<up-cell-group>
<up-cell title="填报人" :value="details.openUsernameL || '-'" />
<up-cell title="填报时间" :value="timeStampFormat(details.openTimeL) || '-'" />
<up-cell title="关闭人" :value="details.closeUsername || '-'" />
<up-cell title="关闭时间" :value="timeStampFormat(details.closeTime) || '-'" />
</up-cell-group>
</view>
</template>
</global-page>
</template>
<script setup>
import { storeToRefs } from 'pinia'
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'
const query = defineProps(['workbenchId'])
const baseStore = useBaseStore()
const {
rcOptions: { delayNature }
} = useBaseStore()
const operationalSurveyStore = useOperationalSurveyStore()
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
})
</script>
<style lang="scss" scoped>
.mocp-cell {
background: #fff;
margin-bottom: 16rpx;
}
.mocp-title {
padding: 12rpx 32rpx 12rpx 32rpx;
background-color: #f7f8fa;
display: flex;
justify-content: space-between;
align-items: center;
}
.mocp-subTitle {
padding: 24rpx 32rpx 0 32rpx;
font-weight: bold;
}
:deep(.u-collapse-item) {
.u-cell {
background: #f7f8fa;
}
.u-collapse-item__content {
.u-cell {
background: #fff;
}
}
.u-collapse-item__content__text {
padding: 0;
}
.u-cell__title {
color: $mocp-text-5;
}
}
</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 useOperationalSurveyStore from 'mocp/store/operationalSurvey'
import { timeStampFormat } from 'mocp/utils/tool'
const operationalSurveyStore = useOperationalSurveyStore()
const { details } = storeToRefs(operationalSurveyStore)
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="getRsDataList2Api"
: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 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>
</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 useOperationalSurveyStore from 'mocp/store/operationalSurvey'
import { getRsDataList2Api } from 'mocp/api/operationalSurvey'
import { timeStampFormat } from 'mocp/utils/tool'
//跳转
const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/operationalSurvey/details', {
workbenchId: data.workbenchId
})
}
//加载下拉框数据
const operationalSurveyStore = useOperationalSurveyStore()
const { searchData } = storeToRefs(operationalSurveyStore)
onLoad(() => {
operationalSurveyStore.getSysSeatList()
})
//筛选
const handleRightClick = () => {
uni.$mocpJump.navigateTo('/panel/operationalSurvey/search')
}
const paging = ref()
uni.$on('operationalSurveyReload', () => {
paging.value?.reload()
})
onUnload(() => {
uni.$off('operationalSurveyReload')
})
</script>
<style lang="scss" scoped>
@import 'mocpStatic/css/list.scss';
</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="mae_isOpen"></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="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">
<global-picker
pickAlign="right"
v-model="formData.seat"
:options="operationalSurveyStore.selectList.allSeatSelect"
label-field="seatName"
value-field="id"
clearable
filter
></global-picker>
</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 useOperationalSurveyStore from 'mocp/store/operationalSurvey'
//获取下拉框选项
const baseStore = useBaseStore()
const {
selectList: { deviceNumList }
} = useBaseStore()
const operationalSurveyStore = useOperationalSurveyStore()
//获取查询表单数据
const { searchData } = storeToRefs(operationalSurveyStore)
const formData = ref(cloneDeep(searchData.value))
const handleReset = () => {
operationalSurveyStore.resetForm()
uni.$mocpJump.navigateBack()
uni.$emit('operationalSurveyReload')
}
const handleConfirm = () => {
operationalSurveyStore.setState('searchData', formData.value)
uni.$mocpJump.navigateBack()
uni.$emit('operationalSurveyReload')
}
</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