| | |
| | | <!-- <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="120px"> |
| | | <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(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('暂无')"></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-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="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(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"> |
| | | </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" /> |
| | | <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" /> |
| | | <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> |
| | | |
| | |
| | | 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, GySupplier, GyCartype, GyCar, GyDriver }, |
| | | components: { Dept, Warehouse, Material, RowSettings, XsSeOutStockBill, GyCustomer, GySupplier, GyCartype, GyCar, GyDriver, ContractTransport }, |
| | | props: { |
| | | OperationType: { type: Number, }, |
| | | linterid: { type: Number, }, |
| | |
| | | |
| | | formShow: false, //表单是否显示标记 |
| | | formLoading: true, //表单加载遮罩 |
| | | sourceDataLoading: false, //源单数据处理加载遮罩 |
| | | zzSelDis: false, //组织下拉列表禁用标记 |
| | | |
| | | rowHideShow: false, //列设置组件容器显示标记 |
| | |
| | | gyCartypeShow: false, //车型数据组件显示标记 |
| | | gyCarShow: false, //车辆数据组件显示标记 |
| | | gyDriverShow: false, //司机数据组件显示标记 |
| | | ContractTransportShow: false, //承运合同数据组件显示标记 |
| | | deptform: {}, //弹窗选中数据 |
| | | |
| | | temp: undefined, //临时变量 |
| | |
| | | form: {}, // 表单参数 |
| | | rules: { // 表单校验 |
| | | HCarrierName: [ |
| | | { required: true, message: "承运商不能为空", trigger: "blur" } |
| | | { required: true, message: "承运商不能为空", trigger: "change" } |
| | | ], |
| | | HCusName: [ |
| | | { required: true, message: "客户不能为空", trigger: "blur" } |
| | |
| | | single: true, // 非单个禁用 |
| | | multiple: true, // 非多个禁用 |
| | | |
| | | // 附件上传相关数据 |
| | | fileList: [], // 已上传文件列表 |
| | | uploadFiles: [], // 待上传文件列表 |
| | | uploadLoading: false, // 上传加载状态 |
| | | uploadUrl: '', // 上传接口地址 |
| | | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.fetchData() |
| | | this.getdata() |
| | | }, |
| | | beforeDestroy() { |
| | |
| | | getdata() { |
| | | this.formShow = false |
| | | this.formLoading = true |
| | | |
| | | if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) { |
| | | this.handleAdd() |
| | | } |
| | |
| | | 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 = [] |
| | |
| | | this.reset() |
| | | //新增获取单据号 |
| | | this.getHBillNo() |
| | | if (this.OperationType == 1) { |
| | | this.handleAddSysZb() |
| | | } |
| | | this.$nextTick(() => { |
| | | this.formShow = true |
| | | this.formLoading = false |
| | |
| | | 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("接口请求失败!"); |
| | |
| | | this.dialogTitle = '车辆列表' |
| | | this.gyDriverShow = true |
| | | this.openData = true |
| | | } else if (num == 16) { |
| | | this.dialogTitle = '承运合同列表' |
| | | this.ContractTransportShow = true |
| | | this.openData = true |
| | | } |
| | | |
| | | }, |
| | | //#region 将数据弹窗全部取消加载 |
| | | showReset() { |
| | |
| | | this.gyCartypeShow = false |
| | | this.gyCarShow = false |
| | | this.gyDriverShow = false |
| | | this.ContractTransportShow = false |
| | | }, |
| | | //#endregion |
| | | //#endregion |
| | |
| | | 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.物料名称; |
| | |
| | | this.editData[this.zbIndex].HTaxRate = deptRow.默认税率 |
| | | this.openData = false |
| | | } else if (num == 6) { |
| | | console.log(deptRow) |
| | | this.form.HCarrierName = deptRow.供应商名称 |
| | | this.form.HCarrierID = deptRow.HItemID |
| | | this.gySupplierShow = false |
| | |
| | | this.gyCustomerShow = false |
| | | this.openData = false |
| | | } else if (num == 12) { |
| | | this.xsSeOutStockBillShow = false |
| | | this.openData = false |
| | | // 使用异步方式处理源单数据 |
| | | this.processSourceDataAsync(deptRow); |
| | | } else if (num == 13) { |
| | | this.form.HCarTypeName = deptRow.车型名称 |
| | | this.form.HCarTypeID = deptRow.HItemID |
| | |
| | | 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 |
| | | } |
| | | }, |
| | |
| | | }, |
| | | //#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() { |
| | |
| | | //#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: '', |
| | | HSourceInterID: 741, |
| | | HSourceEntryID: 18, |
| | | HSourceBillNo: '', |
| | | 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 |
| | | |
| | |
| | | getHBillNo() { |
| | | 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("接口请求失败!"); |
| | | }); |
| | |
| | | var maxVolume = parseFloat((this.form.HCarTypeMaxVolume).val()) || 0; |
| | | if (maxVolume > 0) { |
| | | var loadingRate = (totalVolume / maxVolume * 100).toFixed(2); |
| | | this.form.HLoadingRate=loadingRate + "%" |
| | | this.form.HLoadingRate = loadingRate + "%" |
| | | } else { |
| | | this.form.HLoadingRate=='' |
| | | 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 |
| | | } |