设备类型接口

This commit is contained in:
sjl
2025-01-13 19:28:51 +08:00
parent e54cbfbc0a
commit 4dec1392f7
3 changed files with 80 additions and 17 deletions

View File

@@ -263,7 +263,7 @@ import { useAuthStore } from "@/stores/modules/auth";
import { useDownload } from '@/hooks/useDownload' import { useDownload } from '@/hooks/useDownload'
import {downloadDevData} from '@/api/plan/plan.ts' import {downloadDevData} from '@/api/plan/plan.ts'
import {documentedPqDev} from "@/api/device/device"; import {documentedPqDev} from "@/api/device/device";
import { getPqDev } from '@/api/device/device/index.ts'
const dictStore = useDictStore() const dictStore = useDictStore()
const checkStore = useCheckStore() const checkStore = useCheckStore()
const webMsgSend = ref();//webSocket推送的数据 const webMsgSend = ref();//webSocket推送的数据
@@ -331,6 +331,18 @@ isTimeCheck: {
} }
}) })
// 存储设备类型选项
const devTypeOptions = ref<{
id: string;
name: string ,
icd:string ,
power:string,
devVolt:number,
devCurr:number,
devChns:number,
}[]>([])
//下拉框数据 //下拉框数据
interface Dict { interface Dict {
id: string; id: string;
@@ -454,8 +466,11 @@ const columns = reactive<ColumnProps<Device.ResPqDev>[]>([
prop: 'devType', prop: 'devType',
label: '设备类型', label: '设备类型',
minWidth: 100, minWidth: 100,
enum: dictStore.getDictData('Dev_Type'), render: (scope) => {
fieldNames: { label: 'name', value: 'id' }, // 查找设备类型名称
const name = devTypeOptions.value.find(option => option.id === scope.row.devType);
return <span>{name?.name}</span>
},
}, },
{ {
prop: 'devChns', prop: 'devChns',
@@ -952,6 +967,7 @@ const handleTest = async (val:string) => {
webMsgSend.value = res webMsgSend.value = res
} }
}); });
channelsTest.value?.open(channelsSelection.value,props.plan); channelsTest.value?.open(channelsSelection.value,props.plan);
return; return;
} }
@@ -1059,7 +1075,18 @@ watch(
{ immediate: true } // 立即执行一次 { immediate: true } // 立即执行一次
); );
onBeforeMount(async () => {
const response = await getPqDev()
devTypeOptions.value = response.data.map(item => ({
id: item.id,
name: item.name,
icd: item.icd,
power: item.power,
devVolt: item.devVolt,
devCurr: item.devCurr,
devChns: item.devChns
}))
})
defineExpose({ changeActiveTabs }); defineExpose({ changeActiveTabs });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@@ -5,8 +5,11 @@
<div > <div >
<el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false" label-width="auto" class="form-three"> <el-form :model='formContent' ref='dialogFormRef' :rules='rules' :disabled="false" label-width="auto" class="form-three">
<el-divider >设备信息</el-divider> <el-divider >设备信息</el-divider>
<el-form-item label="设备名称" prop="name" v-if="scene != '1'"> <el-form-item label="设备序列号" prop="createId" >
<el-input v-model='formContent.name' placeholder="请输入设备名称"/> <el-input v-model="formContent.createId" placeholder="请输入设备序列号" @input="handleInput" />
</el-form-item>
<el-form-item label="设备名称" prop="name" >
<el-input v-model='formContent.name' placeholder="请输入设备名称" :disabled="scene === '1'"/>
</el-form-item> </el-form-item>
<el-form-item label='设备类型' prop='devType' > <el-form-item label='设备类型' prop='devType' >
<el-select v-model="formContent.devType" filterable clearable placeholder="请选择设备类型" @change="handleDevTypeChange"> <el-select v-model="formContent.devType" filterable clearable placeholder="请选择设备类型" @change="handleDevTypeChange">
@@ -45,9 +48,7 @@
:disabled-date="disabledDate" :disabled-date="disabledDate"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备序列号" prop="createId" >
<el-input v-model="formContent.createId" placeholder="请输入设备序列号"/>
</el-form-item>
<el-form-item label="固件版本" prop="hardwareVersion" v-if="scene === '0'"> <el-form-item label="固件版本" prop="hardwareVersion" v-if="scene === '0'">
<el-input v-model="formContent.hardwareVersion" placeholder="请输入固件版本"/> <el-input v-model="formContent.hardwareVersion" placeholder="请输入固件版本"/>
</el-form-item> </el-form-item>
@@ -343,6 +344,7 @@ const rules = computed(() => {
} }
if (valid) { if (valid) {
formContent.value.createDate = dayjs(formContent.value.createDate).format('YYYY-MM-DD'); formContent.value.createDate = dayjs(formContent.value.createDate).format('YYYY-MM-DD');
formContent.value.name = formContent.value.createId
if (formContent.value.arrivedDate) if (formContent.value.arrivedDate)
{ {
formContent.value.arrivedDate = dayjs(formContent.value.arrivedDate).format('YYYY-MM-DD'); formContent.value.arrivedDate = dayjs(formContent.value.arrivedDate).format('YYYY-MM-DD');
@@ -365,6 +367,7 @@ const rules = computed(() => {
ElMessage.success({ message: `${dialogTitle.value}成功!` }) ElMessage.success({ message: `${dialogTitle.value}成功!` })
} }
close() close()
// 刷新表格 // 刷新表格
await props.refreshTable!() await props.refreshTable!()
@@ -449,6 +452,15 @@ const handleDevTypeChange = (value: string) => {
} }
const handleInput = (value: string) => {
// 在这里处理选中事件的逻辑
formContent.value.name = value
}
// 对外映射 // 对外映射
defineExpose({ open }) defineExpose({ open })
const props = defineProps<{ const props = defineProps<{

View File

@@ -39,10 +39,11 @@ import { type ProTableInstance, type ColumnProps } from '@/components/ProTable/i
import DevicePopup from '@/views/machine/device/components/devicePopup.vue' import DevicePopup from '@/views/machine/device/components/devicePopup.vue'
import { CirclePlus, Delete, EditPen, Download, Upload } from '@element-plus/icons-vue' import { CirclePlus, Delete, EditPen, Download, Upload } from '@element-plus/icons-vue'
import { useDictStore } from '@/stores/modules/dict' import { useDictStore } from '@/stores/modules/dict'
import { getPqDevList, deletePqDev, exportPqDev, downloadTemplate, importPqDev } from '@/api/device/device/index.ts' import { getPqDevList, deletePqDev, exportPqDev, downloadTemplate, importPqDev,getPqDev } from '@/api/device/device/index.ts'
import { ElMessageBox } from 'element-plus' import { ElMessageBox } from 'element-plus'
import { computed, reactive, ref } from 'vue' import { computed, onBeforeMount, onMounted, reactive, ref } from 'vue'
import { useModeStore , useAppSceneStore} from '@/stores/modules/mode'; // 引入模式 store import { useModeStore , useAppSceneStore} from '@/stores/modules/mode'; // 引入模式 store
import { forEach } from 'lodash'
const modeStore = useModeStore(); const modeStore = useModeStore();
const dictStore = useDictStore() const dictStore = useDictStore()
@@ -53,6 +54,16 @@ const devicePopup = ref()
const ConditionsIsShow = ref(false) const ConditionsIsShow = ref(false)
const boundPqDevList=ref<Device.ReqPqDevParams[]>([])//根据检测计划id查询出所有已绑定的设备 const boundPqDevList=ref<Device.ReqPqDevParams[]>([])//根据检测计划id查询出所有已绑定的设备
// 存储设备类型选项
const devTypeOptions = ref<{
id: string;
name: string ,
icd:string ,
power:string,
devVolt:number,
devCurr:number,
devChns:number,
}[]>([])
const getTableList = async (params: any) => { const getTableList = async (params: any) => {
let newParams = JSON.parse(JSON.stringify(params)) let newParams = JSON.parse(JSON.stringify(params))
@@ -75,15 +86,17 @@ const columns = reactive<ColumnProps<Device.ResPqDev>[]>([
...(appSceneStore.currentScene != '1' ? { ...(appSceneStore.currentScene != '1' ? {
search: { el: 'input' }, search: { el: 'input' },
} : {}), } : {}),
minWidth: 200, minWidth: 200,
}, },
{ {
prop: 'devType', prop: 'devType',
label: '设备类型', label: '设备类型',
minWidth: 200, minWidth: 200,
enum: dictStore.getDictData('Dev_Type'), render: (scope) => {
fieldNames: { label: 'name', value: 'id' }, // 查找设备类型名称
const name = devTypeOptions.value.find(option => option.id === scope.row.devType);
return <span>{name?.name}</span>
},
}, },
{ {
prop: 'createDate', prop: 'createDate',
@@ -194,6 +207,17 @@ const importFile = async () => {
deviceImportExcel.value?.acceptParams(params) deviceImportExcel.value?.acceptParams(params)
} }
onBeforeMount(async () => {
const response = await getPqDev()
devTypeOptions.value = response.data.map(item => ({
id: item.id,
name: item.name,
icd: item.icd,
power: item.power,
devVolt: item.devVolt,
devCurr: item.devCurr,
devChns: item.devChns
}))
})
</script> </script>