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/maint/maint-st.vue | 181 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 181 insertions(+), 0 deletions(-) diff --git a/eims-ui-mobile/src/pages/maint/maint-st.vue b/eims-ui-mobile/src/pages/maint/maint-st.vue new file mode 100644 index 0000000..e267621 --- /dev/null +++ b/eims-ui-mobile/src/pages/maint/maint-st.vue @@ -0,0 +1,181 @@ +<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="equName" :options="equList" @change="handleEquName" /> + <wd-drop-menu-item v-model="status" :options="statusList" @change="handleStatus" /> + </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 w-[50%]"> + <wd-text :text="item.equName" :lines="1"></wd-text> + </view> + <view class="text-color-gray ml-2 text-mini">{{ item.assetNo }}</view> + </view> + + <view class="flex items-center w-[20%] justify-end"> + <text class="text-color-gray text-mini"> + {{ item?.planTime }} + </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.orderCount }}</text> + | + <text class="mx-3">宸插畬鎴�: {{ item.wcCount }}</text> + </view> + <view class="text-color-gray text-xs mt-2 flex"> + <text class="mr-3">寰呬繚鍏�: {{ item.dbyCount }}</text> + | + <text class="mx-3">淇濆吇涓�: {{ item.byCount }}</text> + | + <text class="ml-3">寰呴獙璇�: {{ item.dyzCount }}</text> + </view> + <view class="text-color-gray text-xs mt-2 flex"> + <text>鐘舵�侊細</text> + <template v-if="item.orderCount === item.wcCount"> + <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 { getMaintStList } from '@/service/maint' + +interface QueryParams { + pageNum: number + pageSize: number + equName?: string + status?: string +} + +const status = ref<string>('-1') +const equName = ref<string>('-1') + +const statusList = ref<Record<string, any>[]>([ + { label: '鎵�鏈夌姸鎬�', value: '-1' }, + { label: '寰呬繚鍏�', value: '0' }, + { label: '淇濆吇涓�', value: '1' }, + { label: '寰呴獙璇�', value: '2' }, + { label: '宸插畬鎴�', value: '3' }, +]) +const equList = ref<Record<string, any>[]>([{ label: '鎵�鏈夎澶�', value: '-1' }]) +function handleStatus({ value }) {} +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 + const params: QueryParams = { + pageNum, + pageSize, + equName: equName.value, + status: status.value, + } + if (equName.value === '-1') { + delete params.equName + } + if (status.value === '-1') { + delete params.status + } + + getMaintStList(params) + .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 itemString = encodeURIComponent(JSON.stringify(item)) + uni.navigateTo({ + url: `/pages/maint/maint-order?maintSt=${itemString}`, + }) +} + +function reloadData() { + paging.value.reload() +} +onLoad(() => { + queryList() + uni.$on('maint-st-refresh', reloadData) +}) +onUnload(() => { + uni.$off('maint-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