<template> <div class="app-container"> <el-row :gutter="15"> <el-col> <el-card class="box-card" shadow="never"> <div slot="header" class="clearfix"> <span class="role-span">基本信息:{{ device_code }}</span> </div> <el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="78px"> <el-row> <el-col :span="12"> <el-form-item label="设备类型" prop="device_type"> <el-select v-model="form.device_type" placeholder="" disabled > <el-option v-for="item in dict.device_type" :key="item.id" :label="item.label" :value="item.value" /> </el-select> <span style="color: #C0C0C0;margin-left: 10px;" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备编号" prop="device_code"> <el-input v-model="form.device_code" disabled /> <span style="color: #C0C0C0;margin-left: 10px;" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="设备名称" prop="device_name"> <el-input v-model="form.device_name" disabled /> <span style="color: #C0C0C0;margin-left: 10px;" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备驱动" prop="driver_code"> <el-select v-model="form.driver_code" placeholder="" filterable @change="changeDriver" > <el-option v-for="item in deviceDriverList" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> </el-col> </el-row> </el-form> </el-card> </el-col> <!-- 组件--> <component :is="currentComponent" :parent-form="form" /> </el-row> </div> </template> <script> import crud from '@/mixins/crud' import { get, selectDriverCodeList } from '@/api/acs/device/driverConfig' import { getDicts } from '@/api/system/dict' import standard_inspect_site from './driver/standard_inspect_site' import standard_ordinary_site from './driver/standard_ordinary_site' import weighing_site from './driver/weighing_site' import machines_site from './driver/machines_site' import lamp_three_color from './driver/lamp_three_color' import standard_autodoor from './driver/standard_autodoor' import standard_emptypallet_site from './driver/standard_emptypallet_site' import standard_manipulator_inspect_site from './driver/standard_manipulator_inspect_site' import standard_special_inspect_site from './driver/standard_special_inspect_site' import special_ordinary_site from './driver/special_ordinary_site' import standard_storage from '@/views/acs/device/driver/standard_storage' import standard_scanner from '@/views/acs/device/driver/standard_scanner' import standard_conveyor_control_with_scanner from '@/views/acs/device/driver/standard_conveyor_control_with_scanner' import standard_conveyor_control_with_plcscanner from '@/views/acs/device/driver/standard_conveyor_control_with_plcscanner' import standard_conveyor_control from '@/views/acs/device/driver/standard_conveyor_control' import standard_conveyor_monitor from '@/views/acs/device/driver/standard_conveyor_monitor' import non_line_manipulator_inspect_site from '@/views/acs/device/driver/non_line_manipulator_inspect_site' import non_line_inspect_site from '@/views/acs/device/driver/non_line_inspect_site' import manipulator_inspect_site_NDC from '@/views/acs/device/driver/manipulator_inspect_site_NDC' import feedback_agv_status_site from '@/views/acs/device/driver/feedback_agv_status_site' import standard_manipulator_stacking_site from '@/views/acs/device/driver/standard_manipulator_stacking_site' import standard_photoelectric_inspect_site from '@/views/acs/device/driver/standard_photoelectric_inspect_site' import ndxy_special from '@/views/acs/device/driver/ndxy_special' import hailiang_labeling from '@/views/acs/device/driver/hailiang_labeling' import ndxy_special_two from '@/views/acs/device/driver/ndxy_special_two' import whxr_storage_conveyor from '@/views/acs/device/driver/whxr/whxr_storage_conveyor' import whxr_ball_mill from '@/views/acs/device/driver/whxr/whxr_ball_mill' import whxr_spary_tower from '@/views/acs/device/driver/whxr/whxr_spary_power' import whxr_weight from '@/views/acs/device/driver/whxr/whxr_weight' import electric_fence from '@/views/acs/device/driver/electric_fence' import oumulong_plc from '@/views/acs/device/driver/oumulong_plc' import traffic_light from '@/views/acs/device/driver/traffic_light' import standard_rgv from '@/views/acs/device/driver/standard_rgv' import ykbk_special from '@/views/acs/device/driver/ykbk_special' import ssj_cache_site from '@/views/acs/device/driver/ssj_cache_site' import standard_conveyor_line from '@/views/acs/device/driver/standard_conveyor_line' import pauseOrResume from '@/views/acs/device/driver/pauseOrResume' export default { name: 'DeviceConfig', components: { standard_ordinary_site, standard_inspect_site, standard_autodoor, standard_emptypallet_site, standard_manipulator_inspect_site, standard_special_inspect_site, lamp_three_color, standard_storage, special_ordinary_site, standard_scanner, standard_conveyor_control_with_scanner, standard_conveyor_control_with_plcscanner, standard_conveyor_control, standard_conveyor_monitor, weighing_site, machines_site, non_line_manipulator_inspect_site, non_line_inspect_site, manipulator_inspect_site_NDC, feedback_agv_status_site, standard_manipulator_stacking_site, standard_photoelectric_inspect_site, ndxy_special, hailiang_labeling, ndxy_special_two, whxr_storage_conveyor, whxr_ball_mill, whxr_spary_tower, whxr_weight, electric_fence, oumulong_plc, traffic_light, standard_rgv, ykbk_special, ssj_cache_site, standard_conveyor_line, pauseOrResume }, dicts: ['device_type'], mixins: [crud], data() { return { currentComponent: '', activeName: 'first', device_name: '', tableHeight: 550, columnLoading: false, configLoading: false, dicts: [], syncLoading: false, genLoading: false, form: { id: null, device_name: '', device_type: '', name: '', code: '', driver_code: '' }, deviceDriverList: [], rules: { driver_code: [ { required: true, message: '设备驱动不能为空', trigger: 'blur' } ] } } }, created() { this.tableHeight = document.documentElement.clientHeight - 385 this.device_code = this.$route.params.device_code this.$nextTick(() => { get(this.device_code).then(data => { this.form = data.device // 默认是普通站点 // this.currentComponent = 'standard_ordinary_site' if (data.device.driver_code) { this.currentComponent = data.device.driver_code } }) selectDriverCodeList(this.device_code).then(data => { this.deviceDriverList = data }) getDicts().then(data => { this.dicts = data }) }) }, methods: { changeDriver(val) { this.currentComponent = val } } } </script> <style rel="stylesheet/scss" lang="scss"> .edit-input { .el-input__inner { border: 1px solid #e5e6e7; } } </style> <style scoped> ::v-deep .input-with-select .el-input-group__prepend { background-color: #fff; } </style>