edit.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <el-dialog title="添加设备通道" v-model="dialogVisible" width="600px" :before-close="clsoeDialog" :close-on-click-modal="false">
  3. <el-form ref="dataForm" :rules="rules" :model="temp" label-position="left" label-width="120px" style="width: 90%; margin: 0 auto">
  4. <el-form-item label="通道名称" prop="title">
  5. <el-input v-model="temp.title" placeholder="请输入通道名称" />
  6. </el-form-item>
  7. <el-form-item label="注册码" prop="number">
  8. <el-input v-model="temp.number" placeholder="请输入注册码" />
  9. </el-form-item>
  10. <el-form-item label="设备地址" prop="slaveId">
  11. <el-input v-model.number="temp.slaveId" placeholder="请输入设备地址" />
  12. </el-form-item>
  13. </el-form>
  14. <div slot="footer" class="dialog-footer">
  15. <el-button @click="clsoeDialog()"> 取 消 </el-button>
  16. <el-button type="primary" @click="createData()"> 保 存 </el-button>
  17. </div>
  18. </el-dialog>
  19. </template>
  20. <script lang="ts">
  21. import api from '/@/api/device/modbus';
  22. import { ElMessage } from 'element-plus';
  23. export default {
  24. data() {
  25. return {
  26. temp: {
  27. title: '',
  28. number: '',
  29. templateNumber: '',
  30. slaveId: '',
  31. interval: '',
  32. },
  33. rules: {
  34. title: [{ required: true, message: '请输入通道名称', trigger: 'blur' }],
  35. number: [{ required: true, message: '请输入注册码', trigger: 'blur' }],
  36. slaveId: [{ required: true, message: '请输入设备地址', trigger: 'blur' }],
  37. },
  38. dialogVisible: false,
  39. listLoading: false,
  40. templateOptions: [],
  41. };
  42. },
  43. methods: {
  44. open() {
  45. // this.getList();
  46. this.dialogVisible = true;
  47. },
  48. clsoeDialog() {
  49. (this.$refs.dataForm as any).resetFields();
  50. this.dialogVisible = false;
  51. },
  52. // 获取模板数据
  53. getList() {
  54. this.listLoading = true;
  55. api.channel
  56. .getList({ page: 1, size: 50 })
  57. .then((data: any) => {
  58. this.templateOptions = data.list || [];
  59. })
  60. .finally(() => {
  61. this.listLoading = false;
  62. });
  63. },
  64. createData() {
  65. (this.$refs['dataForm'] as any).validate((valid: boolean) => {
  66. if (valid) {
  67. api.channel.addDevice(this.temp).then(() => {
  68. this.$emit('getList');
  69. this.clsoeDialog();
  70. ElMessage.success('操作成功!');
  71. });
  72. }
  73. });
  74. },
  75. },
  76. };
  77. </script>
  78. <style lang="scss" scoped></style>