<template>
  <div class="AddPlanWrapper clearfix">
    <crumbs
      :title="!isEdit ? '医院管理-添加医院' : '医院管理-修改医院'"
      class="topBack"
      :param="$route.params"
      linkTo="HospitalCDSS"
    ></crumbs>
    <div class="AddPlanBox">
      <el-row :gutter="20">
        <el-col :span="16">
          <el-form ref="form" :model="form" label-width="110px" :rules="rules">
            <el-form-item label="医院名称" prop="hospitalName">
              <el-input v-model="form.hospitalName" placeholder="2-30位,可输入汉字、字母、数字和下划线" @blur="handlePinyin($event)"></el-input>
            </el-form-item>
            <el-form-item label="医院名称拼音" prop="spell">
              <el-input v-model="form.spell" placeholder="请输入医院名称拼音"></el-input>
            </el-form-item>
            <!-- <el-form-item label="医院编码" prop="hospitalCode">
              <el-input v-model="form.hospitalCode" placeholder="4-15位,可输入字母、数字和下划线"></el-input>
            </el-form-item> -->
            <el-form-item label="医院地址" prop="address">
              <el-input type="textarea" :rows="2" v-model="form.address" placeholder="请输入医院地址"></el-input>
            </el-form-item>

            <el-form-item>
              <el-button type="primary" @click="onSubmit" :disabled="saveDisable">确定</el-button>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
    </div>
  </div>
</template>

<script>
import api from '@api/cdss.js';
import pinyin from '../../../js/Convert_Pinyin.js';
export default {
  name: 'AddHospital',
  data() {
    var numreg = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
    var numreg1 = /^[0-9a-zA-Z_]{1,}$/;
    var validatePass = (rule, value, callback) => {
      if (!numreg.test(value)) {
        callback(new Error('汉字、字母、数字和下划线'));
      } else {
        callback();
      }
    };
    var validatePass1 = (rule, value, callback) => {
      if (!numreg1.test(value)) {
        callback(new Error('字母、数字和下划线'));
      } else {
        callback();
      }
    };
    return {
      form: {
        hospitalName: '',
        spell: '',
        // hospitalCode: '',
        address: ''
      },
      rules: {
        hospitalName: [
          { required: true, message: '医院名称不能为空', trigger: 'change' },
          { min: 2, max: 30, message: '长度2-30位', trigger: 'blur' },
          { required: true, validator: validatePass, trigger: 'blur' }
        ],
        // hospitalCode: [
        //   { required: true, message: '医院编码不能为空', trigger: 'change' },
        //   { min: 4, max: 15, message: '长度4-15位', trigger: 'blur' },
        //   { required: true, validator: validatePass1, trigger: 'blur' }
        // ],
        address:[
          {  max: 200, message: '长度最多200字', trigger: 'change' },
        ],
        spell:[
          {  max: 30, message: '医院名称拼音长度最多30位', trigger: 'change' },
        ],
      },
      hospitalId: '',
      isEdit: false,
      saveDisable: false
    };
  },
  created() {
    const { isEdit, data } = this.$route.params;
    this.isEdit = isEdit;
    if (isEdit) {
      this.form.hospitalName = data.name;
      this.form.spell = data.spell;
      // this.form.hospitalCode = data.code;
      this.form.address = data.address;
      this.hospitalId = data.id;
    }
  },

  methods: {
    onSubmit() {
      this.$refs.form.validate(valid => {
        if (valid) {
          this.saveDisable = true;
          let params = {
            connect: 1,
            address: this.form.address,
            name: this.form.hospitalName,
            spell: this.form.spell,
            // code: this.form.hospitalCode
          };
          if (this.isEdit) {
            params = Object.assign({}, params, {
              id: this.hospitalId
            });
          }
          api.saveOrUpdateHosRecordCDSS(params).then(res => {
            if (res.data.code === '0') {
              this.$message({
                showClose: true,
                message: '保存成功',
                type: 'success',
                duration: 1000
              });
              this.isSaveSuccess = true; // 保存成功,可正常退出
              this.$router.push({
                name: 'HospitalCDSS',
                params: Object.assign({}, this.$route.params, {
                  currentPage: 1
                })
              });
            } else {
              this.$message({
                showClose: true,
                message: res.data.msg,
                type: 'error',
                duration: 1000
              });
            }
            this.saveDisable = false;
          });
        }
      });
    },

    // 处理拼音转换
    handlePinyin(e){
      // console.log(e.target.value,'==========');
      this.form.spell = pinyin.getCamelChars(e.target.value)
    }
  }
};
</script>

<style lang="less" scoped>
.AddPlanWrapper {
  min-width: 940px;
  .AddPlanBox {
    padding: 20px 60px 120px 60px;
    margin: 70px 20px 0 20px;
    background: #fff;
  }
  color: #606266;
  .topBack {
    top: 0;
  }
  .title {
    background-color: #f2f2f2;
    display: flex;
    .handleIcon {
      width: 30px;
      cursor: pointer;
      height: 40px;
      display: flex;
      justify-content: center;
      align-items: center;
      img {
        width: 20px;
        height: 20px;
      }
      .open {
        transform: rotate(180deg);
      }
      .close {
        transform: rotate(0deg);
      }
    }
    .titlwSwitch {
      width: 120px;
    }
    h4 {
      flex: 1;
    }
    .titlwSwitchStatus {
      margin-left: 16px;
    }
  }
  .sub {
    .planItem {
      display: flex;
      .sort {
        width: 60px;
        display: flex;
        .top {
          display: flex;
          justify-content: center;
          align-items: center;
          width: 30px;
          cursor: pointer;
          img {
            width: 10px;
            height: 14px;
          }
        }
        .down {
          width: 30px;
          cursor: pointer;
          display: flex;
          justify-content: center;
          align-items: center;
          img {
            width: 10px;
            height: 14px;
          }
        }
      }
      .openOrClose {
        display: flex;
        flex: 1;
        .planInfo {
          width: 140px;
        }
        .switch {
        }
        .planStatus {
          margin-left: 16px;
        }
      }
      .showNum {
        display: flex;
        width: 160px;
        /deep/.el-input--small {
          width: 60px;
        }
      }
    }
  }
  .el-button {
    float: right;
  }
  .plus-icon-enter-active {
    transition: all 0.8s;
  }
  .plus-icon-enter {
    opacity: 0;
    margin-top: 12px;
  }
  .plus-icon-leave-active {
    transition: all 0.8s;
  }
  .plus-icon-leave-active {
    opacity: 0;
    margin-top: 12px;
  }
}
.leaveBox {
  /deep/ .leaveBtn {
    // margin-right: 46px;
    background-color: #d7d7d7 !important;
    border-color: transparent;
  }
}
</style>