<template>
  <div>
    <el-card class="el-card">
      <el-form :model="filterQuery" label-width="100px" v-show="showSearch">
        <el-row>
          <el-col :span="8">
            <el-form-item label="DI产品标识:">
              <el-input v-model="filterQuery.code" style="width: 90%" placeholder="请输入DI产品标识" clearable
                        @keyup.enter.native="keyupErp_submit($event)"
              ></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="物资名称:">
              <el-input v-model="filterQuery.name" style="width: 90%" clearable placeholder="请输入物资名称"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="规格型号:">
              <el-input v-model="filterQuery.spec" style="width: 90%" clearable placeholder="请输入规格型号"></el-input>
            </el-form-item>
          </el-col>

        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="注册证编号:">
              <el-input v-model="filterQuery.registerNo" style="width: 90%" clearable
                        placeholder="请输入注册证编号"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">

            <el-form-item label="审核状态:">
              <el-select v-model="filterQuery.checkStatus" style="width: 90%" placeholder="请选择审核状态">
                <el-option label="全部" value=""></el-option>
                <el-option label="已审核" value="2"></el-option>
                <el-option label="未审核" value="1"></el-option>
                <el-option label="未通过" value="3"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>


      <div class="top-right-btn">
        <el-button-group style="display:flex;">
          <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button>
          <el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button>
          <el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
          <el-button type="primary" icon="el-icon-plus" @click="addDiProductVisible=true">选入DI信息</el-button>
          <el-button type="primary" icon="el-icon-plus" @click="addProductVisible=true">添加院内字典</el-button>
        </el-button-group>
      </div>
      <el-divider style="margin: 15px"></el-divider>

      <el-table :data="list" style="width: 100%" v-loading="loading" border highlight-current-row="true">
        <el-table-column label="序号" type="index"></el-table-column>
        <el-table-column label="产品标识" prop="code" show-overflow-tooltip></el-table-column>
        <el-table-column label="物资名称" prop="name" show-overflow-tooltip></el-table-column>
        <el-table-column label="规格型号" prop="spec" show-overflow-tooltip></el-table-column>
        <el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip></el-table-column>
        <el-table-column label="注册证编号" prop="registerNo" show-overflow-tooltip></el-table-column>
        <el-table-column label="审核状态" prop="status" show-overflow-tooltip>
          <template slot-scope="scope">
            <span>{{ checkMap[scope.row.status] }}</span>
          </template>
        </el-table-column>
        <el-table-column label="操作" width="120">
          <template slot-scope="scope">
            <el-button type="text" size="small" @click="detail(scope.row)">详情</el-button>
            <el-button type="text" size="small" :disabled="scope.row.status ==2" @click="deleteProduct(scope.row.id)">
              删除
            </el-button>
          </template>
        </el-table-column>

      </el-table>

      <pagination
        v-show="total>0"
        :total="total"
        :limit.sync="filterQuery.limit"
        :page.sync="filterQuery.page"
        @pagination="handleCurrentChange"
      ></pagination>

    </el-card>

    <el-dialog
      title="选入配送产品"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :visible.sync="addDiProductVisible"
      width="85%"
      append-to-body
      v-if="addDiProductVisible"
    >
      <thrAddDiProductSelectUdi
        :closeDialog="closeDialog"
        :relId="relId"
        :isImportUdi="isImportUdi"
        :data="thisData"
        @closeUdi="closeUdi"
      >
      </thrAddDiProductSelectUdi>
    </el-dialog>

    <el-dialog
      title="新增配送产品"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :visible.sync="addProductVisible"
      width="85%"
      append-to-body
      v-if="addProductVisible"
    >
      <thrAddProductSelectUdi
        :closeAddDialog="closeDialog"
        :newType="newType"
        @closeUdi="closeUdi"
      >
      </thrAddProductSelectUdi>
    </el-dialog>

    <el-dialog
      title="器械信息详情"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :visible.sync="detailDialog"
      width="60%"
      append-to-body
      v-if="detailDialog"
    >
      <selectDiDetail :editQuery="diDetails">
      </selectDiDetail>
    </el-dialog>

    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      title="产品信息详情"
      :visible.sync="thrProductsDetailVisible"
      width="80%"
      v-if="thrProductsDetailVisible"
    >
      <thrProductsDetail
        :data="thisDetail"
      ></thrProductsDetail>
    </el-dialog>

  </div>
</template>
<script>

import {getThrDiProducts, delThrDiProducts, getDiProductDetail} from '@/api/supplier/supProductsAddDi'
import thrAddDiProductSelectUdi from '@/views/supplier/products/supAddDiProductSelectUdi'
import thrAddProductSelectUdi from '@/views/supplier/products/supProductsAdd'
import selectDiDetail from './selectDIDetailDialog'
import thrProductsDetail from '@/views/supplier/products/supProductsDetail'

export default {
  data() {
    return {
      showSearch: true,
      thisDetail: null,
      filterQuery: {
        code: null,
        name: null,
        spec: null,
        registerNo: null,
        manufactory: null,
        checkStatus: null,
        page: 1,
        limit: 20
      },
      total: 0,
      thirdSys: [],
      thirdSysDetail: null,
      list: [],
      addDiProductVisible: false,
      addProductVisible: false,
      checkVisible: false,
      newType: 2,
      thrProductsDetailVisible: false,
      isImportUdi: false,
      relId: null,
      thisData: {
        nameCode: null,
        cpmctymc: null,
        ggxh: null
      },
      loading: false,
      checkMap: {
        1: '未审核',
        2: '已审核',
        3: '未通过'
      },
      curRow: null,
      diDetails: null,
      detailDialog: false
    }
  },

  methods: {
    onReset() {
      this.$router.push({
        path: ''
      })
      this.filterQuery = {
        code: null,
        spec: null,
        registerNo: null,
        manufactory: null,
        checkStatus: null,
        name: null,
        page: 1,
        limit: 20
      }
      this.getList()
    },
    search() {
      this.filterQuery.page = 1
      this.getList()
    },
    checDialog(row) {
      this.checkVisible = true
      this.curRow = row
    },
    hideSearch() {
      this.showSearch = !this.showSearch;
    },
    getList() {
      this.loading = true
      getThrDiProducts(this.filterQuery)
        .then((response) => {
          if (response.code == 20000) {
            this.list = response.data.list || []
            this.total = response.data.total || 0
          } else {
            this.$message.error(response.message)
          }
          this.loading = false
        })
        .catch(() => {
          this.loading = false
          this.list = []
          this.total = 0
        })
    },
    handleCurrentChange(val) {
      this.filterQuery.page = val.page
      this.getList()
    },
    detail(row) {
      if (row.type == 1) {
        let query = {uuid: row.uuid}
        getDiProductDetail(query).then((res) => {
          if (res.code === 20000) {
            this.diDetails = res.data
            this.detailDialog = true
          } else {
            this.$message.error('参数错误')
          }
        })
      } else {
        this.thisDetail = row;
        this.thrProductsDetailVisible = true;
      }
    },
    deleteProduct(id) {
      let query = {
        id: id
      }
      delThrDiProducts(query).then((res) => {
        if (res.code === 20000) {
          this.$message.success('删除成功')
          this.getList()
        } else {
          this.$message.error('删除失败')
        }
      })
    },
    closeDialog() {
      this.selectErpDialogVisible = false
      this.selectLocalVisible = false
      this.selectVersionVisible = false
      this.addProductVisible = false
      this.getList();
    },
    closeUdi(val) {
      this.addDiProductVisible = false
      if (val) {
        this.getList()
      }
    }
  },
  components: {
    thrAddDiProductSelectUdi, selectDiDetail, thrAddProductSelectUdi, thrProductsDetail
  },
  mounted() {
  },
  created() {
    this.getList()
  }
}
</script>
