haoyahui
2023-11-22 9834dbff448908d2008d8c52a2544aad00c099b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<template>
  <win-md :title="setting.title" @close="close" :width="'1200px'">
    <el-form 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
        v-loading="loading"
        :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="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
              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="staging" />
      <my-button name="完成盘点" site="form" type="success" @click="save" />
    </div>
  </win-md>
</template>
 
<script>
import winMd from '@/components/win/win-md';
import myButton from '@/components/myButton/myButton';
import { inventoryQuery, inventoryTemporaryStorage, inventoryFinish, inventoryDetail } from '@/api/stock/inventory';
export default {
  components: { winMd, myButton },
  props: {
    setting: {
      type: Object,
      default: () => {},
    },
  },
  data() {
    return {
      loading: false,
      btnLoading: false,
      formData: {
        businessFormCode: '',
        businessFormName: '',
        warehouseName: '',
        formInventoryGoodsList: [],
      },
      rules: {
        realNum: [
          { required: true, message: '请输入', trigger: 'blur' },
          { type: 'number', message: '请输入数字值' },
        ],
      },
    };
  },
  created() {
    const info = JSON.parse(this.setting.info);
    console.log('info', info);
    if (info.states == 1) {
      // 继续盘点
      inventoryDetail({ id: this.setting.id }).then((res) => {
        this.formData = res;
        this.formData.id = this.setting.id;
      });
    } else {
      inventoryQuery({ id: this.setting.id }).then((res) => {
        this.formData = res;
        this.formData.id = this.setting.id;
      });
    }
  },
  methods: {
    close() {
      this.$emit('close');
    },
    staging() {
      const params = {
        id: this.formData.id,
        inventoryGoodsList: this.formData.formInventoryGoodsList,
      };
      inventoryTemporaryStorage(params).then(() => {
        this.$message.success('暂存成功!');
        this.close();
        this.$emit('search');
      });
    },
    save() {
      this.$refs['ruleForm'].validate((valid) => {
        if (valid) {
          const params = {
            ...this.formData,
            inventoryGoodsList: this.formData.formInventoryGoodsList,
          };
          inventoryFinish(params).then(() => {
            this.$message.success('暂存成功!');
            this.close();
            this.$emit('search');
          });
        }
      });
    },
  },
};
</script>
 
<style></style>