黎星凯
2024-04-15 62b6a7fac3f2acde70b578431147c4a01f19c182
admin-web/src/views/stock/inventorycount/inventorytask/inventory.vue
@@ -1,30 +1,44 @@
<template>
  <win-md :title="setting.title" @close="close" :width="'1200px'">
    <el-row :gutter="20" style="margin-bottom: 20px" type="flex" align="middle">
      <el-col :span="6">盘点单号:{{ formData.businessFormCode }}</el-col>
      <el-col :span="6">盘点任务:{{ formData.businessTaskCode }}</el-col>
      <el-col :span="6">盘点仓库:{{ formData.warehouseId }}</el-col>
      <el-col :span="3" :offset="3">
        <my-button name="导出盘点单" site="form" size="medium" type="primary" />
      </el-col>
    </el-row>
    <el-table v-loading="loading" :data="formData.tableData" height="100%" :stripe="true" class="the-table">
      <el-table-column prop="goodsTemplateName" label="物品名称"> </el-table-column>
      <el-table-column prop="baseGoodsModelsId" label="型号" align="center"> </el-table-column>
      <el-table-column prop="classification" label="类别"> </el-table-column>
      <el-table-column prop="unit" label="单位" align="center"> </el-table-column>
      <el-table-column prop="kc" label="应有库存" align="center"> </el-table-column>
      <el-table-column prop="price" label="单价" align="center"> </el-table-column>
      <el-table-column prop="inventoryResult" label="金额" align="center"> </el-table-column>
      <el-table-column prop="inventoryCounts" label="实盘数量" align="center">
        <template slot-scope="scope">
            <el-input v-model="scope.row.inventoryCounts"></el-input>
        </template>
      </el-table-column>
    </el-table>
    <el-form v-loading="loading" class="form" ref="ruleForm" :model="formData" :rules="rules">
      <el-row :gutter="20" style="margin-bottom: 20px" type="flex" align="middle">
        <el-col :span="6">盘点单号:{{ formData.businessFormCode }}</el-col>
        <el-col :span="6">盘点任务:{{ formData.businessFormName }}</el-col>
        <el-col :span="6">盘点仓库:{{ formData.warehouseName }}</el-col>
        <el-col :span="3" :offset="3">
          <my-button name="导出盘点单" site="form" size="medium" type="primary" />
        </el-col>
      </el-row>
      <el-table
        :data="formData.formInventoryGoodsList"
        :rules="rules"
        height="500"
        :stripe="true"
        class="the-table"
      >
        <el-table-column prop="goodsTemplateName" label="物品名称"> </el-table-column>
        <el-table-column prop="baseGoodsModelsName" label="型号" align="center"> </el-table-column>
        <el-table-column prop="baseGoodsModelsId" label="型号id" v-show="false" align="center"> </el-table-column>
        <el-table-column prop="type" label="类别"> </el-table-column>
        <el-table-column prop="unit" label="单位" align="center"> </el-table-column>
        <el-table-column prop="inventoryCount" label="应有库存" align="center"> </el-table-column>
        <el-table-column prop="realNum" label="实盘数量" align="center">
          <template slot-scope="scope">
            <el-form-item
              style="margin-bottom: 0"
              label-width="0"
              :prop="`formInventoryGoodsList[${scope.$index}].realNum`"
              :rules="rules.realNum"
            >
              <el-input v-model.number="scope.row.realNum" maxlength="8"></el-input>
            </el-form-item>
          </template>
        </el-table-column>
      </el-table>
    </el-form>
    <div slot="footer" align="center" class="dialog-footer">
      <my-button name="暂存" site="form" type="primary" @click="close" />
      <my-button name="暂存" site="form" type="primary" @click="staging" />
      <my-button name="完成盘点" site="form" type="success" @click="save" />
    </div>
  </win-md>
@@ -33,6 +47,8 @@
<script>
import winMd from '@/components/win/win-md';
import myButton from '@/components/myButton/myButton';
import {inventoryDetail, inventoryFinish, inventoryQuery, inventoryTemporaryStorage} from '@/api/stock/inventory';
export default {
  components: { winMd, myButton },
  props: {
@@ -43,26 +59,40 @@
  },
  data() {
    return {
      loading: false,
      loading: true,
      btnLoading: false,
      formData: {
        businessFormCode: '2023080812',
        businessTaskCode: '2023年9月盘点单',
        warehouseId: '开封市仓库',
        tableData: [],
        businessFormCode: '',
        businessFormName: '',
        warehouseName: '',
        formInventoryGoodsList: [],
      },
      rules: {
        realNum: [
          { required: true, message: '请输入', trigger: 'blur' },
          { type: 'number', message: '请输入数字值' },
        ],
      },
    };
  },
  created() {
    for (let i = 0; i < 10; i++) {
      this.formData.tableData.push({
        goodsTemplateName: '施乐黑色碳粉',
        baseGoodsModelsId: '施乐c2201',
        classification: 'A',
        unit: '套',
        kc: 10,
        price: 20,
        inventoryResult: 200,
        inventoryCounts: 0,
    const info = JSON.parse(this.setting.info);
    if (info.states == 1) {
      // 继续盘点
      inventoryDetail({ id: this.setting.id }).then((res) => {
        this.loading = false
        this.formData = res;
        this.formData.id = this.setting.id;
      }).catch(()=>{
        this.loading = false
      });
    } else {
      inventoryQuery({ id: this.setting.id }).then((res) => {
        this.loading = false
        this.formData = res;
        this.formData.id = this.setting.id;
      }).catch(()=>{
        this.loading = false
      });
    }
  },
@@ -70,9 +100,39 @@
    close() {
      this.$emit('close');
    },
    staging() {
      const params = {
        id: this.formData.id,
        inventoryGoodsList: this.formData.formInventoryGoodsList,
      };
      this.loading = true
      inventoryTemporaryStorage(params).then(() => {
        this.loading = false
        this.$message.success('暂存成功!');
        this.close();
        this.$emit('search');
      }).catch(()=>{
        this.loading = false
      });
    },
    save() {
    }
      this.$refs['ruleForm'].validate((valid) => {
        if (valid) {
          const params = {
            ...this.formData,
            inventoryGoodsList: this.formData.formInventoryGoodsList,
          };
          this.loading = true
          inventoryFinish(params).then(() => {
            this.$message.success('暂存成功!');
            this.close();
            this.$emit('search');
          }).catch(()=>{
            this.loading = false
          });
        }
      });
    },
  },
};
</script>