liding
2026-04-10 c05b81c7f50df80ab247a05f9f92af2d799e77cd
src/views/salesManagement/salesLedger/index.vue
@@ -15,8 +15,8 @@
            @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>
@@ -37,25 +37,23 @@
        </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)">
            :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="summarizeChildrenTable">
                  <el-table :data="props.row.children" border show-summary
                     :summary-method="summarizeChildrenTable">
              <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="料号" prop="materialCode" />
                     <el-table-column label="产品状态"
                                              width="100px"
                                              align="center">
                     <el-table-column label="产品状态" width="100px" align="center">
                <template #default="scope">
                           <el-tag v-if="scope.row.approveStatus === 1"
                                       type="success">充足</el-tag>
                           <el-tag v-else
                                       type="danger">不足</el-tag>
                           <el-tag v-if="scope.row.approveStatus === 1" type="success">充足</el-tag>
                           <el-tag v-else type="danger">不足</el-tag>
                </template>
              </el-table-column>
                     <el-table-column label="发货状态" width="140" align="center">
@@ -70,35 +68,32 @@
              <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>
                              <el-tag type="success" v-if="scope.row.shippingCarNumber">{{
                                 scope.row.shippingCarNumber }}</el-tag>
                    <el-tag v-else type="info">-</el-tag>
                  </div>
                </template>
              </el-table-column>
                     <el-table-column label="发货日期"
                                              minWidth="100px"
                                              align="center">
                     <el-table-column label="发货日期" minWidth="100px" align="center">
                <template #default="scope">
                  <div>
                    <div v-if="scope.row.shippingDate">{{ scope.row.shippingDate }}</div>
                              <el-tag v-else
                                          type="info">-</el-tag>
                              <el-tag v-else type="info">-</el-tag>
                  </div>
                </template>
              </el-table-column>
              <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 Width="60px" label="操作" align="center">
                <template #default="scope">
                  <el-button
                    link
                    type="primary"
                    size="small"
                    :disabled="!canShip(scope.row)"
                           <el-button link type="primary" size="small" :disabled="!canShip(scope.row)"
                    @click="openDeliveryForm(scope.row)">
                    发货
                  </el-button>
@@ -122,7 +117,8 @@
        <el-table-column label="备注" prop="remarks" width="200" show-overflow-tooltip />
        <el-table-column fixed="right" label="操作" min-width="100" align="center">
          <template #default="scope">
            <el-button link type="primary" size="small" @click="openForm('edit', scope.row)" :disabled="!scope.row.isEdit">编辑</el-button>
                  <el-button link type="primary" size="small" @click="openForm('edit', scope.row)"
                     :disabled="!scope.row.isEdit">编辑</el-button>
<!--            <el-button link type="primary" size="small" @click="openForm('view', scope.row)">详情</el-button>-->
            <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">附件</el-button>
<!--            <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">发货</el-button>-->
@@ -132,8 +128,8 @@
      <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' ? '新增销售台账页面' : '编辑销售台账页面'" :width="'70%'"
      :operation-type="operationType" @close="closeDia" @confirm="submitForm" @cancel="closeDia">
      <FormDialog v-model="dialogFormVisible" :title="operationType === 'add' ? '新增销售台账页面' : '编辑销售台账页面'"
         :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">
            <!-- 报价单导入入口:放在表单顶部,选择后反显客户/业务员等 -->
            <el-row v-if="operationType === 'add'" style="margin-bottom: 10px;">
@@ -151,7 +147,8 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="业务员:" prop="salesman">
              <el-select v-model="form.salesman" placeholder="请选择" clearable :disabled="operationType === 'view'">
                     <el-select v-model="form.salesman" placeholder="请选择" clearable
                        :disabled="operationType === 'view'">
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                  :value="item.nickName" />
              </el-select>
@@ -161,8 +158,10 @@
        <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'">
                <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'">
                        <el-option v-for="item in customerOption" :key="item.id" :label="item.customerName"
                           :value="item.id">
                  {{
                    item.customerName + "——" + item.taxpayerIdentificationNumber
                  }}
@@ -172,7 +171,8 @@
          </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>
@@ -180,45 +180,56 @@
               <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'" />
                        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
                     <el-select v-model="form.entryPerson" filterable default-first-option
                                     :reserve-keyword="false" placeholder="请选择" clearable @change="changs">
                        <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
                        <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 />
                     <el-date-picker style="width: 100%" v-model="form.entryDate" value-format="YYYY-MM-DD"
                        format="YYYY-MM-DD" type="date" placeholder="请选择" clearable />
                  </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 />
                     <el-date-picker style="width: 100%" v-model="form.deliveryDate" value-format="YYYY-MM-DD"
                        format="YYYY-MM-DD" type="date" placeholder="请选择" clearable />
                  </el-form-item>
               </el-col>
               <el-col :span="12">
                  <el-form-item label="是否生产:" prop="produce">
                     <el-radio-group v-model="form.produce">
                        <el-radio :label="true">是</el-radio>
                        <el-radio :label="false">否</el-radio>
                     </el-radio-group>
            </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>
                  <el-button v-if="operationType !== 'view'" plain type="danger" @click="deleteProduct" >删除</el-button>
                  <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>
               </el-form-item>
            </el-row>
            <el-table :data="productData" border @selection-change="productSelected" show-summary
@@ -235,10 +246,10 @@
               <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 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)"
                     <el-button link type="primary" size="small" :disabled="isProductShipped(scope.row)"
                        @click="openProductForm('edit', scope.row,scope.$index)">编辑</el-button>
                  </template>
               </el-table-column>
@@ -246,16 +257,18 @@
            <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 :gutter="30">
               <el-col :span="24">
                  <el-form-item label="附件材料:" prop="salesLedgerFiles">
                     <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload
                                     :headers="upload.headers" :before-upload="handleBeforeUpload" :on-error="handleUploadError"
                                     :on-success="handleUploadSuccess" :on-remove="handleRemove">
                     <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload"
                        auto-upload :headers="upload.headers" :before-upload="handleBeforeUpload"
                        :on-error="handleUploadError" :on-success="handleUploadSuccess"
                        :on-remove="handleRemove">
                        <el-button type="primary" v-if="operationType !== 'view'">上传</el-button>
                        <template #tip v-if="operationType !== 'view'">
                           <div class="el-upload__tip">
@@ -271,38 +284,17 @@
      </FormDialog>
      <!-- 从报价单导入(仅审批通过) -->
      <el-dialog
         v-model="quotationDialogVisible"
         title="选择审批通过的销售报价单"
         width="80%"
         :close-on-click-modal="false"
      >
      <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 />
@@ -321,53 +313,44 @@
            </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"
      <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-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-select v-model="productForm.productCategory" placeholder="请选择" clearable>
                        <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
                     </el-select> -->
                     <el-tree-select v-model="productForm.productCategory" placeholder="请选择" clearable check-strictly
                                             @change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />
                     <el-tree-select v-model="productForm.productCategory" placeholder="请选择" clearable
                        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>
          <el-col :span="24">
            <el-form-item label="料号:"
                          prop="materialCode">
              <el-input v-model="productForm.materialCode"
                        placeholder="请输入"
                        disabled />
                  <el-form-item label="料号:" prop="materialCode">
                     <el-input v-model="productForm.materialCode" placeholder="请输入" disabled />
            </el-form-item>
          </el-col>
            </el-row>
@@ -379,7 +362,8 @@
               </el-col>
               <el-col :span="12">
                  <el-form-item label="税率(%):" prop="taxRate">
                     <el-select v-model="productForm.taxRate" placeholder="请选择" clearable @change="calculateFromTaxRate">
                     <el-select v-model="productForm.taxRate" placeholder="请选择" clearable
                        @change="calculateFromTaxRate">
                        <el-option label="1" value="1" />
                        <el-option label="6" value="6" />
                        <el-option label="13" value="13" />
@@ -390,28 +374,29 @@
            <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-input v-model="productForm.taxExclusiveTotalPrice" placeholder="请输入" clearable
                        @change="calculateFromExclusiveTotalPrice" />
                  </el-form-item>
               </el-col>
            </el-row>
@@ -428,28 +413,12 @@
         </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>
@@ -463,19 +432,10 @@
         </el-upload>
      </FormDialog>
      <!-- 附件列表弹窗 -->
      <FileListDialog
         ref="fileListRef"
         v-model="fileListDialogVisible"
         title="附件列表"
      />
      <FileListDialog ref="fileListRef" v-model="fileListDialogVisible" title="附件列表" />
      <!-- 打印预览弹窗 -->
      <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>
@@ -485,7 +445,8 @@
               <div v-if="printData.length === 0" style="text-align: center; padding: 50px; color: #999;">
                  暂无打印数据
               </div>
               <div v-else style="text-align: center; padding: 10px; color: #666; font-size: 14px; background: #e8f4fd; margin-bottom: 10px;">
               <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">
@@ -558,7 +519,8 @@
                           <tr v-for="(product, index) in item.products" :key="product.id">
                              <td>{{ index + 1 }}</td>
                              <td>{{ product.materialCode || '' }}</td>
                              <td>{{`${product.productCategory || ''}/${product.specificationModel || ''}` }}</td>
                                 <td>{{ `${product.productCategory || ''}/${product.specificationModel || ''}`
                                    }}</td>
                              <td>{{ product.unit || '' }}</td>
                              <td>{{ product.quantity || '0' }}</td>
                              <td>{{ item.salesContractNo || '' }}</td>
@@ -585,7 +547,8 @@
                     </div>
              <el-descriptions :column="1">
                <el-descriptions-item label="备注:">贵公司在收货后请即刻核实数量及品质,若有异议,请在3日内提出,否则视为收妥。</el-descriptions-item>
                        <el-descriptions-item
                           label="备注:">贵公司在收货后请即刻核实数量及品质,若有异议,请在3日内提出,否则视为收妥。</el-descriptions-item>
              </el-descriptions>
              <el-descriptions :column="2">
                <el-descriptions-item label="送货单位(签章):"/>
@@ -599,21 +562,13 @@
         </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%"
                     >
                     <el-select v-model="deliveryForm.type" placeholder="请选择发货类型" style="width: 100%">
                        <el-option label="货车" value="货车" />
                        <el-option label="快递" value="快递" />
                     </el-select>
@@ -627,38 +582,24 @@
            <el-form-item>
              <template #label>
                <span>审批人选择:</span>
                <el-button type="primary" @click="addApproverNode" style="margin-left: 8px;">新增节点</el-button>
                        <el-button type="primary" @click="addApproverNode"
                           style="margin-left: 8px;">新增节点</el-button>
              </template>
              <div style="display: flex; align-items: flex-end; flex-wrap: wrap;">
                <div
                  v-for="(node, index) in approverNodes"
                  :key="node.id"
                  style="margin-right: 20px; text-align: center; margin-bottom: 10px;"
                >
                        <div v-for="(node, index) in approverNodes" :key="node.id"
                           style="margin-right: 20px; text-align: center; margin-bottom: 10px;">
                  <div>
                    <span>审批人</span>
                    →
                  </div>
                  <el-select
                    v-model="node.userId"
                    placeholder="选择人员"
                    filterable
                    style="width: 140px; margin-bottom: 8px;"
                  >
                    <el-option
                      v-for="user in userList"
                      :key="user.userId"
                      :label="user.nickName"
                      :value="user.userId"
                    />
                           <el-select v-model="node.userId" placeholder="选择人员" filterable
                              style="width: 140px; margin-bottom: 8px;">
                              <el-option v-for="user in userList" :key="user.userId" :label="user.nickName"
                                 :value="user.userId" />
                  </el-select>
                  <div>
                    <el-button
                      type="danger"
                      size="small"
                      @click="removeApproverNode(index)"
                      v-if="approverNodes.length > 1"
                    >删除</el-button>
                              <el-button type="danger" size="small" @click="removeApproverNode(index)"
                                 v-if="approverNodes.length > 1">删除</el-button>
                  </div>
                </div>
              </div>
@@ -740,6 +681,7 @@
      entryPerson: "",
      entryDate: "",
    deliveryDate: "",
      produce: false,
      maintenanceTime: "",
      productData: [],
      executionDate: "",
@@ -1093,6 +1035,8 @@
      form.value.entryDate = getCurrentDate();
      // 签订日期默认为当天
      form.value.executionDate = getCurrentDate();
      // 是否生产默认为否
      form.value.produce = false;
   } else {
      currentId.value = row.id;
      getSalesLedgerWithProducts({ id: row.id, type: 1 }).then((res) => {
@@ -2334,6 +2278,7 @@
   justify-content: space-between;
   margin-bottom: 10px;
}
.print-preview-dialog {
   .el-dialog__body {
      padding: 0;
@@ -2430,7 +2375,8 @@
      border-collapse: collapse;
      border: 1px solid #000;
      
      th, td {
      th,
      td {
         border: 1px solid #000;
         padding: 6px;
         text-align: center;
@@ -2499,6 +2445,7 @@
      page-break-inside: avoid;
      page-break-after: always;
   }
   .print-page:last-child {
      page-break-after: avoid;
   }