| | |
| | | <ContentWrap> |
| | | <!-- 搜索工作栏 --> |
| | | <el-form |
| | | class="-mb-15px" |
| | | :model="queryParams" |
| | | ref="queryFormRef" |
| | | :inline="true" |
| | | label-width="68px" |
| | | class="-mb-15px" |
| | | :model="queryParams" |
| | | ref="queryFormRef" |
| | | :inline="true" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="设备编号" prop="devId"> |
| | | <el-form-item label="设备部门编号" prop="devId"> |
| | | <el-input |
| | | v-model="queryParams.devId" |
| | | placeholder="请输入设备编号" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | 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-input |
| | | v-model="queryParams.category" |
| | | placeholder="请输入分类名" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | <el-select |
| | | v-model="queryParams.category" |
| | | placeholder="请选择分类名" |
| | | clearable |
| | | class="!w-240px" |
| | | @change="categoryChanged" |
| | | > |
| | | <el-option |
| | | v-for="dict in categoryOptions" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="品牌" prop="brand"> |
| | | <el-input |
| | | v-model="queryParams.brand" |
| | | placeholder="请输入品牌" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | <el-select |
| | | v-model="queryParams.brand" |
| | | placeholder="请选择品牌" |
| | | clearable |
| | | class="!w-240px" |
| | | @change="brandChanged" |
| | | > |
| | | <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"> |
| | | <el-input |
| | | v-model="queryParams.model" |
| | | placeholder="请输入型号" |
| | | clearable |
| | | @keyup.enter="handleQuery" |
| | | class="!w-240px" |
| | | /> |
| | | <el-select |
| | | v-model="queryParams.model" |
| | | placeholder="请选择型号" |
| | | clearable |
| | | class="!w-240px" |
| | | > |
| | | <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" |
| | | 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> |
| | | <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> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="openForm('create')" |
| | | v-hasPermi="['ecg:device:create']" |
| | | type="primary" |
| | | plain |
| | | @click="openForm('create')" |
| | | v-hasPermi="['ecg:device:create']" |
| | | > |
| | | <Icon icon="ep:plus" class="mr-5px" /> 新增 |
| | | </el-button> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | @click="handleExport" |
| | | :loading="exportLoading" |
| | | v-hasPermi="['ecg:device:export']" |
| | | type="success" |
| | | plain |
| | | @click="handleExport" |
| | | :loading="exportLoading" |
| | | v-hasPermi="['ecg:device:export']" |
| | | > |
| | | <Icon icon="ep:download" class="mr-5px" /> 导出 |
| | | </el-button> |
| | |
| | | <!-- 列表 --> |
| | | <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="devId" /> |
| | | <el-table-column label="分类名" align="center" prop="category" /> |
| | | <el-table-column label="品牌" align="center" prop="brand" /> |
| | | <el-table-column label="型号" align="center" prop="model" /> |
| | | <el-table-column label="采购日期" align="center" prop="purchaseDate" /> |
| | | <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="id" align="center" prop="id" />--> |
| | | <el-table-column label="设备编号" align="center" prop="devId" width="100px" /> |
| | | <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> |
| | | </el-table-column> |
| | | <el-table-column label="品牌" align="center" prop="brand" width="100px"> |
| | | <template #default="scope"> |
| | | <dict-tag :type="DICT_TYPE.ECG_DEV_BRAND" :value="scope.row.brand" /> |
| | | </template> |
| | | </el-table-column> |
| | | <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="患者" 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="openForm('update', scope.row.id)" |
| | | v-hasPermi="['ecg:device:update']" |
| | | 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" |
| | | @click="openForm('update', scope.row.id)" |
| | | v-hasPermi="['ecg:device:update']" |
| | | > |
| | | 编辑 |
| | | </el-button> |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | @click="handleDelete(scope.row.id)" |
| | | v-hasPermi="['ecg:device:delete']" |
| | | link |
| | | type="primary" |
| | | @click="openForm('devState', scope.row.id)" |
| | | v-hasPermi="['ecg:device:update']" |
| | | > |
| | | 改状态 |
| | | </el-button> |
| | | <el-button |
| | | link |
| | | type="danger" |
| | | @click="handleDelete(scope.row.id)" |
| | | v-hasPermi="['ecg:device:delete']" |
| | | > |
| | | 删除 |
| | | </el-button> |
| | |
| | | </el-table> |
| | | <!-- 分页 --> |
| | | <Pagination |
| | | :total="total" |
| | | v-model:page="queryParams.pageNo" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | :total="total" |
| | | v-model:page="queryParams.pageNo" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </ContentWrap> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { dateFormatter } 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' }) |
| | |
| | | const queryParams = reactive({ |
| | | pageNo: 1, |
| | | pageSize: 10, |
| | | purchaseDate: [], |
| | | createTime: [], |
| | | devId: undefined, |
| | | devCodeIntrinsic: undefined, |
| | | devCodeHosp: undefined, |
| | | devCodeDept: undefined, |
| | | state: [], |
| | | category: undefined, |
| | | brand: undefined, |
| | | model: undefined, |
| | | purchaseDate: [], |
| | | createTime: [] |
| | | model: undefined |
| | | }) |
| | | const queryFormRef = ref() // 搜索的表单 |
| | | const exportLoading = ref(false) // 导出的加载中 |
| | | |
| | | const categoryOptions = ref<DictDataType[]>([]) |
| | | const brandOptions = ref<OptionsVO[]>([]) |
| | | const modelOptions = ref<OptionsVO[]>([]) |
| | | |
| | | /** 查询列表 */ |
| | | const getList = async () => { |
| | |
| | | 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, '患者信息'); |
| | | } |
| | | |
| | | /** 添加/修改操作 */ |
| | |
| | | } |
| | | } |
| | | |
| | | 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> |