payne
2024-04-26 3946fe3c23ff022b7e1d27c2a29041496ef6d529
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<template>
  <a-modal title="编辑库区信息" :width="1100" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-form-item label="库区编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库区编码"
            v-decorator="['areaCode', { rules: [{ required: true, message: '请输入库区编码!' }] }]" />
        </a-form-item>
        <!-- <a-form-item label="仓库编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入仓库编号" v-decorator="['warehouseCode', {rules: [{required: true, message: '请输入仓库编号!'}]}]" />
        </a-form-item> -->
        <!-- <a-form-item label="仓库名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入仓库名称"
            v-decorator="['warehouseName', { rules: [{ required: true, message: '请输入仓库名称!' }] }]" />
        </a-form-item> -->
        <a-form-item label="库区名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库区名称"
            v-decorator="['areaName', { rules: [{ required: true, message: '请输入库区名称!' }] }]" />
        </a-form-item>
        <a-form-item label="库区描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库区描述" v-decorator="['areaDesc']" />
        </a-form-item>
        <!-- <a-form-item label="库区状态" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入库区状态" style="width: 100%"
            v-decorator="['areaStatus', { rules: [{ required: true, message: '请输入库区状态!' }] }]" />
        </a-form-item> -->
        <a-form-item label="库存地编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库存地编码"
            v-decorator="['erpCode', { rules: [{ required: true, message: '请输入库存地编码!' }] }]" />
        </a-form-item>
        <a-form-item label="所属仓库" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-select style="width: 100%" placeholder="请选择所属仓库"
            v-decorator="['warehouseId', { rules: [{ required: true, message: '请选择所属仓库!' }] }]">
            <a-select-option v-for="(item, index) in warehouseIdData" :key="index" :value="item.id">{{ item.name
            }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="零件级管控" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch
            v-decorator="['isBarcodeLevelControl', { rules: [{ required: true, message: '请选择零件级管控!' }], valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="检验先进先出" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch
            v-decorator="['isFIFO', { rules: [{ required: true, message: '请选择检验先进先出!' }], valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="零件级管控" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch
            v-decorator="['isPartLevelControl', { rules: [{ required: true, message: '请选择零件级管控!' }], valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="允许混淆" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch
            v-decorator="['isAllowConfusion', { rules: [{ required: true, message: '请选择允许混淆!' }], valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="允许负库存" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch
            v-decorator="['isAllowNegativeInventory', { rules: [{ required: true, message: '请选择允许负库存!' }], valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="是否虚拟" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch v-decorator="['isVirtually', { valuePropName: 'checked' }]" />
        </a-form-item>
        <a-form-item label="是否禁用" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" />
        </a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
 
<script>
import moment from 'moment'
import {
  WmsAreaEdit
} from '@/api/modular/main/WmsBase/WmsAreaManage'
import { WmsWarehousePage, WmsWarehouseDelete, WmsWarehouseToExcel } from '@/api/modular/main/WmsBase/WmsWarehouseManage'
 
export default {
  data() {
    return {
      Id: 0,
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 15 }
      },
      record: {},
      warehouseIdData: [],
      visible: false,
      confirmLoading: false,
      form: this.$form.createForm(this)
    }
  },
  created() {
    WmsWarehousePage().then((d) => {
        this.warehouseIdData = d.data.rows || []
      }).catch(() => {
      })
  },
  methods: {
    moment,
    // 初始化方法
    edit(record) {
      this.visible = true;
      this.Id = record.id;
      this.$nextTick(() => {
      });
      //深度拷贝 移除VUE的监听,防止INDEX页面值变动
      this.record = JSON.parse(JSON.stringify(record))
      // const warehouseIdOption = this.$options
      // this.warehouseIdData = warehouseIdOption.filters['dictData']('area_type')
      this.$nextTick(() => {
        this.form.setFieldsValue(
          {
            ...record
          }
        )
      })
    },
    handleSubmit() {
      const { form: { validateFields } } = this
      this.confirmLoading = true
      validateFields((errors, values) => {
        if (!errors) {
          for (const key in values) {
            if (values[key] == null) continue
            if (typeof (values[key]) === 'object') {
              values[key] = JSON.stringify(values[key])
              this.record[key] = values[key]
            } else {
              this.record[key] = values[key]
            }
          }
          WmsAreaEdit(this.record).then((res) => {
            if (res.success) {
              this.$message.success('编辑成功')
              this.confirmLoading = false
              this.$emit('ok', this.record)
              this.handleCancel()
            } else {
              this.$message.error('编辑失败:' + JSON.stringify(res.message))
            }
          }).finally((res) => {
            this.confirmLoading = false
          })
        } else {
          this.confirmLoading = false
        }
      });
    },
    handleCancel() {
      this.form.resetFields()
      this.visible = false
    }
  }
}
</script>
<style lang="less" scoped>
  .ant-row.ant-form-item {
    width: 50% !important;
    display: inline-block;
  }
</style>