<template>
  <div>
    <el-dialog
      title="选择路段信息"
      :visible.sync="dialogVisible"
      width="800px"
      appendToBody
      :close-on-click-modal="false"
      top="4vh"
      @close="closeDialog"
      v-if="dialogVisible"
    >
      <el-container>
        <el-main style="padding: 10px; height: 350px">
          <ht-table
            @load="loadData"
            :data="data"
            :selectable="false"
            :highlightCurrentRow="true"
            :page-result="pageBean"
            quick-search-props="name,key"
            ref="htTable"
            :show-export="false"
            :show-custom-column="false"
            @row-click="rowClick"
          >
            <template v-slot:toolbar>
              <el-tooltip
                effect="dark"
                content="鼠标覆盖一条数据点击进行选取"
                placement="right"
              >
                <el-tag type="info">
                  <span class="el-icon-question">
                    提示
                  </span>
                </el-tag>
              </el-tooltip>
            </template>
            <template>
              <el-table-column
                type="selection"
                align="center"
                width="45"
                v-if="!this.single"
              ></el-table-column>
              <el-table-column
                align="center"
                width="50"
                v-if="this.single"
              >
                <template slot-scope="scope">
                  <el-radio
                    v-model="selectedId"
                    :label="scope.row.id"
                  ></el-radio>
                </template>
              </el-table-column>
              <ht-table-column
                type="index"
                width="50"
                align="center"
                label="序号"
              />
              <ht-table-column
                prop="code"
                label="路段编号"
                width='100px'
                :show-overflow-tooltip="true"
              />
              <ht-table-column
                prop="name"
                label="路段名称"
                :show-overflow-tooltip="true"
                :sortable="true"
              />
              <ht-table-column
                prop="startingPoint"
                label="起始点"
                width='150px'
                :show-overflow-tooltip="true"
                :sortable="true"
              />
              <ht-table-column
                prop="terminalPoint"
                label="终点"
                width='120px'
                :show-overflow-tooltip="true"
                :sortable="true"
              />
            </template>
          </ht-table>
        </el-main>
      </el-container>
      <span
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          type="primary"
          @click="handleOK"
          size="medium"
        >确 定</el-button>
        <el-button
          @click="closeDialog"
          size="medium"
        >取 消</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import req from '@/request.js'
import basicData from '@/api/basicData.js'
import utils from '@/hotent-ui-util.js'
export default {
  components: {},
  props: {
    single: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      dialogVisible: false,
      pageBean: {
        page: 1,
        pageSize: 20,
        total: 0
      },
      data: [],
      activeRow: {},
      selectedId: null
    }
  },
  methods: {
    rowClick(row) {
      this.activeRow = row
      this.selectedId = row.id
    },
    open() {
      this.dialogVisible = true
    },
    handleOK() {
      let selectRow = utils.deepClone(this.activeRow)
      this.$emit('select', selectRow)
      this.selectedId = null
      this.dialogVisible = false
      this.activeRow = {}
    },
    loadData(param, cb) {
      if (!param) {
        this.pageBean.total = 0
        param = {pageBean: ''}
        param.pageBean = this.pageBean
        param.sorter = this.defaultSort
      }
      basicData
        .getRoadManagement(param)
        .then(resp => {
          this.data = resp.rows
          this.pageBean = {
            page: resp.page,
            pageSize: resp.pageSize,
            total: resp.total
          }
        })
        .finally(() => cb())
    },
    closeDialog() {
      this.dialogVisible = false
      this.activeRow = {}
    }
  }
}
</script>

<style lang="scss" scoped>
>>> .el-dialog__body {
  padding-bottom: 0px !important;
}

::v-deep .el-dialog__header {
  border-bottom: 1px solid #ebeef5;
}
</style>
