| | |
| | | <el-table-column label="销售订单" prop="salesContractNo" show-overflow-tooltip /> |
| | | <el-table-column label="发货订单号" prop="shippingNo" show-overflow-tooltip /> |
| | | <el-table-column label="客户名称" prop="customerName" show-overflow-tooltip /> |
| | | <el-table-column label="产品名称" prop="productName" show-overflow-tooltip /> |
| | | <el-table-column label="产品名称" prop="productCategory" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip /> |
| | | <el-table-column label="发货进度" align="center" width="150"> |
| | | <template #default="scope"> |
| | |
| | | <div class="summary-value shipped">{{ currentShippingOrder.shippingSuccessTotal || 0 }}</div> |
| | | </div> |
| | | <div class="summary-item"> |
| | | <div class="summary-label">已退货数量</div> |
| | | <div class="summary-value returned">{{ currentShippingOrder.returnTotal || 0 }}</div> |
| | | </div> |
| | | <div class="summary-item"> |
| | | <div class="summary-label">待发货数量</div> |
| | | <div class="summary-value waiting">{{ currentShippingOrder.waitShippingTotal || 0 }}</div> |
| | | </div> |
| | |
| | | <span class="info-value quantity">{{ record.shippingNum }}</span> |
| | | </div> |
| | | <div class="info-row"> |
| | | <span class="info-label">发货金额</span> |
| | | <span class="info-label">运费</span> |
| | | <span class="info-value">{{ Number(record.shippingAmount || 0).toFixed(2) }}</span> |
| | | </div> |
| | | <div class="info-row"> |
| | | <span class="info-label">退货数量</span> |
| | | <span class="info-value returned">{{ record.returnTotal || 0 }}</span> |
| | | </div> |
| | | <div class="info-row" v-if="record.type === '货车'"> |
| | | <span class="info-label">车牌号</span> |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | <div class="info-row"> |
| | | <span class="info-label">库位</span> |
| | | <span class="info-value">{{ record.stockLocation || '--' }}</span> |
| | | </div> |
| | | <div class="record-actions" v-if="canRevokeShipping(record)"> |
| | | <el-button |
| | | type="danger" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="发货金额" prop="shippingAmount"> |
| | | <el-form-item label="运费" prop="shippingAmount"> |
| | | <el-input-number |
| | | v-model="shippingForm.shippingAmount" |
| | | :min="0" |
| | | :precision="2" |
| | | :step="0.01" |
| | | placeholder="请输入发货金额" |
| | | placeholder="请输入运费" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | |
| | | <el-radio label="货车">货车</el-radio> |
| | | <el-radio label="快递">快递</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="库位" prop="stockLocation"> |
| | | <el-input v-model="shippingForm.stockLocation" placeholder="请输入库位" clearable/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | shippingCarNumber: "", |
| | | expressCompany: "", |
| | | expressNumber: "", |
| | | stockLocation: "", |
| | | }); |
| | | const shippingRules = { |
| | | shippingAmount: [{ required: true, message: "请输入发货金额", trigger: "blur" }], |
| | | shippingAmount: [{ required: true, message: "请输入运费", trigger: "blur" }], |
| | | shippingNum: [{ required: true, message: "请输入发货数量", trigger: "blur" }], |
| | | stockLocation: [{ required: true, message: "请输入库位", trigger: "blur" }], |
| | | type: [{ required: true, message: "请选择发货类型", trigger: "change" }], |
| | | shippingDate: [{ required: true, message: "请选择发货日期", trigger: "change" }], |
| | | shippingCarNumber: [ |
| | |
| | | shippingCarNumber: "", |
| | | expressCompany: "", |
| | | expressNumber: "", |
| | | stockLocation: "", |
| | | }; |
| | | shippingFileList.value = []; |
| | | |
| | |
| | | shippingCarNumber: "", |
| | | expressCompany: "", |
| | | expressNumber: "", |
| | | stockLocation: "", |
| | | }; |
| | | shippingFileList.value = []; |
| | | }; |
| | |
| | | shippingCarNumber: "", |
| | | expressCompany: "", |
| | | expressNumber: "", |
| | | stockLocation: "", |
| | | }; |
| | | shippingFileList.value = []; |
| | | }; |
| | |
| | | return shippingNum > 0 && returnNum > 0 && shippingNum === returnNum; |
| | | }; |
| | | |
| | | // 计算本次发货金额(按发货数量占比分摊整单发货金额) |
| | | // 计算本次运费(按发货数量占比分摊整单运费) |
| | | |
| | | // 撤销发货 |
| | | const handleRevokeShipping = (record) => { |
| | |
| | | shippingAmount: Number(shippingForm.value.shippingAmount) || 0, |
| | | type: shippingForm.value.type, |
| | | shippingDate: shippingForm.value.shippingDate, |
| | | stockLocation: shippingForm.value.stockLocation, |
| | | shippingCarNumber: shippingForm.value.type === "货车" ? shippingForm.value.shippingCarNumber : "", |
| | | expressCompany: shippingForm.value.type === "快递" ? shippingForm.value.expressCompany : "", |
| | | expressNumber: shippingForm.value.type === "快递" ? shippingForm.value.expressNumber : "", |