1
schangxiang@126.com
2024-08-18 42be79f9e80900fb08bd386f06af3f98b7d3b39a
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
<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-select :allowClear="true" style="width: 100%" v-decorator="['equipmentID']" placeholder="请选择">
            <a-select-option v-for="(item, index) in equitypeData" :key="index" :value="item.equipmentId">{{
              item.equipmentName }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="工序号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-select allow-clear style="width: 100%" v-decorator="['workingProcedure',{ rules: [{ required: true, message: '工序号不能为空' }] }]" 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',{ rules: [{ required: true, message: '收集方式不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="收集PLC型号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入收集PLC型号" style="width: 100%" v-decorator="['dataCapturePLCType']" />
        </a-form-item>
        <a-form-item label="PLC的IP地址" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入PLC的IP地址" v-decorator="['pLCIP',{ rules: [{ required: true, message: 'PLC的IP地址不能为空' }] }]" />
        </a-form-item>
        <a-form-item label="PLC端口" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入PLC端口" style="width: 100%" v-decorator="['pLCPort',{ rules: [{ required: true, message: 'PLC端口不能为空' }] }]" />
        </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 placeholder="请输入收集字段类型" v-decorator="['dataCaptureColumnType',{ 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="['dataCaptureColumnTabelName']" />
        </a-form-item>
        <a-form-item label="收集频率(微秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入收集频率(微秒)" style="width: 100%" v-decorator="['dataCaptureFrequency']" />
        </a-form-item>
        <a-form-item label="是否反馈PLC" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入是否反馈PLC" style="width: 100%" v-decorator="['isFeedback']" />
        </a-form-item>
      </a-form>
    </a-spin>
  </a-modal>
</template>
 
<script>
  import { DataCaptureConfigAdd } from '@/api/modular/main/DataCaptureConfigManage'
  import { getEquipmentName } from '@/api/modular/main/EquipmentBaseInfoManage'
  export default {
    data () {
      return {
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        // 设备下拉框数据
        equitypeData: [],
        // 工序下拉框数据
        ProcessSelectData:[],
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
      }
    },
    created () {
      this.getEquipmentName()
      this.ProcessSelectData = this.$options.filters['dictData']('process_type')
    },
    methods: {
      // 初始化方法
      add (record) {
        this.visible = true
        this.$nextTick(() => {
 
        });
      },
      // 获取设备名称
      getEquipmentName() {
        getEquipmentName().then(res => {
          this.equitypeData = res.data
        })
      },
      /**
       * 提交表单
       */
      handleSubmit () {
        const { form: { validateFields } } = this
        this.confirmLoading = true
        validateFields((errors, values) => {
          if (!errors) {
            for (const key in values) {
              if (typeof (values[key]) === 'object') {
                values[key] = JSON.stringify(values[key])
              }
            }
            DataCaptureConfigAdd(values).then((res) => {
              if (res.success) {
                this.$message.success('新增成功')
                this.confirmLoading = false
                this.$emit('ok', values)
                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>