wangyi
2026-01-19 7fb0a8f0ab16c149484bf043754cd10cfa94de2f
src/views/logistics/transportGPS/Add_Edit_WL_YayBill.vue
@@ -7,421 +7,527 @@
            <!-- <el-button @click="cancel">取 消</el-button> -->
        </div>
        <div style="margin: 10px; font-size: 28px; font-weight: bold; text-align: center;">运单编辑新增</div>
        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
            <el-tabs v-model="activeName" type="card">
                <el-tab-pane label="基本信息" name="first">
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="单据编号" prop="HBillNo">
                                <el-input v-model="form.HBillNo" placeholder="请输入单据编号" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="日期" prop="HDate">
                                <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期"
                                    value-format="yyyy-MM-ddT">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="源单号" prop="HMainSourceBillNo">
                                <el-input v-model="form.HMainSourceBillNo" placeholder="请输入源单号">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(12)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="承运商" prop="HCarrierName">
                                <el-input v-model="form.HCarrierName" placeholder="请输入承运商">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(5)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="客户" prop="HCusName">
                                <el-input v-model="form.HCusName" placeholder="请输入客户">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(7)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="始发地" prop="HBeginAddrName">
                                <el-input v-model="form.HBeginAddrName" placeholder="请输入始发地">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(7)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="目的地" prop="HEndAddrName">
                                <el-input v-model="form.HEndAddrName" placeholder="请输入目的地">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(8)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="车型" prop="HCarTypeName">
                                <el-input v-model="form.HCarTypeName" placeholder="请输入车型">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(9)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="车型最大容积" prop="HCarTypeMaxVolume">
                                <el-input v-model="form.HCarTypeMaxVolume" placeholder="请输入车型最大容积" readonly />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="承运合同" prop="HContractTransportBillNo">
                                <el-input v-model="form.HContractTransportBillNo" placeholder="请输入承运合同">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(10)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="距离(公里)" prop="HDistance">
                                <el-input v-model="form.HDistance" placeholder="请输入距离" readonly />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="运输时效" prop="HTransportTimes">
                                <el-input v-model="form.HTransportTimes" placeholder="请输入运输时效" readonly />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="运输类型" prop="HTransportTyep">
                                <el-input v-model="form.HTransportTyep" placeholder="请输入运输类型" readonly />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="结算方式" prop="HSSName">
                                <el-input v-model="form.HSSName" placeholder="请输入结算方式">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(11)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="币别" prop="HCurName">
                                <el-input v-model="form.HCurName" placeholder="请输入币别">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(12)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="汇率" prop="HExRate">
                                <el-input v-model="form.HExRate" placeholder="请输入汇率" readonly />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="运费" prop="HMoney">
                                <el-input v-model="form.HMoney" placeholder="请输入运费" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="总体积" prop="HTotalVolume">
                                <el-input v-model="form.HTotalVolume" placeholder="请输入总体积" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="装载率" prop="HLoadingRate">
                                <el-input v-model="form.HLoadingRate" placeholder="请输入装载率" />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="提货地址" prop="HPickAddr">
                                <el-input v-model="form.HPickAddr" placeholder="请输入提货地址" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="到达地址" prop="HArriverAddr">
                                <el-input v-model="form.HArriverAddr" placeholder="请输入到达地址" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="运输方式" prop="HTransType">
                                <el-select v-model="form.HTransType" placeholder="请选择运输方式">
                                    <el-option label="整车" value="1"></el-option>
                                    <el-option label="零担" value="2"></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="组织" prop="HOrgID">
                                <el-select v-model="form.HOrgID" placeholder="请选择组织" @change="organizationChange"
                                    :disabled="zzSelDis">
                                    <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name"
                                        :value="item.ID">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="要求提货日期" prop="HDateForRequestedPick">
                                <el-date-picker v-model="form.HDateForRequestedPick" type="date" placeholder="选择要求提货日期"
                                    value-format="yyyy-MM-ddT">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="承运商确认日期" prop="HDate_CarrierSure">
                                <el-date-picker v-model="form.HDate_CarrierSure" type="date" placeholder="选择承运商确认日期"
                                    value-format="yyyy-MM-ddT">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="分配司机日期" prop="HDate_AllocationDriver">
                                <el-date-picker v-model="form.HDate_AllocationDriver" type="date" placeholder="选择分配司机日期"
                                    value-format="yyyy-MM-ddT">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="要求到达日期" prop="HDataForRequestedArrived">
                                <el-date-picker v-model="form.HDataForRequestedArrived" type="date"
                                    placeholder="选择要求到达日期" value-format="yyyy-MM-ddT">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="承运状态" prop="HCarryStatus">
                                <el-select v-model="form.HCarryStatus" placeholder="请选择承运状态">
                                    <el-option label="未开始" value="0"></el-option>
                                    <el-option label="进行中" value="1"></el-option>
                                    <el-option label="已完成" value="2"></el-option>
                                    <el-option label="已取消" value="3"></el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="车辆" prop="HCarName">
                                <el-input v-model="form.HCarName" placeholder="请输入车辆">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(13)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="司机" prop="HDriverName">
                                <el-input v-model="form.HDriverName" placeholder="请输入司机">
                                    <el-button slot="append" icon="el-icon-search"
                                        @click="openDataDialog(14)"></el-button>
                                </el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-tab-pane>
                <el-tab-pane label="附近信息" name="second">
                </el-tab-pane>
                <el-tab-pane label="制单信息" name="third">
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="制单人" prop="HMaker">
                                <el-input v-model="form.HMaker" placeholder="请输入制单人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="修改人" prop="HUpDater">
                                <el-input v-model="form.HUpDater" placeholder="请输入修改人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="审核人" prop="HChecker">
                                <el-input v-model="form.HChecker" placeholder="请输入审核人" disabled />
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="关闭人" prop="HCloseMan">
                                <el-input v-model="form.HCloseMan" placeholder="请输入关闭人" disabled />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="制单日期" prop="HMakeDate">
                                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="修改日期" prop="HUpDateDate">
                                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="审核日期" prop="HCheckDate">
                                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="关闭日期" prop="HCloseDate">
                                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="作废人" prop="HDeleteMan">
                                <el-input v-model="form.HDeleteMan" placeholder="请输入作废人" disabled />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="作废日期" prop="HDeleteDate">
                                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期" disabled>
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                </el-tab-pane>
            </el-tabs>
            <div style="margin-bottom: 10px;">
                <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb()"
                    size="mini">增加一行</el-button>
                <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb(zbIndex, 1)"
                    size="mini">插入一行</el-button>
                <el-button type="success" plain icon="el-icon-plus" @click="handleCopyZbRow"
                    size="mini">复制一行</el-button>
                <el-button type="success" plain icon="el-icon-arrow-up" @click="handleMoveRowUp(zbSelForm)"
                    size="mini">上移</el-button>
                <el-button type="success" plain icon="el-icon-arrow-down" @click="handleMoveRowDown(zbSelForm)"
                    size="mini">下移</el-button>
            </div>
            <el-table :data="editData" style="width: 100%" height="300" width="100%" ref="zbTable"
                @selection-change="handleTableZbEdit" :row-class-name="rowSysZbIndex" show-summary border>
                <el-table-column type="selection" width="55" align="center" />
                <el-table-column align="center" label="序号" type="index" width="80" />
                <el-table-column align="center" label="源单单据号" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HSourceBillNo }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="物料代码" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.HMaterNumber" placeholder="请输入物料代码"
                            @keyup.native.f7="openDataDialog(15, scope.row)"
                            @dblclick.native="openDataDialog(15, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="物料名称" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMaterName }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="器具代码" width="120">
                    <template slot-scope="scope">
                        <el-input v-model="scope.row.HMouldNumber" placeholder="请输入器具代码"
                            @keyup.native.f7="openDataDialog(16, scope.row)"
                            @dblclick.native="openDataDialog(16, scope.row)" />
                    </template>
                </el-table-column>
                <el-table-column align="center" label="器具名称" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldName }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="容器长度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldLength }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="容器宽度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldWidth }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="容器高度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldHeight }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="折叠高度" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HMouldFoldHeight }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="标准包装数量" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HSNP }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="包装容器数量" width="120">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HMouldQty" :min="0" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="物料数量" width="120">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HQty" :min="0" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="体积" width="120">
                    <template slot-scope="scope">
                        <span>{{ scope.row.HVolume }}</span>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="零单占用体积" width="120">
                    <template slot-scope="scope">
                        <el-input-number v-model="scope.row.HScatteredVolume" :min="0" style="width: 90px;"
                            controls-position="right"></el-input-number>
                    </template>
                </el-table-column>
                <el-table-column align="center" label="操作" width="55" fixed="right">
                    <template slot-scope="scope">
                        <el-button type="danger" icon="el-icon-delete" size="mini" circle
                            @click="handleDeleteSysZb(scope.row)"></el-button>
                    </template>
                </el-table-column>
            </el-table>
        </el-form>
        <!-- 数据弹窗 -->
        <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
            <!-- 部门 -->
            <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="deptShow" />
            <!-- 仓库 -->
            <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
            <!-- 物料 -->
            <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="materialShow" />
            <!-- 发货通知单 -->
            <XsSeOutStockBill @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="xsSeOutStockBillShow" />
            <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="deptClickSub">确 定</el-button>
                <el-button @click="deptClose">取 消</el-button>
            </div>
        </el-dialog>
        <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
            <RowSettings :colName="btResList" HModName="Kf_SellOutBillList" @rowEditClose="rowSetClose"
                v-if="rowHideShow" />
        </el-dialog>
        <div v-loading="sourceDataLoading" element-loading-text="正在处理源单数据,请稍候..."
            element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)">
            <el-form ref="form" :model="form" :rules="rules" label-width="130px">
                <el-tabs v-model="activeName" type="card">
                    <el-tab-pane label="基本信息" name="first">
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="单据号" prop="HBillNo">
                                    <el-input v-model="form.HBillNo" placeholder="请输入单据号" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="日期" prop="HDate">
                                    <el-date-picker v-model="form.HDate" type="date" placeholder="选择日期"
                                        value-format="yyyy-MM-dd" disabled> </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="源单号" prop="HMainSourceBillNo">
                                    <el-input v-model="form.HMainSourceBillNo" placeholder="请输入源单号">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(12)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="承运商" prop="HCarrierName">
                                    <el-input v-model="form.HCarrierName" placeholder="请输入承运商">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(6)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="客户" prop="HCusName">
                                    <el-input v-model="form.HCusName" placeholder="请输入客户">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(7)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="始发地" prop="HBeginAddrName">
                                    <el-input v-model="form.HBeginAddrName" placeholder="请输入始发地">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog('暂无')"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="目的地" prop="HEndAddrName">
                                    <el-input v-model="form.HEndAddrName" placeholder="请输入目的地">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog('暂无')"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="车型" prop="HCarTypeName">
                                    <el-input v-model="form.HCarTypeName" placeholder="请输入车型">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(13)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="车型最大容积" prop="HCarTypeMaxVolume">
                                    <el-input v-model="form.HCarTypeMaxVolume" placeholder="请输入车型最大容积" readonly />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="承运合同" prop="HContractTransportBillNo">
                                    <el-input v-model="form.HContractTransportBillNo" placeholder="请输入承运合同">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(16)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="距离(公里)" prop="HDistance">
                                    <el-input v-model="form.HDistance" placeholder="请输入距离" readonly />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="运输时效" prop="HTransportTimes">
                                    <el-input v-model="form.HTransportTimes" placeholder="请输入运输时效" readonly />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="运输类型" prop="HTransportTyep">
                                    <el-input v-model="form.HTransportTyep" placeholder="请输入运输类型" readonly />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="结算方式" prop="HSSName">
                                    <el-input v-model="form.HSSName" placeholder="请输入结算方式">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog('暂无')"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="币别" prop="HCurName">
                                    <el-input v-model="form.HCurName" placeholder="请输入币别" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="汇率" prop="HExRate">
                                    <el-input v-model="form.HExRate" placeholder="请输入汇率" readonly />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="运费" prop="HMoney">
                                    <el-input v-model="form.HMoney" placeholder="请输入运费" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="总体积(立方米)" prop="HTotalVolume">
                                    <el-input v-model="form.HTotalVolume" placeholder="请输入总体积" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="装载率" prop="HLoadingRate">
                                    <el-input v-model="form.HLoadingRate" placeholder="请输入装载率" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="提货地址" prop="HPickAddr">
                                    <el-input v-model="form.HPickAddr" placeholder="请输入提货地址" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="到货地址" prop="HArriverAddr">
                                    <el-input v-model="form.HArriverAddr" placeholder="请输入到货地址" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="运输方式" prop="HTransType">
                                    <el-select v-model="form.HTransType" placeholder="请选择运输方式">
                                        <el-option label="零单" value="零单"></el-option>
                                        <el-option label="单程" value="单程"></el-option>
                                        <el-option label="往返" value="往返"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="组织" prop="HOrgID">
                                    <el-select v-model="form.HOrgID" placeholder="请选择组织" @change="organizationChange"
                                        disabled>
                                        <el-option v-for="(item, index) in organizationList" :key="index"
                                            :label="item.Name" :value="item.ID">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="要求提货日期" prop="HDateForRequestedPick">
                                    <el-date-picker v-model="form.HDateForRequestedPick" type="date"
                                        placeholder="选择要求提货日期" value-format="yyyy-MM-dd">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="承运商确认日期" prop="HDate_CarrierSure">
                                    <el-date-picker v-model="form.HDate_CarrierSure" type="date" placeholder="选择承运商确认日期"
                                        value-format="yyyy-MM-dd">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="分配司机日期" prop="HDate_AllocationDriver">
                                    <el-date-picker v-model="form.HDate_AllocationDriver" type="date"
                                        placeholder="选择分配司机日期" value-format="yyyy-MM-dd">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="要求到达日期" prop="HDataForRequestedArrived">
                                    <el-date-picker v-model="form.HDataForRequestedArrived" type="date"
                                        placeholder="选择要求到达日期" value-format="yyyy-MM-dd">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="物流状态" prop="HCarryStatus">
                                    <el-select v-model="form.HCarryStatus" placeholder="请选择物流状态">
                                        <el-option label="申请中" value="1"></el-option>
                                        <el-option label="已审核" value="2"></el-option>
                                        <el-option label="承运商确认" value="3"></el-option>
                                        <el-option label="待提货" value="4"></el-option>
                                        <el-option label="已到厂" value="5"></el-option>
                                        <el-option label="已提货" value="6"></el-option>
                                        <el-option label="运输中" value="7"></el-option>
                                        <el-option label="已签收" value="8"></el-option>
                                        <el-option label="已核算" value="9"></el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="车辆" prop="HCarName">
                                    <el-input v-model="form.HCarName" placeholder="请输入车辆">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(14)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="司机" prop="HDriverName">
                                    <el-input v-model="form.HDriverName" placeholder="请输入司机">
                                        <el-button slot="append" icon="el-icon-search"
                                            @click="openDataDialog(15)"></el-button>
                                    </el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-tab-pane>
                    <!-- <el-tab-pane label="附件信息" name="second">
                        <div style="padding: 10px;">
                            <el-upload class="upload-demo" ref="upload" action="" :on-change="handleFileChange"
                                :show-file-list="false" :on-remove="handleFileRemove" :file-list="uploadFiles"
                                :auto-upload="false" multiple>
                                <el-button slot="trigger" size="small" type="primary">选择文件</el-button>
                                <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload"
                                    :loading="uploadLoading">上传文件</el-button>
                            </el-upload>
                            <el-table :data="uploadFiles" style="width: 100%" border>
                                <el-table-column prop="name" label="文件名">
                                </el-table-column>
                                <el-table-column prop="type" label="文件类型">
                                    <template slot-scope="scope">
                                        {{ scope.row.name.substring(scope.row.name.lastIndexOf('.') + 1).toLowerCase()
                                        }}
                                    </template>
</el-table-column>
<el-table-column prop="size" label="大小">
    <template slot-scope="scope">
                                        {{ (scope.row.size / 1024).toFixed(1) + ' KB' }}
                                    </template>
</el-table-column>
<el-table-column prop="status" label="状态">
    <template slot-scope="scope">
                                        <span v-if="scope.row.status == 'ready'">未上传</span>
                                    </template>
</el-table-column>
<el-table-column label="操作" width="180">
    <template slot-scope="scope">
                                        <el-button size="mini" type="primary"
                                            @click="flieUpload(scope.row)">上传</el-button>
                                        <el-button size="mini" type="danger" @click="deleteFile(index)">删除</el-button>
                                    </template>
</el-table-column>
</el-table>
</div>
</el-tab-pane> -->
                    <el-tab-pane label="制单信息" name="third">
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="制单人" prop="HMaker">
                                    <el-input v-model="form.HMaker" placeholder="请输入制单人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="修改人" prop="HUpDater">
                                    <el-input v-model="form.HUpDater" placeholder="请输入修改人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="审核人" prop="HChecker">
                                    <el-input v-model="form.HChecker" placeholder="请输入审核人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="关闭人" prop="HCloseMan">
                                    <el-input v-model="form.HCloseMan" placeholder="请输入关闭人" disabled />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="制单日期" prop="HMakeDate">
                                    <el-date-picker v-model="form.HMakeDate" type="date" placeholder="选择制单日期" disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="修改日期" prop="HUpDateDate">
                                    <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="选择审核日期"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="审核日期" prop="HCheckDate">
                                    <el-date-picker v-model="form.HCheckDate" type="date" placeholder="选择审核日期" disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="关闭日期" prop="HCloseDate">
                                    <el-date-picker v-model="form.HCloseDate" type="date" placeholder="选择关闭日期" disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="作废人" prop="HDeleteMan">
                                    <el-input v-model="form.HDeleteMan" placeholder="请输入作废人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="作废日期" prop="HDeleteDate">
                                    <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="选择作废日期"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="到厂确认人" prop="HSurer_Arrive">
                                    <el-input v-model="form.HSurer_Arrive" placeholder="请输入到厂确认人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="到厂确认时间" prop="HDate_Arrive">
                                    <el-date-picker v-model="form.HDate_Arrive" type="date" placeholder="选择到厂确认时间"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="提货确认人" prop="HSurer_Pick">
                                    <el-input v-model="form.HSurer_Pick" placeholder="请输入提货确认" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="提货确认时间" prop="HDate_Pick">
                                    <el-date-picker v-model="form.HDate_Pick" type="date" placeholder="选择提货确认时间"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="出厂运输确认人" prop="HSurer_Trans">
                                    <el-input v-model="form.HSurer_Trans" placeholder="请输入到厂确认人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="出厂运输确认时间" prop="HDate_Trans">
                                    <el-date-picker v-model="form.HDate_Trans" type="date" placeholder="选择到出厂运输确认时间"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="签收确认人" prop="HSurer_Receive">
                                    <el-input v-model="form.HSurer_Receive" placeholder="请输入签收确认人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="签收确认时间" prop="HDate_Receive">
                                    <el-date-picker v-model="form.HDate_Receive" type="date" placeholder="选择签收确认时间"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="核算人" prop="HSurer_Accounting">
                                    <el-input v-model="form.HSurer_Accounting" placeholder="请输入核算人" disabled />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="核算时间" prop="HDate_Accounting">
                                    <el-date-picker v-model="form.HDate_Accounting" type="date" placeholder="选择核算时间"
                                        disabled>
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-tab-pane>
                </el-tabs>
                <el-card class="box-card">
                    <div slot="header" class="clearfix">
                        <span>检验项信息</span>
                    </div>
                    <div>
                        <div style="margin-bottom: 10px;">
                            <el-button type="success" plain icon="el-icon-plus" @click="handleCopyZbRow"
                                size="mini">复制一行</el-button>
                        </div>
                        <el-table :data="editData" style="width: 100%" height="300" width="100%" ref="zbTable"
                            @selection-change="handleTableZbEdit" :row-class-name="rowSysZbIndex" show-summary border>
                            <el-table-column type="selection" width="55" align="center" />
                            <el-table-column align="center" label="序号" type="index" width="80" />
                            <el-table-column align="center" label="源单单据号" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HSourceBillNo }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="物料代码" width="120">
                                <template slot-scope="scope">{{ scope.row.HMaterNumber }} </template>
                            </el-table-column>
                            <el-table-column align="center" label="物料名称" width="120">
                                <template slot-scope="scope">{{ scope.row.HMaterName }} </template>
                            </el-table-column>
                            <el-table-column align="center" label="器具代码" width="120">
                                <template slot-scope="scope">
                                    <el-input v-model="scope.row.HMouldNumber" placeholder="请输入器具代码" />
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="器具名称" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HMouldName }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="容器长度" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HMouldLength }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="容器宽度" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HMouldWidth }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="容器高度" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HMouldHeight }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="折叠高度" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HMouldFoldHeight }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="标准包装数量" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HSNP }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="包装容器数量" width="120">
                                <template slot-scope="scope">
                                    <el-input-number v-model="scope.row.HMouldQty" :min="0" style="width: 90px;"
                                        controls-position="right"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="物料数量" width="120">
                                <template slot-scope="scope">
                                    <el-input-number v-model="scope.row.HQty" :min="0" style="width: 90px;"
                                        controls-position="right"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="体积" width="120">
                                <template slot-scope="scope">
                                    <span>{{ scope.row.HVolume }}</span>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="零单占用体积" width="120">
                                <template slot-scope="scope">
                                    <el-input-number v-model="scope.row.HScatteredVolume" :min="0" style="width: 90px;"
                                        controls-position="right"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column align="center" label="操作" width="55" fixed="right">
                                <template slot-scope="scope">
                                    <el-button type="danger" icon="el-icon-delete" size="mini" circle
                                        @click="handleDeleteSysZb(scope.row)"></el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </el-card>
            </el-form>
            <!-- 数据弹窗 -->
            <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
                <!-- 部门 -->
                <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="deptShow" />
                <!-- 仓库 -->
                <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="warehouseShow" />
                <!-- 物料 -->
                <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="materialShow" />
                <!-- 发货通知单 -->
                <XsSeOutStockBill @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName"
                    :propsHOrgID="form.HOrgID" v-if="xsSeOutStockBillShow" />
                <GyCustomer @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCustomerShow" />
                <GySupplier @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gySupplierShow" />
                <GyCartype @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCartypeShow" />
                <GyCar @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyCarShow" />
                <GyDriver @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyDriverShow" />
                <ContractTransport @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName"
                    v-if="ContractTransportShow" />
                <div slot="footer" class="dialog-footer">
                    <el-button type="primary" @click="deptClickSub">确 定</el-button>
                    <el-button @click="deptClose">取 消</el-button>
                </div>
            </el-dialog>
            <el-dialog title="隐藏列设置" :visible.sync="openRowHide" width="816px" append-to-body>
                <RowSettings :colName="btResList" HModName="Kf_SellOutBillList" @rowEditClose="rowSetClose"
                    v-if="rowHideShow" />
            </el-dialog>
        </div>
    </div>
</template>
@@ -434,10 +540,14 @@
import Material from '@/views/component/material'
import XsSeOutStockBill from '@/views/sell/XsSeOutStockBill.vue'
import GyCustomer from '@/views/GyCustomer'
import GySupplier from "@/views/basic/gy/gySupplier.vue";
import GyCartype from "@/views/basic/gyCartypelist/gyCartypelist.vue"
import GyCar from "@/views/basic/gyCar/gyCarList.vue"
import GyDriver from "@/views/system/user/GyDriver.vue"
import ContractTransport from "@/views/basic/gytransport/cgContractTransportBillList/Cg_ContractTransportBillList.vue"
export default {
    name: 'SellOutBill',
    components: { Dept, Warehouse, Material, RowSettings, XsSeOutStockBill, GyCustomer },
    components: { Dept, Warehouse, Material, RowSettings, XsSeOutStockBill, GyCustomer, GySupplier, GyCartype, GyCar, GyDriver, ContractTransport },
    props: {
        OperationType: { type: Number, },
        linterid: { type: Number, },
@@ -458,6 +568,7 @@
            formShow: false,                                                           //表单是否显示标记
            formLoading: true,                                                         //表单加载遮罩
            sourceDataLoading: false,                                                    //源单数据处理加载遮罩
            zzSelDis: false,                                                           //组织下拉列表禁用标记
            rowHideShow: false,                                                        //列设置组件容器显示标记
@@ -472,6 +583,11 @@
            stockPlaceShow: false,                                                     //仓位数据组件显示标记
            xsSeOutStockBillShow: false,                                               //原单(发货通知单)数据组件显示标记
            gyCustomerShow: false,                                                     //客户数据组件显示标记
            gySupplierShow: false,                                                     //承运商数据组件显示标记
            gyCartypeShow: false,                                                      //车型数据组件显示标记
            gyCarShow: false,                                                          //车辆数据组件显示标记
            gyDriverShow: false,                                                       //司机数据组件显示标记
            ContractTransportShow: false,                                              //承运合同数据组件显示标记
            deptform: {},                                                              //弹窗选中数据
            temp: undefined,                                                           //临时变量
@@ -479,7 +595,7 @@
            form: {},                                                                  // 表单参数
            rules: {                                                                   // 表单校验
                HCarrierName: [
                    { required: true, message: "承运商不能为空", trigger: "blur" }
                    { required: true, message: "承运商不能为空", trigger: "change" }
                ],
                HCusName: [
                    { required: true, message: "客户不能为空", trigger: "blur" }
@@ -533,11 +649,15 @@
            single: true,                                                              // 非单个禁用
            multiple: true,                                                            // 非多个禁用
            // 附件上传相关数据
            fileList: [],                                                              // 已上传文件列表
            uploadFiles: [],                                                           // 待上传文件列表
            uploadLoading: false,                                                      // 上传加载状态
            uploadUrl: '',                                                             // 上传接口地址
        };
    },
    created() {
        this.fetchData()
        this.getdata()
    },
    beforeDestroy() {
@@ -549,7 +669,6 @@
        getdata() {
            this.formShow = false
            this.formLoading = true
            if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
                this.handleAdd()
            }
@@ -563,7 +682,7 @@
                var dataArray = [];
                for (var i = 0; i < data.length; i++) {
                    // this.getPushSourceBillInit(data[i].hmainid, data[i].hsubid);
                    axios.get(this.baseURL + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
                    axios.get(this.$baseUrl + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
                        params: {
                            "HInterID": data[i].hmainid
                            , "HSubID": data[i].hsubid
@@ -675,55 +794,69 @@
            this.form = {
                HInterID: 0,
                HBillNo: "",
                HDate: new Date(),
                HEmpID: 0,
                HEmpName: "",
                HDeptID: 0,
                HDeptName: "",
                HSupID: 0,
                HSupName: "",
                HInvoiceBillNo: "",
                HWHID: 0,
                HWHName: "",
                HSecManagerID: 0,
                HSecManagerName: "",
                HRemark: "",
                HDate: moment(new Date()).format('YYYY-MM-DD'),
                HOrgID: sessionStorage["OrganizationID"] - 0,
                HMaker: sessionStorage["HUserName"],
                HChecker: "",
                HCloseMan: "",
                HUpDater: "",
                HDeleteMan: "",
                HMakeDate: "",//new Date().format("yyyy-MM-dd hh:mm:ss"),
                HMakeDate: "",
                HCheckDate: "",
                HCloseDate: "",
                HUpDateDate: "",
                HDeleteDate: "",
                BillType: '1402',
                HBillSubType: '1205',
                HSTOCKORGID: sessionStorage["OrganizationID"] - 0,//组织id
                HOWNERID: sessionStorage["OrganizationID"] - 0,
                HManagerID: 0,
                HManagerName: "",
                HKeeperID: 0,
                HKeeperName: "",
                HProjectID: 0,
                HProjectNumber: "",
                HProjectName: "",
                HCurID: 0,
                HCurName: '',
                HExRate: 1,
                HSourceBillType: "",
                HExRate: 0,
                HMainSourceInterID: 0,
                HMainSourceEntryID: 0,
                HMainSourceBillType: '',
                HMainSourceBillNo: '',
                HExplanation: "",
                HInnerBillNo: "",
                HCarrierID: 0,
                HCarrierName: "",
                HCusID: 0,
                HCusName: "",
                HBeginAddr: 0,
                HBeginAddrName: "",
                HEndAddr: 0,
                HEndAddrName: "",
                HPickAddr: "",
                HArriverAddr: "",
                HTransType: "",
                HCarTypeID: 0,
                HCarTypeName: "",
                HCarTypeMaxVolume: 0,
                HTotalVolume: 0,
                HLoadingRate: 0,
                HContractTransportInterID: 0,
                HContractTransportEntryID: 0,
                HContractTransportBillNo: "",
                HDistance: 0,
                HTransportTimes: "",
                HTransportTyep: "",
                HSSID: 0,
                HSSName: "",
                HMoney: 0,
                HDateForRequestedPick: "",
                HDataForRequestedArrived: "",
                HCarryStatus: "0",
                HDate_CarrierSure: "",
                HDate_AllocationDriver: "",
                HCarID: 0,
                HCarName: "",
                HDriverID: 0,
                HDriverName: "",
                HSurer_Arrive: "",
                HDate_Arrive: "",
                HSurer_Pick: "",
                HDate_Pick: "",
                HSurer_Trans: "",
                HDate_Trans: "",
                HSurer_Receive: "",
                HDate_Receive: "",
                HSurer_Accounting: "",
                HDate_Accounting: "",
            }
            this.editData = []
            this.editBtData = []
@@ -741,9 +874,6 @@
            this.reset()
            //新增获取单据号
            this.getHBillNo()
            if (this.OperationType == 1) {
                this.handleAddSysZb()
            }
            this.$nextTick(() => {
                this.formShow = true
                this.formLoading = false
@@ -755,106 +885,128 @@
        handleUpdate() {
            this.reset()
            let rowHmainid = this.linterid
            axios.get(this.baseURL + "/Kf_POStockInBill/cx", {
            axios.get(this.$baseUrl + "/Kf_POStockInBill/cx", {
                params: { 'HInterID': rowHmainid }
            }).then(response => {
                if (response.data.count == 1) {
                    var result = response.data
                    var data = response.data.data[0]
                    this.form.BillType = data.HSourceBillType
                console.log(response.data.data.h_v_WL_YayBillEdit)
                if (response.data.code == 1) {
                    var result = { data: response.data.data.h_v_WL_YayBillEdit }
                    var data = response.data.data.h_v_WL_YayBillEdit[0]
                    if (this.copyType == 1) {
                        this.getHBillNo()
                    }
                    else {
                        this.form.HInterID = data.hmainid
                    } else {
                        this.form.HInterID = this.linterid.toString()
                        this.form.HBillNo = data.单据号
                        this.form.HDate = data.日期
                        this.form.HDate = data.日期 //moment(data.日期moment).format('YYYY-MM-DD')
                        this.form.HMaker = data.制单人
                        this.form.HUpDater = data.修改人
                        this.form.HChecker = data.审核人
                        this.form.HMakeDate = data.制单日期
                        this.form.HUpDateDate = data.修改日期
                        this.form.HCheckDate = data.审核日期
                        this.form.HMakeDate = data.制单日期 == null ? "" : moment(data.制单日期).format('YYYY-MM-DD')
                        this.form.HUpDateDate = data.修改日期 == null ? "" : moment(data.修改日期).format('YYYY-MM-DD')
                        this.form.HCheckDate = data.审核日期 == null ? "" : moment(data.审核日期).format('YYYY-MM-DD')
                        this.form.HCloseMan = data.关闭人
                        this.form.HDeleteMan = data.作废人
                        this.form.HCloseDate = data.关闭日期
                        this.form.HDeleteDate = data.作废日期
                        this.form.HCloseDate = data.关闭日期 == null ? "" : moment(data.关闭日期).format('YYYY-MM-DD')
                        this.form.HDeleteDate = data.作废日期 == null ? "" : moment(data.作废日期).format('YYYY-MM-DD')
                        this.form.HSurer_Arrive = data.到厂确认人
                        this.form.HDate_Arrive = data.到厂确认时间
                        this.form.HSurer_Pick = data.提货确认人
                        this.form.HDate_Pick = data.提货确认时间
                        this.form.HSurer_Trans = data.出厂运输确认人
                        this.form.HDate_Trans = data.出厂运输确认时间
                        this.form.HSurer_Receive = data.签收确认人
                        this.form.HDate_Receive = data.签收确认时间
                        this.form.HSurer_Accounting = data.核算人
                        this.form.HDate_Accounting = data.核算时间
                    }
                    this.form.HEmpID = data.HEmpID
                    this.form.HEmpName = data.业务员
                    this.form.HDeptID = data.HDeptID
                    this.form.HDeptName = data.部门
                    this.form.HSupID = data.HSupID
                    this.form.HSupName = data.供应商
                    this.form.HInvoiceBillNo = data.发票编号
                    this.form.HWHID = data.主表仓库ID
                    this.form.HWHName = data.主表仓库
                    this.form.HSecManagerID = data.HSecManagerID
                    this.form.HSecManagerName = data.验收员
                    this.form.HRemark = data.表头备注
                    this.form.HOrgID = data.HOrgID
                    this.form.HSTOCKORGID = data.HOrgID
                    this.form.HOWNERID = data.HOrgID
                    this.form.HKeeperID = data.HKeeperID
                    this.form.HKeeperName = data.保管员
                    this.form.HSourceBillType = data.源单类型
                    this.form.HManagerID = data.HManagerID
                    this.form.HManagerName = data.负责人
                    this.form.HExRate = data.汇率
                    this.form.HProjectID = data.HProjectID
                    this.form.HProjectNumber = data.项目代码
                    this.form.HProjectName = data.项目名称
                    this.form.HCurID = data.HCurID
                    this.form.HCurName = data.币别
                    this.form.HExRate = data.汇率
                    this.form.HBillSubType = data.HBillSubType
                    this.form.HOrgID = data.HOrgID.toString()
                    this.form.HExRate = !data.汇率 ? 0 : data.汇率
                    this.form.HMainSourceInterID = data.HMainSourceInterID
                    this.form.HMainSourceEntryID = data.HMainSourceEntryID
                    this.form.HMainSourceBillType = data.HMainSourceBillType
                    this.form.HMainSourceBillNo = data.HMainSourceBillNo
                    this.form.HExplanation = data.摘要
                    this.form.HInnerBillNo = data.内部单据号
                    this.form.HCarrierID = data.承运商ID
                    this.form.HCarrierName = data.承运商名称
                    this.form.HCusID = data.HCusID
                    this.form.HCusName = data.客户名称
                    this.form.HBeginAddr = data.始发地
                    this.form.HBeginAddrName = data.始发地名称
                    this.form.HEndAddr = data.目的地
                    this.form.HEndAddrName = data.目的地名称
                    this.form.HPickAddr = data.提货地址
                    this.form.HArriverAddr = data.到货方式
                    this.form.HTransType = data.运输方式
                    this.form.HCarTypeID = data.车型ID
                    this.form.HCarTypeName = data.车型名称
                    this.form.HCarTypeMaxVolume = data.车型最大容积
                    this.form.HTotalVolume = data.总体积
                    this.form.HLoadingRate = data.装载率
                    this.form.HContractTransportInterID = data.承运合同ID
                    this.form.HContractTransportEntryID = data.承运合同子ID
                    this.form.HContractTransportBillNo = data.承运合同单据号
                    this.form.HDistance = data.距离
                    this.form.HTransportTimes = data.运输时效
                    this.form.HTransportTyep = data.运输类型
                    this.form.HSSID = data.结算方式
                    this.form.HSSName = data.结算方式名称
                    this.form.HCurID = data.币别
                    this.form.HCurName = data.币别名称
                    this.form.HMoney = data.运输费用
                    this.form.HDateForRequestedPick = data.要求提货时间
                    this.form.HDataForRequestedArrived = data.要求到货时间
                    this.form.HCarryStatus = data.物流状态
                    this.form.HDate_CarrierSure = data.承运商确认时间
                    this.form.HDate_AllocationDriver = data.分配司机时间
                    this.form.HCarID = data.车辆ID
                    this.form.HCarName = data.车辆名称
                    this.form.HDriverID = data.司机ID
                    this.form.HDriverName = data.司机名称
                    //子表  赋值
                    for (var i = 0; i < result.data.length; i++) {
                        var qty = parseFloat(result.data[i].HQty) || 0;
                        var snp = parseFloat(result.data[i].标准包装数量) || 1;
                        var mouldQty = Math.ceil(qty / snp);
                        var length = parseFloat(result.data[i].容器长度) || 0;
                        var width = parseFloat(result.data[i].容器宽度) || 0;
                        var height = parseFloat(result.data[i].容器高度) || 0;
                        var rowVolume = (length * width * height).toFixed(2);
                        this.editData.push(
                            {
                                "HMaterID": result.data[i].HMaterID
                                , "物料代码": result.data[i].物料代码
                                , "物料名称": result.data[i].物料名称
                                , "规格型号": result.data[i].规格型号
                                , "HUnitID": result.data[i].HUnitID
                                , "计量单位": result.data[i].计量单位
                                , "HQtyMust": result.data[i].应收数量
                                , "HQty": result.data[i].实收数量
                                , "HRemark": result.data[i].表体备注
                                , "HPrice": result.data[i].单价
                                , "HMoney": result.data[i].金额
                                , "HOrderPrice": result.data[i].采购金额
                                , "HWHID": result.data[i].HWHID
                                , "收料仓库": result.data[i].收料仓库
                                , "HSPID": result.data[i].HSPID
                                , "仓位名称": result.data[i].仓位名称
                                , "HBatchNo": result.data[i].批次
                                , "HSourceBillNo": result.data[i].源单单号    //源单号
                                , "HSourceBillType": result.data[i].源单类型   //源单类型
                                , "HSourceInterID": result.data[i].源单主内码   //源单主内码
                                , "HSourceEntryID": result.data[i].源单子内码     //源单子内码
                                , "HTaxRate": result.data[i].税率
                                , "HTaxPrice": result.data[i].含税单价
                                , "HlineTotal": result.data[i].含税金额
                                "HSourceInterID": result.data[i].源单主内码,
                                "HSourceEntryID": result.data[i].源单子内码,
                                "HSourceBillNo": result.data[i].源单单据,
                                "HMaterID": result.data[i].HMaterID,
                                "HMaterNumber": result.data[i].物料代码,
                                "HMaterName": result.data[i].物料名称,
                                "HUnitID": result.data[i].HUnitID,
                                "HMouldID": result.data[i].HMouldID,
                                "HMouldNumber": result.data[i].器具号,
                                "HMouldName": result.data[i].器具名称,
                                "HMouldLength": result.data[i].容器长度,
                                "HMouldWidth": result.data[i].容器宽度,
                                "HMouldHeight": result.data[i].容器高度,
                                "HMouldFoldHeight": result.data[i].容器折叠高度,
                                "HSNP": result.data[i].标准包装数量,
                                "HMouldQty": result.data[i].包装容器数量,
                                "HQty": result.data[i].物料数量,
                                "HQty_origin": result.data[i].HQty,
                                "HVolume": rowVolume,
                                "HScatteredVolume": result.data[i].零单占用体积
                            }
                        )
                    }
                    if (data.状态 != '创建' && this.copyType != 1) {
                        this.$modal.msgError("此条数据不是创建状态,不能修改");
                        this.subDisabled = true
                    }
                    this.formShow = true
                    this.formLoading = false
                    // 加载已上传的文件列表
                    this.getFileList();
                } else {
                    this.$modal.msgError(response.data.msg);
                }
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
@@ -905,6 +1057,10 @@
                this.dialogTitle = '仓位列表'
                this.stockPlaceShow = true
                this.openData = true
            } else if (num == 6) {
                this.dialogTitle = '承运商列表'
                this.gySupplierShow = true
                this.openData = true
            } else if (num == 7) {
                this.dialogTitle = '客户列表'
                this.gyCustomerShow = true
@@ -913,8 +1069,23 @@
                this.dialogTitle = '源单列表'
                this.xsSeOutStockBillShow = true
                this.openData = true
            } else if (num == 13) {
                this.dialogTitle = '车型列表'
                this.gyCartypeShow = true
                this.openData = true
            } else if (num == 14) {
                this.dialogTitle = '车辆列表'
                this.gyCarShow = true
                this.openData = true
            } else if (num == 15) {
                this.dialogTitle = '车辆列表'
                this.gyDriverShow = true
                this.openData = true
            } else if (num == 16) {
                this.dialogTitle = '承运合同列表'
                this.ContractTransportShow = true
                this.openData = true
            }
        },
        //#region 将数据弹窗全部取消加载
        showReset() {
@@ -923,6 +1094,11 @@
            this.materialShow = false
            this.gyCustomerShow = false
            this.xsSeOutStockBillShow = false
            this.gySupplierShow = false
            this.gyCartypeShow = false
            this.gyCarShow = false
            this.gyDriverShow = false
            this.ContractTransportShow = false
        },
        //#endregion
        //#endregion
@@ -935,18 +1111,15 @@
                this.form.HEmpID = deptRow.HEmpID
                this.form.HManagerName = deptRow.负责人
                this.openData = false
            }
            else if (num == 2) {                                                      //收料仓库
            } else if (num == 2) {                                                      //收料仓库
                this.editData[this.zbIndex].HWHID = deptRow.HItemID;
                this.editData[this.zbIndex].收料仓库 = deptRow.仓库名称;
                this.openData = false
            }
            else if (num == 4) {                                                      //仓位
            } else if (num == 4) {                                                      //仓位
                this.editData[this.zbIndex].HSPID = deptRow.HItemID;
                this.editData[this.zbIndex].仓位名称 = deptRow.仓位名称;
                this.openData = false
            }
            else if (num == 3) {                                                      //物料
            } else if (num == 3) {                                                      //物料
                this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
                this.editData[this.zbIndex].物料代码 = deptRow.物料代码;
                this.editData[this.zbIndex].物料名称 = deptRow.物料名称;
@@ -956,13 +1129,52 @@
                this.editData[this.zbIndex].HTaxPrice = deptRow.含税成本价
                this.editData[this.zbIndex].HTaxRate = deptRow.默认税率
                this.openData = false
            } else if (num == 6) {
                this.form.HCarrierName = deptRow.供应商名称
                this.form.HCarrierID = deptRow.HItemID
                this.gySupplierShow = false
                this.openData = false
            } else if (num == 7) {
                this.form.HCusName = deptRow.客户名称
                this.form.HCusID = deptRow.HItemID
                this.gyCustomerShow = false
                this.openData = false
            } else if (num == 12) {                                                      //物料
                this.xsSeOutStockBillShow = false
            } else if (num == 12) {
                // 使用异步方式处理源单数据
                this.processSourceDataAsync(deptRow);
            } else if (num == 13) {
                this.form.HCarTypeName = deptRow.车型名称
                this.form.HCarTypeID = deptRow.HItemID
                this.form.HCarTypeMaxVolume = deptRow["最大体积(立方米)"]
                this.calculateLoadingRate(parseFloat($('#HTotalVolume').val()) || 0);
                this.gyCartypeShow = false
                this.openData = false
            } else if (num == 14) {
                this.form.HCarName = deptRow.车辆名称
                this.form.HCarID = deptRow.HItemID
                this.gyCarShow = false
                this.openData = false
            } else if (num == 15) {
                this.form.HDriverName = deptRow.驾驶员名称
                this.form.HDriverID = deptRow.HItemID
                this.gyDriverShow = false
                this.openData = false
            } else if (num == 16) {
                this.form.HContractTransportBillNo = deptRow.单据号
                this.form.HContractTransportInterID = deptRow.HInterID
                this.form.HContractTransportEntryID = deptRow.HInterID
                this.form.HDistance = deptRow.距离
                this.form.HTransportTimes = deptRow.运输时效
                this.form.HTransportTyep = deptRow.运输类型
                this.form.HSSID = deptRow.结算方式
                this.form.HSSName = deptRow.结算方式名称
                this.form.HCurID = deptRow.币别
                this.form.HCurName = deptRow.币别名称
                this.form.HMoney = deptRow.运输费用
                this.form.HExRate = deptRow.汇率 == null ? 0 : deptRow.汇率
                this.form.HCarrierID = deptRow.HSupID
                this.form.HCarrierName = deptRow.供应商名称
                this.ContractTransportShow = false
                this.openData = false
            }
        },
@@ -989,7 +1201,267 @@
        },
        //#endregion
        //#endregion
        //#region 检查源单是否已经在子表中存在
        checkDuplicateSource(newSourceData) {
            // 获取当前子表数据
            var currentTableData = this.editData || [];
            // 遍历新选择的源单数据
            for (var i = 0; i < newSourceData.length; i++) {
                var newSourceInterID = newSourceData[i].hmainid;
                var newSourceEntryID = newSourceData[i].hsubid;
                // 检查是否已经在当前子表中存在
                for (var j = 0; j < currentTableData.length; j++) {
                    var existingSourceInterID = currentTableData[j].HSourceInterID;
                    var existingSourceEntryID = currentTableData[j].HSourceEntryID;
                    // 如果主内码和子内码都相同,则说明已存在
                    if (existingSourceInterID == newSourceInterID &&
                        existingSourceEntryID == newSourceEntryID) {
                        return true; // 存在重复
                    }
                }
            }
            return false; // 无重复
        },
        //#endregion
        //#region 异步处理源单数据
        async processSourceDataAsync(deptRow) {
            try {
                // 设置客户信息
                if (!this.form.HCusID && deptRow.length > 0) {
                    this.form.HCusID = deptRow[0]["HCusID"];
                    this.form.HCusName = deptRow[0]["客户"];
                }
                console.log(deptRow)
                this.form.HMainSourceInterID=deptRow[0]["hmainid"]
                this.form.HMainSourceEntryID=deptRow[0]["hsubid"]
                this.form.HMainSourceBillType=deptRow[0]["HBillType"]
                this.form.HMainSourceBillNo=deptRow[0]["单据号"]
                // 检查是否所有记录属于同一客户
                for (var i = 0; i < deptRow.length; i++) {
                    if (deptRow[i]["HCusID"] != this.form.HCusID) {
                        this.$modal.msgError("下推失败!已经选中的记录中存在不同客户,请确保选择的源单属于同一客户!");
                        this.xsSeOutStockBillShow = false;
                        this.openData = false;
                        return;
                    }
                }
                // 检查新选择的源单是否已经在子表中存在
                var isDuplicate = this.checkDuplicateSource(deptRow);
                if (isDuplicate) {
                    this.$modal.msgError("选择的源单中已存在重复记录,请勿重复选择相同的源单!");
                    this.xsSeOutStockBillShow = false;
                    this.openData = false;
                    return;
                }
                // 异步处理源单数据
                await this.appendInitBySeOutStockBill(deptRow);
                // 关闭对话框
                this.xsSeOutStockBillShow = false;
                this.openData = false;
            } catch (error) {
                console.error("处理源单数据时发生错误:", error);
                this.$modal.msgError("处理源单数据时发生错误,请稍后重试!");
                this.xsSeOutStockBillShow = false;
                this.openData = false;
            }
        },
        //#endregion
        //#region 选择源单-发货通知单(追加方式)
        //改为异步方法,优化源单数据处理逻辑
        async appendInitBySeOutStockBill(checkStatus) {
            try {
                // 显示源单数据加载状态
                this.sourceDataLoading = true;
                var dataArray = [];
                // 使用Promise.all等待所有异步请求完成
                const promises = checkStatus.map(async (item) => {
                    const temp = await this.getPushSeOutStockBillInit(item.hmainid, item.hsubid);
                    return temp;
                });
                const results = await Promise.all(promises);
                // 过滤掉null值
                for (const result of results) {
                    if (result) {
                        dataArray.push(result);
                    } else {
                        // 如果有任何请求失败,终止处理
                        this.sourceDataLoading = false;
                        return;
                    }
                }
                // 获取现有子表数据
                var existingData = this.editData || [];
                var orginHQTY = 0;
                // 创建物料ID映射
                var materialMap = {};
                for (var i = 0; i < dataArray.length; i++) {
                    orginHQTY = dataArray[i].数量;
                    var materialId = dataArray[i].HMaterID;
                    if (!materialMap[materialId]) {
                        materialMap[materialId] = [];
                    }
                    materialMap[materialId].push({
                        hmainid: dataArray[i].hmainid,
                        hsubid: dataArray[i].hsubid,
                        单据号: dataArray[i].单据号
                    });
                }
                // 获取所有物料ID
                var ListMaterial = "";
                for (var materialId in materialMap) {
                    if (ListMaterial) ListMaterial += ";";
                    ListMaterial += materialId;
                }
                if (!ListMaterial) {
                    this.$modal.msgError("没有找到物料信息,请检查选择的源单是否包含有效的物料数据!");
                    this.sourceDataLoading = false;
                    return;
                }
                const response = await axios.get(this.$baseUrl + '/WLYayBillController/GetMesByOrginBill', {
                    params: {
                        "ListMaterial": ListMaterial
                    },
                });
                let result = response.data;
                if (result.count == 1) {
                    let res = result.data;
                    var newRows = [];
                    // 为每个源单行创建对应的子表行
                    for (var materialId in materialMap) {
                        var sourceInfos = materialMap[materialId];
                        // 查找该物料ID对应的包装容器信息
                        var materialInfo = null;
                        for (var i = 0; i < res.length; i++) {
                            if (res[i].HMaterID == materialId) {
                                materialInfo = res[i];
                                break;
                            }
                        }
                        if (materialInfo) {
                            // 为每个源单行创建一条记录
                            for (var j = 0; j < sourceInfos.length; j++) {
                                var sourceInfo = sourceInfos[j];
                                // 再次检查是否已存在(双重保险)
                                var isExist = false;
                                for (var k = 0; k < existingData.length; k++) {
                                    if (existingData[k].HSourceInterID == sourceInfo.hmainid &&
                                        existingData[k].HSourceEntryID == sourceInfo.hsubid) {
                                        isExist = true;
                                        break;
                                    }
                                }
                                if (isExist) {
                                    this.$modal.msgError(`源单${sourceInfo.单据号}已存在,跳过`);
                                    continue;
                                }
                                // 计算相关数量
                                var qty = materialInfo.HSNP || 0;
                                var snp = materialInfo.HSNP || 1;
                                var mouldQty = snp > 0 ? Math.ceil(qty / snp) : 0;
                                var length = parseFloat(materialInfo.长度) || 0;
                                var width = parseFloat(materialInfo.宽度) || 0;
                                var height = parseFloat(materialInfo.高度) || 0;
                                var rowVolume = (length * width * height * mouldQty).toFixed(2);
                                newRows.push({
                                    "HSourceInterID": sourceInfo.hmainid,
                                    "HSourceEntryID": sourceInfo.hsubid,
                                    "HSourceBillNo": sourceInfo.单据号,
                                    "HMaterID": materialInfo.HMaterID,
                                    "HMaterNumber": materialInfo.物料代码,
                                    "HMaterName": materialInfo.物料名称,
                                    "HUnitID": materialInfo.HUnitID,
                                    "HMouldID": materialInfo.HMouldID,
                                    "HMouldNumber": materialInfo.HMouldNumber,
                                    "HMouldName": materialInfo.HMouldName,
                                    "HMouldLength": materialInfo.长度,
                                    "HMouldWidth": materialInfo.宽度,
                                    "HMouldHeight": materialInfo.高度,
                                    "HMouldFoldHeight": materialInfo.折叠高度,
                                    "HQty": orginHQTY,
                                    "HQty_origin": orginHQTY,
                                    "HMouldQty": mouldQty,
                                    "HVolume": rowVolume,
                                    "HSNP": materialInfo.HSNP,
                                    HScatteredVolume: 0,
                                });
                            }
                        }
                    }
                    if (newRows.length === 0) {
                        this.$modal.msgError("没有可添加的新记录,可能是源单数据已存在或物料信息不完整!");
                        this.sourceDataLoading = false;
                        return;
                    }
                    // 合并现有数据和新数据
                    var allData = existingData.concat(newRows);
                    // 渲染表格
                    this.editData = allData;
                    this.$modal.msgSuccess(`成功添加${newRows.length}条记录`);
                } else {
                    this.$modal.msgError(result.msg || "获取包装容器信息失败");
                }
            } catch (error) {
                console.error("处理源单数据时发生错误:", error);
                this.$modal.msgError("处理源单数据时发生错误,请稍后重试!");
            } finally {
                // 无论成功还是失败,都关闭源单数据加载状态
                this.sourceDataLoading = false;
            }
        },
        //#endregion
        //#region 根据主内码与子内码获取源单发货通知单数据
        //改为异步方法,返回Promise
        async getPushSeOutStockBillInit(HSourceInterID, HSourceEntryID) {
            try {
                const response = await axios.get(this.$baseUrl + '/Kf_SellOutBill/loadXs_SeOutStockBill_Push', {
                    params: {
                        "HInterID": HSourceInterID,
                        "HSubID": HSourceEntryID
                    },
                });
                if (response.data.code == 1) {
                    return response.data.data[0];
                } else {
                    this.$modal.msgError(response.data.msg || "获取源单数据失败");
                    return null;
                }
            } catch (error) {
                console.error("获取源单数据时发生错误:", error);
                this.$modal.msgError("获取源单数据时发生错误,请稍后重试!");
                return null;
            }
        },
        //#region 工具栏按钮操作
        //#region 编辑提交保存
        submitForm() {
@@ -1009,7 +1481,7 @@
                            var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"] + ';' + this.OperationType;
                            axios({
                                method: 'post',
                                url: this.baseURL + "/Kf_SellOutBill/SaveSellOutBillList",
                                url: this.$baseUrl + "/Kf_SellOutBill/SaveSellOutBillList",
                                data: {
                                    'msg': sMainSub
                                },
@@ -1038,7 +1510,7 @@
        set_CheckBill(num, form) {
            var InterID = form.hmainid || form.HInterID
            //逻辑审核方法
            axios.get(this.baseURL + "/Kf_SellOutBill/AuditKf_SellOutBill", {
            axios.get(this.$baseUrl + "/Kf_SellOutBill/AuditKf_SellOutBill", {
                params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let result = response.data
@@ -1073,78 +1545,6 @@
        //#region 设置子表序号列
        rowSysZbIndex({ row, rowIndex }) {
            row.index = rowIndex + 1;
        },
        //#endregion
        //#region 子表新增、插入按钮操作
        handleAddSysZb(index, num) {
            if (num == 1 && !index) {
                this.$modal.msgError("请选择一行数据编辑!");
            } else {
                let obj = {
                    HMaterID: 0,
                    物料代码: '',
                    物料名称: '',
                    规格型号: '',
                    HUnitID: 0,
                    计量单位: '',
                    HQtyMust: 1,
                    HQty: 1,
                    HPieceQty: 0,
                    HPrice: 0,
                    HTaxPrice: 0,
                    HTaxRate: 0,
                    HMoney: 0,
                    HTaxMoney: 0,
                    HWHID: 0,
                    发货仓库: '',
                    HRemark: '',
                    HQty_Full: 0,
                    HQty_Empty: 0,
                    HQty_Back: 0,
                    HCostPrice: 0,
                    HCostMoney: 0,
                    HSalePrice: 0,
                    HSeOrderInterID: 741,
                    HSeOrderEntryID: 18,
                    HSeOrderBillNo: 'XSFH00000747',
                    HSourceInterID: 741,
                    HSourceEntryID: 18,
                    HSourceBillNo: 'XSFH00000747',
                    HSourceBillType: 1402,
                    HRelationQty: 0,
                    HRelationMoney: 0,
                    HSPID: 0,
                    HSPName: '',
                    HSPGroupID: 0,
                    HSPGroupName: '',
                    HSCWHID: 0,
                    HSCWHName: '',
                    HSCSPID: 0,
                    HSCSPName: '',
                    HBatchNo: '',
                    HPOOrderInterID: 0,
                    HPOOrderEntryID: 0,
                    HPOOrderBillNo: '',
                    HPropertyID: 0,
                    HPropertyName: '',
                    HSecUnitID: 0,
                    HSecUnitName: '',
                    HSecUnitRate: 0,
                    HEngineNum: '',
                    HUnderPanNum: '',
                    HLeaveFactCard: '',
                    HReqBuyQty: 0,
                    HReqOutQty: 0,
                    HCurrentInventory: 0,
                }
                if (index) {
                    this.editData.splice(index, 0, obj);
                    this.$set(this.editData, index, obj)
                } else {
                    this.editData.push(obj);
                }
            }
        },
        //#endregion
@@ -1233,7 +1633,7 @@
        //#region 组织下拉列表数据初始化
        fetchData() {
            axios.get(this.baseURL + "/Web/GetOrganizations", {
            axios.get(this.$baseUrl + "/Web/GetOrganizations", {
            }).then(response => {
                if (response.data.count == 1) {
                    this.organizationList = response.data.data;//组织列表
@@ -1246,13 +1646,12 @@
        //#region 获取内码、单据号
        getHBillNo() {
            axios.get(this.baseURL + "/WEBSController/GetMaxBillNoAndID_Json", {
            axios.get(this.$baseUrl + "/WEBSController/GetMaxBillNoAndID_Json", {
                params: {
                    HBillType: '1201'
                    HBillType: '3321'
                }
            }).then(response => {
                this.form.HBillNo = response.data.data[0].HBillNo
                this.form.HInterID = response.data.data[0].HInterID
            }).catch(error => {
                this.$modal.msgError("接口请求失败!");
            });
@@ -1264,7 +1663,7 @@
            var sql = `exec h_p_Xt_GetMaxBillNo_SubType '1201','${this.form.HDate}',0,0,0,'${Type}','${this.form.HDeptID}'`;
            axios({
                method: 'get',
                url: this.baseURL + "/CommonModel/searchMethod",
                url: this.$baseUrl + "/CommonModel/searchMethod",
                params: { "sql": sql, "user": sessionStorage["HUserName"], "ModRightNameCheck": "" },
            }).then(response => {
                if (response.data.count == 1) {
@@ -1280,7 +1679,7 @@
        //#region 根据用户获取对应职员、部门、销售主管
        getCzyglByUser() {
            axios.get(this.baseURL + '/Xs_SeOrderBill/getCzyglByUser', {
            axios.get(this.$baseUrl + '/Xs_SeOrderBill/getCzyglByUser', {
                params: { "CurUserName": sessionStorage["HUserName"] }
            }).then(response => {
                let dataForm = response.data.data[0]
@@ -1298,7 +1697,7 @@
        //#region 根据客户获取客户余额
        getCustomerBalance(HCusID) {
            axios.get(this.baseURL + '/Xs_CusRatingChangeBill/getCustomerBalance', {
            axios.get(this.$baseUrl + '/Xs_CusRatingChangeBill/getCustomerBalance', {
                params: { "HCusID": HCusID, 'CurUserName': sessionStorage["HUserName"] }
            }).then(response => {
                var data = response.data.data[0];
@@ -1313,7 +1712,7 @@
        //#region 根据客户带出联系人、联系电话
        getCustomerByCusID(HCusID) {
            axios.get(this.baseURL + "/Xs_SeOrderBill/getCustomerByCusID", {
            axios.get(this.$baseUrl + "/Xs_SeOrderBill/getCustomerByCusID", {
                params: {
                    HCusID: HCusID
                }
@@ -1330,7 +1729,7 @@
        //#region 获取销售出库单对应的条码明细
        getBarCodeNoteBySellOutBill(rowHmainid) {
            axios.get(this.baseURL + '/Kf_SellOutBill/BarCodeNote', {
            axios.get(this.$baseUrl + '/Kf_SellOutBill/BarCodeNote', {
                params: { "HInterID": rowHmainid }
            }).then(response => {
                if (response.data.count == 1) {
@@ -1347,7 +1746,7 @@
        //#region 根据主内码与子内码获取源单销售订单数据
        getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
            axios.get(this.baseURL + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
            axios.get(this.$baseUrl + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
                params: {
                    "HInterID": HSourceInterID
                    , "HSubID": HSourceEntryID
@@ -1364,6 +1763,135 @@
            });
        },
        //#endregion
        // 计算装载率函数
        calculateLoadingRate(totalVolume) {
            var maxVolume = parseFloat((this.form.HCarTypeMaxVolume).val()) || 0;
            if (maxVolume > 0) {
                var loadingRate = (totalVolume / maxVolume * 100).toFixed(2);
                this.form.HLoadingRate = loadingRate + "%"
            } else {
                this.form.HLoadingRate == ''
            }
        },
        //#endregion
        //#region 附件上传相关方法
        // 文件选择变化时的处理
        handleFileChange(file, fileList) {
            this.uploadFiles = fileList;
            this.fileList = this.uploadFiles.map(item => {
                // 获取文件扩展名
                const fileName = item.name;
                const fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase();
                return {
                    ...item,
                    HFileName: item.name,
                    HFileSize: item.size,
                    HFileType: fileExt,
                    HFileStatus: '未上传'
                };
            });
        },
        // 文件移除时的处理
        handleFileRemove(file, fileList) {
            this.uploadFiles = fileList;
        },
        flieUpload(row) {
            // 创建FormData对象
            const formData = new FormData();
            // 添加文件到FormData
            formData.append('files', row);
            // 添加其他参数
            formData.append('HBillNo', this.form.HBillNo);
            formData.append('HRemark', '');
            formData.append('HUserName', sessionStorage["HUserName"]);
            // 设置上传URL
            this.uploadUrl = this.$baseUrl + '/Gy_QCVerificationBillMain/UploadFile_Gy_QCVerification';
            // 发送上传请求
            axios.post(this.uploadUrl, formData, {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }).then(response => {
                if (response.data.code === 1) {
                    this.$message.success('文件上传成功');
                    // 重新获取已上传文件列表
                    this.getFileList();
                } else {
                    this.$message.error(response.data.Message || '上传失败');
                }
            }).catch(error => {
                this.uploadLoading = false;
                this.$message.error('上传请求失败');
                console.error('上传错误:', error);
            });
        },
        // 提交上传文件
        submitUpload() {
            if (this.uploadFiles.length === 0) {
                this.$message.warning('请先选择要上传的文件');
                return;
            }
            if (!this.form.HBillNo) {
                this.$message.warning('请先保存表单获取单据号');
                return;
            }
            this.uploadLoading = true;
            // 创建FormData对象
            const formData = new FormData();
            // 添加文件到FormData
            this.uploadFiles.forEach(file => {
                formData.append('files', file.raw);
            });
            // 添加其他参数
            formData.append('HBillNo', this.form.HBillNo);
            formData.append('HUserName', sessionStorage.getItem('HUserName') || '');
            // 设置上传URL
            this.uploadUrl = this.$baseUrl + '/Gy_QCVerificationBillMain/UploadFile_Gy_QCVerification';
            // 发送上传请求
            axios.post(this.uploadUrl, formData, {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }).then(response => {
                this.uploadLoading = false;
                if (response.data.code === 1) {
                    this.$message.success('文件上传成功');
                    // 清空待上传文件列表
                    this.uploadFiles = [];
                    // 重新获取已上传文件列表
                    this.getFileList();
                } else {
                    this.$message.error(response.data.Message || '上传失败');
                }
            }).catch(error => {
                this.uploadLoading = false;
                this.$message.error('上传请求失败');
                console.error('上传错误:', error);
            });
        },
        // 获取已上传文件列表
        getFileList() {
        },
        // 删除文件
        deleteFile(index) {
            this.uploadFiles.splice(index, 1)
        },
        //#endregion
        //#endregion 
    }
};