123
						commit
						5f77153757
					
				| 
						 | 
				
			
			@ -57,7 +57,7 @@ const infoApi = {
 | 
			
		|||
  },
 | 
			
		||||
  // 更新模板
 | 
			
		||||
  editMb(params) {
 | 
			
		||||
    return postPBRequest('/template', params, 55200)
 | 
			
		||||
    return postPBRequest('/template', params, 53200)
 | 
			
		||||
  },
 | 
			
		||||
  // 删除模板
 | 
			
		||||
  delMb(params) {
 | 
			
		||||
| 
						 | 
				
			
			@ -67,6 +67,10 @@ const infoApi = {
 | 
			
		|||
  addP(params) {
 | 
			
		||||
    return postPBRequest('/template', params, 53110, params.template_name)
 | 
			
		||||
  },
 | 
			
		||||
  // 编辑点位
 | 
			
		||||
  editP(params) {
 | 
			
		||||
    return postPBRequest('/template', params, 53210, params.template_name)
 | 
			
		||||
  },
 | 
			
		||||
  // 获取模板支持类型
 | 
			
		||||
  getTemplateType(params) {
 | 
			
		||||
    return postPBRequest('/template', params, 53001)
 | 
			
		||||
| 
						 | 
				
			
			@ -110,6 +114,10 @@ const infoApi = {
 | 
			
		|||
  addSet(params) {
 | 
			
		||||
    return postPBRequest('/driver', params, 54110, params.driver_name)
 | 
			
		||||
  },
 | 
			
		||||
  // 更新设备
 | 
			
		||||
  editSet(params) {
 | 
			
		||||
    return postPBRequest('/driver', params, 54210, params.driver_name)
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  // 获取设备列表
 | 
			
		||||
  getSet(params) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,251 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <el-dialog v-model="visible" title="点位管理" width="60%" :before-close="closeDialog">
 | 
			
		||||
    <el-card class="top-title">
 | 
			
		||||
      <span>模板名称:{{ addForm.name }}</span>
 | 
			
		||||
      <span>模板描述:{{ addForm.description }}</span>
 | 
			
		||||
      <span>模板类型:{{ templateData[1] }}</span>
 | 
			
		||||
    </el-card>
 | 
			
		||||
    <div class="btns">
 | 
			
		||||
      <div>
 | 
			
		||||
        <el-button type="primary" @click="saveP"> 保存 </el-button>
 | 
			
		||||
        <el-button @click="closeDialog">取消</el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
      <!-- <div>
 | 
			
		||||
        <el-button type="primary" @click="importData"> 导入 </el-button>
 | 
			
		||||
        <el-button type="primary" @click="exportData"> 导出 </el-button>
 | 
			
		||||
      </div> -->
 | 
			
		||||
    </div>
 | 
			
		||||
    <div>
 | 
			
		||||
      <el-table :data="propertiesData" height="230" style="width: 100%" border stripe
 | 
			
		||||
        :header-cell-style="{ background: '#F6F7FC' }">
 | 
			
		||||
        <el-table-column prop="name" label="点位名称" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-input v-model="scope.row.name" clearable />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="address" label="点位地址" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-input v-model="scope.row.address" clearable />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="type" label="点位类型" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-select v-model="scope.row.type" size="mini">
 | 
			
		||||
              <el-option v-for="item in datatypeArr" :key="item.value" :label="item.label" :value="item.value" />
 | 
			
		||||
            </el-select>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
 | 
			
		||||
        <el-table-column prop="byte_order" label="字节顺序" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-select v-model="scope.row.byte_order" size="mini">
 | 
			
		||||
              <el-option v-for="item in byte_orderArr" :key="item.value" :label="item.label" :value="item.value" />
 | 
			
		||||
            </el-select>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="multplier" label="缩放系数" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-input v-model="scope.row.multplier" clearable />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="unit" label="点位单位" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-input v-model="scope.row.unit" clearable />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="description" label="点位描述" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-input v-model="scope.row.description" clearable />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column label="操作" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-button type="danger" @click="delData(scope.$index)">
 | 
			
		||||
              删除
 | 
			
		||||
            </el-button>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
      <div class="flex-center" @click="addRow">
 | 
			
		||||
        +新增一行
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </el-dialog>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import { onMounted, reactive, ref, toRefs, computed, nextTick } from "vue";
 | 
			
		||||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
// import { m_point, m_properties, mb_info, response} from '../proto/data/pd'
 | 
			
		||||
export default {
 | 
			
		||||
  props: ["formData", "dialogVisible","templateData"],
 | 
			
		||||
  emits: ["dialogClose", "dialogSuccess"],
 | 
			
		||||
  setup(props, ctx) {
 | 
			
		||||
    const state = reactive({
 | 
			
		||||
      addForm: {},
 | 
			
		||||
      propertiesData: [],
 | 
			
		||||
      datatypeArr: [{
 | 
			
		||||
        label: 'bool',
 | 
			
		||||
        value: 'bool'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'int16',
 | 
			
		||||
        value: 'int16'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'int32',
 | 
			
		||||
        value: 'int32'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'unit16',
 | 
			
		||||
        value: 'unit16'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'unit32',
 | 
			
		||||
        value: 'unit32'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'float32',
 | 
			
		||||
        value: 'float32'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'float64',
 | 
			
		||||
        value: 'float64'
 | 
			
		||||
      }],
 | 
			
		||||
      byte_orderArr: [{
 | 
			
		||||
        label: 'null',
 | 
			
		||||
        value: 'null'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: '12',
 | 
			
		||||
        value: '12'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: '21',
 | 
			
		||||
        value: '21'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: '1234',
 | 
			
		||||
        value: '1234'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: '4321',
 | 
			
		||||
        value: '4321'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'ABCD',
 | 
			
		||||
        value: 'ABCD'
 | 
			
		||||
      }, {
 | 
			
		||||
        label: 'DCBA',
 | 
			
		||||
        value: 'DCBA'
 | 
			
		||||
      }]
 | 
			
		||||
    });
 | 
			
		||||
    const visible = computed(() => {
 | 
			
		||||
      return props.dialogVisible;
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    onMounted(() => {
 | 
			
		||||
      state.addForm = props.formData;
 | 
			
		||||
      // 获取点位列表
 | 
			
		||||
      getPointList();
 | 
			
		||||
    });
 | 
			
		||||
    const getPointList = async () => {
 | 
			
		||||
      const parm = {
 | 
			
		||||
        name: state.addForm.name
 | 
			
		||||
      }
 | 
			
		||||
      const res = await infoApi.getP(parm);
 | 
			
		||||
      if (res.code == 0) {
 | 
			
		||||
        const propArr = res.data || [];
 | 
			
		||||
        state.propertiesData = [];
 | 
			
		||||
        propArr.forEach(v => {
 | 
			
		||||
          state.propertiesData.push({
 | 
			
		||||
            name: v.name,
 | 
			
		||||
            address: v.properties[0].value,
 | 
			
		||||
            type: v.properties[1].value,
 | 
			
		||||
            byte_order: v.properties[2].value,
 | 
			
		||||
            multplier: v.properties[3].value,
 | 
			
		||||
            unit: v.properties[4].value,
 | 
			
		||||
            description: v.properties[5].value,
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log(res);
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
    const closeDialog = () => {
 | 
			
		||||
      ctx.emit("dialogClose");
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const importData = () => { };
 | 
			
		||||
 | 
			
		||||
    const exportData = () => { };
 | 
			
		||||
 | 
			
		||||
    const saveP = async () => {
 | 
			
		||||
      if (state.propertiesData.length < 1) {
 | 
			
		||||
        return ElMessage.error("请添加一条点位");
 | 
			
		||||
      }
 | 
			
		||||
      // const newArr = [];
 | 
			
		||||
      // state.propertiesData.forEach(item => {
 | 
			
		||||
       
 | 
			
		||||
      // })
 | 
			
		||||
      // console.log(123, newArr)
 | 
			
		||||
      const param = {
 | 
			
		||||
        name: state.addForm.name,
 | 
			
		||||
        type: state.addForm.type,
 | 
			
		||||
        description: state.addForm.description,
 | 
			
		||||
        points: state.propertiesData
 | 
			
		||||
      }
 | 
			
		||||
      const res = await infoApi.addP(param);
 | 
			
		||||
      if (res.code == 0) {
 | 
			
		||||
        ElMessage.success(res.message || "请求成功");
 | 
			
		||||
        // 获取数据
 | 
			
		||||
        getPointList();
 | 
			
		||||
      } else {
 | 
			
		||||
        ElMessage.error(res.message);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
    const addRow = () => {
 | 
			
		||||
      let newRow = {
 | 
			
		||||
        name: '',
 | 
			
		||||
        address: '',
 | 
			
		||||
        type: 'bool',
 | 
			
		||||
        byte_order: 'null',
 | 
			
		||||
        multplier: '',
 | 
			
		||||
        unit: '',
 | 
			
		||||
        description: ''
 | 
			
		||||
      };
 | 
			
		||||
      state.propertiesData.push(newRow);
 | 
			
		||||
    }
 | 
			
		||||
    const delData = (index) => {
 | 
			
		||||
      state.propertiesData.splice(index, 1);
 | 
			
		||||
    }
 | 
			
		||||
    return {
 | 
			
		||||
      ...toRefs(state),
 | 
			
		||||
      visible,
 | 
			
		||||
      closeDialog,
 | 
			
		||||
      importData,
 | 
			
		||||
      exportData,
 | 
			
		||||
      addRow,
 | 
			
		||||
      saveP,
 | 
			
		||||
      delData
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.top-title {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
 | 
			
		||||
  ::v-deep .el-card__body {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    font-weight: 800;
 | 
			
		||||
    font-size: 16px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.btns {
 | 
			
		||||
  padding: 15px 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: space-between;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.flex-center {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  padding: 10px 0;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
  <el-dialog v-model="visible" title="点位管理" width="40%" :before-close="closeDialog">
 | 
			
		||||
    <el-form :model="addForm" label-width="100px" :rules="rules" ref="ruleFormRef">
 | 
			
		||||
      <el-form-item label="点位名称:" prop="name">
 | 
			
		||||
        <el-input v-model="addForm.name" placeholder="请输入点位名称" clearable />
 | 
			
		||||
        <el-input v-model="addForm.name" placeholder="请输入点位名称" clearable :disabled="type !== 'I'" />
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="点位地址:" prop="address">
 | 
			
		||||
        <el-input v-model="addForm.address" placeholder="请输入点位地址" clearable type="number" />
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +20,17 @@
 | 
			
		|||
      <el-form-item label="点位描述:" prop="description">
 | 
			
		||||
        <el-input v-model="addForm.description" placeholder="请输入点位描述" clearable />
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="读写权限:" prop="permissions">
 | 
			
		||||
        <el-select v-model="addForm.permissions" size="mini" placeholder="请选择读写权限">
 | 
			
		||||
          <el-option v-for="item in perOptions" :key="item.value" :label="item.label" :value="item.value" />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="缩放系数:" prop="multiplier">
 | 
			
		||||
        <el-input v-model="addForm.multiplier" placeholder="请输入缩放系数" type="number" clearable />
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="点位单位:" prop="unit">
 | 
			
		||||
        <el-input v-model="addForm.unit" placeholder="请输入点位单位" clearable />
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
    </el-form>
 | 
			
		||||
    <template #footer>
 | 
			
		||||
      <span class="dialog-footer">
 | 
			
		||||
| 
						 | 
				
			
			@ -34,14 +45,12 @@ import { onMounted, reactive, ref, toRefs, computed, nextTick } from "vue";
 | 
			
		|||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
export default {
 | 
			
		||||
  props: ["formData", "dialogVisible"],
 | 
			
		||||
  props: ["formData", "dialogVisible", "pointData", "type"],
 | 
			
		||||
  emits: ["dialogClose", "dialogSuccess"],
 | 
			
		||||
  setup(props, ctx) {
 | 
			
		||||
    const ruleFormRef = ref(null);
 | 
			
		||||
    const state = reactive({
 | 
			
		||||
      addForm: {
 | 
			
		||||
        type: 1,
 | 
			
		||||
        byte_order: 1
 | 
			
		||||
      },
 | 
			
		||||
      datatypeArr: [{
 | 
			
		||||
        label: 'bool',
 | 
			
		||||
| 
						 | 
				
			
			@ -120,11 +129,24 @@ export default {
 | 
			
		|||
        label: 'LIT',
 | 
			
		||||
        value: 13
 | 
			
		||||
      }],
 | 
			
		||||
      perOptions: [
 | 
			
		||||
        {
 | 
			
		||||
          label: '只读',
 | 
			
		||||
          value: 1
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          label: '可写',
 | 
			
		||||
          value: 2
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      rules: {
 | 
			
		||||
        name: [{ required: true, message: "请输入点位名称", trigger: "blur" }],
 | 
			
		||||
        address: [{ required: true, message: "请输入点位地址", trigger: "blur" }],
 | 
			
		||||
        type: [{ required: true, message: "请选择点位类型", trigger: "blur" }],
 | 
			
		||||
        byte_order: [{ required: true, message: "请选择字节顺序", trigger: "blur" }],
 | 
			
		||||
        multiplier: [{ required: true, message: "请输入缩放系数", trigger: "blur" }],
 | 
			
		||||
        unit: [{ required: true, message: "请输入点位单位", trigger: "blur" }],
 | 
			
		||||
        permissions: [{ required: true, message: "请输入读写权限", trigger: "blur" }],
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
    const visible = computed(() => {
 | 
			
		||||
| 
						 | 
				
			
			@ -132,7 +154,7 @@ export default {
 | 
			
		|||
    });
 | 
			
		||||
 | 
			
		||||
    onMounted(() => {
 | 
			
		||||
 | 
			
		||||
      state.addForm = props.pointData
 | 
			
		||||
    });
 | 
			
		||||
    const closeDialog = () => {
 | 
			
		||||
      ctx.emit("dialogClose");
 | 
			
		||||
| 
						 | 
				
			
			@ -149,14 +171,15 @@ export default {
 | 
			
		|||
          const param = {
 | 
			
		||||
            template_name: props.formData.name,
 | 
			
		||||
            ...state.addForm,
 | 
			
		||||
            address: Number(state.addForm.address)
 | 
			
		||||
            address: Number(state.addForm.address),
 | 
			
		||||
            multiplier: Number(state.addForm.multiplier)
 | 
			
		||||
          }
 | 
			
		||||
          const res = await infoApi.addP(param);
 | 
			
		||||
          const res = props.type === 'I' ? await infoApi.addP(param): await infoApi.editP(param);
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            ElMessage.success(res.message || "请求成功");
 | 
			
		||||
            ctx.emit("dialogClose");
 | 
			
		||||
            ctx.emit("dialogSuccess");
 | 
			
		||||
          } else {
 | 
			
		||||
            ElMessage.error(res.message);
 | 
			
		||||
            ElMessage.error(res.data || res.message);
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          console.log("error submit!");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
  <el-dialog v-model="visible" title="设备管理" width="60%" :before-close="closeDialog">
 | 
			
		||||
    <el-form :model="addForm" label-width="100px" :rules="rules" ref="ruleFormRef">
 | 
			
		||||
      <el-form-item label="设备名称:" prop="name">
 | 
			
		||||
        <el-input v-model="addForm.name" placeholder="请输入点位名称" clearable />
 | 
			
		||||
        <el-input v-model="addForm.name" placeholder="请输入点位名称" clearable :disabled="type!=='I'"/>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="设备id:" prop="id">
 | 
			
		||||
        <el-input v-model="addForm.id" placeholder="请输入设备id" clearable type="number" />
 | 
			
		||||
| 
						 | 
				
			
			@ -31,16 +31,12 @@ import { onMounted, reactive, ref, toRefs, computed, nextTick } from "vue";
 | 
			
		|||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
export default {
 | 
			
		||||
  props: ["formData", "dialogVisible"],
 | 
			
		||||
  props: ["formData", "dialogVisible", "setData", "type"],
 | 
			
		||||
  emits: ["dialogClose", "dialogSuccess"],
 | 
			
		||||
  setup(props, ctx) {
 | 
			
		||||
    const ruleFormRef = ref(null);
 | 
			
		||||
    const state = reactive({
 | 
			
		||||
      addForm: {
 | 
			
		||||
        name: '',
 | 
			
		||||
        template_name: '',
 | 
			
		||||
        id: 1,
 | 
			
		||||
        description: ''
 | 
			
		||||
      },
 | 
			
		||||
      modelArr: [],
 | 
			
		||||
      rules: {
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +50,7 @@ export default {
 | 
			
		|||
    });
 | 
			
		||||
 | 
			
		||||
    onMounted(() => {
 | 
			
		||||
      state.addForm = props.setData;
 | 
			
		||||
      console.log(123, props.formData)
 | 
			
		||||
      // 获取模板数据
 | 
			
		||||
      getTxTemplate();
 | 
			
		||||
| 
						 | 
				
			
			@ -97,10 +94,10 @@ export default {
 | 
			
		|||
            ...state.addForm,
 | 
			
		||||
            id: Number(state.addForm.id)
 | 
			
		||||
          }
 | 
			
		||||
          const res = await infoApi.addSet(param);
 | 
			
		||||
          const res = props.type === 'I' ? await infoApi.addSet(param): await infoApi.editSet(param);
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            ElMessage.success(res.message || "请求成功");
 | 
			
		||||
            ctx.emit("dialogClose");
 | 
			
		||||
            ctx.emit("dialogSuccess");
 | 
			
		||||
          } else {
 | 
			
		||||
            ElMessage.error(res.message);
 | 
			
		||||
          }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,24 @@
 | 
			
		|||
<template>
 | 
			
		||||
    <el-dialog v-model="visible" title="点位管理" width="60%" :before-close="closeDialog">
 | 
			
		||||
        <el-table :data="propertiesData" height="230" style="width: 100%" border stripe
 | 
			
		||||
    <el-drawer size="65%" :modal-append-to-body="false" :destroy-on-close="true" :before-close="closeDialog"
 | 
			
		||||
        v-model="visible" title="点位管理">
 | 
			
		||||
        <el-card class="top-title">
 | 
			
		||||
            <span>模板名称:{{ formData.name }}</span>
 | 
			
		||||
            <span>模板描述:{{ formData.description }}</span>
 | 
			
		||||
            <span>模板类型:{{ templateData[formData.type] }}</span>
 | 
			
		||||
            <span>点位数量:{{ propertiesData.length }}</span>
 | 
			
		||||
        </el-card>
 | 
			
		||||
        <div class="top-btn">
 | 
			
		||||
            <el-button type="primary" @click="manageData">
 | 
			
		||||
                新增点位
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <div>
 | 
			
		||||
                <el-button type="primary" @click="importData"> 导入 </el-button>
 | 
			
		||||
                <el-button type="primary" @click="exportData"> 导出 </el-button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <el-table :data="propertiesData" height="740" style="width: 100%" border stripe
 | 
			
		||||
            :header-cell-style="{ background: '#F6F7FC' }">
 | 
			
		||||
            <el-table-column type="index" label="序号" width="80" align="center" />
 | 
			
		||||
            <el-table-column prop="name" label="点位名称" align="center" show-overflow-tooltip>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column prop="address" label="点位地址" align="center" show-overflow-tooltip>
 | 
			
		||||
| 
						 | 
				
			
			@ -17,29 +34,49 @@
 | 
			
		|||
                    <span>{{ byteData[scope.row.byte_order] }}</span>
 | 
			
		||||
                </template>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
 | 
			
		||||
            <el-table-column prop="description" label="点位描述" align="center" show-overflow-tooltip>
 | 
			
		||||
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column label="操作" align="center" show-overflow-tooltip>
 | 
			
		||||
            <el-table-column prop="multiplier" label="缩放系数" align="center" show-overflow-tooltip>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column prop="unit" label="点位单位" align="center" show-overflow-tooltip>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column prop="permissions" label="读写权限" align="center" show-overflow-tooltip>
 | 
			
		||||
                <template #default="scope">
 | 
			
		||||
                    <span>{{ scope.row.permissions == 1 ? '只读' : '可写'}}</span>
 | 
			
		||||
                </template>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column label="操作" align="center" width="180" show-overflow-tooltip>
 | 
			
		||||
                <template #default="scope">
 | 
			
		||||
                    <el-button type="primary" @click="editData(scope.row)">
 | 
			
		||||
                        编辑
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                    <el-button type="danger" @click="delData(scope.row)">
 | 
			
		||||
                        删除
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                </template>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
        </el-table>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
        <AddPoint :type="type" :formData="formData1" :pointData="pointData" :dialogVisible="dialogVisible1" v-if="dialogVisible1"
 | 
			
		||||
            @dialogClose="dialogVisible1 = false" @dialogSuccess="dialogSuccess1">
 | 
			
		||||
        </AddPoint>
 | 
			
		||||
    </el-drawer>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import { onMounted, reactive, ref, toRefs, computed, nextTick } from "vue";
 | 
			
		||||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import AddPoint from "@/components/AddPoint.vue";
 | 
			
		||||
export default {
 | 
			
		||||
    props: ["formData", "dialogVisible"],
 | 
			
		||||
    components: {
 | 
			
		||||
        AddPoint
 | 
			
		||||
    },
 | 
			
		||||
    props: ["formData", "dialogVisible", "templateData"],
 | 
			
		||||
    emits: ["dialogClose", "dialogSuccess"],
 | 
			
		||||
    setup(props, ctx) {
 | 
			
		||||
        const state = reactive({
 | 
			
		||||
            pointData: {},
 | 
			
		||||
            formData1: {},
 | 
			
		||||
            dialogVisible1: false,
 | 
			
		||||
            propertiesData: [],
 | 
			
		||||
            typeData: {
 | 
			
		||||
                1: 'bool',
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +103,8 @@ export default {
 | 
			
		|||
                11: '1243',
 | 
			
		||||
                12: 'BIG',
 | 
			
		||||
                13: 'LIT'
 | 
			
		||||
            }
 | 
			
		||||
            },
 | 
			
		||||
            type: 'I'
 | 
			
		||||
        });
 | 
			
		||||
        const visible = computed(() => {
 | 
			
		||||
            return props.dialogVisible;
 | 
			
		||||
| 
						 | 
				
			
			@ -119,12 +157,51 @@ export default {
 | 
			
		|||
                });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const manageData = () => {
 | 
			
		||||
            state.dialogVisible1 = true;
 | 
			
		||||
            state.formData1 = props.formData;
 | 
			
		||||
            state.type = 'I';
 | 
			
		||||
            state.pointData = {
 | 
			
		||||
                name: '',
 | 
			
		||||
                address: 36,
 | 
			
		||||
                type: 1,
 | 
			
		||||
                byte_order: 1,
 | 
			
		||||
                permissions: 1,
 | 
			
		||||
                multiplier: 1,
 | 
			
		||||
                unit: 'ppm'
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const editData = (item) => {
 | 
			
		||||
            state.dialogVisible1 = true;
 | 
			
		||||
            state.formData1 = props.formData;
 | 
			
		||||
            state.type = 'U';
 | 
			
		||||
            state.pointData = JSON.parse(JSON.stringify(item));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const dialogSuccess1 = () => {
 | 
			
		||||
            state.dialogVisible1 = false;
 | 
			
		||||
            getPointList();
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        const importData = () => {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const exportData = () => {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            ...toRefs(state),
 | 
			
		||||
            visible,
 | 
			
		||||
            closeDialog,
 | 
			
		||||
            delData
 | 
			
		||||
            delData,
 | 
			
		||||
            manageData,
 | 
			
		||||
            dialogSuccess1,
 | 
			
		||||
            importData,
 | 
			
		||||
            exportData,
 | 
			
		||||
            editData
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -142,6 +219,13 @@ export default {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.top-btn {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin: 10px 0;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.btns {
 | 
			
		||||
    padding: 15px 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,21 @@
 | 
			
		|||
<template>
 | 
			
		||||
    <el-dialog v-model="visible" title="设备管理" width="60%" :before-close="closeDialog">
 | 
			
		||||
    <el-drawer size="65%" :modal-append-to-body="false" :destroy-on-close="true" :before-close="closeDialog"
 | 
			
		||||
        v-model="visible" title="设备管理">
 | 
			
		||||
        <el-card class="top-title">
 | 
			
		||||
            <span>通讯名称:{{ formData.name }}</span>
 | 
			
		||||
            <span>通讯描述:{{ formData.description }}</span>
 | 
			
		||||
            <span>通信驱动:{{ qudongOptions[formData.type] }}</span>
 | 
			
		||||
            <span>设备数量:{{ propertiesData.length }}</span>
 | 
			
		||||
        </el-card>
 | 
			
		||||
        <div class="top-btn">
 | 
			
		||||
            <el-button type="primary" @click="manageData">
 | 
			
		||||
                新增设备
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <div>
 | 
			
		||||
                <el-button type="primary" @click="importData"> 导入 </el-button>
 | 
			
		||||
                <el-button type="primary" @click="exportData"> 导出 </el-button>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <el-table :data="propertiesData" height="230" style="width: 100%" border stripe
 | 
			
		||||
            :header-cell-style="{ background: '#F6F7FC' }">
 | 
			
		||||
            <el-table-column prop="name" label="设备名称" align="center" show-overflow-tooltip>
 | 
			
		||||
| 
						 | 
				
			
			@ -12,26 +28,40 @@
 | 
			
		|||
            <el-table-column prop="description" label="设备描述" align="center" show-overflow-tooltip>
 | 
			
		||||
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
            <el-table-column label="操作" align="center" show-overflow-tooltip>
 | 
			
		||||
            <el-table-column label="操作" align="center" width="180" show-overflow-tooltip>
 | 
			
		||||
                <template #default="scope">
 | 
			
		||||
                    <el-button type="primary" @click="editData(scope.row)">
 | 
			
		||||
                        编辑
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                    <el-button type="danger" @click="delData(scope.row)">
 | 
			
		||||
                        删除
 | 
			
		||||
                    </el-button>
 | 
			
		||||
                </template>
 | 
			
		||||
            </el-table-column>
 | 
			
		||||
        </el-table>
 | 
			
		||||
    </el-dialog>
 | 
			
		||||
        <AddSet :type="type" :formData="formData1" :setData="setData" :dialogVisible="dialogVisible1" v-if="dialogVisible1"
 | 
			
		||||
            @dialogClose="dialogVisible1 = false" @dialogSuccess="dialogSuccess1">
 | 
			
		||||
        </AddSet>
 | 
			
		||||
    </el-drawer>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import { onMounted, reactive, ref, toRefs, computed, nextTick } from "vue";
 | 
			
		||||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import AddSet from "@/components/AddSet.vue";
 | 
			
		||||
export default {
 | 
			
		||||
    props: ["formData", "dialogVisible"],
 | 
			
		||||
    components: {
 | 
			
		||||
        AddSet
 | 
			
		||||
    },
 | 
			
		||||
    props: ["formData", "dialogVisible", "qudongOptions"],
 | 
			
		||||
    emits: ["dialogClose", "dialogSuccess"],
 | 
			
		||||
    setup(props, ctx) {
 | 
			
		||||
        const state = reactive({
 | 
			
		||||
            propertiesData: [],
 | 
			
		||||
            formData1: {},
 | 
			
		||||
            setData: {},
 | 
			
		||||
            dialogVisible1: false,
 | 
			
		||||
            type: 'I'
 | 
			
		||||
        });
 | 
			
		||||
        const visible = computed(() => {
 | 
			
		||||
            return props.dialogVisible;
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +77,7 @@ export default {
 | 
			
		|||
            }
 | 
			
		||||
            const res = await infoApi.getSet(parm);
 | 
			
		||||
            if (res.code == 0) {
 | 
			
		||||
                state.propertiesData = res.data;
 | 
			
		||||
                state.propertiesData = res.data || [];
 | 
			
		||||
            } else {
 | 
			
		||||
                console.log(res);
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -80,12 +110,48 @@ export default {
 | 
			
		|||
                });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const manageData = () => {
 | 
			
		||||
            state.dialogVisible1 = true;
 | 
			
		||||
            state.formData1 = props.formData;
 | 
			
		||||
            state.type = 'I';
 | 
			
		||||
            state.setData = {
 | 
			
		||||
                name: '',
 | 
			
		||||
                id: 1,
 | 
			
		||||
                description: ''
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const editData = (item) => {
 | 
			
		||||
            state.dialogVisible1 = true;
 | 
			
		||||
            state.formData1 = props.formData;
 | 
			
		||||
            state.type = 'U';
 | 
			
		||||
            state.setData = JSON.parse(JSON.stringify(item));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const dialogSuccess1 = () => {
 | 
			
		||||
            state.dialogVisible1 = false;
 | 
			
		||||
            getSet();
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        const importData = () => {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const exportData = () => {
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            ...toRefs(state),
 | 
			
		||||
            visible,
 | 
			
		||||
            closeDialog,
 | 
			
		||||
            delData
 | 
			
		||||
            delData,
 | 
			
		||||
            manageData,
 | 
			
		||||
            dialogSuccess1,
 | 
			
		||||
            importData,
 | 
			
		||||
            exportData,
 | 
			
		||||
            editData
 | 
			
		||||
        };
 | 
			
		||||
    },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -103,6 +169,13 @@ export default {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.top-btn {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin: 10px 0;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.btns {
 | 
			
		||||
    padding: 15px 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,6 @@ s {
 | 
			
		|||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.el-drawer {
 | 
			
		||||
  width: 50% !important;
 | 
			
		||||
  padding: 20px 15px;
 | 
			
		||||
}
 | 
			
		||||
.title-form {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,14 +13,12 @@
 | 
			
		|||
            <span>{{ templateData[scope.row.type] }}</span>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column prop="point_count" label="点位数量" width="240" align="center" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column prop="description" label="模板描述" width="600" align="center" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column label="模板管理" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-button type="info" @click="manageData(scope.row)">
 | 
			
		||||
              新增点位
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button type="info" @click="viewData(scope.row)">
 | 
			
		||||
              点位查询
 | 
			
		||||
            <el-button type="primary" @click="viewData(scope.row)">
 | 
			
		||||
              点位
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button type="primary" @click="editData(scope.row)">
 | 
			
		||||
              编辑
 | 
			
		||||
| 
						 | 
				
			
			@ -32,13 +30,10 @@
 | 
			
		|||
        </el-table-column>
 | 
			
		||||
      </el-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <AddMb :type="type" :formData="formData" :templateData="templateData" :dialogVisible="dialogVisible" v-if="dialogVisible"
 | 
			
		||||
      @dialogClose="dialogClose" @dialogSuccess="dialogSuccess">
 | 
			
		||||
    <AddMb :type="type" :formData="formData" :templateData="templateData" :dialogVisible="dialogVisible"
 | 
			
		||||
      v-if="dialogVisible" @dialogClose="dialogClose" @dialogSuccess="dialogSuccess">
 | 
			
		||||
    </AddMb>
 | 
			
		||||
    <AddPoint :formData="formData1" :dialogVisible="dialogVisible1"  v-if="dialogVisible1" @dialogClose="dialogClose"
 | 
			
		||||
      @dialogSuccess="dialogSuccess">
 | 
			
		||||
    </AddPoint>
 | 
			
		||||
    <ViewPoint :formData="formData1" :dialogVisible="dialogVisible2"  v-if="dialogVisible2" @dialogClose="dialogClose"
 | 
			
		||||
    <ViewPoint :formData="formData1" :templateData="templateData" :dialogVisible="dialogVisible2" v-if="dialogVisible2" @dialogClose="dialogClose"
 | 
			
		||||
      @dialogSuccess="dialogSuccess">
 | 
			
		||||
    </ViewPoint>
 | 
			
		||||
  </el-card>
 | 
			
		||||
| 
						 | 
				
			
			@ -49,19 +44,17 @@ import { onMounted, reactive, ref, toRefs } from "vue";
 | 
			
		|||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import AddMb from "@/components/AddMb.vue";
 | 
			
		||||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import AddPoint from "@/components/AddPoint.vue";
 | 
			
		||||
 | 
			
		||||
import ViewPoint from "@/components/ViewPoint.vue"
 | 
			
		||||
export default {
 | 
			
		||||
  name: "model",
 | 
			
		||||
  components: {
 | 
			
		||||
    AddMb,
 | 
			
		||||
    AddPoint,
 | 
			
		||||
    ViewPoint
 | 
			
		||||
  },
 | 
			
		||||
  setup() {
 | 
			
		||||
    const state = reactive({
 | 
			
		||||
      dialogVisible: false,
 | 
			
		||||
      dialogVisible1: false,
 | 
			
		||||
      dialogVisible2: false,
 | 
			
		||||
      tableData: [],
 | 
			
		||||
      formData: {
 | 
			
		||||
| 
						 | 
				
			
			@ -135,24 +128,17 @@ export default {
 | 
			
		|||
      state.type = 'I';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const manageData = (item) => {
 | 
			
		||||
      state.dialogVisible1 = true;
 | 
			
		||||
      state.formData1 = item;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const viewData = (item) => {
 | 
			
		||||
      state.dialogVisible2 = true;
 | 
			
		||||
      state.formData1 = item;
 | 
			
		||||
    }
 | 
			
		||||
    const dialogClose = () => {
 | 
			
		||||
      state.dialogVisible = false;
 | 
			
		||||
      state.dialogVisible1 = false;
 | 
			
		||||
      state.dialogVisible2 = false;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const dialogSuccess = () => {
 | 
			
		||||
      state.dialogVisible = false;
 | 
			
		||||
      state.dialogVisible1 = false;
 | 
			
		||||
      state.dialogVisible2 = false;
 | 
			
		||||
      getTableData();
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			@ -160,7 +146,6 @@ export default {
 | 
			
		|||
      ...toRefs(state),
 | 
			
		||||
      editData,
 | 
			
		||||
      delData,
 | 
			
		||||
      manageData,
 | 
			
		||||
      getTableData,
 | 
			
		||||
      addData,
 | 
			
		||||
      dialogSuccess,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,36 +4,12 @@
 | 
			
		|||
      <div class="top-div">
 | 
			
		||||
        <el-button type="primary" @click="addData">新增</el-button>
 | 
			
		||||
      </div>
 | 
			
		||||
      <el-table
 | 
			
		||||
        :data="tableData"
 | 
			
		||||
        height="730"
 | 
			
		||||
        style="width: 100%"
 | 
			
		||||
        border
 | 
			
		||||
        stripe
 | 
			
		||||
        :header-cell-style="{ background: '#F6F7FC' }"
 | 
			
		||||
      >
 | 
			
		||||
      <el-table :data="tableData" height="730" style="width: 100%" border stripe
 | 
			
		||||
        :header-cell-style="{ background: '#F6F7FC' }">
 | 
			
		||||
        <el-table-column type="index" label="序号" width="80" align="center" />
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="name"
 | 
			
		||||
          label="通讯名称"
 | 
			
		||||
          width="200"
 | 
			
		||||
          align="center"
 | 
			
		||||
          show-overflow-tooltip
 | 
			
		||||
        />
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="description"
 | 
			
		||||
          label="通讯描述"
 | 
			
		||||
          width="200"
 | 
			
		||||
          align="center"
 | 
			
		||||
          show-overflow-tooltip
 | 
			
		||||
        />
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="drive"
 | 
			
		||||
          label="通讯驱动"
 | 
			
		||||
          width="200"
 | 
			
		||||
          align="center"
 | 
			
		||||
          show-overflow-tooltip
 | 
			
		||||
        >
 | 
			
		||||
        <el-table-column prop="name" label="通讯名称" width="200" align="center" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column prop="description" label="通讯描述" width="200" align="center" show-overflow-tooltip />
 | 
			
		||||
        <el-table-column prop="drive" label="通讯驱动" width="200" align="center" show-overflow-tooltip>
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <span>{{ qudongOptions[scope.row.type] }}</span>
 | 
			
		||||
          </template>
 | 
			
		||||
| 
						 | 
				
			
			@ -45,40 +21,17 @@
 | 
			
		|||
          align="center"
 | 
			
		||||
          show-overflow-tooltip
 | 
			
		||||
        /> -->
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="status"
 | 
			
		||||
          label="通讯状态"
 | 
			
		||||
          width="200"
 | 
			
		||||
          align="center"
 | 
			
		||||
        >
 | 
			
		||||
        <el-table-column prop="status" label="通讯状态" width="200" align="center">
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <span
 | 
			
		||||
              class="txStatusDiv"
 | 
			
		||||
              :style="{
 | 
			
		||||
            <span class="txStatusDiv" :style="{
 | 
			
		||||
              background: scope.row.status == 1 ? '#13ce66' : '#f8cecc',
 | 
			
		||||
              }"
 | 
			
		||||
              >{{ scope.row.status == 1 ? "正常" : "未连接" }}</span
 | 
			
		||||
            >
 | 
			
		||||
            }">{{ scope.row.status == 1 ? "正常" : "未连接" }}</span>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column
 | 
			
		||||
          prop="enable"
 | 
			
		||||
          label="启用状态"
 | 
			
		||||
          width="350"
 | 
			
		||||
          align="center"
 | 
			
		||||
        >
 | 
			
		||||
        <el-table-column prop="enable" label="启用状态" width="350" align="center">
 | 
			
		||||
          <template #default="scope">
 | 
			
		||||
            <el-switch
 | 
			
		||||
              v-model="scope.row.enable"
 | 
			
		||||
              inline-prompt
 | 
			
		||||
              active-text="启用"
 | 
			
		||||
              inactive-text="停用"
 | 
			
		||||
              :active-value="false"
 | 
			
		||||
              :inactive-value="true"
 | 
			
		||||
              active-color="#13ce66"
 | 
			
		||||
              inactive-color="red"
 | 
			
		||||
              @change="changeStatus(scope.row)"
 | 
			
		||||
            />
 | 
			
		||||
            <el-switch v-model="scope.row.enable" inline-prompt active-text="启用" inactive-text="停用" :active-value="false"
 | 
			
		||||
              :inactive-value="true" active-color="#13ce66" inactive-color="red" @change="changeStatus(scope.row)" />
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
        <el-table-column label="操作" align="center" show-overflow-tooltip>
 | 
			
		||||
| 
						 | 
				
			
			@ -92,11 +45,8 @@
 | 
			
		|||
            <el-button type="danger" @click="delData(scope.row)">
 | 
			
		||||
              删除
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button type="info" @click="manageData(scope.row)">
 | 
			
		||||
              新增设备
 | 
			
		||||
            </el-button>
 | 
			
		||||
            <el-button type="info" @click="viewData(scope.row)">
 | 
			
		||||
              设备查询
 | 
			
		||||
            <el-button type="primary" @click="viewData(scope.row)">
 | 
			
		||||
              设备
 | 
			
		||||
            </el-button>
 | 
			
		||||
          </template>
 | 
			
		||||
        </el-table-column>
 | 
			
		||||
| 
						 | 
				
			
			@ -112,14 +62,6 @@
 | 
			
		|||
      @dialogClose="dialogClose"
 | 
			
		||||
      @dialogSuccess="dialogSuccess"
 | 
			
		||||
    ></AddData>
 | 
			
		||||
    <AddSet
 | 
			
		||||
      :formData="formData"
 | 
			
		||||
      :dialogVisible="dialogVisible1"
 | 
			
		||||
      v-if="dialogVisible1"
 | 
			
		||||
      @dialogClose="dialogClose"
 | 
			
		||||
      @dialogSuccess="dialogSuccess"
 | 
			
		||||
    >
 | 
			
		||||
    </AddSet>
 | 
			
		||||
    <PzSet
 | 
			
		||||
      :dialogVisible="dialogVisible3"
 | 
			
		||||
      :formData="formData"
 | 
			
		||||
| 
						 | 
				
			
			@ -129,8 +71,9 @@
 | 
			
		|||
      @dialogClose="dialogClose3"
 | 
			
		||||
      @dialogSuccess="dialogSuccess3"
 | 
			
		||||
    >
 | 
			
		||||
    </PzSet>
 | 
			
		||||
    <ViewSet :formData="formData" :dialogVisible="dialogVisible2"  v-if="dialogVisible2" @dialogClose="dialogClose"
 | 
			
		||||
    <AddData :formData="formData" :type="type" :qudongOptions="qudongOptions" :dialogVisible="dialogVisible"
 | 
			
		||||
      v-if="dialogVisible" @dialogClose="dialogClose" @dialogSuccess="dialogSuccess"></AddData>
 | 
			
		||||
    <ViewSet :formData="formData" :qudongOptions="qudongOptions" :dialogVisible="dialogVisible2" v-if="dialogVisible2" @dialogClose="dialogClose"
 | 
			
		||||
      @dialogSuccess="dialogSuccess">
 | 
			
		||||
    </ViewSet>
 | 
			
		||||
  </el-card>
 | 
			
		||||
| 
						 | 
				
			
			@ -141,14 +84,12 @@ import { onMounted, reactive, ref, toRefs } from "vue";
 | 
			
		|||
import infoApi from "@/api/infoApi.js";
 | 
			
		||||
import { ElMessage, ElMessageBox } from "element-plus";
 | 
			
		||||
import AddData from "@/components/AddData.vue";
 | 
			
		||||
import AddSet from "@/components/AddSet.vue";
 | 
			
		||||
import PzSet from "@/components/PzSet.vue";
 | 
			
		||||
import ViewSet from "@/components/ViewSet.vue";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "page",
 | 
			
		||||
  components: {
 | 
			
		||||
    AddData,
 | 
			
		||||
    AddSet,
 | 
			
		||||
    PzSet,
 | 
			
		||||
    ViewSet
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -316,10 +257,12 @@ export default {
 | 
			
		|||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.top-div {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.txStatusDiv {
 | 
			
		||||
  padding: 0 15px;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue