Commit 767fc66f by pangchong

feat: 防除冰

parent bba0285f
......@@ -84,8 +84,8 @@
<slot v-else></slot>
</view>
<!-- 底部 -->
<template #bottom>
<view class="footer-btn" v-if="showFooterBtn">
<template #bottom v-if="showBottom">
<view class="footer-btn" v-if="showFooterBtn" :style="{ visibility: showBottom ? 'visible' : 'hidden' }">
<global-button type="primary" size="large" @tap="handleFooterClick">{{ footerBtnText }}</global-button>
</view>
<slot name="bottom"></slot>
......@@ -476,6 +476,14 @@ defineExpose({
},
element: paging
})
//处理ios底部兼容问题
const showBottom = ref(true)
uni.$on('changeShowBottom', (boolean) => {
const systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform === 'ios') {
showBottom.value = !boolean
}
})
</script>
<script>
export default {
......
......@@ -287,6 +287,9 @@ watch(
},
{ immediate: true }
)
watch(show, (value) => {
uni.$emit('changeShowBottom', value)
})
//点击确定按钮
const confirm = (e) => {
show.value = false
......
......@@ -120,6 +120,7 @@ watch(
scrollTop.value = ps.distance > 0 ? ps.distance : oldScrollTop.value
})
}
uni.$emit('changeShowBottom', value)
}
)
const close = () => {
......
// 建议以文件名首字母作为前缀eb_
export const eb_deicingType = [
{ label: 'cleansurface I-BIO', value: 'cleansurface I-BIO' },
{ label: 'FCY-1A', value: 'FCY-1A' },
{ label: 'Cleanwing I', value: 'Cleanwing I' },
{ label: 'FCY-9311', value: 'FCY-9311' },
{ label: 'FCY-1Bio', value: 'FCY-1Bio' }
]
export const eb_antiicingMix = [
{ label: '25:75', value: '25:75' },
{ label: '30:70', value: '30:70' },
......@@ -22,14 +15,6 @@ export const eb_antiicingUnit = [
{ label: 'USG', value: 'USG' },
{ label: 'KG', value: 'KG' }
]
export const eb_antiicingType = [
{ label: 'Cleansurface1-B10', value: 'Cleansurface1-B10' },
{ label: 'FCY-1A', value: 'FCY-1A' },
{ label: 'Cleanwing II', value: 'Cleanwing II' },
{ label: 'FCY-9311', value: 'FCY-9311' },
{ label: 'FCY-2', value: 'FCY-2' },
{ label: 'FCY-4', value: 'FCY-4' }
]
export const eb_guaranteeUnit = [
{ label: '海技保障', value: '1' },
{ label: '非海技保障', value: '2' }
......
......@@ -60,7 +60,10 @@ const useAssignWorkStore = defineStore('assignWork', {
//是否领导
isPresenterUser(state) {
const userStore = useUserStore()
return state.details.presenterId == userStore.userInfo.id
if (state.details.presenterId) {
return state.details.presenterId.split(',').includes(userStore.userInfo.id)
}
return false
},
//获取分解计划
getDecompose(state) {
......
......@@ -3,6 +3,7 @@ import useUserStore from 'mocp/store/user'
// const baseURL = 'https://hna-platform.anyremote.cn' //测试
// const baseURL = 'https://moc.hnatechnic.com/api' //生产
// const baseURL = 'http://10.123.48.67/api' //Amms内网
// const baseURL = 'http://10.121.48.157/gky_mocp_bs/api' //北数高可用测试环境
const baseURL = 'https://hnaelbtest.hnatechnic.com/mocptest/api' //内网
class ServiceLoading {
......
......@@ -94,11 +94,11 @@
},
// mocp功能模块
{
"path": "pages/modules/mocp/login/index",
"style": {
"navigationBarTitleText": "登录"
}
},
"path": "pages/modules/mocp/login/index",
"style": {
"navigationBarTitleText": "登录"
}
},
{
"path": "pages/modules/mocp/panel/index",
"style": {
......
......@@ -3,7 +3,7 @@ export const loginFormRef = ref()
//表单数据
export const loginForm = reactive({
username: '', //devzj3
password: '', //Ifar_9527008 / Ifar2016_0525
password: '', //Ifar_SAFE_202506_13
verifyCode: ''
})
export const showLoad = ref(false)
......
......@@ -27,6 +27,32 @@ export const formData = reactive({
antiicingUnit2: '',
antiicingUnit3: '',
antiicingUnit4: '',
antiicing2CartNo1: '',
antiicing2CartNo2: '',
antiicing2CartNo3: '',
antiicing2CartNo4: '',
antiicing2Duration: '',
antiicing2EndTime: '',
antiicing2Mix: '100:0',
antiicing2Mix1: undefined,
antiicing2Mix2: undefined,
antiicing2Persion1: '',
antiicing2Persion2: '',
antiicing2Persion3: '',
antiicing2Persion4: '',
antiicing2Quantity1: undefined,
antiicing2Quantity2: undefined,
antiicing2Quantity3: undefined,
antiicing2Quantity4: undefined,
antiicing2QuantityTotal: undefined,
antiicing2StartTime: '',
antiicing2Type: '',
antiicing2Unit1: '',
antiicing2Unit2: '',
antiicing2Unit3: '',
antiicing2Unit4: '',
customerSignImg: '',
date: '',
deicingCartNo1: '',
......@@ -70,7 +96,9 @@ export const formData = reactive({
deicingFile: '',
deicingRemark: '',
antiicingFile: '',
antiicingRemark: ''
antiicingRemark: '',
antiicing2File: '',
antiicing2Remark: ''
})
export const rules = reactive({
......@@ -151,7 +179,11 @@ export const formRef = ref()
export const deicingFlag = ref(false)
export const showDeicing = ref(false)
export const deicingFile = ref([])
//防冰弹框
//防冰弹框1
export const antiicingFlag = ref(false)
export const showAntiicing = ref(false)
export const antiicingFile = ref([])
//防冰弹框2
export const antiicing2Flag = ref(false)
export const showAntiicing2 = ref(false)
export const antiicing2File = ref([])
import { getAirlineAcregApi } from 'mocp/api/electronicBill'
import { antiicingFile, antiicingFlag, deicingFile, deicingFlag, formData, formRef, showAntiicing, showDeicing } from './add.compositions'
import {
antiicing2File,
antiicing2Flag,
antiicingFile,
antiicingFlag,
deicingFile,
deicingFlag,
formData,
formRef,
showAntiicing,
showAntiicing2,
showDeicing
} from './add.compositions'
import { validateParameters } from 'mocp/utils/tool'
import { showToast } from 'mocp/utils/message'
......@@ -27,6 +39,9 @@ export const getDeicingFile = (value) => {
export const getAntiicingFile = (value) => {
antiicingFile.value = value
}
export const getAntiicing2File = (value) => {
antiicing2File.value = value
}
export const deicingValidate = () => {
if (!formData.modelType) {
return uni.$mocpMessage.warning('请选择机型类别')
......@@ -60,22 +75,50 @@ export const antiicingValidate = () => {
if (!formData.weatherToday) {
return uni.$mocpMessage.warning('请选择当日天气')
}
/******************防冰记录1******************/
//验证防冰混合比(Other)
if (formData.antiicingMix == 'Other' && (!formData.antiicingMix1 || !formData.antiicingMix2)) {
return uni.$mocpMessage.warning('请填写防冰自定义混合比')
return uni.$mocpMessage.warning('请填写防冰记录1-防冰自定义混合比')
}
//验证防冰记录完整性
if (!validateParameters(formData.antiicingCartNo1, formData.antiicingPersion1, formData.antiicingQuantity1, formData.antiicingUnit1)) {
return uni.$mocpMessage.warning('请完整填写第1条防冰记录')
return uni.$mocpMessage.warning('请完整填写防冰记录1-第1条防冰记录')
}
if (!validateParameters(formData.antiicingCartNo2, formData.antiicingPersion2, formData.antiicingQuantity2, formData.antiicingUnit2)) {
return uni.$mocpMessage.warning('请完整填写第2条防冰记录')
return uni.$mocpMessage.warning('请完整填写防冰记录1-第2条防冰记录')
}
if (!validateParameters(formData.antiicingCartNo3, formData.antiicingPersion3, formData.antiicingQuantity3, formData.antiicingUnit3)) {
return uni.$mocpMessage.warning('请完整填写第3条防冰记录')
return uni.$mocpMessage.warning('请完整填写防冰记录1-第3条防冰记录')
}
if (!validateParameters(formData.antiicingCartNo4, formData.antiicingPersion4, formData.antiicingQuantity4, formData.antiicingUnit4)) {
return uni.$mocpMessage.warning('请完整填写第4条防冰记录')
return uni.$mocpMessage.warning('请完整填写防冰记录1-第4条防冰记录')
}
return true
}
export const antiicing2Validate = () => {
if (!formData.modelType) {
return uni.$mocpMessage.warning('请选择机型类别')
}
if (!formData.weatherToday) {
return uni.$mocpMessage.warning('请选择当日天气')
}
/******************防冰记录2******************/
//验证防冰混合比(Other)
if (formData.antiicing2Mix == 'Other' && (!formData.antiicing2Mix1 || !formData.antiicing2Mix2)) {
return uni.$mocpMessage.warning('请填写防冰记录2-防冰自定义混合比')
}
//验证防冰记录完整性
if (!validateParameters(formData.antiicing2CartNo1, formData.antiicing2Persion1, formData.antiicing2Quantity1, formData.antiicing2Unit1)) {
return uni.$mocpMessage.warning('请完整填写防冰记录2-第1条防冰记录')
}
if (!validateParameters(formData.antiicing2CartNo2, formData.antiicing2Persion2, formData.antiicing2Quantity2, formData.antiicing2Unit2)) {
return uni.$mocpMessage.warning('请完整填写防冰记录2-第2条防冰记录')
}
if (!validateParameters(formData.antiicing2CartNo3, formData.antiicing2Persion3, formData.antiicing2Quantity3, formData.antiicing2Unit3)) {
return uni.$mocpMessage.warning('请完整填写防冰记录2-第3条防冰记录')
}
if (!validateParameters(formData.antiicing2CartNo4, formData.antiicing2Persion4, formData.antiicing2Quantity4, formData.antiicing2Unit4)) {
return uni.$mocpMessage.warning('请完整填写防冰记录2-第4条防冰记录')
}
return true
}
......@@ -87,12 +130,18 @@ export const handleFooterClick = async () => {
if (!antiicingValidate()) {
return
}
if (!antiicing2Validate()) {
return
}
//是否点击提交验证除冰/防冰用量
if (!deicingFlag.value && formData.deicingQuantityTotal > 0) {
return uni.$mocpMessage.warning('请提交除冰记录')
}
if (!antiicingFlag.value && formData.antiicingQuantityTotal > 0) {
return uni.$mocpMessage.warning('请提交防冰记录')
return uni.$mocpMessage.warning('请提交防冰记录1')
}
if (!antiicing2Flag.value && formData.antiicing2QuantityTotal > 0) {
return uni.$mocpMessage.warning('请提交防冰记录2')
}
uni.$mocpJump.navigateTo('/panel/electronicBill/deicing/sign')
}
......@@ -179,6 +228,20 @@ export const submitAntiicing = () => {
}
}
}
export const submitAntiicing2 = () => {
if (!antiicing2Validate()) {
return
}
const limit = getLimit()
if (formData.antiicing2QuantityTotal && formData.antiicing2QuantityTotal > 0) {
if (formData.antiicing2QuantityTotal > limit[1]) {
showAntiicing2.value = true
} else {
antiicing2Flag.value = true
showToast('提交成功')
}
}
}
export const confirmAntiicing = () => {
if (!formData.antiicingRemark) {
return showToast('请填写超量使用原因')
......@@ -190,3 +253,14 @@ export const confirmAntiicing = () => {
antiicingFlag.value = true
showAntiicing.value = false
}
export const confirmAntiicing2 = () => {
if (!formData.antiicing2Remark) {
return showToast('请填写超量使用原因')
}
if (!formData.antiicing2File) {
return showToast('至少上传一张图片')
}
showToast('提交成功')
antiicing2Flag.value = true
showAntiicing2.value = false
}
......@@ -100,6 +100,32 @@ export const resetData = () => {
antiicingUnit2: '',
antiicingUnit3: '',
antiicingUnit4: '',
antiicing2CartNo1: '',
antiicing2CartNo2: '',
antiicing2CartNo3: '',
antiicing2CartNo4: '',
antiicing2Duration: '',
antiicing2EndTime: '',
antiicing2Mix: '100:0',
antiicing2Mix1: undefined,
antiicing2Mix2: undefined,
antiicing2Persion1: '',
antiicing2Persion2: '',
antiicing2Persion3: '',
antiicing2Persion4: '',
antiicing2Quantity1: undefined,
antiicing2Quantity2: undefined,
antiicing2Quantity3: undefined,
antiicing2Quantity4: undefined,
antiicing2QuantityTotal: undefined,
antiicing2StartTime: '',
antiicing2Type: '',
antiicing2Unit1: '',
antiicing2Unit2: '',
antiicing2Unit3: '',
antiicing2Unit4: '',
customerSignImg: '',
date: Day().valueOf(),
deicingCartNo1: '',
......@@ -143,7 +169,9 @@ export const resetData = () => {
deicingFile: '',
deicingRemark: '',
antiicingFile: '',
antiicingRemark: ''
antiicingRemark: '',
antiicing2File: '',
antiicing2Remark: ''
})
showDeicing.value = false
showAntiicing.value = false
......
......@@ -47,12 +47,14 @@ import useBaseStore from 'mocp/store/base'
import useUserStore from 'mocp/store/user'
import { ref } from 'vue'
import { onUnload } from '@dcloudio/uni-app'
import { formData } from './constants/add.compositions'
import { antiicingFile, deicingFile, formData } from './constants/add.compositions'
const baseStore = useBaseStore()
const userStore = useUserStore()
const goDetails = (data) => {
Object.assign(formData, data)
deicingFile.value = data.deicingFileList
antiicingFile.value = data.antiicingFileList
uni.$mocpJump.navigateTo('/panel/electronicBill/deicing/add')
}
//刷新
......
......@@ -34,7 +34,6 @@ import { useDrawSignature } from 'mocp/hooks/use-sign/useSign'
import { canvasImage } from './constants/sign.compositions'
import { handleSubmit } from './constants/sign.functionals'
import { formData } from './constants/add.compositions'
import { onBeforeUnmount } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
const { isSigned, touchStart, touchMove, touchEnd, clear, getPath } = useDrawSignature('canvas', {
......@@ -59,10 +58,7 @@ const handleClear = () => {
canvasImage.value = ''
clear()
}
onBeforeUnmount(() => {
handleClear()
formData.customerSignImg = ''
})
</script>
<style lang="scss" scoped>
.mocp-sign,
......
......@@ -150,13 +150,13 @@
<view class="mocp-title">特种车辆、设备、工具租用记录</view>
<view class="mocp-form">
<up-form-item label="金工人员工时" prop="jgrygs" :borderBottom="true">
<global-number-input v-model="formData.jgrygs" placeholder="请输入(单位/小时)" :precision="2"></global-number-input>
<up-input v-model="formData.jgrygs" placeholder="请输入(人数*小时)" inputAlign="right" border="none" clearable></up-input>
</up-form-item>
<up-form-item label="普通工作梯(2米以下)" prop="ptgzt" :borderBottom="true">
<global-number-input v-model="formData.ptgzt" placeholder="请输入(单位/次)"></global-number-input>
</up-form-item>
<up-form-item label="高空工作梯(2米以上)" prop="gkgzt" :borderBottom="true">
<global-number-input v-model="formData.lkgzt" placeholder="请输入(单位/次)"></global-number-input>
<global-number-input v-model="formData.gkgzt" placeholder="请输入(单位/次)"></global-number-input>
</up-form-item>
<up-form-item label="机身千斤顶" prop="jsqjd" :borderBottom="true">
<global-number-input v-model="formData.jsqjd" placeholder="请输入(单位/次)"></global-number-input>
......@@ -211,7 +211,7 @@
<global-number-input v-model="formData.cydlgjcs" placeholder="请输入(单位/次)"></global-number-input>
</up-form-item>
<up-form-item label="NDT人员工时" prop="ndtrygs" :borderBottom="true">
<global-number-input v-model="formData.ndtrygs" placeholder="请输入(单位/小时)" :precision="2"></global-number-input>
<up-input v-model="formData.ndtrygs" placeholder="请输入(人数*小时)" inputAlign="right" border="none" clearable></up-input>
</up-form-item>
<!-- NDT/孔探设备 -->
<up-form-item label="NDT/孔探设备" :borderBottom="true"></up-form-item>
......
......@@ -8,6 +8,13 @@
<up-cell title="创建时间" :value="timeStampFormat(getStepDetails.creationTime)"></up-cell>
<up-cell title="计划工时" :value="getStepDetails.plannedWork"></up-cell>
<up-cell title="步骤描述" :label="getStepDetails.stepContent || '无'"></up-cell>
<up-cell title="附件">
<template #label>
<view style="margin-top: 16rpx">
<global-upload :fileList="getStepDetails.stepFile" :showUpload="false"></global-upload>
</view>
</template>
</up-cell>
</up-cell-group>
</view>
<view class="mocp-cell">
......
......@@ -66,6 +66,15 @@
<up-collapse-item title="工作内容" name="2">
<view class="mocp-cell">
<up-cell-group>
<up-cell>
<template #title>
<view>
注:1-10、12条适用于航后及停场飞机(
<text class="mocp-color-primary-7">含长过站停场</text>
)。11、12适用于过站运行的飞机。
</view>
</template>
</up-cell>
<up-cell title="开始时间">
<template #value>
<global-date-picker v-model="formData.startTime" :disabled="getDisabled"></global-date-picker>
......
......@@ -226,7 +226,7 @@ export const menuList = ref([
default: false,
count: 0,
url: '/panel/workSupervision/list',
apiPath: '/terminalQualityManagement'
apiPath: ''
},
// 定检管理
{
......
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