From d09fe6aa593b974119628baf5e91bdfd0de7c378 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 10 四月 2025 10:42:26 +0800 Subject: [PATCH] 翻译 设备状态信息 --- src/views/ecg/devmanage/index.vue | 208 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 163 insertions(+), 45 deletions(-) diff --git a/src/views/ecg/devmanage/index.vue b/src/views/ecg/devmanage/index.vue index 67649aa..d661192 100644 --- a/src/views/ecg/devmanage/index.vue +++ b/src/views/ecg/devmanage/index.vue @@ -6,38 +6,51 @@ :model="queryParams" ref="queryFormRef" :inline="true" - label-width="68px" + label-width="100px" > - <el-form-item label="閲囪喘鏃ユ湡" prop="purchaseDate"> - <el-date-picker - v-model="queryParams.purchaseDate" - value-format="YYYY-MM-DD HH:mm:ss" - type="daterange" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" - class="!w-220px" - /> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿" prop="createTime"> - <el-date-picker - v-model="queryParams.createTime" - value-format="YYYY-MM-DD HH:mm:ss" - type="daterange" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" - class="!w-220px" - /> - </el-form-item> - <el-form-item label="璁惧缂栧彿" prop="devId"> + <el-form-item label="璁惧閮ㄩ棬缂栧彿" prop="devId"> <el-input - v-model="queryParams.devId" - placeholder="璇疯緭鍏ヨ澶囩紪鍙�" + v-model="queryParams.devCodeDept" + placeholder="璇疯緭鍏ヨ澶囬儴闂ㄧ紪鍙�" clearable @keyup.enter="handleQuery" class="!w-240px" /> + </el-form-item> + <el-form-item label="璁惧鍖婚櫌缂栧彿" prop="devId"> + <el-input + v-model="queryParams.devCodeHosp" + placeholder="璇疯緭鍏ヨ澶囧尰闄㈢紪鍙�" + clearable + @keyup.enter="handleQuery" + class="!w-240px" + /> + </el-form-item> + <el-form-item label="璁惧鍥烘湁缂栧彿" prop="devId"> + <el-input + v-model="queryParams.devCodeIntrinsic" + placeholder="璇疯緭鍏ヨ澶囧浐鏈夌紪鍙�" + clearable + @keyup.enter="handleQuery" + class="!w-240px" + /> + </el-form-item> + + <el-form-item label="鐘舵��" prop="state"> + <el-select + v-model="queryParams.state" + multiple + placeholder="璇烽�夋嫨鐘舵��" + clearable + class="!w-240px" + > + <el-option + v-for="dict in DevStateOptions" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> </el-form-item> <el-form-item label="鍒嗙被鍚�" prop="category"> <el-select @@ -45,9 +58,10 @@ placeholder="璇烽�夋嫨鍒嗙被鍚�" clearable class="!w-240px" + @change="categoryChanged" > <el-option - v-for="dict in getStrDictOptions(DICT_TYPE.ECG_DEV_CATEGORY)" + v-for="dict in categoryOptions" :key="dict.value" :label="dict.label" :value="dict.value" @@ -60,8 +74,14 @@ placeholder="璇烽�夋嫨鍝佺墝" clearable class="!w-240px" + @change="brandChanged" > - <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" /> + <el-option + v-for="dict in brandOptions" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> <el-form-item label="鍨嬪彿" prop="model"> @@ -71,9 +91,27 @@ clearable class="!w-240px" > - <el-option label="璇烽�夋嫨瀛楀吀鐢熸垚" value="" /> + <el-option + v-for="dict in modelOptions" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> </el-select> </el-form-item> + + <el-form-item label="閲囪喘鏃ユ湡" prop="purchaseDate"> + <el-date-picker + v-model="queryParams.purchaseDate" + value-format="YYYY-MM-DD HH:mm:ss" + type="daterange" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" + class="!w-220px" + /> + </el-form-item> + <el-form-item> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 鎼滅储</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 閲嶇疆</el-button> @@ -101,10 +139,9 @@ <!-- 鍒楄〃 --> <ContentWrap> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> - <el-table-column label="id" align="center" prop="id" /> - <el-table-column label="閲囪喘鏃ユ湡" align="center" prop="purchaseDate" :formatter="dateFormatter2" width="120px"/> + <!-- <el-table-column label="id" align="center" prop="id" />--> <el-table-column label="璁惧缂栧彿" align="center" prop="devId" width="100px" /> - <el-table-column label="鍒嗙被鍚�" align="center" prop="category"> + <el-table-column label="鍒嗙被" align="center" prop="category" width="60px"> <template #default="scope"> <dict-tag :type="DICT_TYPE.ECG_DEV_CATEGORY" :value="scope.row.category" /> </template> @@ -114,16 +151,46 @@ <dict-tag :type="DICT_TYPE.ECG_DEV_BRAND" :value="scope.row.brand" /> </template> </el-table-column> - <el-table-column label="鍨嬪彿" align="center" prop="model" /> - <el-table-column - label="鍒涘缓鏃堕棿" - align="center" - prop="createTime" - :formatter="dateFormatter" - width="180px" - /> - <el-table-column label="鎿嶄綔" align="center" min-width="120px"> + <el-table-column label="鍨嬪彿" align="center" prop="model" width="100px"/> + <el-table-column label="鐘舵��" align="center" prop="lost" width="80px"> <template #default="scope"> + <span>{{tranlateDevState(scope.row.state)}}</span> + </template> + </el-table-column> + + <el-table-column label="鎮h��" align="center" prop="patDetails" width="400px"> + <template #default="scope"> + <span>{{scope.row.patDetails?.name}} {{scope.row.patDetails?.mobile}} {{scope.row.patDetails?.wardDesc}} {{scope.row.patDetails?.bedNo}}</span> + </template> + </el-table-column> + + <el-table-column label="鐘舵�佹棩鏈�" align="center" prop="stateDate" :formatter="dateFormatter2" width="120px"/> + <el-table-column label="閲囪喘鏃ユ湡" align="center" prop="purchaseDate" :formatter="dateFormatter2" width="120px"/> + + <el-table-column label="澶囨敞" align="center" prop="comment" width="100px" /> + + <!-- + <el-table-column + label="鍒涘缓鏃堕棿" + align="center" + prop="createTime" + :formatter="dateFormatter2" + width="180px" + /> + --> + <el-table-column label="鎿嶄綔" align="center" min-width="170px"> + <template #default="scope"> +<!-- + <el-button + link + type="primary" + @click="showPatient(scope.row.rentId)" + v-hasPermi="['ecg:device:update']" + v-if= scope.row.rentId + > + 鏌ユ偅鑰� + </el-button> +--> <el-button link type="primary" @@ -131,6 +198,14 @@ v-hasPermi="['ecg:device:update']" > 缂栬緫 + </el-button> + <el-button + link + type="primary" + @click="openForm('devState', scope.row.id)" + v-hasPermi="['ecg:device:update']" + > + 鏀圭姸鎬� </el-button> <el-button link @@ -157,11 +232,14 @@ </template> <script setup lang="ts"> -import { getStrDictOptions, DICT_TYPE } from '@/utils/dict' -import {dateFormatter, dateFormatter2} from '@/utils/formatTime' +import { ElMessageBox } from 'element-plus' +import {getStrDictOptions, DICT_TYPE, DictDataType} from '@/utils/dict' +import {dateFormatter2} from '@/utils/formatTime' +import {DevStateOptions, tranlateDevState} from "@/utils/statusFormatter"; import download from '@/utils/download' -import { DeviceApi, DeviceVO } from '@/api/ecg/devmanage' +import {DeviceApi, DeviceVO, DevModelApi, OptionsVO} from '@/api/ecg/devmanage' import DeviceForm from './DeviceForm.vue' +import {DevRentApi} from "@/api/ecg/devrent"; /** 璁惧 鍒楄〃 */ defineOptions({ name: 'Device' }) @@ -178,12 +256,20 @@ purchaseDate: [], createTime: [], devId: undefined, + devCodeIntrinsic: undefined, + devCodeHosp: undefined, + devCodeDept: undefined, + state: [], category: undefined, brand: undefined, model: undefined }) const queryFormRef = ref() // 鎼滅储鐨勮〃鍗� const exportLoading = ref(false) // 瀵煎嚭鐨勫姞杞戒腑 + +const categoryOptions = ref<DictDataType[]>([]) +const brandOptions = ref<OptionsVO[]>([]) +const modelOptions = ref<OptionsVO[]>([]) /** 鏌ヨ鍒楄〃 */ const getList = async () => { @@ -207,6 +293,13 @@ const resetQuery = () => { queryFormRef.value.resetFields() handleQuery() +} + +const showPatient = async (rentId: number) => { + if (!rentId) return + + const devRent = await DevRentApi.getDevRent(rentId) + ElMessageBox.alert(devRent.patName + " " + devRent.patDetails, '鎮h�呬俊鎭�'); } /** 娣诲姞/淇敼鎿嶄綔 */ @@ -243,8 +336,33 @@ } } +const categoryChanged = async () => { + const data = await DevModelApi.getBrandOption(queryParams.category??'') + brandOptions.value = data + + queryParams.brand = '' + queryParams.model = '' + + //queryParams.brand = brandOptions.value.length === 0 ? "" : brandOptions.value[0].value + //brandChanged() +} + +const brandChanged = async () => { + const data = await DevModelApi.getModelOption(queryParams.category??'', queryParams.brand??'') + modelOptions.value = data + + queryParams.model = '' + + //queryParams.model = modelOptions.value.length === 0 ? "" : modelOptions.value[0].value +} + /** 鍒濆鍖� **/ -onMounted(() => { +onMounted( async () => { + const data = await getStrDictOptions(DICT_TYPE.ECG_DEV_CATEGORY) + categoryOptions.value = data + + categoryChanged() + getList() }) </script> \ No newline at end of file -- Gitblit v1.9.3