Blame view

src/components/machine/AddMachine.vue 4.57 KB
a42b3256   wuxw   HC小区管理系统前段vue版正在开发中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
  <template>
      <el-dialog
          :title="$t('layout.machineAdd')"
          :visible.sync="visible"
          width="500px"
          @close="handleClose"
      >
          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
              <el-form-item :label="$t('layout.machineCode')" prop="machineCode">
                  <el-input v-model="form.machineCode" />
              </el-form-item>
              <el-form-item :label="$t('layout.machineName')" prop="machineName">
                  <el-input v-model="form.machineName" />
              </el-form-item>
              <el-form-item :label="$t('layout.machineIp')" prop="machineIp">
                  <el-input v-model="form.machineIp" />
              </el-form-item>
              <el-form-item :label="$t('layout.machineMac')" prop="machineMac">
                  <el-input v-model="form.machineMac" />
              </el-form-item>
              <el-form-item :label="$t('layout.machineType')" prop="machineType">
                  <el-select v-model="form.machineType" style="width: 100%">
                      <el-option label="门禁" value="1" />
                      <el-option label="道闸" value="2" />
                      <el-option label="两轮充电桩" value="3" />
                      <el-option label="四轮充电桩" value="4" />
                      <el-option label="水电表" value="5" />
                      <el-option label="梯控" value="6" />
                  </el-select>
              </el-form-item>
              <el-form-item :label="$t('layout.implBean')" prop="implBean">
                  <el-select v-model="form.implBean" style="width: 100%">
                      <el-option label="松饼" value="A" />
                      <el-option label="厂拍" value="B" />
                      <el-option label="臻识" value="C" />
                  </el-select>
              </el-form-item>
              <el-form-item :label="$t('layout.status')" prop="statusCd">
                  <el-radio-group v-model="form.statusCd">
                      <el-radio label="0">{{ $t('layout.inUse') }}</el-radio>
                      <el-radio label="1">{{ $t('layout.invalid') }}</el-radio>
                  </el-radio-group>
              </el-form-item>
              <el-form-item :label="$t('layout.remark')" prop="remark">
                  <el-input type="textarea" v-model="form.remark" />
              </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer">
              <el-button @click="handleClose">{{ $t('layout.cancel') }}</el-button>
              <el-button type="primary" @click="handleSubmit">{{ $t('layout.confirm') }}</el-button>
          </div>
      </el-dialog>
  </template>
  
  <script>
  import { addMachine } from '@/api/machine/machineApi'
  
  export default {
      name: 'AddMachine',
      props: {
          visible: {
              type: Boolean,
              default: false
          }
      },
      data() {
          return {
              form: {
                  machineCode: '',
                  machineName: '',
                  machineIp: '',
                  machineMac: '',
                  implBean: '',
                  statusCd: '0',
                  remark: '',
                  projectId: '',
                  machineType: ''
              },
              rules: {
                  machineCode: [
                      { required: true, message: this.$t('layout.required'), trigger: 'blur' }
                  ],
                  machineName: [
                      { required: true, message: this.$t('layout.required'), trigger: 'blur' }
                  ],
                  machineType: [
                      { required: true, message: this.$t('layout.required'), trigger: 'blur' }
                  ],
                  machineIp: [
                      { required: true, message: this.$t('layout.required'), trigger: 'blur' }
                  ],
                  implBean: [
                      { required: true, message: this.$t('layout.required'), trigger: 'change' }
                  ]
              }
          }
      },
      methods: {
          initData(projectId) {
              this.form.projectId = projectId
          },
          handleClose() {
              this.$emit('update:visible', false)
              this.$refs.form.resetFields()
          },
          async handleSubmit() {
              try {
                  await this.$refs.form.validate()
                  await addMachine(this.form)
                  this.$message.success(this.$t('layout.addSuccess'))
                  this.$emit('success')
                  this.handleClose()
              } catch (error) {
                  if (error !== 'cancel') {
                      this.$message.error(this.$t('layout.submitError'))
                  }
              }
          }
      }
  }
  </script>