From 5acb0bd83b8ab9a0a2d2474bc1da8ac737bf65ac Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 11 八月 2026 16:20:22 +0800
Subject: [PATCH] fix: 去除采购台账默认当天查询
---
src/views/salesManagement/salesLedger/index.vue | 995 ++++++++++++++--------------------------------------------
1 files changed, 247 insertions(+), 748 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 4c13d3d..21ee63d 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -3,42 +3,20 @@
<div class="search_form">
<el-form :model="searchForm" :inline="true">
<el-form-item label="瀹㈡埛鍚嶇О锛�">
- <el-input
- v-model="searchForm.customerName"
- placeholder="璇疯緭鍏�"
- clearable
- prefix-icon="Search"
- @change="handleQuery"
- />
+ <el-input v-model="searchForm.customerName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+ @change="handleQuery" />
</el-form-item>
<el-form-item label="閿�鍞悎鍚屽彿锛�">
- <el-input
- v-model="searchForm.salesContractNo"
- placeholder="璇疯緭鍏�"
- clearable
- prefix-icon="Search"
- @change="handleQuery"
- />
+ <el-input v-model="searchForm.salesContractNo" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+ @change="handleQuery" />
</el-form-item>
<el-form-item label="椤圭洰鍚嶇О锛�">
- <el-input
- v-model="searchForm.projectName"
- placeholder="璇疯緭鍏�"
- clearable
- prefix-icon="Search"
- @change="handleQuery"
- />
+ <el-input v-model="searchForm.projectName" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
+ @change="handleQuery" />
</el-form-item>
<el-form-item label="褰曞叆鏃ユ湡锛�">
- <el-date-picker
- v-model="searchForm.entryDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="daterange"
- placeholder="璇烽�夋嫨"
- clearable
- @change="changeDaterange"
- />
+ <el-date-picker v-model="searchForm.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
+ placeholder="璇烽�夋嫨" clearable @change="changeDaterange" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button>
@@ -52,60 +30,34 @@
<el-button type="primary" @click="openForm('add')">
鏂板鍙拌处
</el-button>
- <el-button type="primary" plain @click="handleImport"
- >瀵煎叆
+ <el-button type="primary" plain @click="handleImport">瀵煎叆
</el-button>
<el-button @click="handleOut">瀵煎嚭</el-button>
<el-button type="danger" plain @click="handleDelete">鍒犻櫎 </el-button>
<el-button type="primary" plain @click="handlePrint">鎵撳嵃 </el-button>
</div>
</div>
- <el-table
- :data="tableData"
- border
- v-loading="tableLoading"
- @selection-change="handleSelectionChange"
- :expand-row-keys="expandedRowKeys"
- :row-key="(row) => row.id"
- :row-class-name="tableRowClassName"
- show-summary
- style="width: 100%"
- :summary-method="summarizeMainTable"
- @expand-change="expandChange"
- height="calc(100vh - 18.5em)"
- >
- <el-table-column
- align="center"
- type="selection"
- width="55"
- fixed="left"
- />
+ <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
+ :expand-row-keys="expandedRowKeys" :row-key="(row) => row.id" :row-class-name="tableRowClassName" show-summary
+ style="width: 100%" :summary-method="summarizeMainTable" @expand-change="expandChange"
+ height="calc(100vh - 18.5em)">
+ <el-table-column align="center" type="selection" width="55" fixed="left" />
<el-table-column type="expand" width="60" fixed="left">
<template #default="props">
- <el-table
- :data="props.row.children"
- border
- show-summary
- :summary-method="
- (param) => summarizeChildrenTable(param, props.row)
- "
- >
+ <el-table :data="props.row.children" border show-summary :summary-method="(param) => summarizeChildrenTable(param, props.row)
+ ">
<el-table-column align="center" label="搴忓彿" type="index" />
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" />
<el-table-column label="浜у搧鐘舵��" width="100px" align="center">
<template #default="scope">
- <el-tag v-if="scope.row.approveStatus === 1" type="success"
- >鍏呰冻
+ <el-tag v-if="scope.row.approveStatus === 1" type="success">鍏呰冻
</el-tag>
- <el-tag
- v-else-if="
- scope.row.approveStatus === 0 &&
- scope.row.noQuantity === 0
- "
- type="success"
- >宸插嚭搴�
+ <el-tag v-else-if="
+ scope.row.approveStatus === 0 &&
+ scope.row.noQuantity === 0
+ " type="success">宸插嚭搴�
</el-tag>
<el-tag v-else type="danger">涓嶈冻 </el-tag>
</template>
@@ -117,21 +69,17 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column
- label="蹇�掑叕鍙�"
- prop="expressCompany"
- show-overflow-tooltip
- />
- <el-table-column
- label="蹇�掑崟鍙�"
- prop="expressNumber"
- show-overflow-tooltip
- />
+ <el-table-column label="瀹℃壒涓暟閲�" width="120" align="center">
+ <template #default="scope">
+ <span>{{ scope.row.pendingApprovalQuantity || 0 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="蹇�掑叕鍙�" prop="expressCompany" show-overflow-tooltip />
+ <el-table-column label="蹇�掑崟鍙�" prop="expressNumber" show-overflow-tooltip />
<el-table-column label="鍙戣揣杞︾墝" minWidth="100px" align="center">
<template #default="scope">
<div>
- <el-tag type="success" v-if="scope.row.shippingCarNumber"
- >{{ scope.row.shippingCarNumber }}
+ <el-tag type="success" v-if="scope.row.shippingCarNumber">{{ scope.row.shippingCarNumber }}
</el-tag>
<el-tag v-else type="info">- </el-tag>
</div>
@@ -148,32 +96,16 @@
</template>
</el-table-column>
<el-table-column label="鏁伴噺" prop="quantity" />
+ <el-table-column label="閫�璐ф暟閲�" prop="returnQuantity" />
<el-table-column label="寰呭彂璐ф暟閲�" prop="noQuantity" />
<el-table-column label="绋庣巼(%)" prop="taxRate" />
- <el-table-column
- label="鍚◣鍗曚环(鍏�)"
- prop="taxInclusiveUnitPrice"
- :formatter="sensitiveAmountFormatter"
- />
- <el-table-column
- label="鍚◣鎬讳环(鍏�)"
- prop="taxInclusiveTotalPrice"
- :formatter="sensitiveAmountFormatter"
- />
- <el-table-column
- label="涓嶅惈绋庢�讳环(鍏�)"
- prop="taxExclusiveTotalPrice"
- :formatter="sensitiveAmountFormatter"
- />
+ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="sensitiveAmountFormatter" />
+ <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="sensitiveAmountFormatter" />
+ <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="sensitiveAmountFormatter" />
<!--鎿嶄綔-->
<el-table-column Width="60px" label="鎿嶄綔" align="center">
<template #default="scope">
- <el-button
- link
- type="primary"
- :disabled="!canShip(scope.row)"
- @click="openDeliveryForm(scope.row)"
- >
+ <el-button link type="primary" :disabled="!canShip(scope.row)" @click="openDeliveryForm(scope.row)">
鍙戣揣
</el-button>
</template>
@@ -182,125 +114,49 @@
</template>
</el-table-column>
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column
- label="閿�鍞悎鍚屽彿"
- prop="salesContractNo"
- width="180"
- show-overflow-tooltip
- />
- <el-table-column
- label="瀹㈡埛鍚嶇О"
- prop="customerName"
- width="300"
- show-overflow-tooltip
- />
- <el-table-column
- label="涓氬姟鍛�"
- prop="salesman"
- width="100"
- show-overflow-tooltip
- />
- <el-table-column
- label="椤圭洰鍚嶇О"
- prop="projectName"
- width="180"
- show-overflow-tooltip
- />
- <el-table-column
- label="浠樻鏂瑰紡"
- prop="paymentMethod"
- show-overflow-tooltip
- />
- <el-table-column
- label="鍚堝悓閲戦(鍏�)"
- prop="contractAmount"
+ <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" width="180" show-overflow-tooltip />
+ <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" width="300" show-overflow-tooltip />
+ <el-table-column label="涓氬姟鍛�" prop="salesman" width="100" show-overflow-tooltip />
+ <el-table-column label="椤圭洰鍚嶇О" prop="projectName" width="180" show-overflow-tooltip />
+ <el-table-column label="浠樻鏂瑰紡" prop="paymentMethod" show-overflow-tooltip />
+ <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" width="220" show-overflow-tooltip
+ :formatter="formattedNumber" />
+ <!-- <el-table-column
+ label="瀹為檯鍚堝悓閲戦(鍏�)"
+ prop="netContractAmount"
width="220"
show-overflow-tooltip
:formatter="formattedNumber"
- />
- <el-table-column
- label="褰曞叆浜�"
- prop="entryPersonName"
- width="100"
- show-overflow-tooltip
- />
- <el-table-column
- label="褰曞叆鏃ユ湡"
- prop="entryDate"
- width="120"
- show-overflow-tooltip
- />
- <el-table-column
- label="绛捐鏃ユ湡"
- prop="executionDate"
- width="120"
- show-overflow-tooltip
- />
- <el-table-column
- label="浜や粯鏃ユ湡"
- prop="deliveryDate"
- width="120"
- show-overflow-tooltip
- />
- <el-table-column
- label="澶囨敞"
- prop="remarks"
- width="200"
- show-overflow-tooltip
- />
+ /> -->
+ <el-table-column label="褰曞叆浜�" prop="entryPersonName" width="100" show-overflow-tooltip />
+ <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" width="120" show-overflow-tooltip />
+ <el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip />
+ <el-table-column label="浜や粯鏃ユ湡" prop="deliveryDate" width="120" show-overflow-tooltip />
+ <el-table-column label="澶囨敞" prop="remarks" width="200" show-overflow-tooltip />
<el-table-column fixed="right" label="鎿嶄綔" width="220" align="center">
<template #default="scope">
- <el-button link type="primary" @click="openForm('view', scope.row)"
- >璇︽儏
+ <el-button link type="primary" @click="openForm('view', scope.row)">璇︽儏
</el-button>
- <el-button
- link
- type="primary"
- @click="openForm('edit', scope.row)"
- :disabled="
- !scope.row.isEdit ||
- scope.row.hasProductionRecord ||
- !canEditLedger(scope.row)
- "
- >缂栬緫
+ <el-button link type="primary" @click="openForm('edit', scope.row)" :disabled="!scope.row.isEdit ||
+ scope.row.hasProductionRecord ||
+ !canEditLedger(scope.row)
+ ">缂栬緫
</el-button>
- <el-button link type="primary" @click="openFileDialog(scope.row)"
- >闄勪欢
+ <el-button link type="primary" @click="openFileDialog(scope.row)">闄勪欢
</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- v-show="total > 0"
- :total="total"
- layout="total, sizes, prev, pager, next, jumper"
- :page="page.current"
- :limit="page.size"
- @pagination="paginationChange"
- />
+ <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
+ :page="page.current" :limit="page.size" @pagination="paginationChange" />
</div>
- <FormDialog
- v-model="dialogFormVisible"
- :title="
- operationType === 'add'
- ? '鏂板閿�鍞彴璐﹂〉闈�'
- : operationType === 'edit'
+ <FormDialog v-model="dialogFormVisible" :title="operationType === 'add'
+ ? '鏂板閿�鍞彴璐﹂〉闈�'
+ : operationType === 'edit'
? '缂栬緫閿�鍞彴璐﹂〉闈�'
: '閿�鍞彴璐﹁鎯�'
- "
- :width="'70%'"
- :operation-type="operationType"
- @close="closeDia"
- @confirm="submitForm"
- @cancel="closeDia"
- >
- <el-form
- :model="form"
- label-width="140px"
- label-position="top"
- :rules="rules"
- ref="formRef"
- >
+ " :width="'70%'" :operation-type="operationType" @close="closeDia" @confirm="submitForm" @cancel="closeDia">
+ <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
<!-- 鎶ヤ环鍗曞鍏ュ叆鍙o細鏀惧湪琛ㄥ崟椤堕儴锛岄�夋嫨鍚庡弽鏄惧鎴�/涓氬姟鍛樼瓑 -->
<el-row v-if="operationType === 'add'" style="margin-bottom: 10px">
<el-col :span="24" style="text-align: right">
@@ -312,47 +168,26 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
- <div
- style="
+ <div style="
display: flex;
align-items: center;
gap: 12px;
width: 100%;
- "
- >
- <el-checkbox
- v-model="form.autoGenerateContractNo"
- v-if="operationType === 'add'"
- >鑷姩鐢熸垚
+ ">
+ <el-checkbox v-model="form.autoGenerateContractNo" v-if="operationType === 'add'">鑷姩鐢熸垚
</el-checkbox>
- <el-input
- v-model="form.salesContractNo"
- :placeholder="
- form.autoGenerateContractNo ? '淇濆瓨鍚庤嚜鍔ㄧ敓鎴�' : '璇疯緭鍏�'
- "
- clearable
- :disabled="
- form.autoGenerateContractNo || operationType === 'view'
- "
- />
+ <el-input v-model="form.salesContractNo" :placeholder="form.autoGenerateContractNo ? '淇濆瓨鍚庤嚜鍔ㄧ敓鎴�' : '璇疯緭鍏�'
+ " clearable :disabled="form.autoGenerateContractNo || operationType === 'view'
+ " />
</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="涓氬姟鍛橈細" prop="salesman">
- <el-select
- v-model="form.salesman"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- filterable
- >
- <el-option
- v-for="item in userList"
- :key="item.nickName"
- :label="item.nickName"
- :value="item.nickName"
- />
+ <el-select v-model="form.salesman" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'"
+ filterable>
+ <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
+ :value="item.nickName" />
</el-select>
</el-form-item>
</el-col>
@@ -360,19 +195,9 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerId">
- <el-select
- v-model="form.customerId"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- filterable
- >
- <el-option
- v-for="item in customerOption"
- :key="item.id"
- :label="item.customerName"
- :value="item.id"
- >
+ <el-select v-model="form.customerId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'"
+ filterable>
+ <el-option v-for="item in customerOption" :key="item.id" :label="item.customerName" :value="item.id">
{{
item.customerName + "鈥斺��" + item.taxpayerIdentificationNumber
}}
@@ -382,151 +207,68 @@
</el-col>
<el-col :span="12">
<el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName">
- <el-input
- v-model="form.projectName"
- placeholder="璇疯緭鍏�"
- clearable
- :disabled="operationType === 'view'"
- />
+ <el-input v-model="form.projectName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="绛捐鏃ユ湡锛�" prop="executionDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.executionDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- />
+ <el-date-picker style="width: 100%" v-model="form.executionDate" value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="浠樻鏂瑰紡">
- <el-input
- v-model="form.paymentMethod"
- placeholder="璇疯緭鍏�"
- clearable
- :disabled="operationType === 'view'"
- />
+ <el-input v-model="form.paymentMethod" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="褰曞叆浜猴細" prop="entryPerson">
- <el-select
- v-model="form.entryPerson"
- filterable
- default-first-option
- :reserve-keyword="false"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- @change="changs"
- >
- <el-option
- v-for="item in userList"
- :key="item.userId"
- :label="item.nickName"
- :value="item.userId"
- />
+ <el-select v-model="form.entryPerson" filterable default-first-option :reserve-keyword="false"
+ placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" @change="changs">
+ <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="褰曞叆鏃ユ湡锛�" prop="entryDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.entryDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- />
+ <el-date-picker style="width: 100%" v-model="form.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+ type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="浜よ揣鏃ユ湡锛�" prop="entryDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.deliveryDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨"
- clearable
- :disabled="operationType === 'view'"
- />
+ <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="浜у搧淇℃伅锛�" prop="entryDate">
- <el-button
- v-if="operationType !== 'view'"
- type="primary"
- @click="openProductForm('add')"
- >娣诲姞
+ <el-button v-if="operationType !== 'view'" type="primary" @click="openProductForm('add')">娣诲姞
</el-button>
- <el-button
- v-if="operationType !== 'view'"
- plain
- type="danger"
- @click="deleteProduct"
- >鍒犻櫎
+ <el-button v-if="operationType !== 'view'" plain type="danger" @click="deleteProduct">鍒犻櫎
</el-button>
</el-form-item>
</el-row>
- <el-table
- :data="productData"
- border
- @selection-change="productSelected"
- show-summary
- :summary-method="summarizeMainTable"
- >
- <el-table-column
- align="center"
- type="selection"
- width="55"
- v-if="operationType !== 'view'"
- :selectable="(row) => !isProductShipped(row)"
- />
- <el-table-column
- align="center"
- label="搴忓彿"
- type="index"
- width="60"
- />
+ <el-table :data="productData" border @selection-change="productSelected" show-summary
+ :summary-method="summarizeMainTable">
+ <el-table-column align="center" type="selection" width="55" v-if="operationType !== 'view'"
+ :selectable="(row) => !isProductShipped(row)" />
+ <el-table-column align="center" label="搴忓彿" type="index" width="60" />
<el-table-column label="浜у搧澶х被" prop="productCategory" />
<el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
<el-table-column label="鍗曚綅" prop="unit" />
<el-table-column label="鏁伴噺" prop="quantity" />
<el-table-column label="绋庣巼(%)" prop="taxRate" />
- <el-table-column
- label="鍚◣鍗曚环(鍏�)"
- prop="taxInclusiveUnitPrice"
- :formatter="formattedNumber"
- />
- <el-table-column
- label="鍚◣鎬讳环(鍏�)"
- prop="taxInclusiveTotalPrice"
- :formatter="formattedNumber"
- />
- <el-table-column
- label="涓嶅惈绋庢�讳环(鍏�)"
- prop="taxExclusiveTotalPrice"
- :formatter="formattedNumber"
- />
+ <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" />
+ <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" />
+ <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" />
<el-table-column label="鏄惁鐢熶骇" prop="isProduction" width="150">
<template #default="scope">
<el-tag :type="scope.row.isProduction ? 'success' : 'info'">
@@ -534,21 +276,10 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column
- fixed="right"
- label="鎿嶄綔"
- min-width="60"
- align="center"
- v-if="operationType !== 'view'"
- >
+ <el-table-column fixed="right" label="鎿嶄綔" min-width="60" align="center" v-if="operationType !== 'view'">
<template #default="scope">
- <el-button
- link
- type="primary"
- size="small"
- :disabled="isProductShipped(scope.row)"
- @click="openProductForm('edit', scope.row, scope.$index)"
- >缂栬緫
+ <el-button link type="primary" size="small" :disabled="isProductShipped(scope.row)"
+ @click="openProductForm('edit', scope.row, scope.$index)">缂栬緫
</el-button>
</template>
</el-table-column>
@@ -556,173 +287,80 @@
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="澶囨敞锛�" prop="remarks">
- <el-input
- v-model="form.remarks"
- placeholder="璇疯緭鍏�"
- clearable
- type="textarea"
- :rows="2"
- :disabled="operationType === 'view'"
- />
+ <el-input v-model="form.remarks" placeholder="璇疯緭鍏�" clearable type="textarea" :rows="2"
+ :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="operationType !== 'view'" :gutter="30">
<el-col :span="24">
<el-form-item label="闄勪欢鏉愭枡锛�" prop="salesLedgerFiles">
- <FileUpload
- v-model:file-list="fileList"
- :disabled="operationType === 'view'"
- />
+ <FileUpload v-model:file-list="fileList" :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</FormDialog>
<!-- 浠庢姤浠峰崟瀵煎叆锛堜粎瀹℃壒閫氳繃锛� -->
- <el-dialog
- v-model="quotationDialogVisible"
- title="閫夋嫨瀹℃壒閫氳繃鐨勯攢鍞姤浠峰崟"
- width="80%"
- :close-on-click-modal="false"
- >
- <div
- style="
+ <el-dialog v-model="quotationDialogVisible" title="閫夋嫨瀹℃壒閫氳繃鐨勯攢鍞姤浠峰崟" width="80%" :close-on-click-modal="false">
+ <div style="
margin-bottom: 12px;
display: flex;
gap: 12px;
align-items: center;
- "
- >
- <el-input
- v-model="quotationSearchForm.quotationNo"
- placeholder="璇疯緭鍏ユ姤浠峰崟鍙�"
- clearable
- style="max-width: 260px"
- @change="fetchQuotationList"
- />
- <el-input
- v-model="quotationSearchForm.customer"
- placeholder="璇疯緭鍏ュ鎴峰悕绉�"
- clearable
- style="max-width: 260px"
- @change="fetchQuotationList"
- />
+ ">
+ <el-input v-model="quotationSearchForm.quotationNo" placeholder="璇疯緭鍏ユ姤浠峰崟鍙�" clearable style="max-width: 260px"
+ @change="fetchQuotationList" />
+ <el-input v-model="quotationSearchForm.customer" placeholder="璇疯緭鍏ュ鎴峰悕绉�" clearable style="max-width: 260px"
+ @change="fetchQuotationList" />
<el-button type="primary" @click="fetchQuotationList">鎼滅储 </el-button>
<el-button @click="resetQuotationSearch">閲嶇疆</el-button>
</div>
- <el-table
- :data="quotationList"
- border
- stripe
- v-loading="quotationLoading"
- height="420px"
- >
+ <el-table :data="quotationList" border stripe v-loading="quotationLoading" height="420px">
<el-table-column align="center" label="搴忓彿" type="index" width="60" />
- <el-table-column
- prop="quotationNo"
- label="鎶ヤ环鍗曞彿"
- width="180"
- show-overflow-tooltip
- />
- <el-table-column
- prop="customer"
- label="瀹㈡埛鍚嶇О"
- min-width="220"
- show-overflow-tooltip
- />
- <el-table-column
- prop="salesperson"
- label="涓氬姟鍛�"
- width="120"
- show-overflow-tooltip
- />
+ <el-table-column prop="quotationNo" label="鎶ヤ环鍗曞彿" width="180" show-overflow-tooltip />
+ <el-table-column prop="customer" label="瀹㈡埛鍚嶇О" min-width="220" show-overflow-tooltip />
+ <el-table-column prop="salesperson" label="涓氬姟鍛�" width="120" show-overflow-tooltip />
<el-table-column prop="quotationDate" label="鎶ヤ环鏃ユ湡" width="140" />
- <el-table-column
- prop="status"
- label="瀹℃壒鐘舵��"
- width="120"
- align="center"
- />
- <el-table-column
- prop="totalAmount"
- label="鎶ヤ环閲戦(鍏�)"
- width="160"
- align="right"
- >
+ <el-table-column prop="status" label="瀹℃壒鐘舵��" width="120" align="center" />
+ <el-table-column prop="totalAmount" label="鎶ヤ环閲戦(鍏�)" width="160" align="right">
<template #default="scope">
{{ Number(scope.row.totalAmount ?? 0).toFixed(2) }}
</template>
</el-table-column>
<el-table-column fixed="right" label="鎿嶄綔" width="120" align="center">
<template #default="scope">
- <el-button type="primary" link @click="applyQuotation(scope.row)"
- >閫夋嫨
+ <el-button type="primary" link @click="applyQuotation(scope.row)">閫夋嫨
</el-button>
</template>
</el-table-column>
</el-table>
- <pagination
- v-show="quotationPage.total > 0"
- :total="quotationPage.total"
- layout="total, sizes, prev, pager, next, jumper"
- :page="quotationPage.current"
- :limit="quotationPage.size"
- @pagination="quotationPaginationChange"
- />
+ <pagination v-show="quotationPage.total > 0" :total="quotationPage.total"
+ layout="total, sizes, prev, pager, next, jumper" :page="quotationPage.current" :limit="quotationPage.size"
+ @pagination="quotationPaginationChange" />
<template #footer>
<el-button @click="quotationDialogVisible = false">鍏抽棴</el-button>
</template>
</el-dialog>
- <FormDialog
- v-model="productFormVisible"
- :title="productOperationType === 'add' ? '鏂板浜у搧' : '缂栬緫浜у搧'"
- :width="'40%'"
- :operation-type="productOperationType"
- @close="closeProductDia"
- @confirm="submitProduct"
- @cancel="closeProductDia"
- >
- <el-form
- :model="productForm"
- label-width="140px"
- label-position="top"
- :rules="productRules"
- ref="productFormRef"
- >
+ <FormDialog v-model="productFormVisible" :title="productOperationType === 'add' ? '鏂板浜у搧' : '缂栬緫浜у搧'" :width="'40%'"
+ :operation-type="productOperationType" @close="closeProductDia" @confirm="submitProduct"
+ @cancel="closeProductDia">
+ <el-form :model="productForm" label-width="140px" label-position="top" :rules="productRules" ref="productFormRef">
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="浜у搧澶х被锛�" prop="productCategory">
- <el-tree-select
- v-model="productForm.productCategory"
- placeholder="璇烽�夋嫨"
- clearable
- filterable
- check-strictly
- @change="getModels"
- :data="productOptions"
- :render-after-expand="false"
- style="width: 100%"
- />
+ <el-tree-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable filterable
+ check-strictly @change="getModels" :data="productOptions" :render-after-expand="false"
+ style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
- <el-select
- v-model="productForm.productModelId"
- placeholder="璇烽�夋嫨"
- clearable
- @change="getProductModel"
- filterable
- >
- <el-option
- v-for="item in modelOptions"
- :key="item.id"
- :label="item.model"
- :value="item.id"
- />
+ <el-select v-model="productForm.productModelId" placeholder="璇烽�夋嫨" clearable @change="getProductModel"
+ filterable>
+ <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
@@ -730,27 +368,13 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍗曚綅锛�" prop="unit">
- <el-input
- v-model="productForm.unit"
- placeholder="璇疯緭鍏�"
- clearable
- />
+ <el-input v-model="productForm.unit" placeholder="璇疯緭鍏�" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绋庣巼(%)锛�" prop="taxRate">
- <el-select
- v-model="productForm.taxRate"
- placeholder="璇烽�夋嫨"
- clearable
- @change="calculateFromTaxRate"
- >
- <el-option
- v-for="dict in tax_rate"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
+ <el-select v-model="productForm.taxRate" placeholder="璇烽�夋嫨" clearable @change="calculateFromTaxRate">
+ <el-option v-for="dict in tax_rate" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
@@ -758,66 +382,35 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice">
- <el-input-number
- :step="0.01"
- :min="0"
- v-model="productForm.taxInclusiveUnitPrice"
- style="width: 100%"
- :precision="2"
- placeholder="璇疯緭鍏�"
- clearable
- @change="calculateFromUnitPrice"
- />
+ <el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%"
+ :precision="2" placeholder="璇疯緭鍏�" clearable @change="calculateFromUnitPrice" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鏁伴噺锛�" prop="quantity">
- <el-input-number
- :step="0.1"
- :min="0"
- v-model="productForm.quantity"
- placeholder="璇疯緭鍏�"
- clearable
- :precision="2"
- @change="calculateFromQuantity"
- style="width: 100%"
- />
+ <el-input-number :step="0.1" :min="0" v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable
+ :precision="2" @change="calculateFromQuantity" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍚◣鎬讳环(鍏�)锛�" prop="taxInclusiveTotalPrice">
- <el-input
- v-model="productForm.taxInclusiveTotalPrice"
- placeholder="璇疯緭鍏�"
- clearable
- @change="calculateFromTotalPrice"
- />
+ <el-input v-model="productForm.taxInclusiveTotalPrice" placeholder="璇疯緭鍏�" clearable
+ @change="calculateFromTotalPrice" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item
- label="涓嶅惈绋庢�讳环(鍏�)锛�"
- prop="taxExclusiveTotalPrice"
- >
- <el-input
- v-model="productForm.taxExclusiveTotalPrice"
- placeholder="璇疯緭鍏�"
- clearable
- @change="calculateFromExclusiveTotalPrice"
- />
+ <el-form-item label="涓嶅惈绋庢�讳环(鍏�)锛�" prop="taxExclusiveTotalPrice">
+ <el-input v-model="productForm.taxExclusiveTotalPrice" placeholder="璇疯緭鍏�" clearable
+ @change="calculateFromExclusiveTotalPrice" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="鍙戠エ绫诲瀷锛�" prop="invoiceType">
- <el-select
- v-model="productForm.invoiceType"
- placeholder="璇烽�夋嫨"
- clearable
- >
+ <el-select v-model="productForm.invoiceType" placeholder="璇烽�夋嫨" clearable>
<el-option label="澧炴櫘绁�" value="澧炴櫘绁�" />
<el-option label="澧炰笓绁�" value="澧炰笓绁�" />
</el-select>
@@ -835,35 +428,18 @@
</el-form>
</FormDialog>
<!-- 瀵煎叆寮圭獥 -->
- <FormDialog
- v-model="importUpload.open"
- :title="importUpload.title"
- :width="'600px'"
- @close="importUpload.open = false"
- @confirm="submitImportFile"
- @cancel="importUpload.open = false"
- >
- <el-upload
- ref="importUploadRef"
- :limit="1"
- accept=".xlsx,.xls"
- :action="importUpload.url"
- :headers="importUpload.headers"
- :before-upload="importUpload.beforeUpload"
- :on-success="importUpload.onSuccess"
- :on-error="importUpload.onError"
- :on-progress="importUpload.onProgress"
- :on-change="importUpload.onChange"
- :auto-upload="false"
- drag
- >
+ <FormDialog v-model="importUpload.open" :title="importUpload.title" :width="'600px'"
+ @close="importUpload.open = false" @confirm="submitImportFile" @cancel="importUpload.open = false">
+ <el-upload ref="importUploadRef" :limit="1" accept=".xlsx,.xls" :action="importUpload.url"
+ :headers="importUpload.headers" :before-upload="importUpload.beforeUpload" :on-success="importUpload.onSuccess"
+ :on-error="importUpload.onError" :on-progress="importUpload.onProgress" :on-change="importUpload.onChange"
+ :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
<template #tip>
<div class="el-upload__tip">
浠呮敮鎸� xls/xlsx锛屽ぇ灏忎笉瓒呰繃 10MB銆�
- <el-button link type="primary" @click="downloadTemplate"
- >涓嬭浇瀵煎叆妯℃澘
+ <el-button link type="primary" @click="downloadTemplate">涓嬭浇瀵煎叆妯℃澘
</el-button>
</div>
</template>
@@ -871,50 +447,31 @@
</FormDialog>
<!-- // todo 闄勪欢棰勮鐩稿叧 -->
<!-- 闄勪欢鍒楄〃寮圭獥 -->
- <FileList
- v-if="fileDialogVisible"
- v-model:visible="fileDialogVisible"
- record-type="sales_ledger"
- :record-id="recordId"
- />
+ <FileList v-if="fileDialogVisible" v-model:visible="fileDialogVisible" record-type="sales_ledger"
+ :record-id="recordId" />
<!-- 鎵撳嵃棰勮寮圭獥 -->
- <el-dialog
- v-model="printPreviewVisible"
- title="鎵撳嵃棰勮"
- width="90%"
- :close-on-click-modal="false"
- class="print-preview-dialog"
- >
+ <el-dialog v-model="printPreviewVisible" title="鎵撳嵃棰勮" width="90%" :close-on-click-modal="false"
+ class="print-preview-dialog">
<div class="print-preview-container">
<div class="print-preview-header">
<el-button type="primary" @click="executePrint">鎵ц鎵撳嵃 </el-button>
<el-button @click="printPreviewVisible = false">鍏抽棴棰勮</el-button>
</div>
<div class="print-preview-content">
- <div
- v-if="printData.length === 0"
- style="text-align: center; padding: 50px; color: #999"
- >
+ <div v-if="printData.length === 0" style="text-align: center; padding: 50px; color: #999">
鏆傛棤鎵撳嵃鏁版嵁
</div>
- <div
- v-else
- style="
+ <div v-else style="
text-align: center;
padding: 10px;
color: #666;
font-size: 14px;
background: #e8f4fd;
margin-bottom: 10px;
- "
- >
+ ">
鍏� {{ printData.length }} 鏉℃暟鎹緟鎵撳嵃
</div>
- <div
- v-for="(item, index) in printData"
- :key="index"
- class="print-page"
- >
+ <div v-for="(item, index) in printData" :key="index" class="print-page">
<div class="delivery-note">
<div class="header">
<div class="document-title">闆跺敭鍙戣揣鍗�</div>
@@ -1016,28 +573,14 @@
</div>
</el-dialog>
<!-- 鍙戣揣寮规 -->
- <el-dialog
- v-model="deliveryFormVisible"
- title="鍙戣揣淇℃伅"
- width="40%"
- @close="closeDeliveryDia"
- >
- <el-form
- :model="deliveryForm"
- label-width="120px"
- label-position="top"
- :rules="deliveryRules"
- ref="deliveryFormRef"
- >
+ <el-dialog v-model="deliveryFormVisible" title="鍙戣揣淇℃伅" width="40%" @close="closeDeliveryDia">
+ <el-form :model="deliveryForm" label-width="120px" label-position="top" :rules="deliveryRules"
+ ref="deliveryFormRef">
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="鍙戣揣绫诲瀷锛�" prop="type">
- <el-select
- v-model="deliveryForm.type"
- placeholder="璇烽�夋嫨鍙戣揣绫诲瀷"
- style="width: 100%"
- @change="handleDeliveryTypeChange"
- >
+ <el-select v-model="deliveryForm.type" placeholder="璇烽�夋嫨鍙戣揣绫诲瀷" style="width: 100%"
+ @change="handleDeliveryTypeChange">
<el-option label="璐ц溅" value="璐ц溅" />
<el-option label="蹇��" value="蹇��" />
</el-select>
@@ -1045,41 +588,26 @@
</el-col>
<el-col :span="24">
<el-form-item label="寰呭彂璐ф暟閲忥細">
- <el-input
- :model-value="currentDeliveryRow?.noQuantity"
- disabled
- />
+ <el-input :model-value="currentDeliveryRow?.noQuantity" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24" v-if="deliveryForm.type === '璐ц溅'">
<el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="shippingCarNumber">
- <el-input
- v-model="deliveryForm.shippingCarNumber"
- placeholder="璇疯緭鍏ュ彂璐ц溅鐗屽彿"
- clearable
- />
+ <el-input v-model="deliveryForm.shippingCarNumber" placeholder="璇疯緭鍏ュ彂璐ц溅鐗屽彿" clearable />
</el-form-item>
</el-col>
<el-col :span="24" v-else>
<el-form-item label="蹇�掑叕鍙革細" prop="expressCompany">
- <el-input
- v-model="deliveryForm.expressCompany"
- placeholder="璇疯緭鍏ュ揩閫掑叕鍙�"
- clearable
- />
+ <el-input v-model="deliveryForm.expressCompany" placeholder="璇疯緭鍏ュ揩閫掑叕鍙�" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30" v-if="deliveryForm.type === '蹇��'">
<el-col :span="24">
<el-form-item label="蹇�掑崟鍙凤細" prop="expressNumber">
- <el-input
- v-model="deliveryForm.expressNumber"
- placeholder="璇疯緭鍏ュ揩閫掑崟鍙�"
- clearable
- />
+ <el-input v-model="deliveryForm.expressNumber" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" clearable />
</el-form-item>
</el-col>
</el-row>
@@ -1093,50 +621,22 @@
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="搴撳瓨锛�" prop="batchNo">
- <el-table
- :data="deliveryForm.batchNoList"
- border
- size="small"
- max-height="260"
- style="width: 100%"
- >
+ <el-table :data="deliveryForm.batchNoList" border size="small" max-height="260" style="width: 100%">
<el-table-column label="鎵瑰彿" prop="batchNo" min-width="180" />
- <el-table-column
- label="浜у搧澶х被"
- prop="productName"
- min-width="100"
- />
- <el-table-column
- label="瑙勬牸鍨嬪彿"
- prop="model"
- min-width="100"
- />
+ <el-table-column label="浜у搧澶х被" prop="productName" min-width="100" />
+ <el-table-column label="瑙勬牸鍨嬪彿" prop="model" min-width="100" />
<el-table-column label="鍗曚綅" prop="unit" min-width="100" />
- <el-table-column
- label="搴撳瓨鏁伴噺"
- min-width="120"
- align="center"
- >
+ <el-table-column label="搴撳瓨鏁伴噺" min-width="120" align="center">
<template #default="scope">
{{ getDeliveryBatchQuantity(scope.row) }}
</template>
</el-table-column>
- <el-table-column
- label="鍙戣揣鏁伴噺"
- min-width="160"
- align="center"
- >
+ <el-table-column label="鍙戣揣鏁伴噺" min-width="160" align="center">
<template #default="scope">
- <el-input-number
- v-model="scope.row.deliveryQuantity"
- :min="0"
- :max="getDeliveryBatchDeliveryMax(scope.row)"
- :precision="2"
- :step="0.01"
- controls-position="right"
- @change="handleDeliveryBatchQuantityChange(scope.row)"
- style="width: 100%"
- />
+ <el-input-number v-model="scope.row.deliveryQuantity" :min="0"
+ :max="getDeliveryBatchDeliveryMax(scope.row)" :precision="2" :step="0.01"
+ controls-position="right" @change="handleDeliveryBatchQuantityChange(scope.row)"
+ style="width: 100%" />
</template>
</el-table-column>
</el-table>
@@ -1146,8 +646,7 @@
</el-form>
<template #footer>
<div class="dialog-footer">
- <el-button type="primary" @click="submitDelivery"
- >纭鍙戣揣
+ <el-button type="primary" @click="submitDelivery">纭鍙戣揣
</el-button>
<el-button @click="closeDeliveryDia">鍙栨秷</el-button>
</div>
@@ -1749,7 +1248,7 @@
// 绛捐鏃ユ湡榛樿涓哄綋澶�
form.value.executionDate = getCurrentDate();
// 鍒涘缓鏃堕棿榛樿涓哄綋澶�
- form.value.createTime = getCurrentDate();
+ form.value.createTime = dayjs().format("YYYY-MM-DD HH:mm:ss");
// 榛樿鑷姩鐢熸垚閿�鍞悎鍚屽彿
form.value.autoGenerateContractNo = true;
} else {
@@ -2004,6 +1503,12 @@
);
if (shippedProducts.length > 0) {
proxy.$modal.msgWarning("宸插彂璐ф垨瀹℃牳閫氳繃鐨勪骇鍝佷笉鑳藉垹闄�");
+ return;
+ }
+
+ // 妫�鏌ユ槸鍚﹀彧鍓╀竴鏉℃暟鎹紝閿�鍞彴璐﹁嚦灏戜繚鐣欎竴鏉′骇鍝�
+ if (productData.value.length <= 1) {
+ proxy.$modal.msgWarning("閿�鍞彴璐﹁嚦灏戦渶瑕佷繚鐣欎竴鏉′骇鍝佹暟鎹�");
return;
}
@@ -2361,22 +1866,20 @@
<div>
<span class="label">鍙戣揣鏃ユ湡锛�</span>
<span class="value">${formatDate(
- item.createTime
- )}</span>
+ item.createTime
+ )}</span>
</div>
<div>
<span class="label">瀹㈡埛鍚嶇О锛�</span>
- <span class="value">${
- item.customerName
- }</span>
+ <span class="value">${item.customerName
+ }</span>
</div>
</div>
<div class="info-row">
<span class="label">鍗曞彿锛�</span>
- <span class="value">${
- item.salesContractNo ||
- ""
- }</span>
+ <span class="value">${item.salesContractNo ||
+ ""
+ }</span>
</div>
</div>
@@ -2393,50 +1896,43 @@
</tr>
</thead>
<tbody>
- ${
- item.products &&
- item
- .products
- .length >
- 0
- ? item.products
- .map(
- (
- product
- ) => `
+ ${item.products &&
+ item
+ .products
+ .length >
+ 0
+ ? item.products
+ .map(
+ (
+ product
+ ) => `
<tr>
- <td>${
- product.productCategory ||
- ""
- }</td>
- <td>${
- product.specificationModel ||
- ""
- }</td>
- <td>${
- product.unit ||
- ""
- }</td>
- <td>${
- product.taxInclusiveUnitPrice ||
- "0"
- }</td>
- <td>${
- product.quantity ||
- "0"
- }</td>
- <td>${
- product.taxInclusiveTotalPrice ||
- "0"
- }</td>
+ <td>${product.productCategory ||
+ ""
+ }</td>
+ <td>${product.specificationModel ||
+ ""
+ }</td>
+ <td>${product.unit ||
+ ""
+ }</td>
+ <td>${product.taxInclusiveUnitPrice ||
+ "0"
+ }</td>
+ <td>${product.quantity ||
+ "0"
+ }</td>
+ <td>${product.taxInclusiveTotalPrice ||
+ "0"
+ }</td>
</tr>
`
- )
- .join(
- ""
- )
- : '<tr><td colspan="6" style="text-align: center; color: #999;">鏆傛棤浜у搧鏁版嵁</td></tr>'
- }
+ )
+ .join(
+ ""
+ )
+ : '<tr><td colspan="6" style="text-align: center; color: #999;">鏆傛棤浜у搧鏁版嵁</td></tr>'
+ }
</tbody>
<tfoot>
<tr>
@@ -2445,11 +1941,11 @@
<td class="total-value"></td>
<td class="total-value"></td>
<td class="total-value">${getTotalQuantityForPrint(
- item.products
- )}</td>
+ item.products
+ )}</td>
<td class="total-value">${getTotalAmountForPrint(
- item.products
- )}</td>
+ item.products
+ )}</td>
</tr>
</tfoot>
</table>
@@ -2473,16 +1969,15 @@
<div class="footer-row">
<div class="footer-item">
<span class="label">鎿嶄綔鍛橈細</span>
- <span class="value">${
- userStore.nickName ||
- "鎾曞紑鍓�"
- }</span>
+ <span class="value">${userStore.nickName ||
+ "鎾曞紑鍓�"
+ }</span>
</div>
<div class="footer-item">
<span class="label">鎵撳嵃鏃ユ湡锛�</span>
<span class="value">${formatDateTime(
- new Date()
- )}</span>
+ new Date()
+ )}</span>
</div>
</div>
</div>
@@ -2512,11 +2007,7 @@
// 鏍煎紡鍖栨棩鏈�
const formatDate = (dateString) => {
if (!dateString) return getCurrentDate();
- const date = new Date(dateString);
- const year = date.getFullYear();
- const month = String(date.getMonth() + 1).padStart(2, "0");
- const day = String(date.getDate()).padStart(2, "0");
- return `${year}/${month}/${day}`;
+ return dayjs(dateString).format("YYYY/MM/DD HH:mm:ss");
};
// 鏍煎紡鍖栨棩鏈熸椂闂�
const formatDateTime = (date) => {
@@ -2803,7 +2294,7 @@
/**
* 鍒ゆ柇鏄惁鍙互鍙戣揣
- * 鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐у拰瀹℃牳鎷掔粷鐨勬椂鍊欐墠鍙互鍙戣揣
+ * 鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐с�佸鎵逛腑銆佸鏍告嫆缁濄�侀儴鍒嗗彂璐х殑鏃跺�欐墠鍙互鍙戣揣
* @param row 琛屾暟鎹�
*/
const canShip = (row) => {
@@ -2815,15 +2306,16 @@
// 鑾峰彇鍙戣揣鐘舵��
const shippingStatus = row.shippingStatus;
- // 濡傛灉宸插彂璐э紙鏈夊彂璐ф棩鏈熸垨杞︾墝鍙凤級锛屼笉鑳藉啀娆″彂璐�
+ // 濡傛灉宸插彂璐э紝涓嶈兘鍐嶆鍙戣揣
if (shippingStatus === "宸插彂璐�") {
return false;
}
- // 鍙戣揣鐘舵�佸繀椤绘槸"寰呭彂璐�"鎴�"瀹℃牳鎷掔粷"
+ // 鍙戣揣鐘舵�佸繀椤绘槸"寰呭彂璐�"銆�"瀹℃壒涓�"銆�"瀹℃牳鎷掔粷"鎴�"閮ㄥ垎鍙戣揣"
const statusStr = shippingStatus ? String(shippingStatus).trim() : "";
return (
statusStr === "寰呭彂璐�" ||
+ statusStr === "瀹℃壒涓�" ||
statusStr === "瀹℃牳鎷掔粷" ||
statusStr === "閮ㄥ垎鍙戣揣"
);
@@ -2844,9 +2336,15 @@
// 妫�鏌ユ槸鍚﹀彲浠ュ彂璐�
if (!canShip(row)) {
proxy.$modal.msgWarning(
- "鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐ф垨瀹℃牳鎷掔粷鐨勬椂鍊欐墠鍙互鍙戣揣"
+ "鍙湁鍦ㄤ骇鍝佺姸鎬佹槸鍏呰冻锛屽彂璐х姸鎬佹槸寰呭彂璐с�佸鎵逛腑銆佸鏍告嫆缁濇垨閮ㄥ垎鍙戣揣鐨勬椂鍊欐墠鍙互鍙戣揣"
);
return;
+ }
+
+ // 瀹℃壒涓椂鎻愮ず鐢ㄦ埛宸叉湁寰呭鎵圭殑鍙戣揣璁板綍
+ const statusStr = row.shippingStatus ? String(row.shippingStatus).trim() : "";
+ if (statusStr === "瀹℃壒涓�") {
+ proxy.$modal.msgWarning("璇ヤ骇鍝佸瓨鍦ㄥ緟瀹℃壒鐨勫彂璐ц褰曪紝璇锋敞鎰忛伩鍏嶉噸澶嶆彁浜�");
}
currentDeliveryRow.value = row;
@@ -3175,6 +2673,7 @@
page-break-inside: avoid;
page-break-after: always;
}
+
.print-page:last-child {
page-break-after: avoid;
}
--
Gitblit v1.9.3