Commit ab339465 by pangchong

feat: 防风害收尾

parent 91a5e79a
import { http } from 'mocp/utils/http'
import { http, post } from 'mocp/utils/http'
//获取用户基本信息分页列表
export const getAdminListApi = (data, config) => {
......@@ -10,6 +10,16 @@ export const getAdminListApi = (data, config) => {
})
}
//获取用户基本信息详情
export const getAdminDetailApi = (data, config) => {
return http({
method: 'POST',
url: '/system/getAdminDetail',
data,
config
})
}
//通过机号查询飞机相关数据
export const getAcReduceListApi = (data, config) => {
return http({
......
......@@ -112,3 +112,27 @@ export const saveRelieveInfoApi = (data, config) => {
config
})
}
export const saveSandstormWorkApi = (data, config) => {
return post({
method: 'POST',
url: '/terminal/saveSandstormWork',
data,
config
})
}
export const getPwdTaByAcApi = (data, config) => {
return http({
method: 'POST',
url: '/terminal/getPwdTaByAc',
data,
config
})
}
export const getTerminalWeatherListApi = (data, config) => {
return http({
method: 'POST',
url: '/terminal/getTerminalWeatherList',
data,
config
})
}
......@@ -14,7 +14,7 @@
:cancelColor="cancelColor"
:confirmColor="confirmColor"
></up-datetime-picker>
<view class="date-content" :class="getPickerClass" @tap="show = true" :style="getStyle">
<view class="date-content" :class="getPickerClass" @tap="open" :style="getStyle">
<text class="date-value">{{ getLabelValue }}</text>
<view class="date-icon">
<view class="date-icon-close" v-if="clearable && !showPlaceholder && !disabled" @tap.stop="clear">
......@@ -97,6 +97,11 @@ const ps = defineProps({
default: '#165dff'
}
})
const open = () => {
if (!ps.disabled) {
show.value = true
}
}
//获取下拉框样式
const getStyle = computed(() => {
let pickAlign = 'flex-start'
......@@ -201,6 +206,7 @@ const clear = () => {
&.disabled {
background: #f5f7fa;
padding: 0 12rpx;
}
}
......
......@@ -89,6 +89,11 @@ const getCustomStyle = computed(() => {
height: ps.height ? ps.height + 'rpx' : 'auto',
background: ps.background
}
if (ps.mode == 'bottom') {
style.borderTopLeftRadius = ps.round + 'rpx'
style.borderTopRightRadius = ps.round + 'rpx'
style.marginTop = safeAreaInsets?.top + 'px'
}
if (ps.mode == 'right') {
style.borderTopLeftRadius = ps.round + 'rpx'
style.marginTop = safeAreaInsets?.top + 'px'
......
......@@ -23,8 +23,11 @@
</view>
</global-popup>
<view class="picker-content" :class="getPickerClass" @tap="open" :style="getContentStyle">
<text class="picker-value">{{ getLabelValue }}</text>
<text class="picker-value">
{{ getLabelValue }}
</text>
<view class="picker-icon">
<up-loading-icon :show="loading && !show"></up-loading-icon>
<view class="picker-icon-close" v-if="clearable && !showPlaceholder && !disabled" @tap.stop="clear">
<up-icon name="close-circle-fill" color="#c0c4cc" size="36rpx"></up-icon>
</view>
......@@ -36,8 +39,8 @@
<script setup>
import { debounce } from 'lodash'
import { getAdminListApi } from 'mocp/api/system'
import { computed, ref, watch, watchEffect } from 'vue'
import { getAdminDetailApi, getAdminListApi } from 'mocp/api/system'
import { computed, ref, watch } from 'vue'
const es = defineEmits(['update:modelValue', 'change'])
const ps = defineProps({
......@@ -138,7 +141,7 @@ const getContentStyle = computed(() => {
const labelValue = ref('')
const getLabelValue = computed(() => {
if (labelValue.value == ps.emptyValue) {
return ps.placeholder
return loading.value ? '' : ps.placeholder
}
return labelValue.value || ps.placeholder
})
......@@ -203,14 +206,30 @@ const onChange = debounce((value) => {
}
}, 200)
//获取label的内容
watchEffect(() => {
const option = columns.value?.find((option) => String(option[ps.valueField]) === String(ps.modelValue))
if (option) {
labelValue.value = option[ps.labelField]
const loading = ref(false)
const getAdminDetail = async (id) => {
loading.value = true
const res = await getAdminDetailApi({ id })
loading.value = false
if (res.code == 200) {
labelValue.value = `${res.data?.nickname}(${(res.data?.enetAccount || '无易网号') + '-' + (res.data?.deptFullName || '无机构')})`
} else {
labelValue.value = ps.emptyValue
uni.$mocpMessage.error(res.message)
}
})
}
watch(
() => ps.modelValue,
(value) => {
if (value) {
getAdminDetail(value)
} else {
labelValue.value = ps.emptyValue
}
},
{
immediate: true
}
)
//弹出层列表点击
const handleChoose = (row) => {
es('update:modelValue', row[ps.valueField], row)
......
......@@ -52,6 +52,8 @@ const useWindDamageManagementStore = defineStore('windDamageManagement303030', {
return state.details?.operateList.find((item) => item.operateBasicVo.id == String(state.basicId)) || {}
} else if (state.tabIndex == 2) {
return state.details?.mooringList.find((item) => item.mooringBasicVo.id == String(state.basicId)) || {}
} else if (state.tabIndex == 3) {
return state.details?.sandstormList.find((item) => item.sandstormBasicVo.id == String(state.basicId)) || {}
}
return {}
},
......@@ -62,6 +64,8 @@ const useWindDamageManagementStore = defineStore('windDamageManagement303030', {
return this.getDetails?.operateBasicVo || {}
} else if (state.tabIndex == 2) {
return this.getDetails?.mooringBasicVo || {}
} else if (state.tabIndex == 3) {
return this.getDetails?.sandstormBasicVo || {}
}
return {}
},
......@@ -72,6 +76,8 @@ const useWindDamageManagementStore = defineStore('windDamageManagement303030', {
return this.getDetails.operateConclusionVo || {}
} else if (state.tabIndex == 2) {
return this.getDetails.mooringConclusionVo || {}
} else if (state.tabIndex == 3) {
return this.getDetails.sandstormConclusionVo || {}
}
return {}
},
......@@ -82,8 +88,22 @@ const useWindDamageManagementStore = defineStore('windDamageManagement303030', {
return this.getDetails.operateWorkVo || {}
} else if (state.tabIndex == 2) {
return this.getDetails.mooringWorkVo || {}
} else if (state.tabIndex == 3) {
return this.getDetails.sandstormWorkVo || {}
}
return {}
},
getDisabled(state) {
if (state.tabIndex == 0) {
return this.getBasicVo.rxStatus == '0' || state.details.patrolIsOpen == '0'
} else if (state.tabIndex == 1) {
return this.getBasicVo.rxStatus == '0' || state.details.operateIsOpen == '0'
} else if (state.tabIndex == 2) {
return this.getBasicVo.rxStatus == '0' || state.details.mooringIsOpen == '0'
} else if (state.tabIndex == 3) {
return this.getBasicVo.rxStatus == '0' || state.details.sandstormIsOpen == '0'
}
return false
}
},
actions: {
......@@ -112,6 +132,6 @@ const useWindDamageManagementStore = defineStore('windDamageManagement303030', {
}
},
// 配置持久化
persist: true
persist: false
})
export default useWindDamageManagementStore
......@@ -49,7 +49,7 @@ export const uniqueArray = (arr) => {
*/
export const previewFile = (fileUrl) => {
uni.showLoading({
title: '正在打开文件',
title: '正在打开文件...',
mask: true
})
uni.downloadFile({
......@@ -77,6 +77,48 @@ export const previewFile = (fileUrl) => {
}
/**
* 文件下载
* @param {*} fileUrl
*/
export const downloadFile = (fileUrl) => {
return new Promise((resolve, reject) => {
uni.showLoading({
mask: true,
title: '保存中...'
})
uni.downloadFile({
url: fileUrl,
success: (res) => {
if (res.statusCode === 200) {
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePath,
success: () => {
uni.$mocpMessage.success('文件下载成功,已保存到相册')
resolve(res.tempFilePath)
},
fail: (err) => {
uni.$mocpMessage.error('保存到相册失败:', err)
reject(err)
},
complete: () => {
uni.hideLoading()
}
})
} else {
uni.$mocpMessage.error('文件下载失败')
reject(new Error('文件下载失败'))
}
},
fail: (err) => {
uni.hideLoading()
uni.$mocpMessage.error('下载文件失败:', err)
reject(err)
}
})
})
}
/**
* 如果至少有一个参数被填写,那么所有参数都必须被填写
* @param {...any} params
* @returns
......
......@@ -168,7 +168,7 @@
{
"path": "pages/modules/mocp/panel/move-decision/edit-mco-director",
"style": {
"navigationBarTitleText": "MCO主任意见"
"navigationBarTitleText": "MOC主任意见"
}
},
{
......@@ -770,6 +770,12 @@
"style": {
"navigationBarTitleText": "防风害系留操作单"
}
},
{
"path": "pages/modules/mocp/panel/windDamageManagement/sandstormDetails",
"style": {
"navigationBarTitleText": "防沙尘暴签署单"
}
}
],
"globalStyle": {
......
......@@ -69,19 +69,19 @@
</view>
</view>
<custom-card-details
title="MCO主任意见"
title="MOC主任意见"
showfooter
:idcard="details.mcoDirectorUpdateName"
:calendar="details.mcoDirectorUpdateTime"
edit
@handleAdd="handleAdd('edit-mco-director')"
>
<custom-card-details-item label="MCO主任" :value="details.mcoDirectorName || '-'"></custom-card-details-item>
<custom-card-details-item label="MOC主任" :value="details.mcoDirectorName || '-'"></custom-card-details-item>
<custom-card-details-item
label="MCO主任意见"
label="MOC主任意见"
:value="useGetDictByValue('md_decisionState', details.mcoDirectorDecisionState) || '-'"
></custom-card-details-item>
<custom-card-details-item label="MCO主任意见描述" :value="details.mcoDirectorOpinion || '-'"></custom-card-details-item>
<custom-card-details-item label="MOC主任意见描述" :value="details.mcoDirectorOpinion || '-'"></custom-card-details-item>
</custom-card-details>
<custom-card-details
title="公司值班经理意见"
......
<template>
<global-page title="MCO主任意见" navLeftType="text" showNavRight navRightType="button" navRightText="保存" @handleRightClick="handleRightClick">
<global-page title="MOC主任意见" navLeftType="text" showNavRight navRightType="button" navRightText="保存" @handleRightClick="handleRightClick">
<view class="mocp-form">
<up-form labelPosition="left" labelWidth="auto">
<up-form-item label="MCO主任" :borderBottom="true">
<up-form-item label="MOC主任" :borderBottom="true">
<custom-admin-picker
ref="adminPickerRef"
pickAlign="right"
......@@ -11,10 +11,10 @@
:searchValue="details.mcoDirectorName"
></custom-admin-picker>
</up-form-item>
<up-form-item label="MCP主任意见" :borderBottom="true">
<up-form-item label="MOC主任意见" :borderBottom="true">
<global-radio radioAlign="right" clearable v-model="formData.mcoDirectorDecisionState" dictkey="md_decisionState"></global-radio>
</up-form-item>
<up-form-item label="MCP主任意见描述" :borderBottom="true" labelPosition="top">
<up-form-item label="MOC主任意见描述" :borderBottom="true" labelPosition="top">
<up-textarea placeholder="请输入" :height="40" border="none" v-model="formData.mcoDirectorOpinion"></up-textarea>
</up-form-item>
</up-form>
......
<template>
<global-popup v-model="show" title="TA文件" background="#F7F8FA" :round="32" closeable>
<up-cell-group v-if="taList.length">
<template v-for="(item, index) in taList" :key="index">
<up-cell :title="item.fileName" @tap="downloadFile(item.fileUrl)" />
</template>
</up-cell-group>
<view class="global-empty" v-else>
<global-empty></global-empty>
</view>
</global-popup>
</template>
<script setup>
import { getPwdTaByAcApi } from 'mocp/api/windDamageManagement'
import { downloadFile } from 'mocp/utils/tool'
import { ref } from 'vue'
const show = ref(false)
const taList = ref([])
const open = (params) => {
taList.value = []
getPwdTaByAc(params)
}
const getPwdTaByAc = async (params) => {
const res = await getPwdTaByAcApi(params, { loading: true })
if (res.code == 200) {
if (res.data?.files) {
taList.value = JSON.parse(res.data?.files)
}
if (taList.value.length == 0) {
uni.$mocpMessage.warning('暂无对应文件')
}
if (taList.value.length == 1) {
downloadFile(taList.value[0].fileUrl)
}
if (taList.value.length > 1) {
show.value = true
}
} else {
uni.$mocpMessage.error(res.message)
}
}
defineExpose({
open
})
</script>
<style lang="scss" scoped>
.global-empty {
padding: 24rpx 0;
}
:deep(.u-cell__title-text) {
word-break: break-all;
}
</style>
......@@ -22,7 +22,7 @@
<up-form-item label="航站" :borderBottom="true" prop="terminal" required>
<up-input border="none" inputAlign="right" clearable v-model="formData.terminal" disabled disabledColor="#fff"></up-input>
</up-form-item>
<up-form-item label="机号" :borderBottom="true" prop="ac" required>
<up-form-item label="机号" :borderBottom="true" prop="ac" required v-if="tabIndex > 0">
<up-input border="none" inputAlign="right" clearable v-model="formData.ac" disabled disabledColor="#fff"></up-input>
</up-form-item>
<up-form-item :label="tabIndex == 0 ? '巡场人员' : '操作人'" :borderBottom="true">
......
......@@ -46,9 +46,9 @@ const formData = reactive({
})
// 页面初始化
onLoad(() => {
Object.assign(formData, getConclusionVo.value)
formData.basicId = basicId.value
formData.type = tabIndex.value + 1
Object.assign(formData, getConclusionVo.value)
})
//提交表单
const handleSubmit = async () => {
......
......@@ -101,7 +101,7 @@ const tabList = [
{
name: '防沙尘暴签署单',
api: getPwdSandstormListApi,
url: '/panel/windDamageManagement/patrolDetails'
url: '/panel/windDamageManagement/sandstormDetails'
}
]
const handleTabsChange = (value) => {
......
......@@ -2,13 +2,13 @@
<global-page
:padding="24"
title="防风害系留操作单"
:showFooterBtn="getBasicVo.rxStatus == 0"
:showFooterBtn="getBasicVo.rxStatus == '0'"
footerBtnText="接收"
@handleFooterClick="handleFooterClick"
showNavRight
navRightType="button"
navRightText="保存"
:navRightDisabled="getBasicVo.rxStatus == 0"
:navRightDisabled="getDisabled"
@handleRightClick="handleRightClick"
>
<template v-if="details">
......@@ -27,11 +27,7 @@
</template>
<template #value>
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
@tap.stop="navigateTo('/panel/windDamageManagement/editBasic')"
>
<global-button type="text" :disabled="getDisabled" @tap.stop="navigateTo('/panel/windDamageManagement/editBasic')">
编辑
</global-button>
</view>
......@@ -42,12 +38,7 @@
<up-cell title="预报风速" :value="getBasicVo.windSpeed || '-'" />
<up-cell title="预计开始时间" :value="details.startTime || '-'" />
<up-cell title="基地值班" :value="getBasicVo.dutyName || '-'" />
<up-cell
title="航站"
:value="baseStore.getTerminalObject[details.terminal] || '-'"
v-if="details.weatherSource == '1'"
/>
<up-cell isLink v-else>
<up-cell isLink>
<template #title>
<global-field label="航站"></global-field>
<global-field :value="baseStore.getTerminalObject[details.terminal] || '-'"></global-field>
......@@ -84,6 +75,7 @@
v-model="formData.startTime"
format="YYYY-MM-DD HH:mm:ss"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -91,7 +83,12 @@
<up-cell title="系留情况">
<template #label>
<view style="margin-top: 12rpx">
<global-radio v-model="formData.situation" clearable dictkey="wdm_situation"></global-radio>
<global-radio
v-model="formData.situation"
clearable
dictkey="wdm_situation"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
......@@ -113,18 +110,29 @@
v-model="formData.executeComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.executeMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.executeMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.executeFiles" :file-list="getWorkVo.executeFiles"></global-upload>
<global-upload
v-model="formData.executeFiles"
:file-list="getWorkVo.executeFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 2 -->
......@@ -141,18 +149,29 @@
v-model="formData.syncComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.syncMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.syncMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.syncFiles" :file-list="getWorkVo.syncFiles"></global-upload>
<global-upload
v-model="formData.syncFiles"
:file-list="getWorkVo.syncFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
</up-cell-group>
......@@ -173,18 +192,29 @@
v-model="formData.headComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.headMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.headMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.headFiles" :file-list="getWorkVo.headFiles"></global-upload>
<global-upload
v-model="formData.headFiles"
:file-list="getWorkVo.headFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 2 -->
......@@ -201,18 +231,29 @@
v-model="formData.wheelComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.wheelMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.wheelMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.wheelFiles" :file-list="getWorkVo.wheelFiles"></global-upload>
<global-upload
v-model="formData.wheelFiles"
:file-list="getWorkVo.wheelFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 3 -->
......@@ -236,18 +277,29 @@
v-model="formData.ammComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.ammMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.ammMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.ammFiles" :file-list="getWorkVo.ammFiles"></global-upload>
<global-upload
v-model="formData.ammFiles"
:file-list="getWorkVo.ammFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 4 -->
......@@ -269,18 +321,29 @@
v-model="formData.ballastComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.ballastMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.ballastMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.ballastFiles" :file-list="getWorkVo.ballastFiles"></global-upload>
<global-upload
v-model="formData.ballastFiles"
:file-list="getWorkVo.ballastFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 5 -->
......@@ -302,18 +365,29 @@
v-model="formData.obstacleComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.obstacleMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.obstacleMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.obstacleFiles" :file-list="getWorkVo.obstacleFiles"></global-upload>
<global-upload
v-model="formData.obstacleFiles"
:file-list="getWorkVo.obstacleFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
</up-cell-group>
......@@ -333,6 +407,7 @@
format="YYYY-MM-DD HH:mm:ss"
v-model="formData.endTime"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -351,7 +426,7 @@
size="medium"
type="primary"
@tap="saveRelieveInfo"
:disabled="getBasicVo.isRelieve == '1' || details.mooringIsOpen == '0' || getBasicVo.rxStatus == 0"
:disabled="getBasicVo.isRelieve == '1' || getDisabled"
>
解除系留
</global-button>
......@@ -363,7 +438,7 @@
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
:disabled="getDisabled"
@tap.stop="navigateTo('/panel/windDamageManagement/editConclusion')"
>
编辑
......@@ -425,13 +500,15 @@ import { saveMooringWorkApi, saveReceiveInfoApi, saveRelieveInfoApi } from 'mocp
const baseStore = useBaseStore()
const windDamageManagementStore = useWindDamageManagementStore()
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex } = storeToRefs(windDamageManagementStore)
onLoad(async () => {
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex, getDisabled } = storeToRefs(windDamageManagementStore)
onLoad(() => {
init()
})
const init = async () => {
await windDamageManagementStore.getAllTaskInfoByWeather()
formData.basicId = basicId.value
Object.assign(formData, getWorkVo.value)
})
formData.basicId = basicId.value
}
//接收历史
const receiveHistoryListRef = ref()
const openReceiveHistory = () => {
......@@ -451,7 +528,7 @@ const saveReceiveInfo = async () => {
if (res.code == 200) {
show.value = false
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......@@ -459,10 +536,10 @@ const saveReceiveInfo = async () => {
}
//气象信息
const goWeather = () => {
if (details.value?.patrolIsOpen == '0') {
if (details.value?.mooringIsOpen == '0') {
return uni.$mocpMessage.warning('气象信息已失效')
}
navigateTo('/panel/windDamageManagement/weather')
navigateTo('/panel/windDamageManagement/weather', { terminal: details.value?.terminal })
}
//保存
const formData = reactive({
......@@ -508,7 +585,7 @@ const handleRightClick = async () => {
const res = await saveMooringWorkApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......@@ -519,7 +596,7 @@ const saveRelieveInfo = async () => {
const res = await saveRelieveInfoApi({ basicId: basicId.value, taskType: tabIndex.value + 1 }, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......
......@@ -2,13 +2,13 @@
<global-page
:padding="24"
title="防风害巡场检查单"
:showFooterBtn="getBasicVo.rxStatus == 0"
:showFooterBtn="getBasicVo.rxStatus == '0'"
footerBtnText="接收"
@handleFooterClick="handleFooterClick"
showNavRight
navRightType="button"
navRightText="保存"
:navRightDisabled="getBasicVo.rxStatus == 0"
:navRightDisabled="getDisabled"
@handleRightClick="handleRightClick"
>
<template v-if="details">
......@@ -27,11 +27,7 @@
</template>
<template #value>
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
@tap.stop="navigateTo('/panel/windDamageManagement/editBasic')"
>
<global-button type="text" :disabled="getDisabled" @tap.stop="navigateTo('/panel/windDamageManagement/editBasic')">
编辑
</global-button>
</view>
......@@ -42,12 +38,7 @@
<up-cell title="预报风速" :value="getBasicVo.windSpeed || '-'" />
<up-cell title="预计开始时间" :value="details.startTime || '-'" />
<up-cell title="基地值班" :value="getBasicVo.dutyName || '-'" />
<up-cell
title="航站"
:value="baseStore.getTerminalObject[details.terminal] || '-'"
v-if="details.weatherSource == '1'"
/>
<up-cell isLink v-else>
<up-cell isLink>
<template #title>
<global-field label="航站"></global-field>
<global-field :value="baseStore.getTerminalObject[details.terminal] || '-'"></global-field>
......@@ -84,6 +75,7 @@
v-model="formData.startTime"
format="YYYY-MM-DD HH:mm:ss"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -106,18 +98,29 @@
v-model="formData.syncComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.syncMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.syncMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.syncFiles" :file-list="getWorkVo.syncFiles"></global-upload>
<global-upload
v-model="formData.syncFiles"
:file-list="getWorkVo.syncFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 2 -->
......@@ -134,18 +137,29 @@
v-model="formData.reportComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.reportMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.reportMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.reportFiles" :file-list="getWorkVo.reportFiles"></global-upload>
<global-upload
v-model="formData.reportFiles"
:file-list="getWorkVo.reportFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 3 -->
......@@ -164,18 +178,29 @@
v-model="formData.stayComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.stayMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.stayMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.stayFiles" :file-list="getWorkVo.stayFiles"></global-upload>
<global-upload
v-model="formData.stayFiles"
:file-list="getWorkVo.stayFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 4 -->
......@@ -192,18 +217,29 @@
v-model="formData.hnarComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.hnarMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.hnarMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.hnarFiles" :file-list="getWorkVo.hnarFiles"></global-upload>
<global-upload
v-model="formData.hnarFiles"
:file-list="getWorkVo.hnarFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 5 -->
......@@ -220,18 +256,29 @@
v-model="formData.pressureComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.pressureMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.pressureMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.pressureFiles" :file-list="getWorkVo.pressureFiles"></global-upload>
<global-upload
v-model="formData.pressureFiles"
:file-list="getWorkVo.pressureFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 6 -->
......@@ -248,18 +295,29 @@
v-model="formData.brakeComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.brakeMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.brakeMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.brakeFiles" :file-list="getWorkVo.brakeFiles"></global-upload>
<global-upload
v-model="formData.brakeFiles"
:file-list="getWorkVo.brakeFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 7 -->
......@@ -276,18 +334,29 @@
v-model="formData.shutComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.shutMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.shutMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.shutFiles" :file-list="getWorkVo.shutFiles"></global-upload>
<global-upload
v-model="formData.shutFiles"
:file-list="getWorkVo.shutFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 8 -->
......@@ -304,18 +373,29 @@
v-model="formData.bridgeComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.bridgeMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.bridgeMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.bridgeFiles" :file-list="getWorkVo.bridgeFiles"></global-upload>
<global-upload
v-model="formData.bridgeFiles"
:file-list="getWorkVo.bridgeFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 9 -->
......@@ -332,18 +412,29 @@
v-model="formData.serviceComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.serviceMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.serviceMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.serviceFiles" :file-list="getWorkVo.serviceFiles"></global-upload>
<global-upload
v-model="formData.serviceFiles"
:file-list="getWorkVo.serviceFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 10 -->
......@@ -360,18 +451,29 @@
v-model="formData.fixComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.fixMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.fixMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.fixFiles" :file-list="getWorkVo.fixFiles"></global-upload>
<global-upload
v-model="formData.fixFiles"
:file-list="getWorkVo.fixFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 11 -->
......@@ -390,18 +492,29 @@
v-model="formData.crossComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.crossMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.crossMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.crossFiles" :file-list="getWorkVo.crossFiles"></global-upload>
<global-upload
v-model="formData.crossFiles"
:file-list="getWorkVo.crossFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 12 -->
......@@ -418,18 +531,29 @@
v-model="formData.relieveComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.relieveMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.relieveMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.relieveFiles" :file-list="getWorkVo.relieveFiles"></global-upload>
<global-upload
v-model="formData.relieveFiles"
:file-list="getWorkVo.relieveFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
</up-cell-group>
......@@ -449,6 +573,7 @@
format="YYYY-MM-DD HH:mm:ss"
v-model="formData.endTime"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -461,7 +586,7 @@
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
:disabled="getDisabled"
@tap.stop="navigateTo('/panel/windDamageManagement/editConclusion')"
>
编辑
......@@ -523,12 +648,15 @@ import { saveOperateWorkApi, saveReceiveInfoApi } from 'mocp/api/windDamageManag
const baseStore = useBaseStore()
const windDamageManagementStore = useWindDamageManagementStore()
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex } = storeToRefs(windDamageManagementStore)
onLoad(async () => {
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex, getDisabled } = storeToRefs(windDamageManagementStore)
onLoad(() => {
init()
})
const init = async () => {
await windDamageManagementStore.getAllTaskInfoByWeather()
Object.assign(formData, getWorkVo.value)
})
formData.basicId = basicId.value
}
//接收历史
const receiveHistoryListRef = ref()
const openReceiveHistory = () => {
......@@ -548,7 +676,7 @@ const saveReceiveInfo = async () => {
if (res.code == 200) {
show.value = false
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......@@ -556,10 +684,10 @@ const saveReceiveInfo = async () => {
}
//气象信息
const goWeather = () => {
if (details.value?.patrolIsOpen == '0') {
if (details.value?.operateIsOpen == '0') {
return uni.$mocpMessage.warning('气象信息已失效')
}
navigateTo('/panel/windDamageManagement/weather')
navigateTo('/panel/windDamageManagement/weather', { terminal: details.value?.terminal })
}
//保存
const formData = reactive({
......@@ -608,7 +736,7 @@ const handleRightClick = async () => {
const res = await saveOperateWorkApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......
......@@ -2,13 +2,13 @@
<global-page
:padding="24"
title="防风害巡场检查单"
:showFooterBtn="getBasicVo.rxStatus == 0"
:showFooterBtn="getBasicVo.rxStatus == '0'"
footerBtnText="接收"
@handleFooterClick="handleFooterClick"
showNavRight
navRightType="button"
navRightText="保存"
:navRightDisabled="getBasicVo.rxStatus == 0"
:navRightDisabled="getDisabled"
@handleRightClick="handleRightClick"
>
<template v-if="details">
......@@ -27,11 +27,7 @@
</template>
<template #value>
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
@tap.stop="navigateTo('/panel/windDamageManagement/editBasic')"
>
<global-button type="text" :disabled="getDisabled" @tap.stop="navigateTo('/panel/windDamageManagement/editBasic')">
编辑
</global-button>
</view>
......@@ -42,12 +38,7 @@
<up-cell title="预报风速" :value="getBasicVo.windSpeed || '-'" />
<up-cell title="预计开始时间" :value="details.startTime || '-'" />
<up-cell title="基地值班" :value="getBasicVo.dutyName || '-'" />
<up-cell
title="航站"
:value="baseStore.getTerminalObject[details.terminal] || '-'"
v-if="details.weatherSource == '1'"
/>
<up-cell isLink v-else>
<up-cell isLink>
<template #title>
<global-field label="航站"></global-field>
<global-field :value="baseStore.getTerminalObject[details.terminal] || '-'"></global-field>
......@@ -83,6 +74,7 @@
v-model="formData.startTime"
format="YYYY-MM-DD HH:mm:ss"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -105,18 +97,29 @@
v-model="formData.startComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.startMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.startMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.startFiles" :file-list="getWorkVo.startFiles"></global-upload>
<global-upload
v-model="formData.startFiles"
:file-list="getWorkVo.startFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 2 -->
......@@ -138,18 +141,29 @@
v-model="formData.wheelComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.wheelMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.wheelMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.wheelFiles" :file-list="getWorkVo.wheelFiles"></global-upload>
<global-upload
v-model="formData.wheelFiles"
:file-list="getWorkVo.wheelFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 3 -->
......@@ -171,18 +185,29 @@
v-model="formData.parkingComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.parkingMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.parkingMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.parkingFiles" :file-list="getWorkVo.parkingFiles"></global-upload>
<global-upload
v-model="formData.parkingFiles"
:file-list="getWorkVo.parkingFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 4 -->
......@@ -201,6 +226,7 @@
v-model="formData.monitoringComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
......@@ -212,12 +238,17 @@
v-model="formData.monitoringMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.monitoringFiles" :file-list="getWorkVo.monitoringFiles"></global-upload>
<global-upload
v-model="formData.monitoringFiles"
:file-list="getWorkVo.monitoringFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 5 -->
......@@ -234,18 +265,29 @@
v-model="formData.hazardComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.hazardMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.hazardMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.hazardFiles" :file-list="getWorkVo.hazardFiles"></global-upload>
<global-upload
v-model="formData.hazardFiles"
:file-list="getWorkVo.hazardFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 6 -->
......@@ -262,18 +304,29 @@
v-model="formData.taComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.taMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.taMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.taFiles" :file-list="getWorkVo.taFiles"></global-upload>
<global-upload
v-model="formData.taFiles"
:file-list="getWorkVo.taFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
<!-- 7 -->
......@@ -290,18 +343,29 @@
v-model="formData.endComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea placeholder="请输入" v-model="formData.endMeasure" :height="40" border="none"></up-textarea>
<up-textarea
placeholder="请输入"
v-model="formData.endMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload v-model="formData.endFiles" :file-list="getWorkVo.endFiles"></global-upload>
<global-upload
v-model="formData.endFiles"
:file-list="getWorkVo.endFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
</up-cell-group>
......@@ -321,6 +385,7 @@
format="YYYY-MM-DD HH:mm:ss"
v-model="formData.endTime"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
......@@ -333,7 +398,7 @@
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getBasicVo.rxStatus == 0"
:disabled="getDisabled"
@tap.stop="navigateTo('/panel/windDamageManagement/editConclusion')"
>
编辑
......@@ -395,12 +460,15 @@ import { savePatrolWorkApi, saveReceiveInfoApi } from 'mocp/api/windDamageManage
const baseStore = useBaseStore()
const windDamageManagementStore = useWindDamageManagementStore()
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex } = storeToRefs(windDamageManagementStore)
onLoad(async () => {
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex, getDisabled } = storeToRefs(windDamageManagementStore)
onLoad(() => {
init()
})
const init = async () => {
await windDamageManagementStore.getAllTaskInfoByWeather()
Object.assign(formData, getWorkVo.value)
})
formData.basicId = basicId.value
}
//接收历史
const receiveHistoryListRef = ref()
const openReceiveHistory = () => {
......@@ -420,7 +488,7 @@ const saveReceiveInfo = async () => {
if (res.code == 200) {
show.value = false
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......@@ -431,7 +499,7 @@ const goWeather = () => {
if (details.value?.patrolIsOpen == '0') {
return uni.$mocpMessage.warning('气象信息已失效')
}
navigateTo('/panel/windDamageManagement/weather')
navigateTo('/panel/windDamageManagement/weather', { terminal: details.value?.terminal })
}
//保存
const formData = reactive({
......@@ -465,7 +533,7 @@ const handleRightClick = async () => {
const res = await savePatrolWorkApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
windDamageManagementStore.getAllTaskInfoByWeather()
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
......
<template>
<global-page
:padding="24"
title="防沙尘暴签署单"
:showFooterBtn="getBasicVo.rxStatus == '0'"
footerBtnText="接收"
@handleFooterClick="handleFooterClick"
showNavRight
navRightType="button"
navRightText="保存"
:navRightDisabled="getDisabled"
@handleRightClick="handleRightClick"
>
<template v-if="details">
<view class="mocp-cell">
<up-collapse :value="['1', '2', '3']">
<up-collapse-item name="1">
<template #title>
<view class="mocp-title">
<text class="txt">基础信息</text>
<view>
<global-tag :type="useGetDictByValue('wdm_rxStatusType', getBasicVo.rxStatus)">
{{ useGetDictByValue('wdm_rxStatus', getBasicVo.rxStatus) }}
</global-tag>
</view>
</view>
</template>
<template #value>
<view style="margin-right: 24rpx">
<global-button type="text" :disabled="getDisabled" @tap.stop="navigateTo('/panel/windDamageManagement/editBasic')">
编辑
</global-button>
</view>
</template>
<view class="mocp-cell">
<up-cell-group>
<up-cell title="报文生成时间" :value="details.generateTime || '-'" />
<up-cell title="预报风速" :value="getBasicVo.windSpeed || '-'" />
<up-cell title="预计开始时间" :value="details.startTime || '-'" />
<up-cell title="基地值班" :value="getBasicVo.dutyName || '-'" />
<up-cell isLink>
<template #title>
<global-field label="航站"></global-field>
<global-field :value="baseStore.getTerminalObject[details.terminal] || '-'"></global-field>
</template>
<template #value>
<text @tap="goWeather">气象信息</text>
</template>
</up-cell>
<up-cell title="机号" :value="getBasicVo.ac || '-'" />
<up-cell title="操作人" :value="getBasicVo.operateName || '-'" />
<up-cell title="发起人" :value="getBasicVo.proposedName || '-'" />
<up-cell title="发起时间" :value="timeStampFormat(getBasicVo.proposedTime) || '-'" />
<up-cell isLink>
<template #title>
<global-field label="填报人:" :value="getBasicVo.fillingName || '-'"></global-field>
<global-field label="填报时间:" :value="timeStampFormat(getBasicVo.fillingTime) || '-'"></global-field>
</template>
<template #value>
<text @tap="openReceiveHistory">接收历史</text>
</template>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
<up-collapse-item title="工作内容" name="2">
<view class="mocp-cell">
<up-cell-group>
<up-cell title="开始时间">
<template #value>
<view>
<global-date
mode="datetime"
pickAlign="right"
v-model="formData.startTime"
format="YYYY-MM-DD HH:mm:ss"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
</up-cell>
<up-cell title="查看TA文件" :border="false" isLink @tap="openTaByAc" />
</up-cell-group>
</view>
<view class="mocp-cell">
<up-cell-group>
<!-- 1 -->
<up-cell>
<template #title>
<view>
<view>
1、如伴有尘暴、沙暴、扬沙(航后飞机和停场飞机(含长过站停场))等天气,需参考TA《各机型大风条件下稳定性标准及沙尘暴天气条件下的防护措施》执行封堵工作。
</view>
<view>查询路径:工程网-TDMS-文件编制-TA查询。</view>
</view>
</template>
</up-cell>
<up-cell title="是否完成">
<template #value>
<view>
<global-radio
radioAlign="right"
v-model="formData.taComplete"
clearable
dictkey="wdm_complete"
:disabled="getDisabled"
></global-radio>
</view>
</template>
</up-cell>
<up-cell title="发现问题及处理措施" :border="false">
<template #label>
<up-textarea
placeholder="请输入"
v-model="formData.taMeasure"
:height="40"
border="none"
:disabled="getDisabled"
></up-textarea>
</template>
</up-cell>
<up-cell>
<template #label>
<global-upload
v-model="formData.taFiles"
:file-list="getWorkVo.taFiles"
:show-upload="!getDisabled"
></global-upload>
</template>
</up-cell>
</up-cell-group>
</view>
<view class="mocp-cell">
<up-cell-group>
<up-cell>
<template #title>填报人:{{ getWorkVo.fillingName || '-' }}</template>
<template #value>填报时间:{{ timeStampFormat(getWorkVo.fillingTime) || '-' }}</template>
</up-cell>
<up-cell title="结束时间">
<template #value>
<view>
<global-date
mode="datetime"
pickAlign="right"
format="YYYY-MM-DD HH:mm:ss"
v-model="formData.endTime"
clearable
:disabled="getDisabled"
></global-date>
</view>
</template>
</up-cell>
</up-cell-group>
</view>
<view class="mocp-cell">
<up-cell-group>
<up-cell>
<template #title>操作人:{{ getBasicVo.relieveName || '-' }}</template>
<template #value>操作时间:{{ timeStampFormat(getBasicVo.relieveTime) || '-' }}</template>
</up-cell>
</up-cell-group>
<view style="padding: 12rpx">
<global-button
size="medium"
type="primary"
@tap="saveRelieveInfo"
:disabled="getBasicVo.isRelieve == '1' || getDisabled"
>
解除封堵
</global-button>
</view>
</view>
</up-collapse-item>
<up-collapse-item title="结论" name="3">
<template #value>
<view style="margin-right: 24rpx">
<global-button
type="text"
:disabled="getDisabled"
@tap.stop="navigateTo('/panel/windDamageManagement/editConclusion')"
>
编辑
</global-button>
</view>
</template>
<view class="mocp-cell">
<up-cell-group>
<up-cell title="是否有异常" :value="useGetDictByValue('wdm_isAbnormal', getConclusionVo.isAbnormal) || '-'" />
<up-cell>
<template #label>
{{ getConclusionVo.content || '无' }}
</template>
</up-cell>
<up-cell title="附件">
<template #label>
<view style="margin-top: 16rpx">
<global-upload :file-list="getConclusionVo.files" :show-upload="false"></global-upload>
</view>
</template>
</up-cell>
<up-cell>
<template #title>填报人:{{ getConclusionVo.fillingName || '-' }}</template>
<template #value>填报时间:{{ timeStampFormat(getConclusionVo.fillingTime) || '-' }}</template>
</up-cell>
</up-cell-group>
</view>
</up-collapse-item>
</up-collapse>
</view>
</template>
</global-page>
<ReceiveHistoryList ref="receiveHistoryListRef"></ReceiveHistoryList>
<TaList ref="taListRef"></TaList>
<up-modal
:width="250"
title="提示"
content="填写完成后请及时保存!"
confirmText="知道了"
:show="show"
closeOnClickOverlay
@confirm="saveReceiveInfo"
@cancel="show = false"
@close="show = false"
></up-modal>
</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 { reactive, ref } from 'vue'
import { navigateTo } from 'mocp/utils/jump'
import useWindDamageManagementStore from 'mocp/store/windDamageManagement'
import ReceiveHistoryList from './components/ReceiveHistoryList.vue'
import useUserStore from 'mocp/store/user'
import { saveReceiveInfoApi, saveRelieveInfoApi, saveSandstormWorkApi } from 'mocp/api/windDamageManagement'
import TaList from './components/TaList.vue'
const baseStore = useBaseStore()
const windDamageManagementStore = useWindDamageManagementStore()
const { details, getBasicVo, getConclusionVo, getWorkVo, basicId, tabIndex, getDisabled } = storeToRefs(windDamageManagementStore)
onLoad(() => {
init()
})
const init = async () => {
await windDamageManagementStore.getAllTaskInfoByWeather()
Object.assign(formData, getWorkVo.value)
formData.basicId = basicId.value
}
//接收历史
const receiveHistoryListRef = ref()
const openReceiveHistory = () => {
receiveHistoryListRef.value?.open({ basicId: basicId.value, taskType: tabIndex.value + 1 })
}
//接收
const userStore = useUserStore()
const show = ref(false)
const handleFooterClick = () => {
show.value = true
}
const saveReceiveInfo = async () => {
const res = await saveReceiveInfoApi(
{ basicId: basicId.value, taskType: tabIndex.value + 1, receiveUid: userStore.userInfo?.id },
{ loading: true }
)
if (res.code == 200) {
show.value = false
uni.$mocpMessage.success(res.message)
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
}
}
//气象信息
const goWeather = () => {
if (details.value?.sandstormIsOpen == '0') {
return uni.$mocpMessage.warning('气象信息已失效')
}
navigateTo('/panel/windDamageManagement/weather', { terminal: details.value?.terminal })
}
//保存
const formData = reactive({
basicId: '',
endTime: undefined,
id: '',
startTime: undefined,
taComplete: undefined,
taFiles: '',
taMeasure: ''
})
const handleRightClick = async () => {
const res = await saveSandstormWorkApi(formData, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
}
}
//解除封堵
const saveRelieveInfo = async () => {
const res = await saveRelieveInfoApi({ basicId: basicId.value, taskType: tabIndex.value + 1 }, { loading: true })
if (res.code == 200) {
uni.$mocpMessage.success(res.message)
init()
uni.$emit('windDamageManagementReload')
} else {
uni.$mocpMessage.error(res.message)
}
}
//TA文件
const taListRef = ref()
const openTaByAc = async () => {
taListRef.value?.open({ ac: getBasicVo.value.ac })
}
</script>
<style lang="scss" scoped>
@import './constants/details.scss';
</style>
<template>
<global-page title="气象信息">
<view class="mocp-cell">
<up-cell-group v-if="details">
<up-cell title="报文生成时间" :value="details.generateTime || '-'"></up-cell>
<up-cell title="气象类型" :value="useGetDictByValue('wdm_alarmcategory', details.weatherType) || '-'"></up-cell>
<up-cell title="气象中文描述" :label="details.weatherDescribe || '-'"></up-cell>
<up-cell title="平均风速" :value="details.windfs || '-'"></up-cell>
<up-cell title="最大风速" :value="details.windzf || '-'"></up-cell>
<up-cell title="预计开始时间" :value="details.startTime || '-'"></up-cell>
<up-cell title="预计解除时间" :value="details.endTime || '-'"></up-cell>
</up-cell-group>
</view>
<global-page
title="气象信息"
isDataList
refresherEnabled
loadingMoreEnabled
auto
:params="{ terminal: query.terminal }"
:api="getTerminalWeatherListApi"
:padding="24"
>
<template #default="{ item }">
<template v-for="(option, index) in item.weatherList" :key="index">
<view class="mocp-cell">
<view class="mocp-title">报文生成时间:{{ option.generateTime || '-' }}</view>
<up-cell-group>
<up-cell title="气象类型" :value="useGetDictByValue('wdm_alarmcategory', option.weatherType) || '-'"></up-cell>
<up-cell title="气象中文描述" :label="option.weatherDescribe || '-'"></up-cell>
<up-cell title="平均风速" :value="option.windfs || '-'"></up-cell>
<up-cell title="最大风速" :value="option.windzf || '-'"></up-cell>
<up-cell title="预计开始时间" :value="option.startTime || '-'"></up-cell>
<up-cell title="预计解除时间" :value="option.endTime || '-'"></up-cell>
</up-cell-group>
</view>
</template>
</template>
</global-page>
</template>
<script setup>
import { getTerminalWeatherListApi } from 'mocp/api/windDamageManagement'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import { ref } from 'vue'
const details = ref({
deleted: '0',
endTime: '2024-10-20 08:00:00',
generateTime: '2024-10-06 02:29:02',
id: '1842633935596224514',
issued: '1',
msgType: '预报',
startTime: '2024-10-07 06:00:00',
terminal: 'MEL',
terminalType: '3',
weatherDescribe: 'FT: 07日06:00至07日08:00: 320度 9米/秒,阵风15米/秒',
weatherSource: '0',
weatherType: 'StrongWind',
windfs: '9',
windzf: '15'
})
const query = defineProps(['id'])
</script>
<style lang="scss" scoped>
.mocp-cell {
background: #fff;
}
.mocp-title {
color: $mocp-text-5;
font-size: 24rpx;
padding: 20rpx 0;
background: #f7f8fa;
}
</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