Commit c8a7ddfa by pangchong

fix: bug修复

parent 87e3107b
<template>
<view class="global-card" :class="class" :style="style">
<view class="global-card-title" :style="getTitleStyle">
<view class="global-card-title" :style="getTitleStyle" v-if="showTitle">
<view class="left u-line-1">
<view class="txt">{{ title }}</view>
</view>
......@@ -9,7 +9,7 @@
<up-icon name="arrow-right" size="16"></up-icon>
</view>
</view>
<view class="global-card-content" v-if="showContent">
<view class="global-card-content" :style="getContentStyle" v-if="showContent">
<slot></slot>
</view>
</view>
......@@ -30,6 +30,10 @@ const ps = defineProps({
return {}
}
},
showTitle: {
type: Boolean,
default: true
},
title: {
type: String,
default: ''
......@@ -57,6 +61,14 @@ const getTitleStyle = computed(() => {
}
return _style
})
const getContentStyle = computed(() => {
const _style = { ...ps.contentStyle }
if (ps.showTitle) {
_style['border-top'] = '2rpx solid #f4f4f4'
_style['padding-top'] = '16rpx'
}
return _style
})
const handleTitleClick = () => {
es('handleTitleClick')
}
......@@ -90,8 +102,6 @@ const handleTitleClick = () => {
}
}
&-content {
border-top: 2rpx solid #f4f4f4;
padding-top: 16rpx;
line-height: 40rpx;
color: $mocp-text-4;
}
......
......@@ -11,14 +11,14 @@
show-refresher-update-time
v-if="firstLoaded || isCurrentPage"
ref="paging"
v-model="getDataList"
v-model="dataList"
@query="queryList"
:fixed="false"
>
<template #empty>
<global-empty></global-empty>
</template>
<slot :dataList="getDataList"></slot>
<slot :dataList="dataList"></slot>
</z-paging>
</view>
</template>
......@@ -139,7 +139,10 @@ const queryList = (pageIndex, pageSize) => {
ps.api(params, { loading: true })
.then((res) => {
if (res.code == 200 || res.list?.length) {
const data = res.list || res.data?.list || res?.data || []
let data = res.list || res.data?.list || res?.data || []
if (ps.transformData) {
data = ps.transformData(data) || []
}
if (ps.localPaging) {
paging.value?.setLocalPaging(data)
} else {
......@@ -157,21 +160,8 @@ const queryList = (pageIndex, pageSize) => {
paging.value?.complete(false)
}
}
//获取数据
const getDataList = computed({
get: () => {
if (ps.transformData) {
return ps.transformData(dataList.value) || []
} else {
return dataList.value
}
},
set: (value) => {
dataList.value = value
}
})
defineExpose({
getDataList,
dataList,
reload: () => {
paging.value?.reload()
},
......
......@@ -2,7 +2,7 @@
<!-- 全局page 不带tab切换-->
<z-paging
ref="paging"
v-model="getDataList"
v-model="dataList"
:auto="auto"
:fixed="fixed"
:height="height"
......@@ -17,7 +17,7 @@
:paging-style="getPagingStyle"
:default-page-size="pageSize"
>
<template #empty v-if="auto && !getDataList.length">
<template #empty v-if="auto && !dataList.length">
<global-empty></global-empty>
</template>
<!-- 头部 -->
......@@ -49,7 +49,7 @@
<view class="mocp-content" :style="getStyle">
<template v-if="isDataList || localData">
<up-checkbox-group v-model="chooseValue" v-if="chooseDataType == 'checkbox'">
<template v-for="(item, index) in getDataList" :key="index">
<template v-for="(item, index) in dataList" :key="index">
<up-checkbox :name="index" v-if="chooseDataType == 'checkbox'">
<template #label>
<slot :item="item" :index="index"></slot>
......@@ -57,7 +57,7 @@
</up-checkbox>
</template>
</up-checkbox-group>
<template v-for="(item, index) in getDataList" :key="index" v-else>
<template v-for="(item, index) in dataList" :key="index" v-else>
<slot :item="item" :index="index"></slot>
</template>
</template>
......@@ -294,7 +294,7 @@ const scroll = () => {
//监听选择
const chooseValue = ref([])
watch(chooseValue, (value) => {
let data = value.map((index) => getDataList.value[index])
let data = value.map((index) => dataList.value[index])
if (ps.mapFieldName) {
data = data.map((v) => v[ps.mapFieldName]).join(ps.mapFieldSplit)
}
......@@ -317,7 +317,10 @@ const queryList = (pageIndex, pageSize) => {
ps.api(params, { loading: true })
.then((res) => {
if (res.code == 200 || res.list?.length) {
const data = res.list || res.data?.list || res?.data || []
let data = res.list || res.data?.list || res?.data || []
if (ps.transformData) {
data = ps.transformData(data) || []
}
if (ps.localPaging) {
paging.value?.setLocalPaging(data)
} else {
......@@ -341,19 +344,6 @@ const queryList = (pageIndex, pageSize) => {
}
es('query', { pageIndex, pageSize })
}
//获取数据
const getDataList = computed({
get: () => {
if (ps.transformData) {
return ps.transformData(dataList.value) || []
} else {
return dataList.value
}
},
set: (value) => {
dataList.value = value
}
})
//点击左边插槽
const handleLeftClick = () => {
if (ps.navLeftClick == 'default') {
......
......@@ -5,15 +5,21 @@ export const aog_status = [
{ text: '-', class: 'mocp-color-text-4', value: 3 }
]
export const aog_bBstatus = [
{ text: '未完成', class: 'mocp-color-warning-6', value: 0 },
{ text: '已完成', class: 'mocp-color-success-6', value: 2 },
{ text: '-', class: 'mocp-color-text-4', value: 3 }
]
export const aogDetails_status = [
{ text: '未到位', class: 'mocp-color-warning-6', value: '0' },
{ text: '已到位', class: 'mocp-color-success-6', value: '1' }
]
export const bbDetails_status = [
{ text: '开始施工', class: 'mocp-color-primary-6', value: '0' },
{ text: '正在施工', class: 'mocp-color-warning-6', value: '0' },
{ text: '已完成', class: 'mocp-color-success-6', value: '1' },
{ text: '-', class: 'mocp-color-text-4', value: '-1' }
{ text: '-', class: 'mocp-color-text-4', value: '2' }
]
export const otherDetails_status = [
......
......@@ -14,6 +14,12 @@ const ps = defineProps({
size: {
type: [String, Number],
default: 34
},
CLOSEStyle: {
type: Object,
default: () => {
return {}
}
}
})
const getStyle = computed(() => {
......@@ -23,6 +29,7 @@ const getStyle = computed(() => {
}
if (ps.value == 'CLOSE') {
_style.color = '#F53F3F'
Object.assign(_style, ps.CLOSEStyle)
}
if (ps.value == 'OI') {
_style.color = '#00B42A'
......
......@@ -3,3 +3,14 @@ export const sa_state = [
{ label: 'OPEN', value: '1' },
{ label: 'CLOSE', value: '2' }
]
export const sa_isSuccess = [
{ label: '已拒绝', value: '1' },
{ label: '待接收', value: '2' },
{ label: '已接收', value: '3' }
]
export const sa_isSuccessType = [
{ label: 'danger', value: '1' },
{ label: 'primary', value: '2' },
{ label: 'success', value: '3' }
]
......@@ -96,8 +96,6 @@ const useAogStore = defineStore('aog', {
if (state.bbData && state.bbData.length) {
if (state.bbData.every((a) => a.realityCompleteTime)) {
bbStatus = 2
} else if (state.bbData.some((a) => a.realityCompleteTime)) {
bbStatus = 1
} else {
bbStatus = 0
}
......
......@@ -444,7 +444,7 @@
{
"path": "pages/modules/mocp/panel/mco/step-back",
"style": {
"navigationBarTitleText": "步骤反馈"
"navigationBarTitleText": "步骤详情"
}
}
],
......@@ -477,4 +477,4 @@
}
]
}
}
\ No newline at end of file
}
......@@ -8,7 +8,7 @@
<up-cell title="实际完成时间" :value="getBbDetails.realityCompleteTime || '-'"></up-cell>
<up-cell title="状态">
<template #value>
<global-text-status :value="getBbDetails.state" dictkey="bbDetails_status"></global-text-status>
<global-text-status :value="getStatus(getBbDetails)" dictkey="bbDetails_status"></global-text-status>
</template>
</up-cell>
<up-cell title="步骤" :label="getBbDetails.stepContent || '-'"></up-cell>
......@@ -44,6 +44,12 @@ import { updateAogConstructionApi } from 'mocp/api/aog'
const aogStore = useAogStore()
const { getBbDetails, details } = storeToRefs(aogStore)
const getStatus = (row) => {
if (!row.startTime && !row.realityCompleteTime) {
return '2'
}
return row.startTime && row.realityCompleteTime ? '1' : '0'
}
//修改状态
const showAction = ref(false)
const showConfirm = ref(false)
......
......@@ -2,7 +2,7 @@
<global-page :padding="24" title="AOG施工列表" auto :localData="bbData">
<template #default="{ item, index }">
<global-card :title="`步骤${index + 1}`" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.state" dictkey="bbDetails_status"></global-text-status>
<global-text-status :value="getStatus(item)" dictkey="bbDetails_status"></global-text-status>
</global-card>
</template>
</global-page>
......@@ -19,5 +19,11 @@ const goTo = (index) => {
aogStore.setState('bbIndex', index)
})
}
const getStatus = (row) => {
if (!row.startTime && !row.realityCompleteTime) {
return '2'
}
return row.startTime && row.realityCompleteTime ? '1' : '0'
}
</script>
<style lang="scss" scoped></style>
......@@ -33,7 +33,7 @@
<view class="txt">{{ timeStampFormat(workBench?.createdTime, { format: 'YYYY/MM/DD' }) }}</view>
</view>
</view>
<global-card title="信息通报">
<global-card :showTitle="false">
<view class="card-details">
<view class="card-details-item">
<view class="title">故障描述:</view>
......@@ -59,7 +59,7 @@
<global-text-status :value="aogStore.getPersonnelStatus" dictkey="aog_status"></global-text-status>
</global-card>
<global-card title="施工情况" @handleTitleClick="goTo('/panel/aog/construction-list')">
<global-text-status :value="aogStore.getBbStatus" dictkey="aog_status"></global-text-status>
<global-text-status :value="aogStore.getBbStatus" dictkey="aog_bBstatus"></global-text-status>
</global-card>
<global-card title="其他特殊保障" @handleTitleClick="goTo('/panel/aog/other-list')">
<global-text-status :value="aogStore.getOtherStatus" dictkey="aog_status"></global-text-status>
......
......@@ -18,7 +18,7 @@
<view class="item" @tap="goDetails(item)">
<view class="item-title">
<view class="left">
<custom-state :value="useGetDictByValue('aog_state', item.state)"></custom-state>
<custom-state :value="useGetDictByValue('aog_state', item.state)" :CLOSEStyle="{ color: '#1d2129' }"></custom-state>
<text class="txt u-line-1" v-if="item.aogNum">{{ item.aogNum }}</text>
</view>
</view>
......
......@@ -38,7 +38,7 @@
<view class="txt">{{ timeStampFormat(details.executionDate, { format: 'YYYY/MM/DD' }) }}</view>
</view>
</view>
<global-card title="信息通报">
<global-card :showTitle="false">
<view class="card-details">
<view class="card-details-item">
<view class="title">故障描述:</view>
......
<template>
<global-page title="步骤反馈" showFooterBtn footerBtnText="确认提交" @handleFooterClick="handleFooterClick">
<view class="mocp-cell" v-if="getStepDetails">
<view class="mocp-title">步骤详情</view>
<up-cell-group>
<up-cell title="MCO编号" :value="getStepDetails.mcoNumber"></up-cell>
<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-group>
</view>
<view class="mocp-cell">
<view class="mocp-title">反馈</view>
<view class="mocp-form">
<up-form labelPosition="left" labelWidth="auto">
<up-form-item label="状态" prop="state" :borderBottom="true">
<global-picker v-model.number="formData.state" pickAlign="right" clearable dictkey="mco_stepState"></global-picker>
</up-form-item>
<up-form-item label="工作人" :borderBottom="true">
<custom-admin-picker
pickAlign="right"
clearable
v-model="formData.staff"
valueField="label"
:searchValue="formData.staff"
></custom-admin-picker>
</up-form-item>
<up-form-item label="实际工时" :borderBottom="true">
<up-input v-model="formData.stateP" inputAlign="right" border="none" placeholder="请输入" clearable type="number">
<template #suffix>人数</template>
</up-input>
<up-input v-model="formData.stateH" inputAlign="right" border="none" placeholder="请输入" clearable type="number">
<template #suffix>小时</template>
</up-input>
</up-form-item>
<up-form-item label="反馈内容" :borderBottom="true" labelPosition="top">
<up-textarea placeholder="请输入" :height="40" border="none" v-model="formData.content"></up-textarea>
</up-form-item>
<up-form-item label="附件" :borderBottom="true" labelPosition="top">
<view style="margin-top: 24rpx">
<global-upload
:fileList="getStepDetails.backList?.contentFile || ''"
v-model="formData.contentFile"
mapFieldName="id"
:multiple="false"
></global-upload>
</view>
</up-form-item>
</up-form>
<global-page title="步骤详情" :showFooterBtn="false" footerBtnText="确认提交" @handleFooterClick="handleFooterClick">
<template v-if="getStepDetails">
<view class="mocp-cell">
<!-- <view class="mocp-title">步骤详情</view> -->
<up-cell-group>
<up-cell title="MCO编号" :value="getStepDetails.mcoNumber"></up-cell>
<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-group>
</view>
</view>
<view class="mocp-cell" style="display: none">
<view class="mocp-title">反馈</view>
<view class="mocp-form">
<up-form labelPosition="left" labelWidth="auto">
<up-form-item label="状态" prop="state" :borderBottom="true">
<global-picker v-model.number="formData.state" pickAlign="right" clearable dictkey="mco_stepState"></global-picker>
</up-form-item>
<up-form-item label="工作人" :borderBottom="true">
<custom-admin-picker
pickAlign="right"
clearable
v-model="formData.staff"
valueField="label"
:searchValue="formData.staff"
></custom-admin-picker>
</up-form-item>
<up-form-item label="实际工时" :borderBottom="true">
<up-input v-model="formData.stateP" inputAlign="right" border="none" placeholder="请输入" clearable type="number">
<template #suffix>人数</template>
</up-input>
<up-input v-model="formData.stateH" inputAlign="right" border="none" placeholder="请输入" clearable type="number">
<template #suffix>小时</template>
</up-input>
</up-form-item>
<up-form-item label="反馈内容" :borderBottom="true" labelPosition="top">
<up-textarea placeholder="请输入" :height="40" border="none" v-model="formData.content"></up-textarea>
</up-form-item>
<up-form-item label="附件" :borderBottom="true" labelPosition="top">
<view style="margin-top: 24rpx">
<global-upload
:fileList="getStepDetails.backList?.contentFile || ''"
v-model="formData.contentFile"
mapFieldName="id"
:multiple="false"
></global-upload>
</view>
</up-form-item>
</up-form>
</view>
</view>
</template>
</global-page>
</template>
......@@ -56,7 +58,7 @@
import { storeToRefs } from 'pinia'
import useMcoStore from 'mocp/store/mco'
import { timeStampFormat } from 'mocp/utils/tool'
import { reactive, ref } from 'vue'
import { reactive } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { addBackApi } from 'mocp/api/mco'
......@@ -74,8 +76,8 @@ onLoad(() => {
const details = getStepDetails.value?.backList || {}
formData.state = details.state
formData.staff = details.staff
formData.stateP = details.actualWork.split('X')[0]
formData.stateH = details.actualWork.split('X')[1]
formData.stateP = details.actualWork?.split('X')[0]
formData.stateH = details.actualWork?.split('X')[1]
formData.content = details.content
})
//提交
......
......@@ -10,11 +10,21 @@
<custom-state :value="useGetDictByValue('sa_state', details.state)" :size="28"></custom-state>
</template>
</up-cell>
<up-cell title="状态">
<template #value>
<global-tag :type="useGetDictByValue('sa_isSuccessType', details.isSuccess)">
{{ useGetDictByValue('sa_isSuccess', details.isSuccess) }}
</global-tag>
</template>
</up-cell>
<up-cell title="机号" :value="details.machineNumber || '-'"></up-cell>
<up-cell title="机型" :value="details.model || '-'"></up-cell>
<up-cell title="相关席位" :value="details.relevantSeatsName || '-'"></up-cell>
<up-cell title="航司" :value="useGetDictByValue('', details.aviation, { data: baseStore.getAirlineSelect }) || '-'"></up-cell>
<up-cell title="航站" :value="details.terminal || '-'"></up-cell>
<up-cell title="ATA章节" :value="details.ata || '-'"></up-cell>
<up-cell title="专业" :value="getParamNameByValue('MajorCategory', details.specialty) || '-'"></up-cell>
<up-cell title="发动机型号" :value="details.engineModel || '-'"></up-cell>
<up-cell title="任务需求" :label="details.supportNeeds || '-'"></up-cell>
</up-cell-group>
</view>
......@@ -26,6 +36,7 @@ import { storeToRefs } from 'pinia'
import useSupportApplicationStore from 'mocp/store/support-application'
import { useGetDictByValue } from 'mocp/hooks/use-dict/useDict'
import useBaseStore from 'mocp/store/base'
import { getParamNameByValue } from 'mocp/hooks/use-params/useParams'
const baseStore = useBaseStore()
const supportApplicationStore = useSupportApplicationStore()
......
......@@ -47,7 +47,7 @@
</view>
</template>
<template #bottom>
<view class="footer-btn">
<view class="footer-btn" v-if="details">
<template
v-if="
details.sponsorId == userStore.userInfo?.realUserInfo.id ||
......
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