<template lang="pug">
  <div class='m_i_dialog'>
    <el-dialog  width="400px" :close-on-click-modal='false' :visible.sync='visible' append-to-body :before-close='handleClose'>
      .title-bold(slot='title') {{title}}预置点
      <el-form :model='dataForm'  ref='dataForm' :rules="dataRule" :inline='true'  label-width="100px">
        <el-form-item label='资源名称:'>
          <el-input v-model='dataForm.resourceName' disabled></el-input>
        </el-form-item>
        <el-form-item label='资源编号:'>
          <el-input v-model='dataForm.code' disabled></el-input>
        </el-form-item>
        <el-form-item label='预置点名称:' prop='name'>
          <el-input v-model='dataForm.name' maxlength="20" clearable></el-input>
        </el-form-item>
        <el-form-item label='预置点编号:' prop='orderNum'>
          <el-input v-model.number='dataForm.orderNum' maxlength="20" placeholder='请填写1-99之间的正整数' clearable></el-input>
        </el-form-item>
      </el-form>
      <span class="dialog-footer" slot='footer'>
        <el-button type="primary" @click='cancel'>取消</el-button>
        <el-button type="primary" @click='saveClick' v-prevent-re-click>保存</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { mapState } from 'vuex'
export default {
  computed: {
    ...mapState('d2admin/user', [
      'info'
    ])
  },
  data () {
    return {
      visible: false,
      dataForm: {
        name: '',
        orderNum: '',
        resourceId: '',
        resourceName: '',
        code: '',
        id: ''
      },
      title: '新增',
      stationId: localStorage.getItem('stationId'),
      disabled: true,
      dataRule: {
        name: [
          { required: true, message: '请输入预置点名称', trigger: 'blur' }
        ],
        orderNum: [
          { required: true, message: '请输入预置点编号', trigger: 'blur' },
          { min: 1, max: 99, type: 'number', message: '请输入1到99之间的正整数', trigger: [ 'blur'] }
        ]
      }
    }
  },
  created() {

  },
  methods: {
    init (map, res) {
      this.visible = true
      this.dataForm.resourceName = map.name
      this.dataForm.resourceId = map.id
      this.dataForm.code = map.code
      if (res) {
        this.title = '编辑'
        this.dataForm.name = res.name
        this.dataForm.orderNum = res.orderNum
        this.dataForm.id = res.id
      } else {
        this.title = '新增'
        this.dataForm.name = ''
        this.dataForm.orderNum = ''
        this.dataForm.id = ''
      }
    },
    saveClick() {
      this.$refs['dataForm'].validate(valid => {
        if (valid) {
          let url = this.$http.adornUrl('/sysPreset/save')
          if (this.title == '编辑') {
            url = this.$http.adornUrl('/sysPreset/update')
          }
          this.$http({
            url: url,
            method: 'post',
            data: {
              id: this.dataForm.id,
              stationId: this.stationId,
              resourceId: this.dataForm.resourceId,
              orderNum: this.dataForm.orderNum,
              name: this.dataForm.name
            }
          }).then(data => {
              if (data && data.code === 0) {
                  this.$emit('closeQ')
                  this.$message({
                    type: 'success',
                    message: '操作成功'
                  })
                  this.visible = false
              }
          })
        }
      })
      // if (this.dataForm.name == '') {
      //   this.$message.warning('请输入预置点名称')
      //   return false
      // }
      // if (this.dataForm.orderNum > 99 || this.dataForm.orderNum < 1) {
      //   this.$message.warning('预置点编号只能是小于99大于1的数字')
      //   return false
      // }
    },
    handleClose() {
      this.$refs.dataForm.resetFields()
      this.visible = false
    },
    //取消
    cancel() {
      this.$confirm('确认取消?', `${this.title}预置点`, {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      })
        .then(() => {
          this.handleClose()
        })
        .catch(() => {
          this.$message({
            type: 'info',
            message: '已取消退出'
          })
        })
    }
  }
}
</script>
<style>

</style>
