spring
2025-04-08 4f94a66bc8ad9a57295f161de9195d5528b1d181
src/views/business/finishedProductSampling/index.vue
@@ -4,261 +4,134 @@
    <div class="card">
      <div class="title">
        <el-button size="small" type="primary" @click="addTemQuarter">新增</el-button>
        <el-button size="small" type="primary" @click="quarterSample">季度抽样</el-button>
        <el-button size="small" type="primary" @click="quarterSample">可靠性抽样</el-button>
        <el-button size="small" type="primary" @click="handleStockList">刷新</el-button>
      </div>
      <el-table
        ref="finishedproducttransferTable"
        v-loading="tableLoading"
        :data="stockList"
        :header-cell-style="lineSideWarehouseTableHeaderCellStyle"
        :row-class-name="lineSideWarehouseTableRowClassName"
        class="finishedproducttransfer-table"
        height="calc(100vh - 240px)"
        @selection-change="handleSelectionChange"
      >
      <el-table ref="finishedproducttransferTable" v-loading="tableLoading" :data="stockList"
        :header-cell-style="lineSideWarehouseTableHeaderCellStyle" :row-class-name="lineSideWarehouseTableRowClassName"
        class="finishedproducttransfer-table" height="calc(100vh - 240px)" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="45"></el-table-column>
        <el-table-column
          :show-overflow-tooltip="true"
          align="center"
          label="客户订单编号"
          prop="customerOrderNo"
          width="140"
        >
        <el-table-column :show-overflow-tooltip="true" align="center" label="客户订单编号" prop="customerOrderNo" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">客户订单编号</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.customerOrderNo"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.customerOrderNo" clearable size="mini" type="text"
                @clear="handleStockList" @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.customerOrderNo }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="成品零件号"
          prop="partNo"
          width="140"
        >
        <el-table-column align="center" label="成品零件号" prop="partNo" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">成品零件号</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.partNo"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.partNo" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.partNo }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="零件名称"
          prop="partName"
          width="140"
        >
        <el-table-column align="center" label="零件名称" prop="partName" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">零件名称</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.partName"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.partName" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.partName }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :show-overflow-tooltip="true"
          align="center"
          label="仓库"
          prop="warehouseName"
          width="140"
        >
        <el-table-column :show-overflow-tooltip="true" align="center" label="仓库" prop="warehouseName" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">仓库</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.warehouseName"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.warehouseName" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.warehouseName }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :show-overflow-tooltip="true"
          align="center"
          label="库位号"
          prop="locationNo"
          width="140"
        >
        <el-table-column :show-overflow-tooltip="true" align="center" label="库位号" prop="locationNo" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">库位号</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.locationNo"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.locationNo" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.locationNo }}</span>
          </template>
        </el-table-column>
        <el-table-column
          :show-overflow-tooltip="true"
          align="center"
          label="库位名称"
          prop="locationName"
          width="140"
        >
        <el-table-column :show-overflow-tooltip="true" align="center" label="库位名称" prop="locationName" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">库位名称</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.locationName"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.locationName" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.locationName }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="批次号"
          prop="partBatchNo"
          width="140"
        >
        <el-table-column align="center" label="批次号" prop="partBatchNo" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">批次号</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.partBatchNo"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.partBatchNo" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.partBatchNo }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="入库来源"
          prop="inSource"
          width="140"
        >
        <el-table-column align="center" label="入库来源" prop="inSource" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">入库来源</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.inSource"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.inSource" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.inSource }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="外护颜色"
          prop="outerColor"
          width="140"
        >
        <el-table-column align="center" label="外护颜色" prop="outerColor" width="140">
          <template slot="header" slot-scope="scope">
            <div style="line-height: 14px;margin-bottom: 6px">外护颜色</div>
            <div class="th" @click.stop>
              <el-input
                v-model="queryParamOne.outerColor"
                clearable
                size="mini"
                type="text"
                @clear="handleStockList"
                @keyup.enter.native="handleStockList"
              ></el-input>
              <el-input v-model="queryParamOne.outerColor" clearable size="mini" type="text" @clear="handleStockList"
                @keyup.enter.native="handleStockList"></el-input>
            </div>
          </template>
          <template slot-scope="scope">
            <span>{{ scope.row.outerColor }}</span>
          </template>
        </el-table-column>
        <el-table-column
          align="center"
          label="库存数量"
          prop="stockQuantity"
          width="140"
        >
        <el-table-column align="center" label="库存数量" prop="stockQuantity" width="140">
        </el-table-column>
        <el-table-column
          align="center"
          label="可用库存数量"
          prop="availableStockQuantity"
          width="140"
        >
        <el-table-column align="center" label="可用库存数量" prop="availableStockQuantity" width="140">
          <template slot-scope="scope">
            <span>{{ scope.row.availableStockQuantity }}</span>
          </template>
        </el-table-column>
      </el-table>
      <div class="pagin-page" style="margin-top: 0;margin-bottom: 0;">
        <el-pagination
          background
          :current-page="queryReport.current"
          :page-size="queryReport.size"
          :page-sizes="[10, 15, 20, 50, 100]"
          :total="queryReport.total"
          layout="total, sizes, prev, pager, next, jumper"
          style="text-align:right;padding: 20px 16px;"
          @size-change="handleSizeChangeReport"
          @current-change="handleCurrentChangeReport"
        >
        <el-pagination background :current-page="queryReport.current" :page-size="queryReport.size"
          :page-sizes="[10, 15, 20, 50, 100]" :total="queryReport.total"
          layout="total, sizes, prev, pager, next, jumper" style="text-align:right;padding: 20px 16px;"
          @size-change="handleSizeChangeReport" @current-change="handleCurrentChangeReport">
        </el-pagination>
      </div>
    </div>
@@ -269,10 +142,11 @@
<script>
import AddQuarterItem from "./components/addQuarterItem.vue";
import {getIfsStock} from "@/api/business/finishedProductSampling";
import {mapGetters} from "vuex";
import { getIfsStock } from "@/api/business/finishedProductSampling";
import { mapGetters } from "vuex";
export default {
  name: 'FinishedProductSampling',
  data() {
    return {
      stockList: [],
@@ -306,7 +180,7 @@
      operationType: ''
    }
  },
  components: {AddQuarterItem},
  components: { AddQuarterItem },
  mounted() {
    this.getIfsStock()
  },
@@ -319,11 +193,11 @@
    ...mapGetters(["nickName"]),
  },
  methods: {
    // 季度抽样
    quarterSample () {
    // 可靠性抽样
    quarterSample() {
      this.$refs.addQuarterItem.openDia(this.quarterTemItems, 'add')
    },
    addTemQuarter () {
    addTemQuarter() {
      if (this.multipleSelection.length > 0) {
        const multipleSelection = JSON.parse(JSON.stringify(this.multipleSelection))
        if (multipleSelection.length > 0) {
@@ -394,7 +268,7 @@
      }
      return newReqParam
    },
    lineSideWarehouseTableHeaderCellStyle({row, column, rowIndex, columnIndex}) {
    lineSideWarehouseTableHeaderCellStyle({ row, column, rowIndex, columnIndex }) {
      let headerStyle = 'background:#FAFAFA;color:#666;'
      if (columnIndex === 0) {
        headerStyle += 'border-radius: 6px 0px 0px 0px;'
@@ -434,11 +308,13 @@
>>>.el-table__header {
  height: 70px;
}
.card {
  height: calc(100% - 40px);
  background: #ffffff;
  padding: 10px;
}
.title {
  text-align: right;
  margin-bottom: 10px;