<template>
    <div>
      <el-card>
        <el-form  :model="query" class="query-form" size="mini" label-width="100px" v-show="showSearch">
            <el-row>
              <el-col :span="6">
                <el-form-item label="记录ID:">
                    <el-input v-model="filterQuery.genKey" style="width: 90%" placeholder="请输入记录ID"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="处理状态:">
                    <el-select v-model="filterQuery.status" style="width: 90%" placeholder="请选择处理状态">
                        <el-option label="全部" value=""></el-option>
                        <el-option label="处理中" value="1"></el-option>
                        <el-option label="已处理" value="3"></el-option>
                        <el-option label="异常" value="2"></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="search" @click="getList">查询</el-button>
            <el-upload :action="uploadFileUrl" multiple :limit="1" :data="uploadData" :show-file-list="false" :on-success="handleChange" :file-list="fileList">
            <el-button size="mini" icon="el-icon-upload2" type="primary">导入器械信息</el-button>
            </el-upload>
          </el-button-group>
        </div>

        <el-divider style="margin: 15px"></el-divider>


        <el-table v-loading="loading" :data="list" style="width: 100%" @selection-change="handleSelectionChange" border highlight-current-row>
            <el-table-column label="序号" type="index"></el-table-column>
            <el-table-column label="记录ID" prop="genKey" show-overflow-tooltip></el-table-column>
            <el-table-column label="来源" prop="fromType" show-overflow-tooltip>
            </el-table-column>
            <el-table-column label="更新日期" prop="updateTime" show-overflow-tooltip></el-table-column>
            <el-table-column label="状态" prop="status" show-overflow-tooltip>
                <template slot-scope="scope">
                    <el-tag :type="statusFilterType(scope.row.status)">{{ status[scope.row.status] }}</el-tag>
                </template>
            </el-table-column>
          <el-table-column label="导入信息" prop="remark" show-overflow-tooltip></el-table-column>
            <el-table-column label="操作"  width="120">
                <template slot-scope="scope">
                    <el-button type="text"  @click.native.stop="deleteDialog(scope.row.id)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>


        <el-dialog
            title="器械信息导入详情"
            :visible.sync="udiImportDetailVisible"
            width="80%"
            :close-on-click-modal="false"
            :close-on-press-escape="false"
            v-if="udiImportDetailVisible"
        >
            <udiInfoImportDetail :currentRow="currentRow" :closeDialog="cancelDialog"></udiInfoImportDetail>
        </el-dialog>

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

<script>
    import axios from "axios";
    import {filterDetail, filterLog, deleteLog, downloadSmp} from "@/api/basic/udiinfoImport";
    import {getBasicThirdSys} from "@/api/basic/basicThirdSys";
    import udiInfoImportDetail from "./udiInfoImportDetail";

    export default {
        data() {
            return {
                showSearch: true,
                filterQuery: {
                    genKey: null,
                    status: null,
                    fromType: null,
                    page: 1,
                    limit: 20,
                    thirdSysFk: null,
                },
                udiImportDetailVisible: false,
                checked: false,
                list: [],
                detailList: [],
                thirdSys: [],
                thirdSysDetail: null,
                total: 0,
                currentRow: null,
                editQuery: null,
                fromStatus: {
                    0: "产品信息",
                    1: "库存信息",
                    2: "异常第三方上传"
                },
                status: {
                    0: "等待处理",
                    1: "正在处理",
                    2: "处理异常",
                    3: "处理完成"
                },
                uploadFileUrl: null,
                uploadData: {
                    thirdSys: "thirdId",
                },
                templateDlUrl: null,
            };
        },

        methods: {
            onReset() {
                this.$router.push({
                    path: "",
                });
                this.filterQuery = {
                    fromType: null,
                    genKey: null,
                    status: null,
                    page: 1,
                    limit: 20,
                    thirdSysFk: null,
                };
                this.getList();
            },
            getList() {
                this.loading = true;
                filterLog(this.filterQuery)
                    .then((response) => {
                        this.loading = false;
                        this.list = response.data.list || [];
                        this.total = response.data.total || 0;
                    })
                    .catch(() => {
                        this.loading = false;
                        this.list = [];
                        this.total = 0;
                    });
            },
            hideSearch() {
              this.showSearch = !this.showSearch;
            },
            genInCode() {
                this.selectBasicUdiVisible = true;
            },
            handleDetailClick(row) {
                this.currentRow = row;
                console.log(this.currentRow.genKey)
                this.udiImportDetailVisible = true;

            },
            cancelDialog() {
                this.udiImportDetailVisible = false;
            },
            handleCurrentChange(val) {
                this.filterQuery.page = val.page;
                this.getList();
            },
            deleteDialog(rowId) {
                this.$confirm("此操作将删除该产品信息, 是否继续?", "提示", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning",
                })
                    .then(() => {
                        let dQuery = {
                            id: rowId,
                        };
                        deleteLog(dQuery)
                            .then((response) => {
                                this.loading = false;
                                if (response.code == 20000) {
                                    this.$message.success("删除成功");
                                } else {
                                    this.$message.error(response.message);
                                }
                                this.getList();
                            })
                            .catch(() => {
                                this.loading = false;
                            });
                    })
                    .catch(() => {
                    });
            },
            getBasicThirdSys() {
                let query = {
                    enabled: true,
                };
                getBasicThirdSys(query)
                    .then((response) => {
                        this.thirdSys = response.data.list || [];
                        // this.filterQuery.thirdSysFk = this.thirdSys[0].thirdId;
                        this.getList();
                    })
                    .catch(() => {
                        this.loading = false;
                        this.list = [];
                    });
                axios.get("./config.json").then(res => {
                    let response = res.data.BASE_URL;
                    this.uploadFileUrl = response + "/udiwms/products/importLog/upload";
                });
                axios.get("./config.json").then(res => {
                    let response = res.data.SERVER_IP;
                    this.templateDlUrl = response + "/已对照产品信息模板.xlsx";
                });
            },
            jumpDl() {
                window.open(this.templateDlUrl, '_blank');
            },
            handleChange(response, files, fileList) {
                console.log(response);
                if (response.code != 20000) {
                    this.$message.error(response.message);
                } else {
                    // console.log(files[0] + "\n" + this.fileList[0] + "\n" + fileList[0]);
                    this.getList();
                    this.$message.success(response.data);
                }
            },
            statusFilterType(status) {
                const statusMap = {
                    0: "warning",
                    1: "warning",
                    2: "danger",
                    3: "success",
                };
                return statusMap[status];
            },
            dlSmp() {
                this.loading = true;
                downloadSmp()
                    .then((response) => {
                        this.loading = false;
                        this.$message.success(response.data);
                        this.getList();
                    })
                    .catch(() => {
                        this.loading = false;
                    });
            }
        },
        mounted() {
        },
        components: {udiInfoImportDetail},
        created() {
            this.getBasicThirdSys();
            this.getList();
        },
    };
</script>
<style>
    .itemTag {
        float: left;
        text-align: left;
        margin-top: 10px;
        width: 100px;
    }

    .text {
        font-size: 13px;
        font-family: "Microsoft YaHei";
    }

    .el-row {
        display: flex;
        flex-wrap: wrap;

    }

    .el-col {
        border-radius: 4px;
        flex-wrap: wrap;
    }
</style>
