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/equ/equ-list.vue |  150 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 150 insertions(+), 0 deletions(-)

diff --git a/eims-ui-mobile/src/pages/equ/equ-list.vue b/eims-ui-mobile/src/pages/equ/equ-list.vue
new file mode 100644
index 0000000..0e6ff84
--- /dev/null
+++ b/eims-ui-mobile/src/pages/equ/equ-list.vue
@@ -0,0 +1,150 @@
+<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="equTypeId" :options="typeList" @change="handleEquType" />
+        <wd-drop-menu-item v-model="status" :options="statusList" @change="handleEquStatu" />
+      </wd-drop-menu>
+    </template>
+
+    <view class="bg-base">
+      <wd-card type="rectangle" v-for="(item, index) in dataList" :key="item.id">
+        <template #title>
+          <view class="flex justify-between items-baseline">
+            <view class="flex items-center menu-title-box">
+              <view class="menu-indicator"></view>
+              <text class="ml-1 text-xs">{{ item.assetNo }}</text>
+            </view>
+
+            <view>
+              <text class="icon-color-base">璇︽儏</text>
+              <wd-icon name="arrow-right" custom-class="icon-color-base"></wd-icon>
+            </view>
+          </view>
+        </template>
+        <view class="flex h-[80rpx]" @click.stop="itemClick(item)">
+          <image class="slot-img text-center" src="/static/images/camera.png" />
+          <view>
+            <view class="text-color-base">
+              {{ item.equName }}
+              <text class="text-color-gray ml-2 text-mini">{{ item.modelNo }}</text>
+            </view>
+            <view class="text-color-gray text-xs mt-1">
+              {{ item.location }} | {{ item.madeIn }}
+            </view>
+          </view>
+        </view>
+      </wd-card>
+    </view>
+  </z-paging>
+</template>
+
+<script setup lang="ts">
+import { onMounted, getCurrentInstance, ref } from 'vue'
+
+import { getEquList } from '@/service/equ'
+
+// 璁惧绫诲瀷
+const equTypeId = ref<number>(0)
+// 璁惧鐘舵��
+const status = ref<number>(0)
+
+const isSelectEqu = ref(false)
+
+const typeList = ref<Record<string, any>[]>([{ label: '鎵�鏈夎澶�', value: 0 }])
+const statusList = ref<Record<string, any>[]>([{ label: '鎵�鏈夌姸鎬�', value: 0 }])
+function handleEquType({ value }) {
+  console.log(value)
+}
+function handleEquStatu({ value }) {
+  console.log(value)
+}
+
+const paging = ref(null)
+const dataList = ref([])
+
+const queryList = (pageNum?: number, pageSize?: number) => {
+  // 杩欓噷鐨刾ageNo鍜宲ageSize浼氳嚜鍔ㄨ绠楀ソ锛岀洿鎺ヤ紶缁欐湇鍔″櫒鍗冲彲
+  // 杩欓噷鐨勮姹傚彧鏄紨绀猴紝璇锋浛鎹㈡垚鑷繁鐨勯」鐩殑缃戠粶璇锋眰锛屽苟鍦ㄧ綉缁滆姹傚洖璋冧腑閫氳繃paging.value.complete(璇锋眰鍥炴潵鐨勬暟缁�)灏嗚姹傜粨鏋滀紶缁檢-paging
+  getEquList({ pageNum, pageSize })
+    .then((res: any) => {
+      // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡
+      console.log(res)
+      paging.value.complete(res.rows)
+    })
+    .catch((res) => {
+      // 濡傛灉璇锋眰澶辫触鍐檖aging.value.complete(false)锛屼細鑷姩灞曠ず閿欒椤甸潰
+      // 娉ㄦ剰锛屾瘡娆¢兘闇�瑕佸湪catch涓啓杩欏彞璇濆緢楹荤儲锛寊-paging鎻愪緵浜嗘柟妗堝彲浠ュ叏灞�缁熶竴澶勭悊
+      // 鍦ㄥ簳灞傜殑缃戠粶璇锋眰鎶涘嚭寮傚父鏃讹紝鍐檜ni.$emit('z-paging-error-emit');鍗冲彲
+      paging.value.complete(false)
+    })
+}
+
+/**
+ * 璁惧鏉$洰鐐瑰嚮浜嬩欢
+ * @param item
+ */
+function itemClick(item: any) {
+  if (isSelectEqu.value) {
+    emitSelectEqu(item)
+    uni.navigateBack()
+  }
+}
+
+/**
+ * 閫夋嫨璁惧鍥炶皟
+ * @param equ
+ */
+function emitSelectEqu(equ: any) {
+  eventChannel.value.emit('selectEqu', {
+    data: equ,
+  })
+}
+
+
+const eventChannel = ref<any>()
+onMounted(() => {
+  const instance: any = getCurrentInstance().proxy
+  const event = instance.getOpenerEventChannel()
+  eventChannel.value = event
+  event.on('handleSelectEqu', function (data) {
+    isSelectEqu.value = true
+    console.log('handleSelectEqu', data)
+  })
+})
+</script>
+
+<style scoped lang="scss">
+.menu-title-box {
+  height: 30rpx;
+  line-height: 30rpx;
+}
+
+.slot-img {
+  width: 72rpx;
+  height: 72rpx;
+  margin-right: 24rpx;
+}
+.text-mini {
+  font-size: 22rpx;
+}
+
+.menu-indicator {
+  width: 6rpx;
+  height: 22rpx;
+  border-radius: 10rpx;
+  background-color: $uni-color-primary;
+}
+:deep(.wd-card__footer) {
+  padding: 10rpx !important;
+}
+</style>

--
Gitblit v1.9.3