zouyu
2023-11-17 d8ac6057eaad648687699e25a575f3b7b8c1b102
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<template>
  <el-dialog
    :title="!dataForm.id ? '新增' : '修改'"
    :close-on-click-modal="false"
    :visible.sync="visible"
    append-to-body>
    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px" class="l-mes">
      <el-form-item label="零件编号" prop="partNo">
        <el-input v-model="dataForm.partNo" placeholder="" readonly>
          <el-button slot="append" icon="el-icon-search" @click="openStockDialog()"></el-button>
        </el-input>
      </el-form-item>
      <el-form-item label="零件批号" prop="partBatchNo">
        <el-input v-model="dataForm.partBatchNo" placeholder="零件批号" readonly></el-input>
      </el-form-item>
      <el-form-item label="库位" prop="locationName">
        <el-input v-model="dataForm.locationName" placeholder="库位编号" readonly>
        </el-input>
      </el-form-item>
      <el-form-item label="预留数量" prop="prepareQty">
        <el-input v-model="dataForm.prepareQty" placeholder="备料数量"></el-input>
      </el-form-item>
      <el-form-item label="出库数量" prop="outQty">
        <el-input v-model="dataForm.outQty" placeholder="出库数量" disabled></el-input>
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button @click="visible = false">取消</el-button>
      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
    </span>
    <Stock :currshowlist.sync="showStock" :reserveDetailMainId="this.reserveDetailMainId" ref="Stock" @listenToPartEvent="selectStock"/>
  </el-dialog>
</template>
 
<script>
  import {addObj, getObj, putObj} from '@/api/warehouse/preparedetail'
  import Stock from './stock'
  import {fetchReserveDetail} from "../../../api/warehouse/reservemain";
  import {validateSixDecimalNotNull} from "../../../util/validate";
  export default {
    components:{
      Stock
    },
    data () {
      return {
        dataList:[],
        reserveDetailMainId:'',
        reserveOptions:[],
        components:[],
        showStock: false,
        visible: false,
        dataForm: {
          id: 0,
          statuses:'',
          warehouseReserveDetailId:'',
          partId: '',
          partBatchNo: '',
          locationId: '',
          prepareQty: '',
          outQty: ''
        },
        dataRule: {
          partId: [
            { required: true, message: '零件编号不能为空', trigger: 'blur' }
          ],
          locNo: [
            { required: true, message: '零件编号不能为空', trigger: 'blur' }
          ],
          prepareQty: [
            { required: true, message: '备料数量不能为空', trigger: 'blur' },
            {validator: validateSixDecimalNotNull, trigger: 'blur'}
          ],
        }
      }
    },
    watch:{
      'dataForm.partId': {
        handler(newValue, oldValue) {
          fetchReserveDetail(Object.assign({
            partId:newValue,
            warehouseMainId:this.reserveDetailMainId
          })).then(response => {
            this.dataList = response.data.data.records
            this.dataForm.warehouseReserveDetailId = this.dataList[0].id
          })
        },
        deep:true
      }
    },
    methods: {
      init (id,reserveMainId) {
        this.dataForm.id = id || 0
        this.visible = true
        this.reserveDetailMainId = reserveMainId
        this.$nextTick(() => {
          this.$refs['dataForm'].resetFields()
          if (this.dataForm.id) {
            getObj(this.dataForm.id).then(response => {
              this.dataForm = response.data.data
            })
          }
        })
      },
      //实时库存弹窗
      openStockDialog(){
        this.showStock=true;
      },
      selectStock(stock){
        if (stock) {
          this.dataForm.locationId = stock.locationId
          this.dataForm.locationName = stock.locationName
          this.dataForm.partId = stock.partId
          this.dataForm.partNo = stock.partNo
          this.dataForm.partBatchNo = stock.partBatchNo
          this.$refs['dataForm'].validateField('partId', valid => {
          })
        }
      },
      // 表单提交
      dataFormSubmit () {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            if (this.dataForm.id) {
              putObj(this.dataForm).then(response => {
                this.dataForm = response.data.data
                this.$message.success('修改成功')
                this.visible = false
                this.$emit('refreshDataList',this.reserveDetailMainId)
              });
            } else {
              addObj(this.dataForm).then(response => {
                this.dataForm = response.data.data
                this.$message.success('添加成功')
                this.visible = false
                this.$emit('refreshDataList',this.reserveDetailMainId)
              })
            }
          }
        })
      }
    }
  }
</script>