¶Ô±ÈÐÂÎļþ |
| | |
| | | <route lang="json5" type="page"> |
| | | { |
| | | layout: 'default', |
| | | needLogin: true, |
| | | style: { |
| | | navigationBarTitleText: 'ç¹æ£æ±æ»', |
| | | }, |
| | | } |
| | | </route> |
| | | |
| | | <template> |
| | | <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time> |
| | | <template #top> |
| | | <wd-drop-menu> |
| | | <wd-drop-menu-item v-model="viewMode" :options="viewModeList" @change="handleViewMode" /> |
| | | <wd-drop-menu-item v-model="equName" :options="equList" @change="handleEquName" /> |
| | | </wd-drop-menu> |
| | | <wd-divider></wd-divider> |
| | | </template> |
| | | <view class="bg-base"> |
| | | <view class="w-full h-[24rpx]"></view> |
| | | <wd-card type="rectangle" v-for="(item, index) in dataList" :key="item.id"> |
| | | <template #title> |
| | | <view class="flex justify-between"> |
| | | <view class="flex items-center menu-title-box"> |
| | | <view class="menu-indicator"></view> |
| | | <view class="ml-1 text-sm align-center">{{ item.equName }}</view> |
| | | <view class="text-color-gray ml-2 text-mini">{{ item.assetNo }}</view> |
| | | </view> |
| | | |
| | | <view class="flex items-center"> |
| | | <text class="text-color-gray text-mini"> |
| | | {{ |
| | | viewMode === 'Day' ? item.planTimeStr : item?.planTimeStr?.substring(0, 7) || '' |
| | | }} |
| | | </text> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <view class="flex h-[100rpx]" items-center> |
| | | <image class="slot-img text-center" src="/static/images/camera.png" /> |
| | | <view class="flex-1"> |
| | | <view class="text-color-gray text-xs mt-1 flex"> |
| | | <text class="mr-3">ç¹æ£æ»æ°: {{ item.recordCount }}</text> |
| | | | |
| | | <text class="mx-3">å·²ç¹æ£: {{ item.checkCount }}</text> |
| | | | |
| | | <text class="ml-3">æªç¹æ£: {{ item.unCheckCount }}</text> |
| | | </view> |
| | | <view class="text-color-gray text-xs mt-2 flex"> |
| | | <text class="mr-3">æ£å¸¸: {{ item.normalNum }}</text> |
| | | | |
| | | <text class="mx-3">å¼å¸¸: {{ item.abNormalNum }}</text> |
| | | </view> |
| | | <view class="text-color-gray text-xs mt-2 flex"> |
| | | <text>ç¶æï¼</text> |
| | | <template v-if="item.recordCount === item.checkCount"> |
| | | <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon> |
| | | <text class="ml-1">已宿</text> |
| | | </template> |
| | | <template v-else> |
| | | <wd-icon class="icon-color-base" name="detection" size="40rpx"></wd-icon> |
| | | <text class="ml-1">è¿è¡ä¸</text> |
| | | </template> |
| | | </view> |
| | | </view> |
| | | <wd-button size="small" icon="edit-outline" @click.stop="itemClick(item)">æç»</wd-button> |
| | | </view> |
| | | </wd-card> |
| | | </view> |
| | | </z-paging> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue' |
| | | import { getInspStList } from '@/service/inspect' |
| | | import { onShow } from '@dcloudio/uni-app' |
| | | |
| | | const viewMode = ref<string>('Day') |
| | | const equName = ref<string>('ææè®¾å¤') |
| | | |
| | | const viewModeList = ref<Record<string, any>[]>([ |
| | | { label: 'æ¥è§å¾', value: 'Day' }, |
| | | { label: 'æè§å¾', value: 'Month' }, |
| | | ]) |
| | | const equList = ref<Record<string, any>[]>([{ label: 'ææè®¾å¤', value: 'ææè®¾å¤' }]) |
| | | function handleViewMode({ value }) { |
| | | reloadData() |
| | | } |
| | | function handleEquName({ value }) { |
| | | console.log(value) |
| | | } |
| | | |
| | | const paging = ref(null) |
| | | const dataList = ref([]) |
| | | |
| | | const queryList = (pageNum?: number, pageSize?: number) => { |
| | | // è¿éçpageNoåpageSizeä¼èªå¨è®¡ç®å¥½ï¼ç´æ¥ä¼ ç»æå¡å¨å³å¯ |
| | | // è¿éç请æ±åªæ¯æ¼ç¤ºï¼è¯·æ¿æ¢æèªå·±ç项ç®çç½ç»è¯·æ±ï¼å¹¶å¨ç½ç»è¯·æ±åè°ä¸éè¿paging.value.complete(请æ±åæ¥çæ°ç»)å°è¯·æ±ç»æä¼ ç»z-paging |
| | | getInspStList({ pageNum, pageSize, viewMode: viewMode.value }) |
| | | .then((res: any) => { |
| | | // 请å¿å¨ç½ç»è¯·æ±åè°ä¸ç»dataListèµå¼ï¼ï¼åªéè¦è°ç¨completeå°±å¯ä»¥äº |
| | | paging.value.complete(res.rows) |
| | | }) |
| | | .catch((res) => { |
| | | // å¦æè¯·æ±å¤±è´¥åpaging.value.complete(false)ï¼ä¼èªå¨å±ç¤ºéè¯¯é¡µé¢ |
| | | // 注æï¼æ¯æ¬¡é½éè¦å¨catchä¸åè¿å¥è¯å¾éº»ç¦ï¼z-pagingæä¾äºæ¹æ¡å¯ä»¥å
¨å±ç»ä¸å¤ç |
| | | // å¨åºå±çç½ç»è¯·æ±æåºå¼å¸¸æ¶ï¼åuni.$emit('z-paging-error-emit');å³å¯ |
| | | paging.value.complete(false) |
| | | }) |
| | | } |
| | | |
| | | function itemClick(item) { |
| | | const inspCode = `${item.equId}_${item.planTime}_${viewMode.value}` |
| | | uni.navigateTo({ |
| | | url: `/pages/inspect/insp-record?id=${item.id}&inspCode=${inspCode}&specialNote=${item.specialNote ?? ''}&equName=${item.equName ?? ''}&assetNo=${item.assetNo ?? ''}&planTimeStr=${item.planTimeStr ?? ''}`, |
| | | }) |
| | | } |
| | | |
| | | function reloadData() { |
| | | paging.value.reload() |
| | | } |
| | | onLoad(() => { |
| | | uni.$on('insp-st-refresh', reloadData) |
| | | }) |
| | | onUnload(() => { |
| | | uni.$off('insp-st-refres', reloadData) |
| | | }) |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .menu-title-box { |
| | | } |
| | | |
| | | .slot-img { |
| | | width: 72rpx; |
| | | height: 72rpx; |
| | | margin-right: 24rpx; |
| | | } |
| | | .statu-img { |
| | | width: 60rpx; |
| | | height: 40rpx; |
| | | } |
| | | .text-mini { |
| | | font-size: 22rpx; |
| | | } |
| | | |
| | | .menu-indicator { |
| | | width: 6rpx; |
| | | height: 26rpx; |
| | | border-radius: 10rpx; |
| | | background-color: $uni-color-primary; |
| | | } |
| | | :deep(.wd-card__footer) { |
| | | padding: 10rpx !important; |
| | | } |
| | | :deep(.wd-card__title-content) { |
| | | padding: 24rpx 0 !important; |
| | | } |
| | | </style> |