liuchengxin
2022-01-08 cf1b5bf548b870efd0f1b4e3d5a8f88e79cfd9c9
src/views/device/peripheralUnit/index.vue
@@ -29,23 +29,24 @@
        />
      </el-form-item>
      <el-form-item label="生产厂商" prop="manufacturer">
        <el-input
          v-model="queryParams.manufacturer"
          placeholder="请输入生产厂商"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
        <el-select v-model="queryParams.manufacturer" placeholder="请选择生产厂商" clearable size="small">
          <el-option
            v-for="item in manufacturerList"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="厂商代码" prop="vendorCode">
        <el-input
          v-model="queryParams.vendorCode"
          placeholder="请输入厂商代码"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
<!--      <el-form-item label="厂商代码" prop="vendorCode">-->
<!--        <el-input-->
<!--          v-model="queryParams.vendorCode"-->
<!--          placeholder="请输入厂商代码"-->
<!--          clearable-->
<!--          size="small"-->
<!--          @keyup.enter.native="handleQuery"-->
<!--        />-->
<!--      </el-form-item>-->
      <el-form-item label="波特率" prop="baudRate">
        <el-select v-model="queryParams.baudRate" placeholder="请选择波特率" clearable size="small">
          <el-option
@@ -121,22 +122,22 @@
      <el-table-column label="外设代码" align="center" prop="code"/>
      <el-table-column label="外设名称" align="center" prop="name"/>
      <el-table-column label="规格型号" align="center" prop="model"/>
      <el-table-column label="生产厂商" align="center" prop="manufacturer"/>
      <el-table-column label="厂商代码" align="center" prop="vendorCode"/>
      <el-table-column label="生产厂商" align="center" prop="manufacturer_dictText"/>
      <el-table-column label="厂商代码" align="center" prop="vendorCode_dictText"/>
      <el-table-column label="波特率" align="center" prop="baudRate">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.DICT103" :value="scope.row.baudRate"/>
        </template>
      </el-table-column>
      <el-table-column label="读数指令" align="center" prop="readInstruction"/>
      <el-table-column label="读数指令" align="center" width="180" prop="readInstruction"/>
      <el-table-column label="回数长度" align="center" prop="loopLength"/>
      <el-table-column label="功能描述" align="center" prop="description"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
      <el-table-column label="功能描述" align="center" min-width="180" show-overflow-tooltip prop="description"/>
      <el-table-column label="操作" align="center" fixed="right" width="240" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            icon="el-icon-view"
            @click="handleInfo(scope.row)"
            v-hasPermi="['oa:peripheralUnit:info']"
          >查看
@@ -152,17 +153,18 @@
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['oa:peripheralUnit:remove']"
          >删除
            icon="el-icon-document"
            @click="handleUpload(scope.row)"
          >附件
          </el-button>
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleUpload(scope.row)"
          >附件
            class="del-btn"
            @click="handleDelete(scope.row)"
            v-hasPermi="['oa:peripheralUnit:remove']"
          >删除
          </el-button>
        </template>
      </el-table-column>
@@ -177,7 +179,7 @@
    />
    <!-- 添加或修改外设单元对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
    <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="外设代码" prop="code">
          <el-input v-model="form.code" placeholder="请输入外设代码" :disabled="disabled"/>
@@ -189,11 +191,18 @@
          <el-input v-model="form.model" placeholder="请输入规格型号" :disabled="disabled"/>
        </el-form-item>
        <el-form-item label="生产厂商" prop="manufacturer">
          <el-input v-model="form.manufacturer" placeholder="请输入生产厂商" :disabled="disabled"/>
          <el-select v-model="form.manufacturer" placeholder="请选择生产厂商" clearable size="small" :disabled="disabled">
            <el-option
              v-for="item in manufacturerList"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="厂商代码" prop="vendorCode">
          <el-input v-model="form.vendorCode" placeholder="请输入厂商代码" :disabled="disabled"/>
        </el-form-item>
<!--        <el-form-item label="厂商代码" prop="vendorCode">-->
<!--          <el-input v-model="form.vendorCode" placeholder="请输入厂商代码" :disabled="disabled"/>-->
<!--        </el-form-item>-->
        <el-form-item label="波特率" prop="baudRate">
          <el-select v-model="form.baudRate" placeholder="请选择波特率" :disabled="disabled">
            <el-option
@@ -224,7 +233,7 @@
    </el-dialog>
    <!-- 附件窗体 -->
    <el-dialog :title="title" :visible.sync="uploadFlag" width="500px" append-to-body>
    <el-dialog :title="title" :close-on-click-modal="false" :visible.sync="uploadFlag" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="附件">
          <fileUpload v-model="form.filePath" limit="1"/>
@@ -246,11 +255,28 @@
  addPeripheralUnit,
  updatePeripheralUnit
} from "@/api/oa/peripheralUnit";
import {Base64} from 'js-base64';
import { listManufacturer } from "@/api/common/common"
export default {
  name: "PeripheralUnit",
  dicts: ['DICT103'],
  data() {
    var validateModel = (rule, value, callback) => {
      if (!value) {
        callback(new Error('规格型号不能为空'));
        return
      }
      if (value.length > 32) {
        callback(new Error('最多输入32个字符'));
        return
      }
      if (!(/^[A-Za-z]+$/.test(value))) {
        callback(new Error('只能输入英文字符'));
        return
      }
      callback();
    };
    return {
      // 按钮loading
      buttonLoading: false,
@@ -282,7 +308,7 @@
        model: undefined,
        manufacturer: undefined,
        vendorCode: undefined,
        baudRate: undefined,
        baudRate: undefined
      },
      // 表单参数
      form: {},
@@ -295,22 +321,25 @@
          {required: true, message: "外设代码不能为空", trigger: "blur"}
        ],
        name: [
          {required: true, message: "外设名称不能为空", trigger: "blur"}
          {required: true, message: "外设名称不能为空", trigger: "blur"},
          {max: 32, message: '最多输入32个字符', trigger: 'blur' }
        ],
        model: [
          {required: true, message: "规格型号不能为空", trigger: "blur"}
          {required: true, validator: validateModel, trigger: "blur"}
        ],
        manufacturer: [
          {required: true, message: "生产厂商不能为空", trigger: "blur"}
        ],
        vendorCode: [
          {required: true, message: "厂商代码不能为空", trigger: "blur"}
          {required: true, message: "厂商代码不能为空", trigger: "blur"},
          {max: 32, message: '最多输入32个字符', trigger: 'blur' }
        ],
        baudRate: [
          {required: true, message: "波特率不能为空", trigger: "change"}
        ],
        readInstruction: [
          {required: true, message: "读数指令不能为空", trigger: "blur"}
          {required: true, message: "读数指令不能为空", trigger: "blur"},
          {max: 128, message: '最多输入128个字符', trigger: 'blur' }
        ],
        loopLength: [
          {required: true, message: "回数长度不能为空", trigger: "blur"}
@@ -318,14 +347,25 @@
        filePath: [
          {required: true, message: "附件不能为空", trigger: "blur"}
        ],
        description: [
          {max: 128, message: '最多输入128个字符', trigger: 'blur' }
        ]
      },
      disabled: false
      disabled: false,
      // 生产厂商
      manufacturerList: []
    };
  },
  created() {
    this.getList();
    this.getManufacturerList();
  },
  methods: {
    getManufacturerList() {
      listManufacturer().then(res => {
        this.manufacturerList = res.data
      })
    },
    /** 查询外设单元列表 */
    getList() {
      this.loading = true;
@@ -367,11 +407,13 @@
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getManufacturerList();
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.getManufacturerList();
      this.handleQuery();
    },
    // 多选框选中数据
@@ -383,7 +425,9 @@
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.form.baudRate = '3'
      this.getManufacturerList();
      this.form.baudRate = '04'
      this.disabled = false
      this.open = true;
      this.title = "添加外设单元";
    },
@@ -402,7 +446,9 @@
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.loading = true;
      this.disabled = false
      this.reset();
      this.getManufacturerList();
      const id = row.id || this.ids
      getPeripheralUnit(id).then(response => {
        this.loading = false;
@@ -440,7 +486,7 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除外设单元编号为"' + ids + '"的数据项?').then(() => {
      this.$modal.confirm('是否确认删除?').then(() => {
        this.loading = true;
        return delPeripheralUnit(ids);
      }).then(() => {