lishenao
9 天以前 42ef348f48a79f2653b02295924ffa9579a0afd6
库存管理
已修改4个文件
已添加3个文件
363 ■■■■ 文件已修改
src/api/inventoryManagement/stockIn.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockManage.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockOut.js 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/dispatchLog/index.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/issueManagement/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/receiptManagement/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/index.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inventoryManagement/stockIn.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import request from "@/utils/request";
// æŸ¥è¯¢å…¥åº“信息列表
export const getStockInPage = (params) => {
    return request({
        url: "/stockin/listPage",
        method: "get",
        params,
    });
};
// ä¿®æ”¹åº“存信息
export const updateStockIn = (data) => {
    return request({
        url: "/stockin/update",
        method: "put",
        data,
    });
};
// æ–°å¢žå•†å“å…¥åº“信息
export function addSutockIn(data) {
    return request({
        url: '/stockin/add',
        method: 'post',
        data: data
    })
}
// åˆ é™¤å…¥åº“信息
export function delStockIn(ids) {
    return request({
        url: '/stockin/del',
        method: 'delete',
        data: ids
    })
}
// å¯¼å‡ºå…¥åº“信息
export function exportStockIn(query) {
    return request({
        url: '/stockin/export',
        method: 'get',
        params: query,
        responseType: 'blob'
    })
}
src/api/inventoryManagement/stockManage.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
import request from "@/utils/request";
// æŸ¥è¯¢åº“存信息列表
export const getStockManagePage = (params) => {
    return request({
        url: "/stockmanagement/page",
        method: "get",
        params,
    });
};
// ä¿®æ”¹åº“存信息
export const updateStockManage = (data) => {
    return request({
        url: "/stockmanagement/update",
        method: "put",
        data,
    });
};
// åˆ é™¤åº“存信息
export function delStockManage(ids) {
    return request({
        url: '/stockmanagement/del',
        method: 'delete',
        data: ids
    })
}
// å¯¼å‡ºåº“存信息
export function exportStockManage(query) {
    return request({
        url: '/stockmanagement/export',
        method: 'get',
        params: query,
        responseType: 'blob'
    })
}
src/api/inventoryManagement/stockOut.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
import request from "@/utils/request";
//查询出库列表
export const getStockOutPage = (params) => {
    return request({
        url: "/stockout/page",
        method: "get",
        params,
    });
};
//新增出库信息
export const addStockOut = (data) => {
    return request({
        url: '/stockout/add',
        method: 'post',
        data: data
    })
}
//修改出库信息
export const updateStockOut = (data) => {
    return request({
        url: "/stockout/update",
        method: "put",
        data,
    });
}
//删除出库信息
export const delStockOut = (ids) => {
    return request({
        url: '/stockout/del',
        method: 'delete',
        data: ids
    })
}
//导出出库信息
export const exportStockOut = (query) => {
    return request({
        url: '/stockout/export',
        method: 'get',
        params: query,
        responseType: 'blob'
    })
}
src/views/inventoryManagement/dispatchLog/index.vue
@@ -4,7 +4,7 @@
      <div>
        <span class="search_title">供应商名称:</span>
        <el-input
          v-model="searchForm.customerName"
          v-model="searchForm.supplierName"
          style="width: 240px"
          placeholder="请输入"
          @change="handleQuery"
@@ -38,67 +38,67 @@
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column
          label="出库日期"
          prop="salesContractNo"
          prop="inboundTime"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="供应商名称"
          prop="customerName"
          prop="supplierName"
          width="160"
          show-overflow-tooltip
        />
        <el-table-column
          label="产品大类"
          prop="salesman"
          prop="productCategory"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="规格型号"
          prop="projectName"
          prop="specificationModel"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="单位"
          prop="contractAmount"
          prop="unit"
          width="80"
          show-overflow-tooltip
        />
        <el-table-column
          label="出库数量"
          prop="entryPersonName"
          prop="inboundQuantity"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="含税单价"
          prop="entryDate"
          prop="taxInclusiveUnitPrice"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="含税总价"
          prop="executionDate"
          prop="taxInclusiveTotalPrice"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="税率"
          prop="executionDate"
          prop="taxRate"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="不含税总价"
          prop="executionDate"
          prop="taxExclusiveTotalPrice"
          width="100"
          show-overflow-tooltip
        />
        <el-table-column
          label="出库人"
          prop="executionDate"
          prop="nickname"
          width="80"
          show-overflow-tooltip
        />
@@ -290,6 +290,10 @@
  getSalesLedgerWithProducts,
  delLedger,
} from "@/api/salesManagement/salesLedger.js";
import {
  getStockOutPage
} from "@/api/inventoryManagement/stockOut.js";
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
const tableData = ref([]);
@@ -351,10 +355,10 @@
};
const getList = () => {
  tableLoading.value = true;
  ledgerListPage({ ...searchForm.value, ...page })
  getStockOutPage({ ...searchForm.value, ...page })
    .then((res) => {
      tableLoading.value = false;
      tableData.value = res.records;
      tableData.value = res.data.records;
      tableData.value.map((item) => {
        item.children = [];
      });
src/views/inventoryManagement/issueManagement/index.vue
@@ -3,7 +3,7 @@
    <div class="search_form">
      <div>
        <span class="search_title">供应商名称:</span>
        <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="请输入" @change="handleQuery"
        <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
          clearable prefix-icon="Search" />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
      </div>
@@ -19,18 +19,18 @@
        :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="salesContractNo" width="100" show-overflow-tooltip />
        <el-table-column label="入库批次" prop="customerContractNo" width="160" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="customerName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="projectName" width="160" show-overflow-tooltip />
        <el-table-column label="单位" prop="contractAmount" width="70" show-overflow-tooltip />
        <el-table-column label="入库数量" prop="entryPersonName" width="90" show-overflow-tooltip />
        <el-table-column label="含税单价" prop="entryDate" width="100" show-overflow-tooltip />
        <el-table-column label="含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="税率(%)" prop="executionDate" width="80" show-overflow-tooltip />
        <el-table-column label="不含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="入库人" prop="executionDate" width="80" show-overflow-tooltip />
        <el-table-column label="入库时间" prop="inboundTime" width="100" show-overflow-tooltip />
        <el-table-column label="入库批次" prop="inboundBatch" width="160" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="supplierName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="specificationModel" width="160" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />
        <el-table-column label="入库数量" prop="inboundQuantity" 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="nickname" 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(scope.row);">出库</el-button>
@@ -77,6 +77,13 @@
  addOrUpdateSalesLedger,
  getSalesLedgerWithProducts, delLedger
} from "@/api/salesManagement/salesLedger.js";
import {
  getStockOutPage,
  addStockOut,
  updateStockOut,
  delStockOut,
  exportStockOut
} from "@/api/inventoryManagement/stockOut.js";
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -97,7 +104,7 @@
const dialogFormVisible = ref(false)
const data = reactive({
  searchForm: {
    customerName: '',
    supplierName: '',
  },
  form: {
    salesContractNo: '',
@@ -136,9 +143,9 @@
}
const getList = () => {
  tableLoading.value = true
  ledgerListPage({ ...searchForm.value, ...page }).then(res => {
  getStockOutPage({ ...searchForm.value, ...page }).then(res => {
    tableLoading.value = false
    tableData.value = res.records
    tableData.value = res.data.records
    tableData.value.map(item => {
      item.children = []
    })
src/views/inventoryManagement/receiptManagement/index.vue
@@ -3,7 +3,7 @@
    <div class="search_form">
      <div>
        <span class="search_title">供应商名称:</span>
        <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="请输入" @change="handleQuery"
        <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
          clearable prefix-icon="Search" />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
      </div>
@@ -19,18 +19,18 @@
        :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="salesContractNo" width="100" show-overflow-tooltip />
        <el-table-column label="入库批次" prop="customerContractNo" width="160" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="customerName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="projectName" width="160" show-overflow-tooltip />
        <el-table-column label="单位" prop="contractAmount" width="70" show-overflow-tooltip />
        <el-table-column label="入库数量" prop="entryPersonName" width="90" show-overflow-tooltip />
        <el-table-column label="含税单价" prop="entryDate" width="100" show-overflow-tooltip />
        <el-table-column label="含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="税率(%)" prop="executionDate" width="80" show-overflow-tooltip />
        <el-table-column label="不含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="入库人" prop="executionDate" width="80" show-overflow-tooltip />
        <el-table-column label="入库时间" prop="inboundTime" width="100" show-overflow-tooltip />
        <el-table-column label="入库批次" prop="inboundBatch" width="160" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="supplierName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="specificationModel" width="160" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip />
        <el-table-column label="入库数量" prop="inboundQuantity" 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="nickname" 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);">编辑</el-button>
@@ -144,6 +144,13 @@
  addOrUpdateSalesLedger,
  getSalesLedgerWithProducts, delLedger
} from "@/api/salesManagement/salesLedger.js";
import {
  getStockInPage,
  updateStockIn,
  addSutockIn,
  delStockIn,
  exportStockIn
} from "@/api/inventoryManagement/stockIn.js";
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -164,7 +171,7 @@
const dialogFormVisible = ref(false)
const data = reactive({
  searchForm: {
    customerName: '',
    supplierName: '',
  },
  form: {
    salesContractNo: '',
@@ -203,9 +210,9 @@
}
const getList = () => {
  tableLoading.value = true
  ledgerListPage({ ...searchForm.value, ...page }).then(res => {
  getStockInPage({ ...searchForm.value, ...page }).then(res => {
    tableLoading.value = false
    tableData.value = res.records
    tableData.value = res.data.records
    tableData.value.map(item => {
      item.children = []
    })
src/views/inventoryManagement/stockManagement/index.vue
@@ -3,7 +3,7 @@
    <div class="search_form">
      <div>
        <span class="search_title">供应商名称:</span>
        <el-input v-model="searchForm.customerName" style="width: 240px" placeholder="请输入" @change="handleQuery"
        <el-input v-model="searchForm.supplierName" style="width: 240px" placeholder="请输入" @change="handleQuery"
          clearable prefix-icon="Search" />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">搜索</el-button>
      </div>
@@ -19,18 +19,18 @@
        :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="salesContractNo" width="100" show-overflow-tooltip />
        <el-table-column label="入库日期" prop="salesContractNo" width="100" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="customerName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="salesman" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="projectName" width="100" show-overflow-tooltip />
        <el-table-column label="单位" prop="contractAmount" width="80" show-overflow-tooltip />
        <el-table-column label="出库数量" prop="entryPersonName" width="100" show-overflow-tooltip />
        <el-table-column label="含税单价" prop="entryDate" width="100" show-overflow-tooltip />
        <el-table-column label="含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="税率(%)" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="不含税总价" prop="executionDate" width="100" show-overflow-tooltip />
        <el-table-column label="入库人" prop="executionDate" width="80" show-overflow-tooltip />
        <el-table-column label="库存日期" prop="boundTime" width="100" show-overflow-tooltip />
        <el-table-column label="入库日期" prop="inboundTime" width="100" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="supplierName" width="160" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
        <el-table-column label="规格型号" prop="specificationModel" width="100" show-overflow-tooltip />
        <el-table-column label="单位" prop="unit" width="80" show-overflow-tooltip />
        <el-table-column label="出库数量" prop="stockQuantity" 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="100" show-overflow-tooltip />
        <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip />
        <el-table-column label="入库人" prop="nickname" 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);">编辑</el-button>
@@ -45,75 +45,85 @@
      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="供应商名称:" prop="salesContractNo">
            <el-form-item label="供应商名称:" prop="supplierName">
              <el-input v-model="form.salesContractNo" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="产品大类:" prop="salesman">
              <el-select v-model="form.salesman" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                  :value="item.nickName" />
            <el-form-item label="产品大类:" prop="productCategory">
              <el-select v-model="form.productCategory" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.productCategory" :label="item.productCategory"
                  :value="item.productCategory" />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="规格型号:" prop="customerContractNo">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
            <el-form-item label="规格型号:" prop="specificationModel">
              <el-input v-model="form.specificationModel" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="单位:" prop="customerId">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
              <el-input v-model="form.unit" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="出库时间:" prop="projectName">
              <el-date-picker style="width: 100%" v-model="form.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
            <el-form-item label="库存时间:" prop="projectName">
              <el-date-picker style="width: 100%" v-model="form.boundTime" 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="customerContractNo">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
            <el-form-item label="出库时间:" prop="projectName">
              <el-date-picker style="width: 100%" v-model="form.inboundTime" 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="customerContractNo">
              <el-input v-model="form.stockQuantity" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="含税单价:" prop="customerId">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
              <el-input v-model="form.taxInclusiveUnitPrice" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="含税总价:" prop="customerContractNo">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="含税总价:" prop="customerContractNo">
              <el-input v-model="form.taxInclusiveTotalPrice" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="税率:" prop="customerId">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
              <el-input v-model="form.taxRate" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="不含税总价:" prop="entryDate">
              <el-input v-model="form.customerContractNo" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="不含税总价:" prop="entryDate">
              <el-input v-model="form.taxExclusiveTotalPrice" placeholder="请输入" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="出库人:" prop="entryPerson">
              <el-select v-model="form.entryPerson" placeholder="请选择" clearable>
              <el-select v-model="form.inboundPerson" placeholder="请选择" clearable>
                <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
              </el-select>
            </el-form-item>
@@ -142,6 +152,12 @@
  addOrUpdateSalesLedger,
  getSalesLedgerWithProducts, delLedger
} from "@/api/salesManagement/salesLedger.js";
import {
  getStockManagePage ,
  updateStockManage,
  delStockManage,
  exportStockManage
} from "@/api/inventoryManagement/stockManage.js";
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
const tableData = ref([])
@@ -162,19 +178,22 @@
const dialogFormVisible = ref(false)
const data = reactive({
  searchForm: {
    customerName: '',
    supplierName: '',
  },
  form: {
    salesContractNo: '',
    salesman: '',
    customerContractNo: '',
    productCategory: '',
    specificationModel: '',
    unit: '',
    taxInclusiveUnitPrice: '',
    taxInclusiveTotalPrice: '',
    taxExclusiveTotalPrice: '',
    taxRate: '',
    stockQuantity: '',
    supplierName:'',
    customerId: '',
    projectName: '',
    entryPerson: '',
    entryDate: '',
    maintenanceTime: '',
    productData: [],
    executionDate: ''
    boundTime: '',
    inboundTime: '',
    userId: '',
  },
  rules: {
    salesman: [{ required: true, message: "请选择", trigger: "change" }],
@@ -201,9 +220,10 @@
}
const getList = () => {
  tableLoading.value = true
  ledgerListPage({ ...searchForm.value, ...page }).then(res => {
  getStockManagePage({ ...searchForm.value, ...page }).then(res => {
    tableLoading.value = false
    tableData.value = res.records
    tableData.value = res.data.records
    console.log('res', res)
    tableData.value.map(item => {
      item.children = []
    })