<template>
    <div>
      <el-card>
        <el-form :model="filterQuery" label-width="120px" v-if="showSearch">
          <el-row>
            <el-col :span="6">
                <el-form-item label="药品编码:">
                    <el-input v-model="filterQuery.unionCode"  style="width:90%" placeholder="请输入DI/医保编码/商品条码" clearable="true"></el-input>
                </el-form-item>
            </el-col>
            <el-col :span="6">
                <el-form-item label="药品名称:">
                    <el-input v-model="filterQuery.cpmctymc"  style="width:90%" placeholder="请输入产品通用名" clearable="true"></el-input>
                </el-form-item>
            </el-col>
            <el-col :span="6">
                <el-form-item label="规格型号:">
                    <el-input v-model="filterQuery.ggxh"  style="width: 90%" placeholder="请输入规格型号" clearable="true"></el-input>
                </el-form-item>
            </el-col>
            <el-col :span="6">
                <el-form-item label="生产企业:">
                    <el-input v-model="filterQuery.manufactory"  style="width: 90%" placeholder="请输入生产企业" clearable="true"></el-input>
                </el-form-item>
            </el-col>
            </el-row>

            <el-row>
              <el-col :span="6">
                <el-form-item label="配送企业:">
                    <el-input v-model="filterQuery.supName"  style="width: 90%" placeholder="请输入配送企业" clearable="true"></el-input>
                </el-form-item>
              </el-col>
              <!--<el-col :span="6">-->
              <!--  <el-form-item label="第三方物资编码:">-->
              <!--      <el-input v-model="filterQuery.thrPiId" style="width: 90%" placeholder="请输入第三方物资编码" clearable="true"></el-input>-->
              <!--  </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="submitSearch">查询</el-button>
            <el-button type="primary" icon="el-icon-upload2" @click="selectExport">选中导入</el-button>
          </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 type="selection" width="55" :selectable="checkSelectable"></el-table-column>
            <el-table-column label="序号" type="index"></el-table-column>
            <el-table-column label="药品编码" prop="nameCode" width="140"></el-table-column>
            <!--<el-table-column label="物资编码" prop="thirdId" show-overflow-tooltip></el-table-column>-->
            <el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip></el-table-column>
            <el-table-column label="药品名称" prop="cpmctymc" show-overflow-tooltip></el-table-column>
            <el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip></el-table-column>
            <el-table-column label="包装规格" prop="bzgg" show-overflow-tooltip></el-table-column>
            <el-table-column label="制剂规格" prop="prepnSpec" show-overflow-tooltip></el-table-column>
            <el-table-column label="制剂单位" prop="prepnUnit" show-overflow-tooltip></el-table-column>
            <el-table-column label="包装材质" prop="packMatrial" show-overflow-tooltip></el-table-column>
            <el-table-column label="批准文号" prop="zczbhhzbapzbh" show-overflow-tooltip></el-table-column>
            <!--<el-table-column label="器械类别" prop="qxlb" show-overflow-tooltip></el-table-column>-->
            <el-table-column label="配送企业" prop="supName" show-overflow-tooltip></el-table-column>
            <el-table-column width="60" label="操作" >
                <template slot-scope="scope">
                    <el-button
                        type="text"
                        size="small"
                        @click.native.stop="handleModifyClick(scope.row)"
                    >详情
                    </el-button>
                </template>
            </el-table-column>
        </el-table>
        <el-dialog
            title="产品信息详情"
            :visible.sync="editDialogVisible"
            width="70%"
            :close-on-click-modal="false"
            :close-on-press-escape="false"
            append-to-body
            v-if="editDialogVisible"
        >
          <!--<el-table :data="sysList" style="width: 100%" border highlight-current-row>-->
          <!--  <el-table-column label="序号" type="index"></el-table-column>-->
          <!--  <el-table-column label="第三方系统名称" prop="sysName" show-overflow-tooltip></el-table-column>-->
          <!--  <el-table-column label="第三方产品名称" prop="thirdName" show-overflow-tooltip></el-table-column>-->
          <!--  <el-table-column label="第三方产品ID" prop="thirdId" show-overflow-tooltip></el-table-column>-->
          <!--</el-table>-->


          <el-table v-loading="loading" :data="detailList" style="width: 100%; margin-top: 20px" border key="3" @current-change="handleDetail">
            <el-table-column label="层级标识" prop="nameCode" show-overflow-tooltip></el-table-column>
            <el-table-column label="包装级别" prop="packLevel" show-overflow-tooltip></el-table-column>
            <el-table-column label="层级单位" prop="packUnit" show-overflow-tooltip></el-table-column>
            <el-table-column label="上级标识" prop="sjcpbm" show-overflow-tooltip></el-table-column>
            <el-table-column label="下级标识" prop="bhxjcpbm" show-overflow-tooltip></el-table-column>
            <el-table-column label="下级数量" prop="bhxjsl" show-overflow-tooltip></el-table-column>
          </el-table>

            <el-form :model="editQuery" :rules="rules" ref="editQuery" label-width="190px" style="margin-top: 20px">
              <el-row>
                <el-col :span="12">
                  <el-form-item label="药品名称" prop="cpmctymc">
                    <el-input style="width: 90%" size="small" splaceholder="请输入药品名称" :disabled="true" v-model="editQuery.cpmctymc"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12" class="el-col">
                  <el-form-item label="药品编码" prop="nameCode">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入产品标识" v-model="editQuery.nameCode"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>

              <el-row>
                <el-col :span="12" class="el-col">
                  <el-form-item label="规格型号" prop="ggxh">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" v-model="editQuery.ggxh"></el-input>
                  </el-form-item>
                </el-col>

                <el-col :span="12" class="el-col">
                  <el-form-item label="包装规格" prop="bzgg">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入包装规格" v-model="editQuery.bzgg"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>

              <el-row>
                <el-col :span="12" class="el-col">
                  <el-form-item label="制剂单位" prop="prepnUnit">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入制剂单位" v-model="editQuery.prepnUnit"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12" class="el-col">
                  <el-form-item label="制剂规格" prop="prepnSpec">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入制剂规格" v-model="editQuery.prepnSpec"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>

              <el-row>
                <el-col :span="12" class="el-col">
                  <el-form-item label="医保编码" prop="ybbm">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入医保编码" v-model="editQuery.ybbm"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="12" class="el-col">
                  <el-form-item label="批准文号" prop="zczbhhzbapzbh">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入批准文号" v-model="editQuery.zczbhhzbapzbh"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>




              <el-row>
                <el-col :span="12" class="el-col">
                  <el-form-item label="上级产品编码" prop="sjcpbm">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入上级产品编码" v-model="editQuery.sjcpbm"></el-input>
                  </el-form-item>
                </el-col>

                <el-col :span="12" class="el-col">
                  <el-form-item label="包装级别" prop="packLevel">
                    <el-input style="width: 90%" size="small" splaceholder="请输入包装级别" :disabled="true" v-model="editQuery.packLevel"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>

              <!--<el-row>-->
              <!--  <el-col :span="12" class="el-col">-->
              <!--    <el-form-item label="包装层级" prop="bzcj">-->
              <!--      <el-input style="width: 90%" size="small" splaceholder="请输入包装层级" v-model="editQuery.bzcj" :disabled="true"></el-input>-->
              <!--    </el-form-item>-->
              <!--  </el-col>-->

              <!--  <el-col :span="12" class="el-col">-->
              <!--    <el-form-item label="包含下级包装数量" prop="bhxjsl">-->
              <!--      <el-input style="width: 90%" size="small" splaceholder="请输入包含下级包装数量" :disabled="true" v-model="editQuery.bhxjsl"></el-input>-->
              <!--    </el-form-item>-->
              <!--  </el-col>-->
              <!--</el-row>-->

              <!--<el-row>-->
              <!--  <el-col :span="12" class="el-col">-->
              <!--    <el-form-item label="包含下级产品编码" prop="bhxjcpbm">-->
              <!--      <el-input style="width: 90%" size="small" :disabled="true" splaceholder="请输入包含下级产品编码" v-model="editQuery.bhxjcpbm"></el-input>-->
              <!--    </el-form-item>-->
              <!--  </el-col>-->

              <!--</el-row-->

                <!--<el-row>-->
                <!--    <el-col :span="12" class="el-col">-->
                <!--      <el-form-item label="是否包含批号" prop="scbssfbhph">-->
                <!--          <el-input style="width: 90%" :disabled="true" size="small"  v-model="editQuery.scbssfbhph"></el-input>-->
                <!--      </el-form-item>-->
                <!--    </el-col>-->
                <!--    <el-col :span="12" class="el-col">-->
                <!--          <el-form-item label="是否包含序列号" prop="scbssfbhxlh">-->
                <!--            <el-input style="width: 90%" :disabled="true" size="small" v-model="editQuery.scbssfbhxlh" splaceholder="请输入内容"></el-input>-->
                <!--          </el-form-item>-->
                <!--    </el-col>-->
                <!--</el-row>-->

                <!--<el-row>-->
                <!--    <el-col :span="12" class="el-col">-->
                <!--      <el-form-item label="是否包含生产日期" prop="scbssfbhscrq">-->
                <!--        <el-input style="width: 90%" :disabled="true" size="small" v-model="editQuery.scbssfbhscrq"></el-input>-->
                <!--      </el-form-item>-->
                <!--    </el-col>-->
                <!--    <el-col :span="12" class="el-col">-->
                <!--      <el-form-item label="是否包含失效日期" prop="scbssfbhsxrq">-->
                <!--        <el-input style="width: 90%" :disabled="true" v-model="editQuery.scbssfbhsxrq" ></el-input>-->
                <!--      </el-form-item>-->
                <!--    </el-col>-->
                <!--</el-row>-->

                <el-row>
                    <el-col :span="12" class="el-col">
                      <el-form-item label="产品描述" prop="cpms">
                        <el-input style="width: 90%" :disabled="true" size="small"  v-model="editQuery.cpms"></el-input>
                      </el-form-item>
                    </el-col>
                    <el-col :span="12" class="el-col">
                      <el-form-item label="计量单位" prop="measname">
                        <el-input style="width: 90%" size="small" splaceholder="请输入内容" :disabled="true" v-model="editQuery.measname"></el-input>
                      </el-form-item>
                    </el-col>
                </el-row>
              <el-row>
                <el-col :span="12" class="el-col">
                  <el-form-item label="统一社会信用号" prop="tyshxydm">
                    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入统一社会信用号" v-model="editQuery.tyshxydm"></el-input>
                  </el-form-item>
                </el-col>
              </el-row>
                <!--<el-row >-->
                <!--    <el-col :span="12" class="el-col">-->
                <!--      <el-form-item label="最小包装单元内包含使用单元数量" prop="zxxsbzbhsydysl">-->
                <!--        <el-input style="width: 90%" :disabled="!checked" size="small" splaceholder="请输入内容" v-model="editQuery.zxxsbzbhsydysl"></el-input>-->
                <!--      </el-form-item>-->
                <!--    </el-col>-->
                <!--</el-row>-->
            </el-form>

        </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 {
    getUdiInfos,
    updateErpProduct,
    thirdSysDetail,
    getSmUdiInfos
} from "@/api/basic/udiRelevance";
import {udiUpload} from "@/api/thrsys/smp"
import {filterByUuid} from "@/api/basic/udiInfo";
import {
    insertCompanyProductRelevance,
    updateCompanyProductRelevance, insertFilter
} from "@/api/basic/udiRlSuptRelevance";
import store from "@/store";

export default {
    name: "UdIInfoSelect",
    props: {
        unitFk: {
            type: Object,
            required: true,
        },
        selectType: {
            type: Object,
            required: true,
        },
        closeSelDialog: {
            type: Function,
            required: true,
        },
    },
    data() {
        return {
            showSearch: true,
            filterQuery: {
                customerId: null,
                uuids: [],
                rlIds: [],
                ylqxzcrbarmc: "",
                supName: null,
                cpmctymc: "",
                nameCode: "",
                page: 1,
                limit: 20,
                addType: 1,
                isDisable: false,
                productsType: 2
            },

            editQuery: null,
            relevanceEdit: {
                id: null,
                thirdId: "",
                isUseDy: false,
            },
            isImport: false,
            isImportUdi: false,
            isUploadSmp: false,
            isImportFile: false,
            uploadFileUrl: null,
            checked: false,
            list: [],
            detailList: [],
            sysList: [],
            total: 0,
            thirdNo: "",
            uuid: "111",
            thirdId: null,
            relId: "",
            thisData: {
                nameCode: null,
                cpmctymc: null,
                ggxh: null
            },
            multipleSelection: [],
            editDialogVisible: false,
            selectUdiDialogVisible: false,
            selectErpDialogVisible: false,
            selectLocalVisible: false,
        };
    },

    methods: {
        onReset() {
            this.$router.push({
                path: "",
            });
            this.filterQuery = {
                customerId: null,
                uuids: [],
                rlIds: [],
                ylqxzcrbarmc: "",
                supName: null,
                cpmctymc: "",
                nameCode: "",
                page: 1,
                limit: 20,
                unitFk: null,
                addType: 1,
            };
            this.getList();
        },

      hideSearch() {
        this.showSearch = !this.showSearch;
      },
        submitSearch() {
            this.filterQuery.page = 1;
            this.getList();
        },
        getList() {
            this.loading = true;
            this.filterQuery.customerId = store.getters.customerId;
            getSmUdiInfos(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;
                });
        },

        getDetailList(detailQuery) {
            this.loading = true;
            filterByUuid(detailQuery)
                .then((response) => {
                    this.loading = false;
                    this.detailList = response.data || [];
                })
                .catch(() => {
                    this.loading = false;
                    this.detailList = [];
                });
        },

        handleDetail(row) {
            this.editQuery = row;
        },

        combine() {
            this.combineQuery.productUuid = this.currentRow.uuid;
            this.combineQuery.customerId = store.getters.customerId;
            insertCompanyProductRelevance(this.combineQuery).then(response => {
                this.loading = false;
                if (response.code === 20000) {
                    this.$message.success("添加成功");
                    this.closeDialog(true);
                } else {
                    this.$message.error(response.message);
                }
            });
        },


        selectExport() {
            var selectData = this.multipleSelection;
            this.filterQuery.rlIds=[];
            if(selectData.length==0){
              this.$message.error("请先选择产品！");
              return
            }
            selectData.forEach((obj) => {
                 this.filterQuery.rlIds.push(obj.id);
                 this.filterQuery.nameCode=obj.nameCode;
            });

            this.filterQuery.unitFk = this.unitFk;
            this.allExport();

        },
        allExport() {
            this.filterQuery.customerId = store.getters.customerId;
            insertFilter(this.filterQuery).then(response => {
                this.loading = false;
                if (response.code == 20000) {
                    this.$message.success(response.data);
                    // this.$emit("closeSelDialog", true);
                    this.closeSelDialog();
                } else {
                    this.$message.error(response.message);
                }
            });
        },

        intentDetail() {
            this.isImportUdi = false;
            this.selectUdiDialogVisible = true;
        },

        intentImportErp(val) {
            this.uuid = val.uuid;
            this.relId = val.id;
            this.isImport = true;
            this.thisData = val;
            this.selectErpDialogVisible = true;
        },
        uploadSMP() {
            var selectData = this.multipleSelection;
            selectData.forEach((obj) => {
                this.filterQuery.uuids.push(obj.uuid);
            });
            this.allUploadSMP();
        },

        allUploadSMP() {
            udiUpload(this.filterQuery)
                .then((response) => {
                    if (response.code == 20000) {
                        this.$message({
                            type: "success",
                            message: "上传成功！",
                        });
                    } else {
                        this.$message({
                            type: "error",
                            message: response.message,
                        });
                    }
                    this.$emit("cancelDialog", true);
                })
                .catch(() => {
                    this.$message({
                        type: "error",
                        message: "上传失败",
                    });
                    this.$emit("cancelDialog", true);
                });
        },
        handleSelectionChange(val) {
            this.multipleSelection = val;
        },

        handleCurrentChange(val) {
            this.filterQuery.page = val.page;
            this.getList();
        },
        handleModifyClick(row) {
            this.editDialogVisible = true;
            this.editQuery = row;
            this.relevanceEdit = {
                id: row.id,
                thirdId: row.thirdId,
                isUseDy: row.isUseDy,
            };
            this.checked = row.isUseDy == 1;

            let ttquery = {
                id: row.id,
                page: 1,
                limit: 10,
            };

            this.getDetailList(ttquery);
            this.getThirdSysDetail();
        },
        closeUdi(val) {
            this.selectUdiDialogVisible = false;
            this.selectErpDialogVisible = false;
            this.selectLocalVisible = false;
            if (val) {
                this.getList();
            }
        },
        getThirdSysDetail() {
            let query = {
                id: this.relevanceEdit.id,
            };

            thirdSysDetail(query)
                .then((response) => {
                    this.loading = false;
                    this.sysList = response.data.list || [];
                })
                .catch(() => {
                    this.loading = false;
                    this.sysList = [];
                });
        },
        checkSelectable(row) {
            return !row.isSelect;
        },
        uploadErpProduct() {
            updateErpProduct()
                .then((response) => {
                    if (response.code == 20000) {
                        this.$message({
                            type: "success",
                            message: response.data,
                        });
                        this.$emit("closeDialog", true);
                    } else {
                        this.$message.error(response.message);
                    }
                })
                .catch(() => {
                });
        },

        closeDialog() {
            this.selectErpDialogVisible = false;
            this.selectLocalVisible = false;
        },

        selectSysParam() {
            let query = {
                paramKey: "smp_isUploadProuct",
            };
            selectSysParamByKey(query).then((response) => {
                if (response.code == 20000) {
                    if (response.data.paramValue == "1") {
                        this.isUploadSmp = true;
                    }
                }
            });
            let query1 = {
                paramKey: "upload_pi_file_enabled",
            };
            selectSysParamByKey(query1).then((response) => {
                if (response.code == 20000) {
                    if (response.data.paramValue == "1") {
                        this.isImportFile = true;
                    }
                }
            });
            let query2 = {
                paramKey: "upload_pi_file_url",
            };
            selectSysParamByKey(query2).then((response) => {
                if (response.code == 20000) {
                    this.uploadFileUrl = response.data.paramValue;
                }
            });
        },
    },
    mounted() {
    },
    components: {},
    created() {
        this.getList();
        this.selectSysParam();
    },
};
</script>
<style scoped>
.el-form-item--mini.el-form-item {
  margin-bottom: 9px;
}
</style>
