FSU.vue 8.34 KB
Newer Older
neogcg's avatar
neogcg committed
1
<template>
neogcg's avatar
neogcg committed
2 3 4 5 6 7 8 9
  <div>
    <el-form
      ref="FSUForm"
      :rules="rules"
      :model="FSUForm"
      label-width="200px"
      class="form"
    >
neogcg's avatar
neogcg committed
10 11 12 13 14 15
      <el-form-item label="所在铁路线:" prop="wayId">
        <el-select
          v-model="FSUForm.wayId"
          placeholder="请选择铁路线"
          @change="changerailWay()"
        >
neogcg's avatar
neogcg committed
16
          <el-option
neogcg's avatar
neogcg committed
17 18 19 20
            v-for="item in railWaySelect"
            :key="item.id"
            :label="item.name"
            :value="item.id"
neogcg's avatar
neogcg committed
21 22 23
          ></el-option>
        </el-select>
      </el-form-item>
neogcg's avatar
neogcg committed
24 25
      <el-form-item label="所在站点:" prop="siteId">
        <el-select v-model="FSUForm.siteId" placeholder="请选择站点">
neogcg's avatar
neogcg committed
26
          <el-option
neogcg's avatar
neogcg committed
27 28 29 30
            v-for="item in stationSelect2"
            :key="item.id"
            :label="item.siteName"
            :value="item.id"
neogcg's avatar
neogcg committed
31 32
          ></el-option>
        </el-select>
neogcg's avatar
neogcg committed
33
      </el-form-item>
neogcg's avatar
neogcg committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
      <el-form-item label="FSU身份编号:" prop="fsuCode">
        <el-input v-model="FSUForm.fsuCode" placeholder="请输入FSU身份编号" />
      </el-form-item>
      <el-form-item label="FSU端口数:" prop="fsuPort">
        <el-input v-model="FSUForm.fsuPort" placeholder="请输入FSU端口数" />
      </el-form-item>
      <el-form-item label="设备名称:" prop="equipName">
        <el-input v-model="FSUForm.equipName" placeholder="请输入设备名称" />
      </el-form-item>
      <el-form-item label="IP地址:" prop="ip">
        <el-input v-model="FSUForm.ip" placeholder="请输入IP地址" />
      </el-form-item>
      <el-form-item label="设备厂商:" prop="equipFactory">
        <el-input v-model="FSUForm.equipFactory" placeholder="请输入设备厂商" />
      </el-form-item>

      <el-form-item label="设备备用方式:" prop="backupMode">
        <el-select
          v-model="FSUForm.backupMode"
          placeholder="请选择设备备用方式"
        >
          <el-option
            v-for="item in backupModeSelect"
neogcg's avatar
neogcg committed
57 58
            :key="item.id"
            :label="item.dictValue"
neogcg's avatar
neogcg committed
59
            :value="item.id"
neogcg's avatar
neogcg committed
60 61 62 63 64 65 66
          ></el-option
        ></el-select>
      </el-form-item>
      <el-form-item label="通信方式:" prop="connectMode">
        <el-select v-model="FSUForm.connectMode" placeholder="请选择通信方式">
          <el-option
            v-for="item in connectModeSelect"
neogcg's avatar
neogcg committed
67 68
            :key="item.id"
            :label="item.dictValue"
neogcg's avatar
neogcg committed
69
            :value="item.id"
neogcg's avatar
neogcg committed
70 71 72 73 74 75 76
          ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="设备类型:" prop="equipType">
        <el-select v-model="FSUForm.equipType" placeholder="请选择设备类型">
          <el-option
            v-for="item in equipTypeSelect"
neogcg's avatar
neogcg committed
77 78
            :key="item.id"
            :label="item.dictValue"
neogcg's avatar
neogcg committed
79
            :value="item.id"
neogcg's avatar
neogcg committed
80 81 82 83 84 85 86 87 88 89
          ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="设备子类型:" prop="equipSubType">
        <el-select
          v-model="FSUForm.equipSubType"
          placeholder="请选择设备子类型"
        >
          <el-option
            v-for="item in equipSubTypeSelect"
neogcg's avatar
neogcg committed
90 91
            :key="item.id"
            :label="item.dictValue"
neogcg's avatar
neogcg committed
92
            :value="item.id"
neogcg's avatar
neogcg committed
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
          ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="软件版本号:" prop="softVersion">
        <el-input
          v-model="FSUForm.softVersion"
          placeholder="请输入软件版本号"
        />
      </el-form-item>
      <el-form-item label="设备生产序列号:" prop="equipSerialNumber">
        <el-input
          v-model="FSUForm.equipSerialNumber"
          placeholder="请输入设备生产序列号"
        />
      </el-form-item>
      <el-form-item label="设备所在铁路公里标:" prop="kmSign">
        <el-input
          v-model="FSUForm.kmSign"
          placeholder="请输入设备所在铁路公里标"
        />
      </el-form-item>
    </el-form>
    <div class="btn">
neogcg's avatar
neogcg committed
116 117 118
      <el-button type="primary" @click="reset">重置</el-button>
      <el-button type="primary" @click="submit">确认提交</el-button>
    </div>
neogcg's avatar
neogcg committed
119
  </div>
neogcg's avatar
neogcg committed
120 121
</template>
<script>
neogcg's avatar
neogcg committed
122
import { fsusave, selectFsuItem, selectForSite, railWaylist } from "../../api";
neogcg's avatar
neogcg committed
123
import { successAlert, warningAlert } from "@/utils/alert";
neogcg's avatar
neogcg committed
124
export default {
neogcg's avatar
neogcg committed
125 126 127 128
  props: [],
  components: {},
  data() {
    return {
neogcg's avatar
neogcg committed
129
      type: 1,
neogcg's avatar
neogcg committed
130 131 132
      railWaySelect: [],
      stationSelect: [],
      stationSelect2: [],
neogcg's avatar
neogcg committed
133 134 135 136
      backupModeSelect: [],
      connectModeSelect: [],
      equipTypeSelect: [],
      equipSubTypeSelect: [],
neogcg's avatar
neogcg committed
137 138 139 140
      FSUForm: formInit(),
      params: {
        current: 1,
        size: 10,
neogcg's avatar
neogcg committed
141 142
      },
      rules: {
neogcg's avatar
neogcg committed
143 144
        wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
        siteId: [{ required: true, message: "请选择站点", trigger: "blur" }],
neogcg's avatar
neogcg committed
145 146 147 148
        fsuCode: [
          { required: true, message: "请输入FSU身份编号", trigger: "blur" },
        ],
        fsuPort: [
neogcg's avatar
neogcg committed
149
          { required: true, pattern : /^(([^0][0-9]+|0)$)|^(([1-9]+)$)/, message: "请输入FSU端口数", trigger: "blur" },
neogcg's avatar
neogcg committed
150 151 152 153
        ],
        equipName: [
          { required: true, message: "请输入设备名称", trigger: "blur" },
        ],
neogcg's avatar
neogcg committed
154
        ip: [{ required: true, pattern : /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/ , message: "请输入正确的IP地址", trigger: "blur" }],
neogcg's avatar
neogcg committed
155 156
        equipFactory: [
          { required: true, message: "请输入设备厂商", trigger: "blur" },
neogcg's avatar
neogcg committed
157
        ],
neogcg's avatar
neogcg committed
158 159
        backupMode: [
          { required: true, message: "请选择设备备用方式", trigger: "blur" },
neogcg's avatar
neogcg committed
160
        ],
neogcg's avatar
neogcg committed
161 162
        connectMode: [
          { required: true, message: "请选择通信方式", trigger: "blur" },
neogcg's avatar
neogcg committed
163
        ],
neogcg's avatar
neogcg committed
164 165
        equipType: [
          { required: true, message: "请选择设备类型", trigger: "blur" },
neogcg's avatar
neogcg committed
166
        ],
neogcg's avatar
neogcg committed
167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
        equipSubType: [
          { required: true, message: "请选择设备子类型", trigger: "blur" },
        ],
        softVersion: [
          { required: true, message: "请输入软件版本号", trigger: "blur" },
        ],
        equipSerialNumber: [
          { required: true, message: "请输入设备生产序列号", trigger: "blur" },
        ],
        kmSign: [
          {
            required: true,
            message: "请输入设备所在铁路公里标",
            trigger: "blur",
          },
neogcg's avatar
neogcg committed
182 183
        ],
      },
neogcg's avatar
neogcg committed
184 185
    };
  },
neogcg's avatar
neogcg committed
186
  computed: {},
neogcg's avatar
neogcg committed
187
  methods: {
neogcg's avatar
neogcg committed
188
    changerailWay() {
neogcg's avatar
neogcg committed
189 190 191
      selectForSite({ wayId: this.FSUForm.wayId }).then((res) => {
        this.stationSelect2 = res;
      });
neogcg's avatar
neogcg committed
192 193 194 195 196 197 198 199 200 201
    },
    readNodes(aaa = [], arrarea = []) {
      for (let item of aaa) {
        arrarea.push({ id: item.id, siteName: item.name });
        if (item.children) {
          this.readNodes(item.children, arrarea);
        }
      }
      return arrarea;
    },
neogcg's avatar
neogcg committed
202 203
    reset() {
      this.$refs.FSUForm.resetFields();
neogcg's avatar
neogcg committed
204 205
    },
    submit() {
neogcg's avatar
neogcg committed
206
      this.$refs.FSUForm.validate((valid) => {
neogcg's avatar
neogcg committed
207
        if (valid) {
neogcg's avatar
neogcg committed
208 209
          this.FSUForm.parentId = this.FSUForm.siteId;
          this.FSUForm.fsuPort = Number(this.FSUForm.fsuPort);
neogcg's avatar
neogcg committed
210

neogcg's avatar
neogcg committed
211
          fsusave(this.FSUForm).then((res) => {
neogcg's avatar
neogcg committed
212 213 214
            if (res.code == 200) {
              successAlert("添加成功");
            } else {
neogcg's avatar
neogcg committed
215
              warningAlert("添加失败");
neogcg's avatar
neogcg committed
216 217
            }
          });
neogcg's avatar
neogcg committed
218
        }
neogcg's avatar
neogcg committed
219 220 221 222 223 224 225 226 227 228
        this.FSUForm = formInit();
      });
    },
    getAllWay() {
      railWaylist(this.params).then((res) => {
        this.railWaySelect = res.records;
        if (res.total > this.params.size) {
          this.params.size = res.total;
          this.getAllWay();
        }
neogcg's avatar
neogcg committed
229 230
      });
    },
neogcg's avatar
neogcg committed
231
  },
neogcg's avatar
neogcg committed
232 233 234 235 236 237 238 239
  created() {
    selectFsuItem().then((res) => {
      this.backupModeSelect = res["01"];
      this.connectModeSelect = res["02"];
      this.equipTypeSelect = res["03"];
      this.equipSubTypeSelect = res["04"];
    });
  },
neogcg's avatar
neogcg committed
240
  mounted() {
neogcg's avatar
neogcg committed
241
    this.getAllWay();
neogcg's avatar
neogcg committed
242
  },
neogcg's avatar
neogcg committed
243
};
neogcg's avatar
neogcg committed
244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
function formInit(data = {}) {
  return {
    parentId: "",
    wayId: "",
    fsuCode: "",
    fsuPort: "",
    equipName: "",
    ip: "",
    equipFactory: "",
    backupMode: "",
    connectMode: "",
    equipType: "",
    equipSubType: "",
    softVersion: "",
    equipSerialNumber: "",
    kmSign: "",
    ...data,
  };
}
neogcg's avatar
neogcg committed
263 264 265
</script>
<style lang="scss" scoped>
.form {
neogcg's avatar
neogcg committed
266 267 268 269 270 271 272 273 274
  padding: 20px 0;
  width: 600px;
  margin: 0 auto;
}
.btn {
  padding-top: 50px;
  text-align: center;
  button {
    width: 120px;
neogcg's avatar
neogcg committed
275
  }
neogcg's avatar
neogcg committed
276
}
neogcg's avatar
neogcg committed
277
</style>