chenhaozhe
2025-11-27 cc33c00a94f0c74c769abf052f32709f56f222cd
src/views/purchase/postockInBack/Kf_POStockInBackBillList.vue
@@ -1 +1,867 @@
<template></template>
<template>
    <div style="padding: 10px; position: relative;">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
            <el-form-item label="日期间隔" style="margin-left: 100px">
                <el-select v-model="queryParams.HInitTimeCycle" placeholder="请选择" @change="riqiChange"
                    style="width: 150px">
                    <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
                    </el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="开始日期">
                <el-date-picker v-model="sTime" type="date" placeholder="开始日期" style="width: 150px">
                </el-date-picker>
            </el-form-item>
            <el-form-item label="结束日期">
                <el-date-picker v-model="eTime" type="date" placeholder="结束日期" style="width: 150px">
                </el-date-picker>
            </el-form-item>
            <el-form-item label="单据号" prop="HBillNo">
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
            </el-form-item>
            <el-form-item label="组织" prop="HUSEORGID" label-width="128px">
                <el-select v-model="queryParams.HUSEORGID" placeholder="请选择">
                    <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
                        :value="item.ID">
                    </el-option>
                </el-select>
            </el-form-item>
            <el-form-item label-width="78px">
                <el-button type="primary" icon="el-icon-search" @click="handleQuery">
                    搜 索</el-button>
                <el-button icon="el-icon-circle-close" @click="resetQuery">重 置</el-button>
            </el-form-item>
            <el-collapse v-model="activeSeach">
                <el-collapse-item title="更多" name="1">
                    <el-card class="box-card">
                        <el-form-item label="供应商" prop="Hname">
                            <el-input v-model="queryParams.Hname" placeholder="请输入供应商"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="部门" prop="HDeptID">
                            <el-input v-model="queryParams.HDeptID" placeholder="请输入部门" />
                        </el-form-item>
                        <el-form-item label="物料代码" prop="MaterialCode">
                            <el-input v-model="queryParams.MaterialCode" placeholder="请输入物料代码"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="物料名称" prop="MaterialName">
                            <el-input v-model="queryParams.MaterialName" placeholder="请输入物料名称"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="规格型号" prop="SpecificationModel">
                            <el-input v-model="queryParams.SpecificationModel" placeholder="请输入规格型号"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="源单单号" prop="HSourceBillNo">
                            <el-input v-model="queryParams.HSourceBillNo" placeholder="请输入源单单号"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="发货仓库" prop="Warehouse">
                            <el-input v-model="queryParams.Warehouse" placeholder="请输入发货仓库"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <el-form-item label="制单人" prop="Hmaker">
                            <el-input v-model="queryParams.Hmaker" placeholder="请输入制单人"
                                @keyup.enter.native="handleQuery" />
                        </el-form-item>
                        <div slot="header" class="clearfix"><span>过滤</span></div>
                        <div>
                            <el-row>
                                <el-form-item label-width="0">
                                    <el-row>
                                        <el-col :span="7">
                                            <el-select v-model="queryParams.ColName1" placeholder="请选择"
                                                @change="riqiChange">
                                                <span v-for="(item, index) in btList" :key="index">
                                                    <el-option :label="item.field" :value="item.field"
                                                        v-if="!item.hide"></el-option>
                                                </span>
                                            </el-select>
                                        </el-col>
                                        <el-col :span="6" style="padding: 0 10px">
                                            <el-select v-model="queryParams.Comparator1" placeholder="请选择"
                                                @change="riqiChange">
                                                <el-option v-for="(item, index) in comparatorList" :key="index"
                                                    :label="item.label" :value="item.value"></el-option>
                                            </el-select>
                                        </el-col>
                                        <el-col :span="11">
                                            <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                                                @keyup.enter.native="handleQuery" />
                                        </el-col>
                                    </el-row>
                                </el-form-item>
                            </el-row>
                            <el-row>
                                <el-form-item label-width="0">
                                    <el-row>
                                        <el-col :span="7">
                                            <el-select v-model="queryParams.ColName2" placeholder="请选择"
                                                @change="riqiChange">
                                                <span v-for="(item, index) in btList" :key="index">
                                                    <el-option :label="item.field" :value="item.field"
                                                        v-if="!item.hide"></el-option>
                                                </span>
                                            </el-select>
                                        </el-col>
                                        <el-col :span="6" style="padding: 0 10px">
                                            <el-select v-model="queryParams.Comparator2" placeholder="请选择"
                                                @change="riqiChange">
                                                <span v-for="(item, index) in btList" :key="index">
                                                    <el-option :label="item.field" :value="item.field"
                                                        v-if="!item.hide"></el-option>
                                                </span>
                                            </el-select>
                                        </el-col>
                                        <el-col :span="11">
                                            <el-input v-model="queryParams.ColContent2" placeholder="请输入" clearable
                                                @keyup.enter.native="handleQuery" />
                                        </el-col>
                                    </el-row>
                                </el-form-item>
                            </el-row>
                            <el-form-item label-width="0">
                                <el-row>
                                    <el-col :span="7">
                                        <el-select v-model="queryParams.ColName" placeholder="请选择" @change="riqiChange">
                                            <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
                                                :value="item.field"></el-option>
                                        </el-select>
                                    </el-col>
                                    <el-col :span="6" style="padding: 0 10px">
                                        <el-select v-model="queryParams.Comparator" placeholder="请选择"
                                            @change="riqiChange">
                                            <el-option v-for="(item, index) in comparatorList" :key="index"
                                                :label="item.label" :value="item.value"></el-option>
                                        </el-select>
                                    </el-col>
                                    <el-col :span="11">
                                        <el-input v-model="queryParams.ColContent" placeholder="请输入" clearable
                                            @keyup.enter.native="handleQuery" />
                                    </el-col>
                                </el-row>
                            </el-form-item>
                        </div>
                    </el-card>
                </el-collapse-item>
            </el-collapse>
        </el-form>
        <el-row :gutter="10" class="mb8" style="margin-top: 10px">
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit((OperationType = 1))"
                    id="btn-Add">新增</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
                    @click="handleEdit((row = rowForm), (OperationType = 3))">编辑</el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">删除
                </el-button>
            </el-col>
            <el-col :span="1.5">
                <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">隐藏列设置</el-button>
            </el-col>
        </el-row>
        <div class="tableBox" v-loading="loading">
            <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
                @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick"
                :row-style="rowStyle" @cell-dblclick="handleDblclick" v-if="tableShow">
                <template v-for="(item, index) in btList">
                    <el-table-column type="selection" width="55" align="center" :fixed="item.fixed"
                        v-if="item.type == 'checkbox'" :key="index" />
                    <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
                        :key="item.id" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
                        show-overflow-tooltip :fixed="item.fixed">
                        <template slot-scope="{ row, column }">
                            <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
                            <div :style="item.style">
                                <span v-if="column.property.includes('日期')">{{
                                    parseTime(row[column.property], "{y}-{m}-{d}")
                                    }}</span>
                                <el-button type="text" @click="handleEdit(row, (OperationType = 3))"
                                    v-else-if="column.property == '单据号'">{{ row.单据号 }}</el-button>
                                <span v-else>{{ row[column.label] }}</span>
                            </div>
                        </template>
                    </el-table-column>
                </template>
            </el-table>
            <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize"
                :pageSizes="pageSizes" @pagination="getList" />
            <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
                <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
            </el-dialog>
            <!-- 编辑 -->
            <el-dialog title="编辑" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox"
                @close="close">
                <edit :OperationType="OperationType" :linterid="this.rowForm.hmainid"
                    :HSouceBillType="this.rowForm.HSourceBillType" :copyType="copyType" @editClose="editClose"
                    v-if="editShow" />
            </el-dialog>
        </div>
    </div>
</template>
<script>
import axios from "axios";
import RowSettings from "@/views/component/rowSettings";
import Edit from "@/views/warehouse/shipment/Kf_StockOutRequestBill.vue";
import PrintList from "@/views/component/printList";
import BarCodeDetail from '@/views/component/BarCodeDetail'               //条码明细组件
import moment from "moment";
export default {
    name: "Kf_StockOutRequestBillList",
    components: { RowSettings, Edit, PrintList, BarCodeDetail },
    data() {
        return {
            activeSeach: "",
            HModName: "Kf_StockOutRequestBillList",
            organizationList: JSON.parse(sessionStorage.getItem('organizationList')),
            editShow: false,
            openEdit: false,
            totalNameList: [],
            tableShow: true,
            openPrintList: false,
            printListShow: false,
            barCodeDetailShow: false,                             //条码明细组件容器显示标记
            openBtnHide: false,
            btnHideShow: false,
            rowHideShow: false,
            openRowHide: false,
            copyType: 0,
            comparatorList: [
                { label: "=", value: "=" },
                { label: ">=", value: ">=" },
                { label: ">", value: ">" },
                { label: "<=", value: "<=" },
                { label: "<", value: "<" },
                { label: "<>", value: "<>" },
                { label: "包含", value: "7" },
                { label: "左包含", value: "8" },
                { label: "右包含", value: "9" },
                { label: "不包含", value: "10" },
            ],
            sWhere: "",
            sTime: "",
            eTime: "",
            rqsgList: [
                { label: "今天", value: 0 },
                { label: "近两天", value: 1 },
                { label: "近三天", value: 2 },
                { label: "近四天", value: 3 },
                { label: "近五天", value: 4 },
                { label: "近六天", value: 5 },
                { label: "近七天", value: 6 },
                { label: "近30天", value: 29 },
                { label: "近半年", value: 180 },
                { label: "近一年", value: 365 },
            ],
            hPriceTypeList: ["成本价", "结算价"],
            addBtnShow: false,
            dialogTitle: "",
            OperationType: null, //保存类型(新增1修改3)
            HInterID: null,
            baseURL: process.env.VUE_APP_BASE_API,
            lastSelectedRowIndex: null, // 用于记录上次点击的行索引
            lastSelectedRow: null, // 上一次选中的行
            selectedRow: null, // 当前选中的行
            rowForm: {},
            // 弹出层标题
            title: "",
            // 是否显示弹出层
            open: false,
            // 查询参数
            queryParams: {
                HBillNo: "",
                HUSEORGID: sessionStorage["OrganizationID"] - 0,
                HInitTimeCycle: 29,
                HDeptID: "",
                MaterialCode: "",
                MaterialName: "",
                SpecificationModel: "",
                HSourceBillNo: "",
                Warehouse: "",
                Hmaker: "",
                Hname: "",
                HMangerID: "",
                ColName1: "",
                ColName2: "",
                ColName: "",
                Comparator1: "",
                Comparator2: "",
                Comparator: "",
                ColContent1: "",
                ColContent2: "",
                ColContent: "",
            },
            // 选中数组
            ids: [],
            // 非单个禁用
            single: true,
            // 非多个禁用
            multiple: true,
            // 遮罩层
            loading: true,
            tyResList: [], //销售出库列表(接口数据)
            btList: [], //销售出库表头列表显示
            btResList: [],
            tableData: [], //销售出库列表(分页显示)
            dataList: [],
            titleData: [
                "hmainid", "HBillType", "HSupID", "HCurID", "HDeptID", "HManagerID", "HEmpID", "hsubid", "HMaterID", "HUnitID", "HWHID", "HSPID"
            ], //不需要显示的字段 可扩展
            pageSizes: [50, 100, 500, 5000, 50000],
            page: 1,
            pageSize: 0,
            total: 0,
        };
    },
    created() {
        // this.fetchData()
        this.riqiChange();
        this.getList();
    },
    methods: {
        getSummaries(param) {
            const { columns, data } = param;
            const sums = [];
            columns.forEach((column, index) => {
                if (index === 0) {
                    sums[index] = "合计";
                    return;
                }
                const values = data.map((item) => Number(item[column.property]));
                if (this.totalNameList[index].totalRow) {
                    if (!values.every((value) => isNaN(value))) {
                        sums[index] = values.reduce((prev, curr) => {
                            const value = Number(curr);
                            if (!isNaN(value)) {
                                return prev + curr;
                            } else {
                                return prev;
                            }
                        }, 0);
                    } else {
                        sums[index] = "";
                    }
                }
            }, 1000);
            return sums;
        },
        handleBtnHide() {
            this.btnHideShow = true;
            this.openBtnHide = true;
        },
        handleRowHide() {
            this.rowHideShow = true;
            this.openRowHide = true;
        },
        rowSetClose(val) {
            this.rowHideShow = false;
            this.tableShow = true;
            this.openRowHide = val;
            this.getList();
        },
        riqiChange() {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
            const yyyyS = start.getFullYear();
            const mmS = String(start.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
            const ddS = String(start.getDate()).padStart(2, "0");
            const yyyyE = end.getFullYear();
            const mmE = String(end.getMonth() + 1).padStart(2, "0"); // 月份是从0开始的
            const ddE = String(end.getDate()).padStart(2, "0");
            this.sTime = yyyyS + "-" + mmS + "-" + ddS;
            this.eTime = yyyyE + "-" + mmE + "-" + ddE;
        },
        getList() {
            this.pageSize = 50;
            this.tableShow = false;
            this.loading = true;
            if (this.sTime) {
                this.sWhere += " and CONVERT(varchar(100),日期, 23) >= '" + this.sTime + "'";
                this.sWhere += " and CONVERT(varchar(100),日期, 23) <= '" + this.eTime + "'";
            }
            if (this.pageSize == 0) {
                this.pageSize = 50;
            }
            // 列表
            axios.get(this.baseURL + "/Kf_POStockInBackBill/list", {
                params: {
                    sWhere: this.sWhere,
                    user: sessionStorage["HUserName"],
                    Organization: sessionStorage["Organization"],
                    page: this.page,
                    size: this.pageSize,
                },
            })
                .then((response) => {
                    this.tyResList = response.data.data; //总数据
                    let data1 = response.data;
                    let option = [];
                    if (data1.code == 1) {
                        this.btResList = data1.list; //接口表头数据
                        this.total = data1.count;
                        var data = []; //列字段数据
                        var col = [];
                        var totalArray = ["金额","采购金额","应退数量","实退数量"];
                        //给空的数组赋值
                        for (var key in data1.list) {
                            //循序遍历数组
                            data.push({
                                id: data1.list[key].ColmCols,
                                name: data1.list[key].ColmCols,
                                Type: data1.list[key].ColmType,
                            }); //从每个对象中提取数据
                        }
                        //在列表左边添加勾选框
                        col.push({ type: "checkbox", fixed: "left", totalRowText: "合计" });
                        for (var i = 0; i < data.length; i++) {
                            //遍历data数组重的数据
                            if (this.titleData.indexOf(data[i].name) > -1) {
                                //检查data【i】.name是否在数组中  //计算列
                                col.push({
                                    field: data[i].id,
                                    title: data[i].name,
                                    align: "center",
                                    hide: true,
                                }); //隐藏id列
                            } else if (
                                totalArray.indexOf(data[i].name) > -1 ||
                                data[i].Type == "Decimal" ||
                                data[i].Type == "Int32"
                            ) {
                                //计算列
                                col.push({
                                    field: data[i].id,
                                    title: data[i].name,
                                    align: "center",
                                    sort: true,
                                    totalRow: true,
                                    width: 120,
                                });
                            } else {
                                col.push({
                                    field: data[i].id,
                                    title: data[i].name,
                                    align: "center",
                                    sort: true,
                                    width: 200,
                                });
                            }
                        }
                        option.cols = [col];
                        this.dataList = option;
                        option.data = data1.data;
                        var result = data1.data;
                        var temp = "";
                        for (var i = 0; i < result.length; i++) {
                            if (temp != result[i]["hmainid"]) {
                                temp = result[i]["hmainid"];
                            } else {
                                result[i].日期 = null;
                                result[i].单据号 = "";
                                /*result[i].状态 = "";*/
                                result[i].红蓝单标记 = "";
                                result[i].hsupid = "";
                                result[i].客户 = "";
                                result[i].HEmpID = "";
                                result[i].业务员 = "";
                                result[i].hmanagerid = "";
                                result[i].主管 = "";
                                result[i].hsecmanagerid = "";
                                result[i].发货人 = "";
                                result[i].hkeeperid = "";
                                result[i].保管员 = "";
                                result[i].HDeptID = "";
                                result[i].部门 = "";
                                result[i].销售方式 = "";
                            }
                        }
                        option.data = result;
                        this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
                    }
                })
                .catch((error) => {
                    this.$modal.msgError("接口请求失败!");
                });
        },
        DisPlay_HideColumn(HModName, user, option, dataOption) {
            this.totalNameList = [];
            axios
                .get(this.baseURL + "/Xt_grdAlignment_WMES/grdAlignmentWMESList", {
                    params: {
                        HModName: HModName,
                        user: user,
                    },
                })
                .then((res) => {
                    let data1 = res.data;
                    if (data1.data.length != 0) {
                        var dataCol = []; //数据库查询出的列数据
                        var newCols = [[]]; //对应数据库列顺序col
                        newCols[0].push(option.cols[0][0]); //放入第一个checkbox
                        dataCol = data1.data[0].HGridString.split(",");
                        //列设置列数与页面列数是否一致
                        if (dataCol.length == option.cols[0].length - 1) {
                            //遍历寻找列设置对应列按顺序插入
                            for (var j = 0; j < option.cols[0].length - 1; j++) {
                                for (var i = 0; i < option.cols[0].length - 1; i++) {
                                    var dataCols = dataCol[j].split("|");
                                    //选择与datacols相应列进行修改
                                    if (option.cols[0][i + 1]["field"] == dataCols[5]) {
                                        //隐藏列
                                        if (dataCols[1] == 1) {
                                            option.cols[0][i + 1]["hide"] = true;
                                        }
                                        //设置列宽
                                        if (dataCols[3] > 0) {
                                            option.cols[0][i + 1]["width"] = dataCols[3];
                                        }
                                        //设置内容字体大小
                                        if (data1.data[0].HFontSize != 0) {
                                            option.cols[0][i + 1]["style"] =
                                                "font-size:" + data1.data[0].HFontSize + "px;";
                                        } else {
                                            option.cols[0][i + 1]["style"] = "font-size:100%";
                                        }
                                        //显示列
                                        if (
                                            dataCols[1] == 0 &&
                                            this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1
                                        ) {
                                            option.cols[0][i + 1]["hide"] = false;
                                        }
                                        //统计列
                                        if (dataCols[6] == 1) {
                                            option.cols[0][i + 1]["totalRow"] = true;
                                        } else {
                                            option.cols[0][i + 1]["totalRow"] = false;
                                        }
                                        //字体所在位置(左 居中 右)
                                        switch (dataCols[2]) {
                                            case "L":
                                                option.cols[0][i + 1]["align"] = "left";
                                                break;
                                            case "M":
                                                option.cols[0][i + 1]["align"] = "center";
                                                break;
                                            case "R":
                                                option.cols[0][i + 1]["align"] = "right";
                                                break;
                                        }
                                        //设置表格title属性显示别名
                                        if (dataCols[4] != null && dataCols[4] != "") {
                                            option.cols[0][i + 1]["title"] = dataCols[4];
                                        }
                                        newCols[0].push(option.cols[0][i + 1]);
                                        break;
                                    }
                                }
                            }
                            //遍历循环后判断对应列数是否一致
                            if (dataCol.length == newCols[0].length - 1) {
                                option.cols = newCols;
                                //取消冻结列
                                for (var i = 1; i < option.cols[0].length - 1; i++) {
                                    if (option.cols[0][i + 1]["fixed"] != null) {
                                        option.cols[0][i + 1]["fixed"] = null;
                                    } else {
                                        break;
                                    }
                                }
                                //冻结列
                                if (data1.data[0].HFixCols != 0) {
                                    for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                        if (
                                            dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1
                                        ) {
                                            data1.data[0].HFixCols += 1;
                                        }
                                        option.cols[0][i + 1]["fixed"] = "left";
                                    }
                                }
                                //设置列排序
                                for (var i = 1; i < option.cols[0].length; i++) {
                                    if (data1.data[0].HSortFlag == "是") {
                                        option.cols[0][i]["sort"] = true;
                                    } else {
                                        option.cols[0][i]["sort"] = false;
                                    }
                                }
                            }
                        }
                        this.btList = option.cols[0];
                        this.btList.map((item) => {
                            if (!item.hide) {
                                this.totalNameList.push(item);
                            }
                        });
                        if (data1.data[0].HPageSize == 0) {
                            this.pageSize = 50;
                        } else {
                            this.pageSize = data1.data[0].HPageSize;
                        }
                        this.tableData = option.data;
                        this.tableShow = true;
                        this.loading = false;
                    } else {
                        this.btList = dataOption.cols[0];
                        this.btList.map((item) => {
                            if (!item.hide) {
                                this.totalNameList.push(item);
                            }
                        });
                        this.tableData = dataOption.data;
                        this.tableShow = true;
                        this.loading = false;
                    }
                })
                .catch((error) => {
                    this.$modal.msgError("接口请求失败!");
                });
        },
        renderHeader(h, { column, $index }) {
            // 新建一个 span
            let span = document.createElement(span); // 设置表头名称
            span.innerText = column.label;
            //临时插入 document
            document.body.appendChild(span); // 重点:获取 span 最小宽度,设置当前列,注意这里加了 20,字段较多时column.minWidth=span.getBoundingClientRect().width + 50.//移除 document 中临时的 span
            document.body.removeChild(span);
            return h(span, column.label);
        },
        //点击行
        handleRowClick(row, column, event) {
            this.lastSelectedRow = this.selectedRow; // 记录上一次选中的行
            this.selectedRow = row; // 记录当前选中的行
            this.lastSelectedRowIndex = this.tableData.indexOf(row);
            this.$refs.tableData.toggleRowSelection(row);
        },
        //选中行高亮样式
        rowStyle({ row, rowIndex }) {
            if (this.ids.includes(row.hmainid)) {
                return { background: "#ecf5ff" };
            }
        },
        //双击行
        handleDblclick(row, column, cell, event) {
            this.OperationType = 3;
            this.handleEdit();
        },
        // 多选框选中数据
        handleSelectionChange(selection) {
            // this.rowForm = {}
            this.ids = selection.map((item) => item.hmainid);
            this.single = selection.length != 1;
            this.multiple = !selection.length;
            if (!this.single) {
                this.rowForm = selection[0];
            }
        },
        /** 搜索按钮操作 */
        handleQuery() {
            this.sWhere = "";
            if (this.queryParams.ColName && this.queryParams.Comparator) {
                var com = "";
                switch (this.queryParams.Comparator) {
                    case "7":
                        com = "like'%" + this.queryParams.ColContent + "%'";
                        break;
                    case "8":
                        com = "like'%" + this.queryParams.ColContent + "'";
                        break;
                    case "9":
                        com = "like'" + this.queryParams.ColContent + "%'";
                        break;
                    case "10":
                        com = "not like'%" + this.queryParams.ColContent + "%'";
                        break;
                    default:
                        com =
                            "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
                        break;
                }
                this.sWhere += " and " + this.queryParams.ColName + " " + com;
            }
            if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
                var com1 = "";
                switch (this.queryParams.Comparator1) {
                    case "7":
                        com1 = "like'%" + this.queryParams.ColContent1 + "%'";
                        break;
                    case "8":
                        com1 = "like'%" + this.queryParams.ColContent1 + "'";
                        break;
                    case "9":
                        com1 = "like'" + this.queryParams.ColContent1 + "%'";
                        break;
                    case "10":
                        com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
                        break;
                    default:
                        com1 =
                            "" +
                            this.queryParams.Comparator1 +
                            "'" +
                            this.queryParams.ColContent1 +
                            "'";
                        break;
                }
                this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
            }
            if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
                var com2 = "";
                switch (this.queryParams.Comparator2) {
                    case "7":
                        com2 = "like'%" + this.queryParams.ColContent2 + "%'";
                        break;
                    case "8":
                        com2 = "like'%" + this.queryParams.ColContent2 + "'";
                        break;
                    case "9":
                        com2 = "like'" + this.queryParams.ColContent2 + "%'";
                        break;
                    case "10":
                        com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
                        break;
                    default:
                        com2 =
                            "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
                        break;
                }
                this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
            }
            if (this.sTime) {
                this.sTime = moment(this.sTime).format("YYYY-MM-DD");
                this.eTime = moment(this.eTime).format("YYYY-MM-DD");
                console.log(this.sTime, this.eTime);
                this.sWhere +=
                    " and CONVERT(varchar(100),日期, 23) >= '" +
                    this.sTime +
                    "'" +
                    " and CONVERT(varchar(100),日期, 23) <= '" +
                    this.eTime +
                    "'";
            }
            if (this.queryParams.HBillNo) {
                this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
            }
            if (this.queryParams.Hname) {
                this.sWhere += " and 供应商 like '%" + this.queryParams.Hname + "%'";
            }
            if (this.queryParams.HDeptID) {
                this.sWhere += " and 部门 like '%" + this.queryParams.HDeptID + "%'";
            }
            if (this.queryParams.HWHID) {
                this.sWhere += " and 仓库 like '%" + this.queryParams.HWHID + "%'";
            }
            if (this.queryParams.MaterialCode) {
                this.sWhere += " and 物料代码 like '%" + this.queryParams.MaterialCode + "%'";
            }
            if (this.queryParams.MaterialName) {
                this.sWhere += " and 物料名称 like '%" + MaterialName + "%'";
            }
            if (this.queryParams.SpecificationModel) {
                this.sWhere += " and 规格型号 like '%" + SpecificationModel + "%'";
            }
            if (this.queryParams.HSourceBillNo) {
                this.sWhere += " and 源单单号 like '%" + HSourceBillNo + "%'";
            }
            if (this.queryParams.Warehouse) {
                this.sWhere += " and 发货仓库 like '%" + Warehouse + "%'";
            }
            if (this.queryParams.Hmaker) {
                this.sWhere += " and 制单人 like '%" + Hmaker + "%'";
            }
            if (this.queryParams.HUSEORGID) {
                this.sWhere += " and HOrgID like '%" + HUSEORGID + "%'";
            }
            this.getList();
        },
        /** 重置按钮操作 */
        resetQuery() {
            this.sWhere = "";
            this.queryParams = {
                HBillNo: "",
                HInitTimeCycle: 29,
                HProjectNumber: "",
                HCusID: null,
                HMaterNumber: "",
                HMaterName: "",
                ColName1: "",
                ColName2: "",
                ColName: "",
                Comparator1: "",
                Comparator2: "",
                Comparator: "",
                ColContent1: "",
                ColContent2: "",
                ColContent: "",
            };
            this.riqiChange();
            this.resetForm("queryForm");
            this.getList();
        },
        //退出
        close() {
            // this.reset()
            this.tableShow = true;
            this.openEdit = false;
            this.editShow = false;
            this.getList();
        },
        //打开新增组件弹窗
        handleAddEdit() {
            this.rowForm.hmainid = 0;
            this.editShow = true;
            this.openEdit = true;
        },
        //打开修改组件弹窗
        handleEdit(row) {
            this.rowForm = row;
            this.editShow = true;
            this.openEdit = true;
        },
        //关闭编辑页面
        editClose(val) {
            this.open = val;
            this.editShow = false;
            this.openEdit = val;
            this.getList();
        },
        /** 删除按钮操作 */
        handleDelete() {
            this.$modal.confirm("确认要删除吗,删除后不能恢复").then(() => {
                axios.get(this.baseURL + "/Kf_POStockInBackBill/DeltetKf_POStockInBackBill", {
                    params: {
                        HInterID: this.rowForm.hmainid.toString(),
                        user: sessionStorage["HUserName"],
                    },
                }).then((response) => {
                    if (response.data.count == 1) {
                        this.getList();
                        this.$modal.msgSuccess("删除成功");
                    } else {
                        this.$modal.msgError("错误:" + result.code + result.Message);
                    }
                }).catch((error) => {
                    this.$modal.msgError("接口请求失败!");
                });
            }).catch(() => { });
        },
    },
};
</script>
<style>
.xsckdBox .el-date-editor.el-input {
    width: 100%;
}
</style>