From 89a5fedfe041ebacb2d81ecae1023b206cd3f353 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期四, 24 四月 2025 09:10:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/main'

---
 eims-ui-mobile/src/pages/inspect/insp-st.vue |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 0 deletions(-)

diff --git a/eims-ui-mobile/src/pages/inspect/insp-st.vue b/eims-ui-mobile/src/pages/inspect/insp-st.vue
new file mode 100644
index 0000000..748ab44
--- /dev/null
+++ b/eims-ui-mobile/src/pages/inspect/insp-st.vue
@@ -0,0 +1,160 @@
+<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">姝e父: {{ 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) => {
+  // 杩欓噷鐨刾ageNo鍜宲ageSize浼氳嚜鍔ㄨ绠楀ソ锛岀洿鎺ヤ紶缁欐湇鍔″櫒鍗冲彲
+  // 杩欓噷鐨勮姹傚彧鏄紨绀猴紝璇锋浛鎹㈡垚鑷繁鐨勯」鐩殑缃戠粶璇锋眰锛屽苟鍦ㄧ綉缁滆姹傚洖璋冧腑閫氳繃paging.value.complete(璇锋眰鍥炴潵鐨勬暟缁�)灏嗚姹傜粨鏋滀紶缁檢-paging
+  getInspStList({ pageNum, pageSize, viewMode: viewMode.value })
+    .then((res: any) => {
+      // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡
+      paging.value.complete(res.rows)
+    })
+    .catch((res) => {
+      // 濡傛灉璇锋眰澶辫触鍐檖aging.value.complete(false)锛屼細鑷姩灞曠ず閿欒椤甸潰
+      // 娉ㄦ剰锛屾瘡娆¢兘闇�瑕佸湪catch涓啓杩欏彞璇濆緢楹荤儲锛寊-paging鎻愪緵浜嗘柟妗堝彲浠ュ叏灞�缁熶竴澶勭悊
+      // 鍦ㄥ簳灞傜殑缃戠粶璇锋眰鎶涘嚭寮傚父鏃讹紝鍐檜ni.$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>

--
Gitblit v1.9.3