1
liuying
2024-04-25 6e3b6044ba218ba2c7cf4ad9d80821d8f78f1ff0
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
166
167
168
169
170
<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 placeholder="请输入单据编号" v-decorator="['orderNo']" />
        </a-form-item>
        <a-form-item label="优先级" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入优先级" style="width: 100%" v-decorator="['priority']" />
        </a-form-item>
        <a-form-item label="发货仓库名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入发货仓库名称" v-decorator="['areaName']" />
        </a-form-item>
        <a-form-item label="交货日期" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-date-picker style="width: 100%" placeholder="请选择交货日期" v-decorator="['deliveryGoodsTime']" @change="onChangedeliveryGoodsTime"/>
        </a-form-item>
        <a-form-item label="计划号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入计划号" v-decorator="['planNo']" />
        </a-form-item>
        <a-form-item label="船号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入船号" v-decorator="['shipNo']" />
        </a-form-item>
        <a-form-item label="工程号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入工程号" v-decorator="['projectNo']" />
        </a-form-item>
        <a-form-item label="分配状态" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入分配状态" v-decorator="['assignmentStatus']" />
        </a-form-item>
        <a-form-item label="客户" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入客户" v-decorator="['custom']" />
        </a-form-item>
        <a-form-item label="电话联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入电话联系人" v-decorator="['phoneNumber']" />
        </a-form-item>
        <a-form-item label="收获地址" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入收获地址" v-decorator="['address']" />
        </a-form-item>
        <a-form-item label="运输公司" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入运输公司" v-decorator="['transportationCompany']" />
        </a-form-item>
        <a-form-item label="运输单号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入运输单号" v-decorator="['transportationOrderNo']" />
        </a-form-item>
        <a-form-item label="取消原因" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入取消原因" v-decorator="['reasonForCancellation']" />
        </a-form-item>
        <a-form-item label="整单收货" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入整单收货" v-decorator="['isFullOrder']" />
        </a-form-item>
        <a-form-item label="货主编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入货主编号" v-decorator="['shipperOrder']" />
        </a-form-item>
        <a-form-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input 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 moment from 'moment'
  import {
    DispatchedWorkEdit
  } from '@/api/modular/main/DispatchedWorkManage'
  export default {
    data () {
      return {
        Id: 0,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        record: {},
        deliveryGoodsTimeDateString: '',
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    methods: {
      moment,
      // 初始化方法
      edit (record) {
        this.visible = true;
        this.Id = record.id;
        this.$nextTick(() => {
        });
        //深度拷贝 移除VUE的监听,防止INDEX页面值变动
        this.record = JSON.parse(JSON.stringify(record))
        this.$nextTick(() => {
          this.form.setFieldsValue(
            {
              id: record.id,
              orderNo: record.orderNo,
              priority: record.priority,
              areaName: record.areaName,
              planNo: record.planNo,
              shipNo: record.shipNo,
              projectNo: record.projectNo,
              assignmentStatus: record.assignmentStatus,
              custom: record.custom,
              phoneNumber: record.phoneNumber,
              address: record.address,
              transportationCompany: record.transportationCompany,
              transportationOrderNo: record.transportationOrderNo,
              reasonForCancellation: record.reasonForCancellation,
              isFullOrder: record.isFullOrder,
              shipperOrder: record.shipperOrder,
              remarks: record.remarks
            }
          )
        })
        this.form.getFieldDecorator('deliveryGoodsTime', { initialValue: moment(record.deliveryGoodsTime, 'YYYY-MM-DD') })
        this.deliveryGoodsTimeDateString = moment(record.deliveryGoodsTime).format('YYYY-MM-DD')
      },
      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]
              }
            }
            values.deliveryGoodsTime = this.deliveryGoodsTimeDateString
            this.record.deliveryGoodsTime = this.deliveryGoodsTimeDateString
            DispatchedWorkEdit(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
          } 
        });
      },
      onChangedeliveryGoodsTime(date, dateString) {
        this.deliveryGoodsTimeDateString = dateString
      },
      handleCancel () {
        this.form.resetFields()
        this.visible = false
      }
    }
  }
</script>