黄伟杰 2 days ago
commit 5a84773a2d

@ -2,6 +2,7 @@ import request from '@/config/axios'
export interface DeviceOperationOverviewParams { export interface DeviceOperationOverviewParams {
ids?: string ids?: string
deviceType?: number
startTime?: string startTime?: string
endTime?: string endTime?: string
timelinePageNo?: number timelinePageNo?: number

@ -21,6 +21,7 @@ export interface DeviceOperationRecordVO {
export interface DeviceOperationRecordPageParams { export interface DeviceOperationRecordPageParams {
pageNo: number pageNo: number
pageSize: number pageSize: number
deviceType?: number
deviceCode?: string deviceCode?: string
deviceName?: string deviceName?: string
startTime?: string startTime?: string

@ -73,7 +73,12 @@ export const OrganizationApi = {
return await request.download({ url: `/mes/organization/export-excel`, params }) return await request.download({ url: `/mes/organization/export-excel`, params })
}, },
deviceParameterAnalysis: async (params: { keyword?: string, showDevices?: number, filterNoDeviceLine?: number }) => { deviceParameterAnalysis: async (params: {
keyword?: string
deviceType?: number
showDevices?: number
filterNoDeviceLine?: number
}) => {
return await request.get({ url: `/mes/device-line/deviceParameterAnalysis`, params }) return await request.get({ url: `/mes/device-line/deviceParameterAnalysis`, params })
} }
} }

@ -44,6 +44,16 @@
<el-option v-for="item in modelList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in modelList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="deviceType">
<el-select v-model="formData.deviceType" placeholder="请选择设备类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.IOT_DEVICE_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="t('EquipmentManagement.EquipmentLedger.images')" prop="images"> <el-form-item :label="t('EquipmentManagement.EquipmentLedger.images')" prop="images">
<UploadImg style="height: 100px" v-model="formData.images" /> <UploadImg style="height: 100px" v-model="formData.images" />
</el-form-item> </el-form-item>
@ -102,10 +112,9 @@
</Dialog> </Dialog>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getBoolDictOptions, DICT_TYPE } from '@/utils/dict' import { getStrDictOptions,getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { DeviceApi, DeviceVO } from '@/api/iot/device' import { DeviceApi, DeviceVO } from '@/api/iot/device'
import {DeviceModelApi, DeviceModelVO} from "@/api/iot/devicemodel"; import {DeviceModelApi, DeviceModelVO} from "@/api/iot/devicemodel";
/** 物联设备 表单 */ /** 物联设备 表单 */
defineOptions({ name: 'DeviceForm' }) defineOptions({ name: 'DeviceForm' })
@ -193,12 +202,13 @@ const submitForm = async () => {
// //
formLoading.value = true formLoading.value = true
try { try {
const { id, deviceCode, deviceName, deviceModelId, sampleCycle, remark, isEnable, topic,images } = formData.value as any const { id, deviceCode, deviceName,deviceType, deviceModelId, sampleCycle, remark, isEnable, topic,images } = formData.value as any
if (formType.value === 'create') { if (formType.value === 'create') {
const data: Partial<DeviceVO> = { const data: Partial<DeviceVO> = {
deviceCode, deviceCode,
deviceName, deviceName,
deviceType,
deviceModelId, deviceModelId,
sampleCycle, sampleCycle,
remark, remark,
@ -208,11 +218,11 @@ const submitForm = async () => {
await DeviceApi.createDevice(data as DeviceVO) await DeviceApi.createDevice(data as DeviceVO)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
} else if (formType.value === 'update') { } else if (formType.value === 'update') {
const data: any = { id, deviceCode, deviceName, deviceModelId, sampleCycle, isEnable,images} const data: any = { id, deviceCode, deviceName,deviceType, deviceModelId, sampleCycle, isEnable,images}
await DeviceApi.updateDevice(data) await DeviceApi.updateDevice(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))
} else { } else {
const data: any = { id, deviceCode, deviceName, deviceModelId, isEnable, topic,images} const data: any = { id, deviceCode, deviceName,deviceType, deviceModelId, isEnable, topic,images}
await DeviceApi.updateDevice(data) await DeviceApi.updateDevice(data)
message.success(t('common.updateSuccess')) message.success(t('common.updateSuccess'))
} }

@ -147,6 +147,7 @@ import {QuestionFilled} from "@element-plus/icons-vue";
defineOptions({ name: 'IotRunReport' }) defineOptions({ name: 'IotRunReport' })
const { t } = useI18n() const { t } = useI18n()
const IOT_DEVICE_TYPE = 2
const loading = ref(false) const loading = ref(false)
const list = ref<DeviceOperationRecordVO[]>([]) const list = ref<DeviceOperationRecordVO[]>([])
@ -188,6 +189,7 @@ const buildQueryParams = (): DeviceOperationRecordPageParams => {
return { return {
pageNo: queryParams.pageNo, pageNo: queryParams.pageNo,
pageSize: queryParams.pageSize, pageSize: queryParams.pageSize,
deviceType: IOT_DEVICE_TYPE,
deviceCode: queryParams.deviceCode, deviceCode: queryParams.deviceCode,
deviceName: queryParams.deviceName, deviceName: queryParams.deviceName,
startTime, startTime,

@ -314,6 +314,7 @@ const currentDeviceIds = computed(() =>
) )
const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss' const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss'
const IOT_DEVICE_TYPE = 2
const normalizeDateTime = (value: string, fallback: string) => { const normalizeDateTime = (value: string, fallback: string) => {
const parsed = dayjs(value) const parsed = dayjs(value)
@ -348,6 +349,7 @@ const buildOverviewRequestParams = () => {
const [startTime, endTime] = syncSafeTimeRange() const [startTime, endTime] = syncSafeTimeRange()
return { return {
ids: currentDeviceIds.value.join(','), ids: currentDeviceIds.value.join(','),
deviceType: IOT_DEVICE_TYPE,
startTime, startTime,
endTime, endTime,
timelinePageNo: pageNo.value, timelinePageNo: pageNo.value,
@ -416,6 +418,7 @@ const getDeviceLedgerOptions = async (groupId?: string) => {
const getFilterOptions = async () => { const getFilterOptions = async () => {
const deviceLineTree = await OrganizationApi.deviceParameterAnalysis({ const deviceLineTree = await OrganizationApi.deviceParameterAnalysis({
keyword: undefined, keyword: undefined,
deviceType: IOT_DEVICE_TYPE,
showDevices: 1, showDevices: 1,
filterNoDeviceLine: 1 filterNoDeviceLine: 1
}) })

Loading…
Cancel
Save