gaoluyang
2025-12-05 9596bb22fc91086be7372d01a5c7b45838bff49b
src/views/inventoryManagement/receiptManagement/index.vue
@@ -4,9 +4,9 @@
      <el-tab-pane label="生产入库" name="production">
        <div class="search_form">
          <div>
            <span class="search_title">客户名称:</span>
            <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="请输入" @change="handleQuery"
              clearable prefix-icon="Search" />
<!--            <span class="search_title">客户名称:</span>-->
<!--            <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="请输入" @change="handleQuery"-->
<!--              clearable prefix-icon="Search" />-->
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
@@ -28,17 +28,17 @@
            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
            <el-table-column label="客户名称" prop="customerName" width="240" show-overflow-tooltip />
            <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" width="200" show-overflow-tooltip />
            <el-table-column label="入库时间" prop="createTime" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip />
<!--            <el-table-column label="客户名称" prop="customerName" width="240" 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="单位" prop="unit" width="70" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />
            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />
            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
<!--            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
<!--            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
          </el-table>
          <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
@@ -46,65 +46,65 @@
        </div>
      </el-tab-pane>
      
      <el-tab-pane label="采购入库" name="purchase">
        <div class="search_form">
          <div>
            <span class="search_title">供应商名称:</span>
            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
              clearable prefix-icon="Search" />
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
              type="date"
              placeholder="请选择日期"
              value-format="YYYY-MM-DD"
              format="YYYY-MM-DD"
              clearable
              @change="handleQuery"
            />
            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
          </div>
          <div>
            <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button>
            <el-button @click="handleOut">导出</el-button>
            <el-button type="danger" plain @click="handleDelete">删除</el-button>
          </div>
        </div>
        <div class="table_list">
          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"
            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
            <el-table-column align="center" type="selection" width="55" />
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />
            <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" width="200" show-overflow-tooltip />
            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />
            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />
            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
            <el-table-column fixed="right" label="操作" min-width="60" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');" :disabled="scope.row.createUser !== userStore.id">编辑</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" />
        </div>
      </el-tab-pane>
<!--      <el-tab-pane label="采购入库" name="purchase">-->
<!--        <div class="search_form">-->
<!--          <div>-->
<!--&lt;!&ndash;            <span class="search_title">供应商名称:</span>&ndash;&gt;-->
<!--&lt;!&ndash;            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"&ndash;&gt;-->
<!--&lt;!&ndash;              clearable prefix-icon="Search" />&ndash;&gt;-->
<!--            <span class="search_title ml10">入库日期:</span>-->
<!--            <el-date-picker-->
<!--              v-model="searchForm.timeStr"-->
<!--              type="date"-->
<!--              placeholder="请选择日期"-->
<!--              value-format="YYYY-MM-DD"-->
<!--              format="YYYY-MM-DD"-->
<!--              clearable-->
<!--              @change="handleQuery"-->
<!--            />-->
<!--            <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>-->
<!--          </div>-->
<!--          <div>-->
<!--            <el-button type="primary" @click="openForm('add', 'purchase')">新增入库</el-button>-->
<!--            <el-button @click="handleOut">导出</el-button>-->
<!--            <el-button type="danger" plain @click="handleDelete">删除</el-button>-->
<!--          </div>-->
<!--        </div>-->
<!--        <div class="table_list">-->
<!--          <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"-->
<!--            :expand-row-keys="expandedRowKeys" :row-key="row => row.id" show-summary style="width: 100%"-->
<!--            :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">-->
<!--            <el-table-column align="center" type="selection" width="55" />-->
<!--            <el-table-column align="center" label="序号" type="index" width="60" />-->
<!--            <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="产品大类" prop="productCategory" show-overflow-tooltip />-->
<!--            <el-table-column label="规格型号" prop="specificationModel" show-overflow-tooltip />-->
<!--            <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />-->
<!--            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />-->
<!--&lt;!&ndash;            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />&ndash;&gt;-->
<!--&lt;!&ndash;            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />&ndash;&gt;-->
<!--            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />-->
<!--            <el-table-column fixed="right" label="操作" min-width="60" align="center">-->
<!--              <template #default="scope">-->
<!--                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'purchase');">编辑</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" />-->
<!--        </div>-->
<!--      </el-tab-pane>-->
      
      <el-tab-pane label="手动入库" name="manual">
      <el-tab-pane label="成品入库" name="manual">
        <div class="search_form">
          <div>
            <span class="search_title">供应商名称:</span>
            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
              clearable prefix-icon="Search" />
<!--            <span class="search_title">供应商名称:</span>-->
<!--            <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"-->
<!--              clearable prefix-icon="Search" />-->
            <span class="search_title ml10">入库日期:</span>
            <el-date-picker
              v-model="searchForm.timeStr"
@@ -130,21 +130,21 @@
            <el-table-column align="center" type="selection" width="55" />
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="入库时间" prop="inboundDate" width="100" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
            <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />
            <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
            <el-table-column label="规格型号" prop="specificationModel" width="200" show-overflow-tooltip />
            <el-table-column label="入库批次" prop="inboundBatches" show-overflow-tooltip />
            <!-- <el-table-column label="供应商名称" prop="supplierName" width="240" 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="单位" prop="unit" width="70" show-overflow-tooltip />
            <el-table-column label="物品类型" prop="itemType" width="100" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip />
            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />
            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />
            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />
            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
            <el-table-column label="物品类型" prop="itemType" show-overflow-tooltip />
            <el-table-column label="入库数量" prop="inboundNum" show-overflow-tooltip />
<!--            <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip />-->
<!--            <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip />-->
<!--            <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />-->
            <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip />
            <el-table-column fixed="right" label="操作" min-width="60" align="center">
            <el-table-column fixed="right" label="操作" width="100" align="center">
              <template #default="scope">
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');" :disabled="scope.row.createBy !== userStore.nickName">编辑</el-button>
                <el-button link type="primary" size="small" @click="openForm('edit', scope.row, 'manual');">编辑</el-button>
              </template>
            </el-table-column>
          </el-table>
@@ -164,15 +164,21 @@
import { ref, reactive, toRefs, onMounted, getCurrentInstance, nextTick } from 'vue'
import { ElMessageBox } from "element-plus";
import useUserStore from '@/store/modules/user'
import dayjs from 'dayjs'
import {
  getStockInPage,
  getStockInPageByProduction,
  getStockInPageByCustom,
  delStockIn,
  delStockInCustom,
   getStockInPage,
   getStockInPageByProduction,
   getStockInPageByCustom,
   delStockIn,
   delStockInCustom, getInPageByCustom,
} from "@/api/inventoryManagement/stockIn.js";
import FormDia from './components/formDia.vue'
import FormDiaManual from './components/formDiaManual.vue'
// 获取当前日期
function getCurrentDate() {
  return dayjs().format('YYYY-MM-DD')
}
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
@@ -194,7 +200,7 @@
  searchForm: {
    supplierName: '',
    customerName: '',
    timeStr: '',
    timeStr: getCurrentDate(),
  },
})
const { searchForm } = toRefs(data)
@@ -226,7 +232,7 @@
  const apiCall = activeTab.value === 'production' 
    ? getStockInPageByProduction(params)
    : activeTab.value === 'manual' 
    ? getStockInPageByCustom(params)
    ? getInPageByCustom(params)
    : getStockInPage(params)
  
  apiCall.then(res => {
@@ -279,7 +285,14 @@
    cancelButtonText: '取消',
    type: 'warning',
  }).then(() => {
    proxy.download("/stockin/export", {}, '入库台账.xlsx')
    // 根据不同的 tab 类型调用不同的导出接口
    let exportUrl = "/stockin/export"
    if (activeTab.value === 'production') {
      exportUrl = "/stockin/exportOne"
    } else if (activeTab.value === 'manual') {
      exportUrl = "/stockin/exportTwo"
    }
    proxy.download(exportUrl, {}, '入库台账.xlsx')
  }).catch(() => {
    proxy.$modal.msg("已取消")
  })