Blame view

ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentDetailCombineModal.vue 10.7 KB
肖超群 authored
1
2
3
4
5
6
7
8
9
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
10
11
    cancelText="关闭"
  >
肖超群 authored
12
13
14
15
16
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="物料编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode">
17
              <a-input v-model="model.materialCode" placeholder="请输入物料编码" style="width: 100%" />
肖超群 authored
18
19
20
21
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialName">
22
              <a-input v-model="model.materialName" placeholder="请输入物料名称" style="width: 100%" />
肖超群 authored
23
24
25
26
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="可出数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qty">
27
              <a-input-number v-model="model.qty" placeholder="请输入可出数量" style="width: 100%" />
肖超群 authored
28
29
30
31
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="出库数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="taskQty">
32
              <a-input-number v-model="model.taskQty" placeholder="请输入出库数量" style="width: 100%" />
肖超群 authored
33
34
35
36
37
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
肖超群 authored
38
39
40
41
42
43
    <!-- table区域-begin -->
    <div>
      <a-table
        ref="table"
        rowKey="id"
        size="middle"
44
45
46
        bordered
        class="j-table-force-nowrap"
        :scroll="{x:true}"
肖超群 authored
47
48
        :columns="columns"
        :dataSource="dataSource"
49
50
51
52
53
        :pagination="false"
        :loading="loading"
      >
        <span slot="action" slot-scope="text, record">
          <a-button @click="combine(record)" type="primary">配盘</a-button>
肖超群 authored
54
55
56
        </span>
      </a-table>
    </div>
肖超群 authored
57
58
59
60
  </j-modal>
</template>

<script>
61
62
63
64
65
66
67
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { httpAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import { searchMaterialByCode, getInventoryFromShipmentDetail } from '@/api/api'
import { listShipmentByShipmentDetailId, combination } from '@/api/api'
import { filterObj } from '@/utils/util'
import { deleteAction, getAction, downFile, getFileAccessHttpUrl } from '@/api/manage'
肖超群 authored
68
肖超群 authored
69
export default {
70
  name: 'ShipmentDetailCombineModal',
肖超群 authored
71
  components: {
72
    JeecgListMixin
肖超群 authored
73
74
75
76
77
78
79
80
81
82
  },
  props: {
    mainId: {
      type: String,
      required: false,
      default: ''
    }
  },
  data() {
    return {
83
      title: '操作',
肖超群 authored
84
85
86
87
      width: 1000,
      /* 分页参数 */
      ipagination: {
        current: 1,
88
        pageSize: 100,
肖超群 authored
89
90
        pageSizeOptions: ['10', '20', '30'],
        showTotal: (total, range) => {
91
          return range[0] + '-' + range[1] + ' 共' + total + '条'
肖超群 authored
92
        },
肖超群 authored
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
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0
      },
      /* 数据源 */
      dataSource: [],
      queryParam: {},
      combineParam: {},
      shipmentParam: {},
      visible: false,
      materialList: {},
      querySource: {},
      /* 筛选参数 */
      filters: {},
      /* table加载状态 */
      loading: false,
      /* table选中keys*/
      selectedRowKeys: [],
      /* table选中records*/
      selectionRows: [],
      /* 查询折叠 */
      toggleSearchStatus: false,
      /* 高级查询条件生效状态 */
      superQueryFlag: false,
      /* 高级查询条件 */
      superQueryParams: '',
      /** 高级查询拼接方式 */
      superQueryMatchType: 'and',
      model: {},
      labelCol: {
123
124
        xs: { span: 24 },
        sm: { span: 5 }
肖超群 authored
125
126
      },
      wrapperCol: {
127
128
        xs: { span: 24 },
        sm: { span: 16 }
肖超群 authored
129
130
131
132
133
      },
      // 表头
      columns: [
        {
          title: '容器编码',
134
          align: 'center',
肖超群 authored
135
          dataIndex: 'containerCode'
肖超群 authored
136
        },
肖超群 authored
137
138
        {
          title: '库位编码',
139
          align: 'center',
肖超群 authored
140
          dataIndex: 'locationCode'
肖超群 authored
141
        },
肖超群 authored
142
143
        {
          title: '物料编码',
144
          align: 'center',
肖超群 authored
145
          dataIndex: 'materialCode'
肖超群 authored
146
        },
肖超群 authored
147
148
        {
          title: '物料名称',
149
          align: 'center',
肖超群 authored
150
151
152
153
          dataIndex: 'materialName'
        },
        {
          title: '库存数量',
154
          align: 'center',
肖超群 authored
155
156
157
158
          dataIndex: 'qty'
        },
        {
          title: '锁定数量',
159
          align: 'center',
肖超群 authored
160
161
162
163
          dataIndex: 'taskQty'
        },
        {
          title: '库存状态',
164
165
          align: 'center',
          dataIndex: 'inventoryStatus'
肖超群 authored
166
167
168
        },
        {
          title: '批次',
169
          align: 'center',
肖超群 authored
170
171
172
173
          dataIndex: 'batch'
        },
        {
          title: '创建人',
174
          align: 'center',
肖超群 authored
175
          dataIndex: 'createBy'
肖超群 authored
176
        },
肖超群 authored
177
178
        {
          title: '创建日期',
179
          align: 'center',
肖超群 authored
180
181
182
183
184
          dataIndex: 'createTime'
        },
        {
          title: '操作',
          dataIndex: 'action',
185
186
          align: 'center',
          fixed: 'right',
肖超群 authored
187
          width: 147,
188
          scopedSlots: { customRender: 'action' }
肖超群 authored
189
        }
肖超群 authored
190
191
192
193
      ],
      confirmLoading: false,
      validatorRules: {},
      url: {
194
195
196
        add: '/shipment/shipmentHeader/addShipmentDetail',
        edit: '/shipment/shipmentHeader/editShipmentDetail',
        list: '/shipment/shipmentCombination/getInventoryFromShipmentDetail'
肖超群 authored
197
      }
肖超群 authored
198
199
200
    }
  },
  created() {
肖超群 authored
201
    //备份model原始值
202
203
    this.modelDefault = JSON.parse(JSON.stringify(this.model))
    this.searchMaterial()
肖超群 authored
204
205
  },
  methods: {
206
207
208
209
210
    getSuperFieldList() {
      let fieldList = []
      fieldList.push({ type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status' })
      this.superFieldList = fieldList
    },
肖超群 authored
211
    add() {
212
213
      this.edit(this.modelDefault)
      this.model.inventoryStatus = 'good'
肖超群 authored
214
    },
肖超群 authored
215
216
    edit(record) {
      // this.model = Object.assign({}, record);
217
218
      this.shipmentParam = record
      this.searchShipment()
肖超群 authored
219
220
    },
    close() {
221
222
223
      this.$emit('close')
      this.visible = false
      this.$refs.form.clearValidate()
肖超群 authored
224
225
    },
    combine(record) {
226
227
228
229
230
231
      const that = this
      that.querySource = record
      this.combineParam.shipmentDetailID = this.model.id
      this.combineParam.inventoryDetailID = record.id
      this.combineParam.shipQty = this.model.taskQty
      combination(this.combineParam).then(res => {
肖超群 authored
232
233
        if (res.success) {
          // this.model = res.result;
234
235
          this.$message.success(res.message)
          this.searchShipment()
肖超群 authored
236
237
        } else {
          this.$message.warning(res.message)
肖超群 authored
238
        }
239
      })
肖超群 authored
240
241
    },
    searchShipment() {
242
243
244
      const that = this
      that.querySource = this.shipmentParam
      listShipmentByShipmentDetailId(that.querySource).then(res => {
肖超群 authored
245
        if (res.success) {
246
247
248
          this.model = res.result
          this.visible = true
          this.searchInventory(that.querySource)
肖超群 authored
249
250
        } else {
          this.$message.warning(res.message)
肖超群 authored
251
        }
252
      })
肖超群 authored
253
254
    },
    searchInventory(record) {
255
256
257
      const that = this
      that.querySource = record
      console.log('searchInventory')
肖超群 authored
258
259
260
      // getInventoryFromShipmentDetail(that.querySource).then((res) => {
      //   this.dataSource = res.result;
      // });
261
      this.searchQuery()
肖超群 authored
262
263
    },
    searchQuery() {
264
      this.loadData(1)
肖超群 authored
265
266
267
268
269
270
271
      // 点击查询清空列表选中行
      // https://gitee.com/jeecg/jeecg-boot/issues/I4KTU1
      // this.selectedRowKeys = []
      // this.selectionRows = []
    },
    loadData(arg) {
      if (!this.url.list) {
272
        this.$message.error('请设置url.list属性!')
肖超群 authored
273
274
275
276
        return
      }
      //加载数据 若传入参数1则加载第一页的内容
      if (arg === 1) {
277
        this.ipagination.current = 1
肖超群 authored
278
      }
279
280
281
282
283
284
285
286
287
288
289
290
291
      var params = this.getQueryParams() //查询条件
      this.loading = true
      getAction(this.url.list, params)
        .then(res => {
          if (res.success) {
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            this.dataSource = res.result.records || res.result
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
              this.ipagination.total = 0
            }
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
肖超群 authored
292
          } else {
293
            this.$message.warning(res.message)
肖超群 authored
294
          }
295
296
297
298
        })
        .finally(() => {
          this.loading = false
        })
肖超群 authored
299
300
301
    },
    getQueryField() {
      //TODO 字段权限控制
302
303
304
305
306
      var str = 'id,'
      this.columns.forEach(function(value) {
        str += ',' + value.dataIndex
      })
      return str
肖超群 authored
307
308
309
310
311
312
313
314
    },
    getQueryParams() {
      //获取查询条件
      let sqp = {}
      if (this.superQueryParams) {
        sqp['superQueryParams'] = encodeURI(this.superQueryParams)
        sqp['superQueryMatchType'] = this.superQueryMatchType
      }
315
316
317
318
319
320
      this.queryParam.id = this.model.id
      var param = Object.assign(sqp, this.queryParam, this.isorter, this.filters)
      param.field = this.getQueryField()
      param.pageNo = this.ipagination.current
      param.pageSize = this.ipagination.pageSize
      return filterObj(param)
肖超群 authored
321
322
    },
    handleOk() {
323
324
      const that = this
      that.close()
肖超群 authored
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
      // 触发表单验证
      // this.$refs.form.validate(valid => {
      //   if (valid) {
      //     that.confirmLoading = true;
      //     let httpurl = '';
      //     let method = '';
      //     if(!this.model.id){
      //       httpurl+=this.url.add;
      //       method = 'post';
      //     }else{
      //       httpurl+=this.url.edit;
      //        method = 'put';
      //     }
      //     this.model['shipmentId'] = this.mainId
      //     httpAction(httpurl,this.model,method).then((res)=>{
      //       if(res.success){
      //         that.$message.success(res.message);
      //         that.$emit('ok');
      //       }else{
      //         that.$message.warning(res.message);
      //       }
      //     }).finally(() => {
      //       that.confirmLoading = false;
      //       that.close();
      //     })
      //   }else{
      //      return false
      //   }
      // })
    },
    handleCancel() {
      this.close()
    },
    searchMaterial() {
359
360
361
362
363
      const that = this
      that.querySource.materialCode = that.model.materialCode
      console.log('model.materialCode:' + that.model.materialCode)
      searchMaterialByCode(that.querySource).then(res => {
        that.materialList = res.result
肖超群 authored
364
      })
365
    }
肖超群 authored
366
  }
肖超群 authored
367
}
肖超群 authored
368
</script>