<template>
  <div>
    <el-form
      ref="stationform"
      :model="stationForm"
      :rules="rules"
      label-width="200px"
      class="form"
    >
      <el-form-item label="站点所属铁路线:" prop="wayId">
        <el-select v-model="stationForm.wayId" placeholder="请选择铁路线">
          <el-option
            v-for="item in railWaySelect"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="站点编号:" prop="siteCode">
        <el-input v-model="stationForm.siteCode" placeholder="请输入站点编号" />
      </el-form-item>
      <el-form-item label="站名:" prop="siteName">
        <el-input v-model="stationForm.siteName" placeholder="请输入站名" />
      </el-form-item>
      <el-form-item label="站点地址:" prop="siteAddress">
        <el-input
          v-model="stationForm.siteAddress"
          placeholder="请输入站点地址"
        />
      </el-form-item>
      <el-form-item label="站点所在局:" prop="siteArea">
        <el-input
          v-model="stationForm.siteArea"
          placeholder="请输入站点所在局"
        />
      </el-form-item>
      <el-form-item label="站点所在段号:" prop="siteSectionCode">
        <el-input
          v-model="stationForm.siteSectionCode"
          placeholder="请输入站点所在段号"
        />
      </el-form-item>
      <el-form-item label="站点所在公里标:" prop="siteKmSign">
        <el-input
          v-model="stationForm.siteKmSign"
          placeholder="请输入站点所在公里标"
        />
      </el-form-item>
      <el-form-item label="站点经度:" prop="siteLatitude">
        <el-input
          v-model="stationForm.siteLatitude"
          placeholder="请输入站点经度"
        />
      </el-form-item>
      <el-form-item label="站点纬度:" prop="siteLongitude">
        <el-input
          v-model="stationForm.siteLongitude"
          placeholder="请输入站点纬度"
        />
      </el-form-item>
      <el-form-item label="站点其他信息:" prop="siteOtherMessage">
        <el-input
          v-model="stationForm.siteOtherMessage"
          placeholder="请输入站点其他信息"
        />
      </el-form-item>
    </el-form>
    <div class="btn" v-if="isEdit==1">
      <el-button type="primary" @click="cancel">取 消</el-button>
      <el-button type="primary" @click="confirm">确 定</el-button>
    </div>
    <div class="btn" v-else>
      <el-button type="primary" @click="reset">重置</el-button>
      <el-button type="primary" @click="submit">确认提交</el-button>
    </div>
  </div>
</template>
<script>
import { sitesave, railWaylist, updateSiteConf } from "../../api";
import { successAlert, warningAlert } from "@/utils/alert";

export default {
  props: {
    isEdit: {
      type: Number,
      default: 0
    },
    curInfo: {
      type: Object,
      default: () => {}
    }
  },
  watch: {
    curInfo: {
      immediate: true,
      handler(newV) {
        this.stationForm = formInit(newV);
      }
    }
  },
  data() {
    return {
      railWaySelect: [],
      stationForm: formInit(),
      params: {
        current: 1,
        size: 10,
      },
      rules: {
        parentId: [
          { required: true, message: "请选择铁路线", trigger: "blur" },
        ],
        wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
        siteCode: [
          { required: true, message: "请输入站点编号", trigger: "blur" },
        ],
        siteName: [{ required: true, message: "请输入站名", trigger: "blur" }],
        siteAddress: [
          { required: true, message: "请输入站点地址", trigger: "blur" },
        ],
        siteArea: [
          { required: true, message: "请输入站点所在局", trigger: "blur" },
        ],
        siteSectionCode: [
          { required: true, message: "请输入站点所在段号", trigger: "blur" },
        ],
        siteKmSign: [
          { required: true, message: "请输入站点所在公里标", trigger: "blur" },
        ],
        siteLatitude: [
          { required: true, message: "请输入站点经度", trigger: "blur" },
        ],
        siteLongitude: [
          { required: true, message: "请输入站点纬度", trigger: "blur" },
        ],
        siteOtherMessage: [
          { required: true, message: "请输入站点其他信息", trigger: "blur" },
        ],
      },
    };
  },
  mounted() {
    this.getAllWay();
  },
  methods: {
    // 编辑的确认
    confirm() {
      let params = {
        ...this.stationForm
      }
      delete params.creationTime
      updateSiteConf(params).then(res => {
        if(res.code == 200) {
          this.$message.success('保存成功!')
        }
        this.cancel(true)
      })
    },
    cancel(refersh) {
      this.$emit('update', refersh)
      this.reset()
    },
    readNodes(aaa = [], arrarea = []) {
      for (let item of aaa) {
        arrarea.push({ id: item.id, name: item.name });
        if (item.children) {
          this.readNodes(item.children, arrarea);
        }
      }
      return arrarea;
    },
    reset() {
      this.$refs.stationform.resetFields();
    },
    submit() {
      this.$refs.stationform.validate((valid) => {
        if (valid) {
          this.stationForm.parentId = this.stationForm.wayId;

          sitesave(this.stationForm).then((res) => {
            if (res.code == 200) {
              successAlert("添加成功");
            } else {
              warningAlert("添加失败");
            }
          });
        }
        this.stationForm = formInit();
      });
    },
    getAllWay() {
      railWaylist(this.params).then((res) => {
        this.railWaySelect = res.records;
        if (res.total > this.params.size) {
          this.params.size = res.total;
          this.getAllWay();
        }
      });
    },
  },
}

function formInit(data = {}) {
  return {
    parentId: "",
    wayId: "",
    siteCode: "",
    siteName: "",
    siteAddress: "",
    siteArea: "",
    siteSectionCode: "",
    siteKmSign: "",
    siteLatitude: "",
    siteLongitude: "",
    siteOtherMessage: "",
    ...data,
  };
}
</script>
<style lang="scss" scoped>
.form {
  padding: 20px 0;
  width: 600px;
  margin: 0 auto;
}
.btn {
  text-align: center;
  padding: 20px 0 50px 0;
}
</style>