From 60384e8241fa855b5780260633ee9b9f8904847a Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期五, 20 六月 2025 14:24:19 +0800 Subject: [PATCH] feat(eims-ui-mobile): 为多个页面添加搜索功能 - 在 equ-list、insp-st、maint-st、req-list 和 res-list 页面中添加设备名称和资产编号的模糊搜索 --- eims-ui-mobile/src/pages/inspect/insp-st.vue | 108 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 87 insertions(+), 21 deletions(-) diff --git a/eims-ui-mobile/src/pages/inspect/insp-st.vue b/eims-ui-mobile/src/pages/inspect/insp-st.vue index 44d5ef2..f761004 100644 --- a/eims-ui-mobile/src/pages/inspect/insp-st.vue +++ b/eims-ui-mobile/src/pages/inspect/insp-st.vue @@ -11,10 +11,14 @@ <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-search v-model="searchValue" @search="handleSearch"> + </wd-search> + <wd-tabs v-model="activeTab" @change="handleTabChange"> + <wd-tab title="寰呯偣妫�"></wd-tab> + <wd-tab title="寰呯‘璁�"></wd-tab> + <wd-tab title="宸插畬鎴�"></wd-tab> + </wd-tabs> </template> <view class="bg-base"> <wd-card type="rectangle" v-for="(item, index) in dataList" :key="item.id"> @@ -35,35 +39,37 @@ </view> </view> </template> - <view class="flex h-[140rpx]" items-center> + <view class="flex h-[200rpx]" 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> + <view class="text-color-gray text-sm 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"> + <view class="text-color-gray text-sm 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"> + <view class="text-color-gray text-sm mt-2 flex"> <text>鐘舵�侊細</text> - <template v-if="item.recordCount === item.checkCount"> + <template v-if="item.status === '1'"> <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon> <text class="ml-1">宸插畬鎴�</text> + </template> + <template v-else-if="item.status === '2'"> + <wd-icon class="icon-color-warning" 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 class="text-color-gray text-xs mt-2 flex"> - 鍒涘缓鏃堕棿: {{item.createTime}} - </view> + <view class="text-color-gray text-sm mt-2 flex">鍒涘缓鏃堕棿: {{ item.createTime }}</view> </view> <wd-button size="small" icon="edit-outline" @click.stop="itemClick(item)">鏄庣粏</wd-button> </view> @@ -73,32 +79,86 @@ </template> <script setup lang="ts"> -import { ref } from 'vue' import { getInspStList } from '@/service/inspect' -import { onShow } from '@dcloudio/uni-app' +import dayjs from 'dayjs' +import { useUserStore, useAccessStore, useSystemConfigStore } from '@/store' +import { isLeader, isLineOrRepair, isOperator } from "@/utils/RoleUtils"; +// 鏍囩椤电浉鍏� +const activeTab = ref(0) // 榛樿閫変腑绗竴涓爣绛鹃〉锛堝緟鐐规锛� +// 鍘熸湁鍙橀噺 const viewMode = ref<string>('Day') const equName = ref<string>('鎵�鏈夎澶�') +const filterDate = ref<string>('1') +const status = ref<string>('0') // 榛樿涓哄緟鐐规鐘舵�� +const searchValue = ref<string>('') const viewModeList = ref<Record<string, any>[]>([ { label: '鏃ヨ鍥�', value: 'Day' }, { label: '鏈堣鍥�', value: 'Month' }, ]) +const filterDateList = ref<Record<string, any>[]>([ + { label: '鎵�鏈夋暟鎹�', value: '0' }, + { label: '褰撳ぉ(鏈�)鏁版嵁', value: '1' }, +]) + const equList = ref<Record<string, any>[]>([{ label: '鎵�鏈夎澶�', value: '鎵�鏈夎澶�' }]) +const userStore = useUserStore() +// 鏍囩椤靛垏鎹㈠鐞嗗嚱鏁� +function handleTabChange({ index }) { + // 鏍规嵁鏍囩椤电储寮曡缃搴旂殑鐘舵�佸�� + if (index === 0) { + // 寰呯偣妫� + status.value = '0' + } else if (index === 1) { + // 寰呯‘璁� + status.value = '1' + } else if (index === 2) { + // 宸插畬鎴� + status.value = '2' + } + // 閲嶆柊鍔犺浇鏁版嵁 + reloadData() +} + +// 鍘熸湁鍑芥暟 function handleViewMode({ value }) { reloadData() } function handleEquName({ value }) { console.log(value) } +function handleFilterDate({ value }) { + reloadData() +} 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 }) + const params: any = { + pageNum, + pageSize, + viewMode: viewMode.value, + status: status.value, // 娣诲姞鐘舵�佺瓫閫� + params: { + searchValue: searchValue.value, + }, + } + if (filterDate.value === '1') { + params.planTime = dayjs().format('YYYY-MM-DD') + } else { + delete params.planTime + } + + console.log('queryList::', isLineOrRepair(), isOperator(), userStore.userInfo) + if (isLineOrRepair() || isOperator()) { + params.updateBy = userStore.userInfo.userId + } else if (isLeader()) { + delete params.updateBy + } + console.log('params::', params) + getInspStList(params) .then((res: any) => { // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡 paging.value.completeByTotal(res.rows, res.total) @@ -112,10 +172,16 @@ } function itemClick(item) { - const inspCode = `${item.equId}_${item.planTime}_${viewMode.value}` + // const inspCode = `${item.equId}_${item.planTime}_${viewMode.value}` uni.navigateTo({ - url: `/pages/inspect/insp-record?id=${item.id}&createTime=${item.createTime}&inspCode=${inspCode}&specialNote=${item.specialNote ?? ''}&equName=${item.equName ?? ''}&assetNo=${item.assetNo ?? ''}&planTimeStr=${item.planTimeStr ?? ''}`, + // url: `/pages/inspect/insp-record?id=${item.id}&createTime=${item.createTime}&inspCode=${inspCode}&specialNote=${item.specialNote ?? ''}&equName=${item.equName ?? ''}&assetNo=${item.assetNo ?? ''}&planTimeStr=${item.planTimeStr ?? ''}`, + url: `/pages/inspect/insp-record?id=${item.id}&viewMode=${viewMode.value}`, }) +} + +function handleSearch() { + console.log('handleSearch') + paging.value.reload() } function reloadData() { @@ -143,7 +209,7 @@ height: 40rpx; } .text-mini { - font-size: 22rpx; + font-size: 24rpx; } .menu-indicator { -- Gitblit v1.9.3