| | |
| | | prop="thickness" |
| | | min-width="95"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.thickness" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="quantity" |
| | | min-width="85"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.quantity" |
| | | :step="1" |
| | | :min="0" |
| | |
| | | prop="settlePieceArea" |
| | | min-width="120"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.settlePieceArea" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="actualTotalArea" |
| | | min-width="110"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.actualTotalArea" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | style="max-width: 170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> |
| | | {{ item.processName }} |
| | | </el-tag> |
| | | <el-input-number v-model="item.quantity" |
| | | <el-input-number :controls="false" v-model="item.quantity" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="0" |
| | |
| | | style="max-width: 170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> |
| | | {{ item.processName }} |
| | | </el-tag> |
| | | <el-input-number v-model="item.quantity" |
| | | <el-input-number :controls="false" v-model="item.quantity" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="0" |
| | |
| | | <el-button type="primary" |
| | | plain |
| | | @click="handleImport">导入</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | </el-space> |
| | | <el-space v-else-if="activeStatusTab === 'reviewed'" |
| | | wrap |
| | |
| | | <el-button type="primary" |
| | | @click="handleBulkDelivery" |
| | | :disabled="isBatchButtonDisabled('delivery')">发货</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | <el-date-picker v-model="processRouteExportDateRange" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | |
| | | <el-button type="primary" |
| | | @click="handleBulkDelivery" |
| | | :disabled="isBatchButtonDisabled('delivery')">发货</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | </el-space> |
| | | <el-space v-else-if="activeStatusTab === 'delivered'" |
| | | wrap |
| | |
| | | <el-button type="primary" |
| | | @click="handleReverseAudit" |
| | | :disabled="isBatchButtonDisabled('reverseAudit')">反审</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | </el-space> |
| | | <el-space v-else-if="activeStatusTab === 'completed'" |
| | | wrap |
| | | class="sales-ledger-toolbar-group"> |
| | | <el-button @click="handleOut" |
| | | :disabled="isBatchButtonDisabled('export')">导出</el-button> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | <el-button type="primary" |
| | | plain |
| | | @click="handlePrintCommand('salesOrder')" |
| | |
| | | plain |
| | | @click="handlePrintLabel" |
| | | :disabled="isBatchButtonDisabled('print')">打印标签</el-button> |
| | | </el-space> |
| | | <el-space v-else-if="activeStatusTab === 'all'" |
| | | wrap |
| | | class="sales-ledger-toolbar-group"> |
| | | <el-button @click="handleOut">导出</el-button> |
| | | </el-space> |
| | | <el-space wrap class="sales-ledger-toolbar-group sales-ledger-toolbar-group--muted"> |
| | | <el-dropdown @command="handleHistoryImportCommand"> |
| | |
| | | prop="thickness" |
| | | min-width="95"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.thickness" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="taxInclusiveUnitPrice" |
| | | min-width="105"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | :step="0.01" |
| | | :min="0" |
| | | :precision="2" |
| | |
| | | prop="width" |
| | | min-width="85"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.width" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="height" |
| | | min-width="85"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.height" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="quantity" |
| | | min-width="85"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.quantity" |
| | | :step="1" |
| | | :min="0" |
| | |
| | | prop="settlePieceArea" |
| | | min-width="120"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.settlePieceArea" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | prop="actualTotalArea" |
| | | min-width="110"> |
| | | <template #default="scope"> |
| | | <el-input-number v-if="scope.row.__editing" |
| | | controls-position="right" |
| | | <el-input-number :controls="false" v-if="scope.row.__editing" |
| | | v-model="scope.row.actualTotalArea" |
| | | :min="0" |
| | | :step="1" |
| | |
| | | style="max-width: 170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> |
| | | {{ item.processName }} |
| | | </el-tag> |
| | | <el-input-number v-model="item.quantity" |
| | | <el-input-number :controls="false" v-model="item.quantity" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="0" |
| | |
| | | style="max-width: 170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> |
| | | {{ item.processName }} |
| | | </el-tag> |
| | | <el-input-number v-model="item.quantity" |
| | | <el-input-number :controls="false" v-model="item.quantity" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="0" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="厚度:" |
| | | prop="thickness"> |
| | | <el-input-number v-model="productForm.thickness" |
| | | <el-input-number :controls="false" v-model="productForm.thickness" |
| | | :min="0" |
| | | :step="0.000000000000001" |
| | | :precision="15" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="含税单价(元):" |
| | | prop="taxInclusiveUnitPrice"> |
| | | <el-input-number :step="0.01" |
| | | <el-input-number :controls="false" :step="0.01" |
| | | :min="0" |
| | | v-model="productForm.taxInclusiveUnitPrice" |
| | | style="width: 100%" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="数量:" |
| | | prop="quantity"> |
| | | <el-input-number :step="0.1" |
| | | <el-input-number :controls="false" :step="0.1" |
| | | :min="0" |
| | | v-model="productForm.quantity" |
| | | placeholder="请输入" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="宽(mm):" |
| | | prop="width"> |
| | | <el-input-number v-model="productForm.width" |
| | | <el-input-number :controls="false" v-model="productForm.width" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="2" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="高(mm):" |
| | | prop="height"> |
| | | <el-input-number v-model="productForm.height" |
| | | <el-input-number :controls="false" v-model="productForm.height" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="2" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="周长(cm):" |
| | | prop="perimeter"> |
| | | <el-input-number v-model="productForm.perimeter" |
| | | <el-input-number :controls="false" v-model="productForm.perimeter" |
| | | :min="0" |
| | | :step="0.01" |
| | | :precision="2" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="实际单片面积(㎡):" |
| | | prop="actualPieceArea"> |
| | | <el-input-number v-model="productForm.actualPieceArea" |
| | | <el-input-number :controls="false" v-model="productForm.actualPieceArea" |
| | | :min="0" |
| | | :step="0.0001" |
| | | :precision="4" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="实际总面积(㎡):" |
| | | prop="actualTotalArea"> |
| | | <el-input-number v-model="productForm.actualTotalArea" |
| | | <el-input-number :controls="false" v-model="productForm.actualTotalArea" |
| | | :min="0" |
| | | :step="0.0001" |
| | | :precision="4" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="结算单片面积(㎡):" |
| | | prop="settlePieceArea"> |
| | | <el-input-number v-model="productForm.settlePieceArea" |
| | | <el-input-number :controls="false" v-model="productForm.settlePieceArea" |
| | | :min="0" |
| | | :step="0.0001" |
| | | :precision="4" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="结算总面积(㎡):" |
| | | prop="settleTotalArea"> |
| | | <el-input-number v-model="productForm.settleTotalArea" |
| | | <el-input-number :controls="false" v-model="productForm.settleTotalArea" |
| | | :min="0" |
| | | :step="0.0001" |
| | | :precision="4" |
| | |
| | | <el-col :span="8"> |
| | | <el-form-item label="结算总面积(㎡):" |
| | | prop="settleTotalArea"> |
| | | <el-input-number v-model="productForm.settleTotalArea" |
| | | <el-input-number :controls="false" v-model="productForm.settleTotalArea" |
| | | :min="0" |
| | | :step="0.0001" |
| | | :precision="4" |
| | |
| | | </el-tag> |
| | | </div> |
| | | <div style="flex: 1;"> |
| | | <el-input-number v-model="item.quantity" |
| | | <el-input-number :controls="false" v-model="item.quantity" |
| | | :min="0" |
| | | :step="1" |
| | | :precision="0" |
| | |
| | | shipped: "销售发货历史数据导入模板-已发货.xlsx", |
| | | }; |
| | | const currentImportCommand = ref("default"); |
| | | const activeStatusTab = ref("pendingReview"); |
| | | const activeStatusTab = ref("all"); |
| | | const salesLedgerStatusTabs = [ |
| | | { key: "all", label: "全部" }, |
| | | { key: "pendingReview", label: "未审核" }, |
| | | { key: "reviewed", label: "已审核" }, |
| | | { key: "reverseReviewed", label: "反审核" }, |
| | |
| | | activeStatusTab.value = tabKey; |
| | | resetStatusFilters(); |
| | | switch (tabKey) { |
| | | case "all": |
| | | break; |
| | | case "pendingReview": |
| | | searchForm.reviewStatus = 0; |
| | | break; |
| | |
| | | |
| | | :deep(.el-input-number .el-input__wrapper) { |
| | | padding-left: 8px; |
| | | padding-right: 34px; |
| | | padding-right: 8px; |
| | | } |
| | | |
| | | :deep(.el-input-number), |