schangxiang@126.com
2024-08-16 65bd2dc1d4c1fb136af853c7ede93a338431be29
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
<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="['workingProcedure']" />
        </a-form-item> -->
        <a-form-item label="工序号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-select allow-clear style="width: 100%" v-decorator="['workingProcedure']" placeholder="请选择">
            <a-select-option v-for="(item,index) in ProcessSelectData" :key="index" :value="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="['dataCapturePointCode',{ rules: [{ required: true, message: '收集点代码不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="收集收集点描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入收集收集点描述" v-decorator="['dataCapturePointCname']" />
        </a-form-item>
        <a-form-item label="收集方式" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入收集方式" style="width: 100%" v-decorator="['dataCaptureType']" />
        </a-form-item>
        <a-form-item label="DB块地址" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入DB块地址" v-decorator="['dbNumber',{ rules: [{ required: true, message: 'DB块地址不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="地址偏移量" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入地址偏移量" v-decorator="['offset',{ rules: [{ required: true, message: '地址偏移量不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="收集字段长度" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入收集字段长度" style="width: 100%" v-decorator="['dataCaptureColumnLength']" />
        </a-form-item>
        <a-form-item label="收集字段类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入收集字段类型" v-decorator="['dataCaptureColumnType',{ rules: [{ required: true, message: '收集字段类型不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="收集字段对应列名" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入收集字段对应列名" v-decorator="['dataCaptureColumnTabelName']" />
        </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 {
    DataCaptureColumnConfigEdit
  } from '@/api/modular/main/DataCaptureColumnConfigManage'
  export default {
    data () {
      return {
        Id: 0,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        // 工序下拉框数据
        ProcessSelectData:[],
        record: {},
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    created () {
      this.ProcessSelectData = this.$options.filters['dictData']('process_type')
    },
    methods: {
      // 初始化方法
      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,
              workingProcedure: record.workingProcedure,
              dataCapturePointCode: record.dataCapturePointCode,
              dataCapturePointCname: record.dataCapturePointCname,
              dataCaptureType: record.dataCaptureType,
              dbNumber: record.dbNumber,
              offset: record.offset,
              dataCaptureColumnLength: record.dataCaptureColumnLength,
              dataCaptureColumnType: record.dataCaptureColumnType,
              dataCaptureColumnTabelName: record.dataCaptureColumnTabelName
            }
          )
        })
      },
      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]
              }
            }
            DataCaptureColumnConfigEdit(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>