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
<template>
  <a-modal
    title="编辑单据表"
    :width="900"
    :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 disabled placeholder="请输入单据编号" v-decorator="['no']" />
        </a-form-item>
        <a-form-item label="送货通知单号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入送货通知单号" v-decorator="['sourceBillNo']" />
        </a-form-item>
        <a-form-item label="供应商编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入供应商编码" v-decorator="['vendorcode']" />
        </a-form-item>
        <a-form-item label="供应商名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入供应商名称" v-decorator="['vendorname']" />
        </a-form-item>
        <a-form-item label="公司名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入公司名称" v-decorator="['companyname']" />
        </a-form-item>
        <a-form-item label="仓管员" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入仓管员" v-decorator="['warehouseKeepername']" />
        </a-form-item>
        <a-form-item label="贸易方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-select style="width: 100%" placeholder="请选择贸易方式" v-decorator="['tradeMode', {rules: [{ required: true, message: '请选择贸易方式!' }]}]">
            <a-select-option v-for="(item,index) in tradeModeData" :key="index" :value="Number(item.code)">{{ item.name }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="仓储中心" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入仓储中心" v-decorator="['warehouseCentername']" />
        </a-form-item>
        <a-form-item label="仓间" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入仓间" v-decorator="['storeRoomname']" />
        </a-form-item>
        <a-form-item label="报关单号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入报关单号" v-decorator="['declarationCode']" />
        </a-form-item>
        <a-form-item label="专业" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入专业" v-decorator="['majorname']" />
        </a-form-item>
        <a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-textarea placeholder="请输入备注" v-decorator="['remarks']" />
        </a-form-item>
        <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
 
<script>
  import {
    WmsOrderEdit
  } from '@/api/modular/main/WmsOrderManage'
  export default {
    data () {
      return {
        Id: 0,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        record: {},
        tradeModeData: [],
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    methods: {
      // 初始化方法
      edit (record) {
        this.visible = true;
        this.Id = record.id;
        this.$nextTick(() => {
        });
        //深度拷贝 移除VUE的监听,防止INDEX页面值变动
        this.record = JSON.parse(JSON.stringify(record))
        const tradeModeOption = this.$options
        this.tradeModeData = tradeModeOption.filters['dictData']('trade_mode')
        this.$nextTick(() => {
          this.form.setFieldsValue(
            {
              id: record.id,
              no: record.no,
              sourceBillNo: record.sourceBillNo,
              vendorcode: record.vendorcode,
              vendorname: record.vendorname,
              companyname: record.companyname,
              warehouseKeepername: record.warehouseKeepername,
              tradeMode: record.tradeMode,
              warehouseCentername: record.warehouseCentername,
              storeRoomname: record.storeRoomname,
              declarationCode: record.declarationCode,
              majorname: record.majorname,
              remarks: record.remarks
            }
          )
        })
      },
      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]
              }
            }
            WmsOrderEdit(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>