<template>
  <!--仓库-->
  <Modal v-model="showModal" width="1000">
    <p slot="header">仪器领用</p>
    <Form :label-width="60" onsubmit="return false" inline>
      <Form-item label="仪器名称">
        <Input v-model="license" @on-enter="_search" placeholder="请输入仪器名称,回车查询"
               icon="ios-search-strong"/>
      </Form-item>
      <Form-item class="search-btn" style="margin-left: -10px">
        <Button @click="_search" type="primary">搜索</Button>
      </Form-item>
    </Form>
    <Row>
      <Col span="24">
        <PTVXETable ref="pageTable" :tableHeight="tableHeight"
                    @on-result-change="_tableResultChange" :getPage="getPage" :loading="true" select-data>
          <vxe-table-column
            :field="item.key"
            :title="item.title"
            :min-width="item.width?item.width:200"
            :fixed="item.fixed?item.fixed:undefined"
            v-for="item in pageColumns"
            :key="item.key" sortable>
            <template slot-scope="scope">
              <div v-if="item.date">{{$dateformat(scope.row[item.key],'yyyy-mm-dd')}}</div>
              <div v-else>{{scope.row[item.key]}}</div>
            </template>
          </vxe-table-column>
        </PTVXETable>
      </Col>
    </Row>
    <div slot="footer">
      <ModalFooter ref="footerModal" @on-result-change="_footerResult" :footer="footerList"></ModalFooter>
    </div>
  </Modal>
</template>
<script>
/**
 * 选择车辆
 */
import ModalFooter from '../../../components/base/modalFooter'
import { meterSample } from '../../../api'
export default {
  components: {
    ModalFooter
  },
  data() {
    return {
      formObj: {},
      showModal: false,
      license: '',
      selectNames: '',
      selectIds: '',
      getPage: {},
      tableHeight: '300',
      pageColumns: [
        { title: '仪器名称', key: 'name' },
        { title: '测量范围', key: 'measuringRange' },
        { title: '不确定度/准确度', key: 'uncertaintyAccuray' }
        // { title: '购买/租用时间', key: 'buyDate' },
        // { title: '备注', key: 'remark' }
      ],
      footerList: [
        { id: '', name: '取消', type: '' },
        { id: '', name: '确定', type: 'primary' }
      ]
    }
  },
  methods: {
    _footerResult(name) {
      switch (name) {
        case '取消':
          this._cancel()
          break
        case '确定':
          this._ok()
          break
      }
    },
    _hideLoading() {
      this.$refs.footerModal._hideLoading()
    },
    _open() {
      this.showModal = true
      this.license = ''
      // this.$refs.pageTable._showLoading()
      this._page()
    },
    _page: async function() {
      const data = {}
      if (this.license) {
        data.license = this.license
      }
      // this.$refs.pageTable._page('search-form-car', 'LmsCarInfo/page', data)
      Object.assign(this.formObj, this.$refs.pageTable._searchParams())
      console.log(this.formObj)
      const result = await meterSample.pageInstrutEdit(data)
      console.log('result', result)
      if (result) {
        this.$refs.pageTable._hideLoading()
        this.getPage = result
      } else {
        setTimeout(() => {
          this.$refs.pageTable._hideLoading()
        }, 3000)
      }
    },
    _tableResultChange(msg, data) {
      switch (msg) {
        case 'page':
          this.selectIds = []
          this.selectNames = []
          this.getPage = this.$store.state.LmsCarInfo.page
          break
        case 'selectData':
          const nameList = []
          const idList = []
          for (let i = 0; i < data.length; i++) {
            nameList.push(data[i].license)
            idList.push(data[i].id)
          }
          this.selectIds = idList
          this.selectNames = nameList
          break
        case 'changeSize':
          this._page()
          break
      }
    },
    _ok() {
      this.$emit('on-result-change', {
        ids: this.selectIds,
        names: this.selectNames
      })
      this.showModal = false
      this._hideLoading()
    },
    _cancel() {
      this.showModal = false
      this._hideLoading()
    },
    _search() {
      // tree查询
      this._page()
    }
  }
}
</script>
