Commit 0fdd825b by pangchong

feat: 全局组件优化

parent 067824c2
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
@query="queryList" @query="queryList"
:fixed="false" :fixed="false"
> >
<template #empty v-if="!getDataList.length"> <template #empty>
<global-empty></global-empty> <global-empty></global-empty>
</template> </template>
<slot :dataList="getDataList"></slot> <slot :dataList="getDataList"></slot>
...@@ -146,6 +146,7 @@ const queryList = (pageIndex, pageSize) => { ...@@ -146,6 +146,7 @@ const queryList = (pageIndex, pageSize) => {
paging.value?.complete(data) paging.value?.complete(data)
} }
} else { } else {
paging.value?.complete(false)
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
} }
}) })
...@@ -160,7 +161,7 @@ const queryList = (pageIndex, pageSize) => { ...@@ -160,7 +161,7 @@ const queryList = (pageIndex, pageSize) => {
const getDataList = computed({ const getDataList = computed({
get: () => { get: () => {
if (ps.transformData) { if (ps.transformData) {
return ps.transformData(dataList.value) return ps.transformData(dataList.value) || []
} else { } else {
return dataList.value return dataList.value
} }
......
...@@ -65,7 +65,9 @@ ...@@ -65,7 +65,9 @@
:transformData="transformData" :transformData="transformData"
> >
<template #="{ dataList }"> <template #="{ dataList }">
<slot :dataList="dataList"></slot> <template v-for="(item, index) in dataList" :key="index">
<slot :item="item" :index="index"></slot>
</template>
</template> </template>
</global-page-swiper-item> </global-page-swiper-item>
</swiper-item> </swiper-item>
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
:loading-more-enabled="loadingMoreEnabled" :loading-more-enabled="loadingMoreEnabled"
:back-to-top-bottom="backToTopBottom" :back-to-top-bottom="backToTopBottom"
show-refresher-update-time show-refresher-update-time
:hide-empty-view="!isDataList"
@query="queryList" @query="queryList"
@scroll="scroll" @scroll="scroll"
:paging-style="getPagingStyle" :paging-style="getPagingStyle"
...@@ -48,8 +47,10 @@ ...@@ -48,8 +47,10 @@
</template> </template>
<!-- 滚动内容 --> <!-- 滚动内容 -->
<view class="mocp-content" :style="getStyle"> <view class="mocp-content" :style="getStyle">
<slot :dataList="getDataList" v-if="isDataList"></slot> <template v-for="(item, index) in getDataList" :key="index" v-if="isDataList || localData">
<slot></slot> <slot :item="item" :index="index"></slot>
</template>
<slot v-else></slot>
</view> </view>
<!-- 底部 --> <!-- 底部 -->
<template #bottom> <template #bottom>
...@@ -290,6 +291,7 @@ const queryList = (pageIndex, pageSize) => { ...@@ -290,6 +291,7 @@ const queryList = (pageIndex, pageSize) => {
paging.value?.complete(data) paging.value?.complete(data)
} }
} else { } else {
paging.value?.complete(false)
uni.$mocpMessage.error(res.message) uni.$mocpMessage.error(res.message)
} }
}) })
...@@ -301,11 +303,7 @@ const queryList = (pageIndex, pageSize) => { ...@@ -301,11 +303,7 @@ const queryList = (pageIndex, pageSize) => {
} }
} else { } else {
if (ps.localData) { if (ps.localData) {
if (Array.isArray(ps.localData)) { paging.value?.complete(ps.localData || [])
paging.value?.complete(ps.localData)
} else {
paging.value?.complete([])
}
} }
} }
es('query', { pageIndex, pageSize }) es('query', { pageIndex, pageSize })
...@@ -314,7 +312,7 @@ const queryList = (pageIndex, pageSize) => { ...@@ -314,7 +312,7 @@ const queryList = (pageIndex, pageSize) => {
const getDataList = computed({ const getDataList = computed({
get: () => { get: () => {
if (ps.transformData) { if (ps.transformData) {
return ps.transformData(dataList.value) return ps.transformData(dataList.value) || []
} else { } else {
return dataList.value return dataList.value
} }
......
<template> <template>
<global-page :padding="24" title="AOG施工列表"> <global-page :padding="24" title="AOG施工列表" auto :localData="bbData">
<template v-for="(item, index) in bbData" :key="item.id"> <template #default="{ item, index }">
<global-card :title="`步骤${index + 1}`" titleSuffix="查看详情" @handleTitleClick="goTo(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="item.state" dictkey="bbDetails_status"></global-text-status>
</global-card> </global-card>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getAogListApi" :api="getAogListApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('aog_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('aog_state', item.state)"></custom-state>
......
<template> <template>
<global-page :padding="24" :title="getTitle" auto :localData="getMaterialData"> <global-page :padding="24" :title="getTitle" auto :localData="getMaterialData">
<template v-for="(item, index) in getMaterialData" :key="item.id"> <template #default="{ item, index }">
<global-card :title="item.pn" titleSuffix="查看详情" @handleTitleClick="goTo(index)"> <global-card :title="item.pn" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.actualArrivalTime ? '1' : '0'" dictkey="aogDetails_status"></global-text-status> <global-text-status :value="item.actualArrivalTime ? '1' : '0'" dictkey="aogDetails_status"></global-text-status>
</global-card> </global-card>
</template> </template>
<!-- <template #="{ dataList }">
<template v-for="(item, index) in dataList" :key="item.id">
<global-card :title="item.pn" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.actualArrivalTime ? '1' : '0'" dictkey="aogDetails_status"></global-text-status>
</global-card>
</template>
</template> -->
</global-page> </global-page>
</template> </template>
......
<template> <template>
<global-page :padding="24" title="其他特殊保障列表"> <global-page :padding="24" title="其他特殊保障列表" auto :localData="oData">
<template v-for="(item, index) in oData" :key="item.id"> <template #default="{ item, index }">
<global-card :title="oType[item.key]" titleSuffix="查看详情" @handleTitleClick="goTo(index)"> <global-card :title="oType[item.key]" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.state || '1'" dictkey="otherDetails_status"></global-text-status> <global-text-status :value="item.state || '1'" dictkey="otherDetails_status"></global-text-status>
</global-card> </global-card>
......
<template> <template>
<global-page :padding="24" title="人员保障列表"> <global-page :padding="24" title="人员保障列表" auto :localData="pData">
<template v-for="(item, index) in pData" :key="item.id"> <template #default="{ item, index }">
<global-card :title="item.personnel" titleSuffix="查看详情" @handleTitleClick="goTo(index)"> <global-card :title="item.personnel" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.state" dictkey="aogDetails_status"></global-text-status> <global-text-status :value="item.state" dictkey="aogDetails_status"></global-text-status>
</global-card> </global-card>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
title="考核记录" title="考核记录"
@handleRightClick="handleRightClick" @handleRightClick="handleRightClick"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view v-for="item in dataList" :key="item.id" class="item" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="desc"> <view class="desc">
<custom-state :value="item.status == 1 ? 'OPEN' : 'CLOSE'"></custom-state> <custom-state :value="item.status == 1 ? 'OPEN' : 'CLOSE'"></custom-state>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
navRightIcon="saixuan-01" navRightIcon="saixuan-01"
@handleRightClick="handleRightClick" @handleRightClick="handleRightClick"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="item.state == 1 ? 'OPEN' : 'CLOSE'"></custom-state> <custom-state :value="item.state == 1 ? 'OPEN' : 'CLOSE'"></custom-state>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
{{ item.taskDescribe }} {{ item.taskDescribe }}
</view> </view>
<view class="item-footer"> <view class="item-footer">
<view class="label"> <view class="label" style="min-width: 400rpx">
<global-icon icon="calendar"></global-icon> <global-icon icon="calendar"></global-icon>
<text class="txt"> <text class="txt">
{{ timeStampFormat(item.startTime, { format: 'YYYY/MM/DD' }) }} {{ timeStampFormat(item.startTime, { format: 'YYYY/MM/DD' }) }}
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
{{ timeStampFormat(item.feedbackTime, { format: 'YYYY/MM/DD' }) }} {{ timeStampFormat(item.feedbackTime, { format: 'YYYY/MM/DD' }) }}
</text> </text>
</view> </view>
<view class="label"> <view class="label u-line-1">
<global-icon icon="idcard"></global-icon> <global-icon icon="idcard"></global-icon>
<text class="txt">提出人:{{ item.presenter || '-' }}</text> <text class="txt">提出人:{{ item.presenter || '-' }}</text>
</view> </view>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getFleetListApi" :api="getFleetListApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('fleet_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('fleet_state', item.state)"></custom-state>
...@@ -43,9 +43,9 @@ import { getFleetListApi } from 'mocp/api/fleet' ...@@ -43,9 +43,9 @@ import { getFleetListApi } from 'mocp/api/fleet'
//跳转 //跳转
const fleetStore = useFleetStore() const fleetStore = useFleetStore()
const {searchData} = storeToRefs(fleetStore) const { searchData } = storeToRefs(fleetStore)
const goDetails = (data) => { const goDetails = (data) => {
uni.$mocpJump.navigateTo('/panel/fleet/details', {id: data.id}).then(() => { uni.$mocpJump.navigateTo('/panel/fleet/details', { id: data.id }).then(() => {
fleetStore.setState('details', data) fleetStore.setState('details', data)
}) })
} }
...@@ -65,6 +65,4 @@ onUnload(() => { ...@@ -65,6 +65,4 @@ onUnload(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
@import 'mocpStatic/css/list.scss'; @import 'mocpStatic/css/list.scss';
@import './constants/fleet.scss'; @import './constants/fleet.scss';
</style> </style>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
:pageSize="20" :pageSize="20"
:transformData="transformData" :transformData="transformData"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view v-for="item in dataList" :key="item.keyValue" class="inforDisclosureItem flex"> <view v-for="item in dataList" :key="item.keyValue" class="inforDisclosureItem flex">
<TableTow :itemMsg="item" /> <TableTow :itemMsg="item" />
</view> </view>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getMcoListApi" :api="getMcoListApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left grade"> <view class="left grade">
{{ getParamNameByValue('WorkGrade', item.workGrade) }} {{ getParamNameByValue('WorkGrade', item.workGrade) }}
......
<template> <template>
<global-page :padding="24" title="航材列表"> <global-page :padding="24" title="航材列表" auto :localData="getMaterialsList">
<template v-for="(item, index) in getMaterialsList" :key="item.id"> <template #default="{ item, index }">
<global-card :title="item.name" titleSuffix="查看详情" @handleTitleClick="goTo(index)"> <global-card :title="item.name" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.isValid" dictkey="mocMaterial_isValid"></global-text-status> <global-text-status :value="item.isValid" dictkey="mocMaterial_isValid"></global-text-status>
</global-card> </global-card>
......
...@@ -71,7 +71,7 @@ const formData = reactive({ ...@@ -71,7 +71,7 @@ const formData = reactive({
contentFile: '' contentFile: ''
}) })
onLoad(() => { onLoad(() => {
const details = getStepDetails.value.backList || {} const details = getStepDetails.value?.backList || {}
formData.state = details.state formData.state = details.state
formData.staff = details.staff formData.staff = details.staff
formData.stateP = details.actualWork.split('X')[0] formData.stateP = details.actualWork.split('X')[0]
......
<template> <template>
<global-page :padding="24" title="工具列表"> <global-page :padding="24" title="工具列表" auto :localData="getToolsList">
<template v-for="(item, index) in getToolsList" :key="item.id"> <template #default="{ item, index }">
<global-card :title="item.name" titleSuffix="查看详情" @handleTitleClick="goTo(index)"> <global-card :title="item.name" titleSuffix="查看详情" @handleTitleClick="goTo(index)">
<global-text-status :value="item.isValid" dictkey="mocMaterial_isValid"></global-text-status> <global-text-status :value="item.isValid" dictkey="mocMaterial_isValid"></global-text-status>
</global-card> </global-card>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getDecisionApi" :api="getDecisionApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('md_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('md_state', item.state)"></custom-state>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
:api="getRqmListApi" :api="getRqmListApi"
auto auto
> >
<template #="{ dataList }"> <template #default="{ item }">
<view v-for="item in dataList" :key="item.id" class="item" @tap="goDetails(item)"> <view v-for="item in dataList" :key="item.id" class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="desc"> <view class="desc">
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
:api="getArrangeWorkListApi" :api="getArrangeWorkListApi"
auto auto
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="item.state == 1 ? 'OPEN' : 'CLOSE'"></custom-state> <custom-state :value="item.state == 1 ? 'OPEN' : 'CLOSE'"></custom-state>
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
:api="getDecisionApi" :api="getDecisionApi"
auto auto
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('md_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('md_state', item.state)"></custom-state>
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
:api="getTechnicalEvaluationApi" :api="getTechnicalEvaluationApi"
auto auto
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state>
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
footerBtnText="新建" footerBtnText="新建"
@handleFooterClick="handleFooterClick" @handleFooterClick="handleFooterClick"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('sa_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('sa_state', item.state)"></custom-state>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getTechnicalEvaluationApi" :api="getTechnicalEvaluationApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('te_state', item.state)"></custom-state>
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
:api="getWorkTaskListApi" :api="getWorkTaskListApi"
:padding="24" :padding="24"
> >
<template #="{ dataList }"> <template #default="{ item }">
<view class="item" v-for="item in dataList" :key="item.id" @tap="goDetails(item)"> <view class="item" @tap="goDetails(item)">
<view class="item-title"> <view class="item-title">
<view class="left"> <view class="left">
<custom-state :value="useGetDictByValue('wa_state', item.state)"></custom-state> <custom-state :value="useGetDictByValue('wa_state', item.state)"></custom-state>
......
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