zhouwx
2024-08-19 cd84a28754fc1b3fadb7027245333d6d3ff330a3
src/views/hazardousChemicals/warehouseManage/components/printCode.vue
@@ -8,6 +8,24 @@
        :close-on-press-escape="false"
        :close-on-click-modal="false"
    >
      <div style="display: flex;justify-content: space-between">
        <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
          <el-form-item label="条码编号:" >
            <el-input v-model="state.queryParams.code" placeholder="请输入条码编号" ></el-input>
          </el-form-item>
          <el-form-item >
            <el-button
                type="primary"
                @click="getList"
            >查询</el-button>
            <el-button
                type="primary"
                plain
                @click="reset"
            >重置</el-button>
          </el-form-item>
        </el-form>
      </div>
      <el-table v-loading="state.loading" :data="state.dataList" :border="true" :show-header="false" height="550"  @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"  align="center" />
        <el-table-column align="center" >
@@ -45,6 +63,8 @@
import {addWarehouse, checkName, editWarehouse} from "@/api/hazardousChemicals/warehouse";
import {verifyPhone} from "@/utils/validate";
import {checkBasicName} from "@/api/hazardousChemicals/basicInfo";
import {getProDetail, getProductRecord} from "@/api/hazardousChemicals/productRecord";
import {getRawDetail} from "@/api/hazardousChemicals/rawRecord";
const dialogVisible = ref(false);
const title = ref("");
@@ -58,7 +78,10 @@
  total: 0,
  queryParams:{
    pageNum: 1,
    pageSize: 5
    pageSize: 5,
    warehouseId: null,
    basicId: null,
    code: ''
  },
  chooseList: []
@@ -66,30 +89,11 @@
const originalList = ref([])
const openDialog = async (type,value) => {
  state.queryParams.warehouseId =value.warehouseId
  state.queryParams.basicId =value.basicId
  title.value = type;
  if(type == 'pro'){
    for(let i=value.startCode ; i<=value.endCode;i++){
      const obj = {
        name: value.productBasic.name,
        productSn: value.productBasic.productSn,
        code: value.codePrex+(i+"").padStart(4,'0')
      }
      state.dataList.push(obj)
    }
  }else {
  await getList()
    for(let i=value.startCode ; i<=value.endCode;i++){
      const obj = {
        name: value.hazmatBasic.name,
        productSn: value.hazmatBasic.productSn,
        code: value.codePrex+(i+"").padStart(4,'0')
      }
      state.dataList.push(obj)
    }
  }
  state.total = state.dataList.length
  originalList.value = state.dataList
  getList()
  console.log('state.dataList',state.dataList)
  dialogVisible.value = true;
}
@@ -115,13 +119,49 @@
  state.dataList = [];
  state.queryParams = {
    pageNum: 1,
    pageSize: 5
    pageSize: 5,
    warehouseId: null,
    basicId: null,
    code: ''
  }
  state.total = 0
  state.chooseList = []
}
const getList = () => {
  state.dataList = originalList.value.slice((state.queryParams.pageNum-1) * state.queryParams.pageSize, state.queryParams.pageNum * state.queryParams.pageSize)
const getList = async () => {
  if(title.value == 'pro'){
    const res = await getProDetail(state.queryParams)
    if(res.code == 200){
      state.dataList = res.data.list.map(item => {
       return{
         ...item,
         name: item.productBasic.name,
         productSn: item.productBasic.productSn
       }
      })
      state.total = res.data.total
      originalList.value = state.dataList
    }else{
      ElMessage.warning(res.message)
    }
  }else {
    const res = await getRawDetail(state.queryParams)
    if(res.code == 200){
      state.dataList = res.data.list.map(item => {
        return{
          ...item,
          name: item.hazmatBasic.name,
          productSn: item.hazmatBasic.productSn
        }
      })
      state.total = res.data.total
      originalList.value = state.dataList
    }else{
      ElMessage.warning(res.message)
    }
  }
}
const printEvent=() => {
@@ -180,6 +220,10 @@
  :deep(.el-form .el-form-item__label) {
    font-size: 15px;
  }
  :deep(.el-dialog__body) {
    padding: 10px 20px 0 20px;
  }
  .file {
    display: flex;
    flex-direction: column;