wangyi
2026-01-19 7fb0a8f0ab16c149484bf043754cd10cfa94de2f
src/views/component/HSourceReportHtml/index.vue
@@ -2,13 +2,19 @@
    <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="单据号" prop="HBillNo" style="margin-left: 100px">
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" @keyup.enter.native="handleQuery" />
                <el-input v-model="queryParams.HBillNo" placeholder="请输入单据号" style="width: 150px" />
            </el-form-item>
            <el-form-item label="部门">
            <el-form-item label="部门" label-width="48px">
                <el-select v-model="queryParams.HDeptName" placeholder="请选择" style="width: 150px">
                    <el-option v-for="(item, index) in HDeptList" :key="index" :label="item.HName"
                        :value="item.HName" />
                        :value="item.HItemID" />
                </el-select>
            </el-form-item>
            <el-form-item label="流转卡号" prop="HProcExchBillNo" v-if="HSouceBillType == '生产入库单'">
                <el-input v-model="queryParams.HProcExchBillNo" placeholder="请输入流转卡号" style="width: 150px" />
            </el-form-item>
            <el-form-item label="物料编码" prop="PartNumber">
                <el-input v-model="queryParams.PartNumber" placeholder="请输入物料编码" style="width: 150px" />
            </el-form-item>
            <el-form-item label-width="78px">
                <el-button type="primary" icon="el-icon-search" @click="handleQuery">
@@ -18,21 +24,33 @@
            <el-collapse v-model="activeSeach">
                <el-collapse-item title="更多" name="1">
                    <el-card class="box-card">
                        <el-form-item label="部门名称" prop="HDepartName">
                            <el-input v-model="queryParams.HDepartName" placeholder="请输入部门名称"
                                @keyup.enter.native="HDepartName" />
                        <el-form-item label="物料名称" prop="PartName">
                            <el-input v-model="queryParams.PartName" placeholder="请输入物料名称" />
                        </el-form-item>
                        <el-form-item label="物料代码" prop="HMaterNumber">
                            <el-input v-model="queryParams.HMaterNumber" placeholder="请输入物料代码"
                                @keyup.enter.native="handleQuery" />
                        <el-form-item label="状态" prop="HBillStatus">
                            <el-select v-model="queryParams.HBillStatus" placeholder="请选择">
                                <el-option label="计划" value="计划" />
                                <el-option label="计划确认" value="计划确认" />
                                <el-option label="下达" value="下达" />
                                <el-option label="开工" value="开工" />
                                <el-option label="完工" value="完工" />
                                <el-option label="结案" value="结案" />
                                <el-option label="结案" value="结算" />
                            </el-select>
                        </el-form-item>
                        <el-form-item label="物料名称" prop="HMaterName">
                            <el-input v-model="queryParams.HMaterName" placeholder="请输入物料名称"
                                @keyup.enter.native="handleQuery" />
                        <el-form-item label="领料状态" prop="HSPickMtrlStatus" v-if="HSouceBillType == '生产订单'">
                            <el-select v-model="queryParams.HSPickMtrlStatus" placeholder="请选择">
                                <el-option label="未领料" value="未领料" />
                                <el-option label="部分领料" value="部分领料" />
                                <el-option label="全部领料" value="全部领料" />
                                <el-option label="超额领料" value="超额领料" />
                            </el-select>
                        </el-form-item>
                        <el-form-item label="仓库" prop="HWHID">
                            <el-input v-model="queryParams.HWHID" placeholder="请输入仓库"
                                @keyup.enter.native="handleQuery" />
                        <el-form-item label="是否排产" prop="HIsScheduling" v-if="HSouceBillType == '生产订单'">
                            <el-select v-model="queryParams.HIsScheduling" placeholder="请选择">
                                <el-option label="已排产" value="已排产" />
                                <el-option label="未排产" value="未排产" />
                            </el-select>
                        </el-form-item>
                        <div slot="header" class="clearfix"><span>过滤</span></div>
                        <div>
@@ -54,8 +72,7 @@
                                            </el-select>
                                        </el-col>
                                        <el-col :span="11">
                                            <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable
                                                @keyup.enter.native="handleQuery" />
                                            <el-input v-model="queryParams.ColContent1" placeholder="请输入" clearable />
                                        </el-col>
                                    </el-row>
                                </el-form-item>
@@ -166,10 +183,12 @@
            queryParams: {
                HBillNo: "",
                HDeptName: '',
                HDepartName: "",
                HWHID: null,
                HMaterNumber: "",
                HMaterName: "",
                HProcExchBillNo: "",
                PartNumber: "",
                PartName: "",
                HBillStatus: '开工',
                HSPickMtrlStatus: "",
                HIsScheduling: "",
                ColName1: "",
                ColName2: "",
                ColName: "",
@@ -247,7 +266,7 @@
            this.getList();
        },
        getDeptList() {
            axios.get(this.baseURL + "/Sc_ICMOBill/GetHDeptList", {
            axios.get(this.$baseUrl + "/Sc_ICMOBill/GetHDeptList", {
                params: {
                    HOrgID: this.HOrgID
                },
@@ -266,8 +285,19 @@
            if (this.pageSize == 0) {
                this.pageSize = 50;
            }
            if (this.queryParams.HBillStatus && this.HSouceBillType == '生产订单') {
                this.sWhere += " and 状态 = '" + this.queryParams.HBillStatus + "'";
            }
            if (this.HSouceBillType == '生产订单') {
                this.queryParams.HIsScheduling = '已排产'
                if (sessionStorage["Organization"] == "九菱电机") {
                    if (this.queryParams.HIsScheduling) {
                        this.sWhere += this.queryParams.HIsScheduling == "未排产" ? "and 是否排产 = ''" : " and 是否排产 = '" + this.queryParams.HIsScheduling + "'"
                    }
                }
            }
            // 列表
            axios.get(this.baseURL + "/Sc_BarCode/ReportFromBillList", {
            axios.get(this.$baseUrl + "/Sc_BarCode/ReportFromBillList_New", {
                params: {
                    sWhere: this.sWhere,
                    HSouceBillType: this.HSouceBillType,
@@ -276,66 +306,75 @@
                    limit: this.pageSize,
                },
            }).then((response) => {
                console.log(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,
                        }); //从每个对象中提取数据
                // 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,
                    }); //从每个对象中提取数据
                    var patrn = new RegExp(/^h/i);
                    if (patrn.test(data1.list[key].ColmCols)) {
                        this.titleData[key] = data1.list[key].ColmCols;
                    }
                    //在列表左边添加勾选框
                    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,
                            });
                        }
                }
                //在列表左边添加勾选框
                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;
                    option.data = result;
                     switch (this.HSouceBillType) {
                }
                option.cols = [col];
                this.dataList = option;
                if (data1.code == 0) {
                    data1.data = []
                }
                option.data = data1.data;
                var result = data1.data;
                option.data = result;
                switch (this.HSouceBillType) {
                    case '生产订单':
                        this.HModName = "Sc_ICMOBill_3710";
                        break;
@@ -374,16 +413,17 @@
                        this.HModName = "MateOutBill_1204";
                        break;
                }
                    this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
                }
                this.DisPlay_HideColumn(this.HModName, sessionStorage["HUserName"], option, this.dataList);
                // }
            }).catch((error) => {
                console.log(error)
                this.$modal.msgError("接口请求失败!");
            });
        },
        DisPlay_HideColumn(HModName, user, option, dataOption) {
            this.totalNameList = [];
            axios
                .get(this.baseURL + "/Xt_grdAlignment_WMES/grdAlignmentWMESList", {
                .get(this.$baseUrl + "/Xt_grdAlignment_WMES/grdAlignmentWMESList", {
                    params: {
                        HModName: HModName,
                        user: user,
@@ -640,17 +680,28 @@
            if (this.queryParams.HBillNo) {
                this.sWhere += " and 单据号 like '%" + this.queryParams.HBillNo + "%'";
            }
            if (this.queryParams.HDepartName) {
                this.sWhere += " and 部门名称 like '%" + this.queryParams.HDepartName + "%'";
            if (this.queryParams.HProcExchBillNo && this.HSouceBillType == '生产入库单') {
                this.sWhere += " and 流转卡号 like '%" + this.queryParams.HProcExchBillNo + "%'";
            }
            if (this.queryParams.HWHID) {
                this.sWhere += " and 仓库 like '%" + this.queryParams.HWHID + "%'";
            if (this.queryParams.HDeptName) {
                this.sWhere += " and HDeptID = '" + this.queryParams.HDeptName + "'";
            }
            if (this.queryParams.HMaterNumber) {
                this.sWhere += " and 物料代码 like '%" + this.queryParams.HMaterNumber + "%'";
            if (this.queryParams.PartNumber) {
                this.sWhere += " and 物料代码 like '%" + this.queryParams.PartNumber + "%'";
            }
            if (this.queryParams.HMaterName) {
                this.sWhere += " and 物料名称 like '%" + this.queryParams.HMaterName + "%'";
            if (this.queryParams.PartName) {
                this.sWhere += " and 物料名称 like '%" + this.queryParams.PartName + "%'";
            }
            if (this.queryParams.HBillStatus && this.HSouceBillType == '生产订单') {
                this.sWhere += " and 状态 like '%" + this.queryParams.HBillStatus + "%'";
            }
            if (sessionStorage["Organization"] == "九菱电机" && this.HSouceBillType == '生产订单') {
                if (this.queryParams.HIsScheduling) {
                    this.sWhere += " and 领料状态 like '%" + this.queryParams.HIsScheduling + "%'";
                }
                if (this.queryParams.HIsScheduling) {
                    this.sWhere += this.queryParams.HIsScheduling == "未排产" ? "and 是否排产 = ''" : " and 是否排产 = '" + this.queryParams.HIsScheduling + "'"
                }
            }
            this.getList();
        },
@@ -708,7 +759,7 @@
        /** 删除按钮操作 */
        handleDelete() {
            this.$modal.confirm("确认要删除吗,删除后不能恢复").then(() => {
                axios.get(this.baseURL + "/Kf_StockOutRequestBill/DeltetKf_StockOutRequestBill", {
                axios.get(this.$baseUrl + "/Kf_StockOutRequestBill/DeltetKf_StockOutRequestBill", {
                    params: {
                        HInterID: this.rowForm.HSubID.toString(),
                        user: sessionStorage["HUserName"],