From 17aaffd6f60443a070f8f9aab29c6f53d44795de Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期五, 06 六月 2025 09:15:17 +0800 Subject: [PATCH] 添加故障时间 --- eims-ui-mobile/src/pages/inspect/insp-record.vue | 150 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 128 insertions(+), 22 deletions(-) diff --git a/eims-ui-mobile/src/pages/inspect/insp-record.vue b/eims-ui-mobile/src/pages/inspect/insp-record.vue index f176fda..f566511 100644 --- a/eims-ui-mobile/src/pages/inspect/insp-record.vue +++ b/eims-ui-mobile/src/pages/inspect/insp-record.vue @@ -1,14 +1,12 @@ <route lang="json5"> { - style: { - navigationBarTitleText: '鐐规璁板綍', - navigationStyle: 'custom', - navigationBarBackgroundColor: '#4D80F0', - }, + layout: 'default', + needLogin: true, + style: { navigationBarTitleText: '鐐规璁板綍', navigationStyle: 'custom' }, } </route> <template> - <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time> + <z-paging ref="paging" v-model="dataList" :auto="false" @query="queryList" show-refresher-update-time> <template #top> <wd-navbar title="鐐规璁板綍" @@ -18,8 +16,11 @@ @click-right="handleClickRight" custom-style="background: #4D80F0;" safeAreaInsetTop - ></wd-navbar> - + > + <template #right> + <text v-if="isOperatorOrRepair()" class="text-white">鎻愪氦</text> + </template> + </wd-navbar> <wd-card type="rectangle"> <template #title> <view class="flex justify-between"> @@ -34,7 +35,7 @@ </view> </view> </template> - <view class="flex h-[100rpx]" items-center> + <view class="flex h-[140rpx]" 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"> @@ -52,7 +53,7 @@ <view class="text-color-gray text-xs mt-2 flex"> <text>鐘舵�侊細</text> <template v-if="dataCount > 0 && dataCount === checkCount"> - <wd-icon class="icon-color-success" name="check-outline" size="40rpx"></wd-icon> + <wd-icon class="icon-color-success" name="check-outline" size="34rpx"></wd-icon> <text class="ml-1">宸插畬鎴�</text> </template> <template v-else> @@ -60,6 +61,7 @@ <text class="ml-1">杩涜涓�</text> </template> </view> + <view class="text-color-gray text-xs mt-2 flex">鍒涘缓鏃堕棿: {{ inspSt.createTime }}</view> </view> </view> </wd-card> @@ -76,11 +78,11 @@ </wd-button> </wd-cell> <wd-collapse v-model="collSelects" title="鐐规椤�" ref="collapseRef"> - <wd-collapse-item :name="item.id" v-for="(item, index) in dataList"> + <wd-collapse-item :name="item.id" v-for="(item, index) in dataList" disabled> <template #title="{ expanded, disabled, isFirst }"> <view class="flex justify-between"> - <view class="flex justify-center items-center"> - <text class="text-sm">{{ item.inspName }}</text> + <view class="flex justify-center items-center" style="max-width: 60%;"> + <text class="text-sm" >{{ item.inspName }}</text> </view> <view class="flex items-center"> @@ -109,6 +111,40 @@ </view> </wd-collapse-item> </wd-collapse> + <view class="w-full h-[24rpx]"></view> + <wd-cell> + <template #title> + <text class="text-color-gray">鍏朵粬</text> + </template> + </wd-cell> + <view class="w-full h-[1px] bg-base"></view> + <wd-input + label="杩愯鏃堕棿" + label-width="200rpx" + clearable + v-model="inspSt.runTimes" + placeholder="璇疯緭鍏ヨ繍琛屾椂闂�(h)" + inputmode="numeric" + /> + <wd-input + label="鏁呴殰鏃堕棿" + label-width="200rpx" + clearable + v-model="inspSt.faultTimes" + placeholder="璇疯緭鍏ユ晠闅滄椂闂�(h)" + inputmode="numeric" + /> + <wd-textarea + label="鐗硅浜嬮」" + label-width="200rpx" + type="textarea" + v-model="inspSt.specialNote" + auto-height + :maxlength="200" + show-word-limit + placeholder="璇疯緭鍏ョ壒璁颁簨椤�" + clearable + /> </view> </z-paging> </template> @@ -116,7 +152,13 @@ <script setup lang="ts"> import { ref } from 'vue' import { useUserStore, useAccessStore, useSystemConfigStore } from '@/store' -import { getInspStRecordList, updateInspRecord, updateInspRecordBatch } from '@/service/inspect' +import { isLeader, isOperatorOrRepair } from '@/utils/RoleUtils' +import { + getInspStRecordList, + getInspSt, + updateInspectSt, + updateInspRecordBatch, +} from '@/service/inspect' import { useToast, useMessage } from 'wot-design-uni' import type { CollapseInstance } from 'wot-design-uni/components/wd-collapse/types' const message = useMessage() @@ -124,6 +166,7 @@ const collapseRef = ref<CollapseInstance>() const isAllExpanded = ref(false) +const viewMode = ref<string>('Day') // 瀹氫箟鎺ュ彛 interface QueryParams { @@ -134,10 +177,17 @@ } interface InspSt { + id: string inspCode: string equName: string assetNo: string planTimeStr?: string + createTime?: string + status: string + inspUser: number | string + specialNote: string + runTimes: number + faultTimes: number } const dataChange = ref(false) @@ -148,10 +198,17 @@ // 鐐规姹囨�绘暟鎹�(涓婁釜椤甸潰浼犲��) const inspSt = reactive<InspSt>({ + id: '', inspCode: '', equName: '', assetNo: '', planTimeStr: '', + createTime: '', + status: '', + inspUser: '', + specialNote: '', + runTimes: 0, + faultTimes: 0, }) const paging = ref(null) @@ -169,7 +226,7 @@ getInspStRecordList(params) .then((res: any) => { // 璇峰嬁鍦ㄧ綉缁滆姹傚洖璋冧腑缁檇ataList璧嬪�硷紒锛佸彧闇�瑕佽皟鐢╟omplete灏卞彲浠ヤ簡 - paging.value.complete(res.rows) + paging.value.completeByTotal(res.rows, res.total) }) .catch((res) => { // 濡傛灉璇锋眰澶辫触鍐檖aging.value.complete(false)锛屼細鑷姩灞曠ず閿欒椤甸潰 @@ -180,18 +237,22 @@ } function inspResultClick(item: any) { - // userStore?.userInfo?.realName + // userStore?.userInfo?.userId } const goBack = () => { uni.navigateBack() } + function handleClickRight() { - handleConfirm() + if(isOperatorOrRepair()){ + handleConfirm() + } + } const toggleCollapse = () => { - isAllExpanded.value = !isAllExpanded.value + isAllExpanded.value = !isAllExpanded.value collapseRef.value.toggleAll(isAllExpanded.value) } @@ -218,13 +279,29 @@ const params = { inspRecordList: dataList.value, } + // 鏇存柊鐐规璁板綍 updateInspRecordBatch(params) .then((res: any) => { + updateInspSt(resolve) + }) + .catch((res) => { + console.error(res) + toast.error('鎿嶄綔澶辫触') + }) +} +function updateInspSt(resolve: any) { + // 鏇存柊鐐规姹囨�� + inspSt.status = '1' + updateInspectSt(inspSt) + .then((res: any) => { + toast.success('鎿嶄綔鎴愬姛') paging.value.reload() + uni.$emit('insp-st-refresh') resolve(true) }) .catch((res) => { console.error(res) + toast.error('鎿嶄綔澶辫触') }) } @@ -244,12 +321,40 @@ { deep: true }, ) onLoad((options) => { - inspSt.inspCode = options.inspCode - inspSt.equName = options.equName - inspSt.assetNo = options.assetNo - inspSt.planTimeStr = options.planTimeStr + // inspSt.id = options.id + // inspSt.inspCode = options.inspCode + // inspSt.equName = options.equName + // inspSt.assetNo = options.assetNo + // inspSt.planTimeStr = options.planTimeStr + // inspSt.createTime = options.createTime + // inspSt.specialNote = options?.specialNote + // inspSt.inspUser = userStore?.userInfo?.userId + viewMode.value = options.viewMode + initData(options.id) }) +function initData(id: any) { + getInspSt(id) + .then((res: any) => { + if (res?.id) { + const inspCode = `${res?.equId}_${res?.planTime}_${viewMode.value}` + inspSt.inspCode = inspCode + Object.assign(inspSt, res) + reloadData() + } else { + uni.showToast({ + title: '鏁版嵁鏌ヨ澶辫触锛岃鑱旂郴绠$悊鍛�', + icon: 'none', + }) + } + }) + .catch((res) => { + console.error(res) + }) +} +function reloadData() { + paging.value.reload() +} const dataCount = computed(() => dataList.value.length) const checkCount = computed(() => dataList.value.filter((item) => item.status === '1').length) const normalNum = computed(() => dataList.value.filter((item) => item.inspResult === '1').length) @@ -294,5 +399,6 @@ :deep(.wd-navbar__title) { color: white; font-weight: 0; + font-size: 32rpx; } </style> -- Gitblit v1.9.3