zouyu
2023-11-10 789bd1e36e88e09a45fa24fa1569330ada4c45b7
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
171
172
173
<template>
  <el-dialog
    :title="!dataForm.id ? '新增' : '修改'"
    :close-on-click-modal="false"
    :visible.sync="visible">
    <el-form  :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="120px" class="l-mes">
      <el-row >
        <el-col :span="12">
      <el-form-item label="来源类型" prop="sourceType">
        <el-select v-model="dataForm.sourceType" filterable placeholder="请选择" style="width: 100%">
          <el-option
            v-for="(item,index) in sourceTypeOptions"
            :key="index"
            :label="item.value"
            :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="来源id" prop="sourceId">
        <el-input type="number" v-model="dataForm.sourceId" placeholder="来源id"></el-input>
      </el-form-item>
    <el-form-item label="来源编号" prop="sourceNo">
      <el-input v-model="dataForm.sourceNo" placeholder="来源编号"></el-input>
    </el-form-item>
    <el-form-item label="零件号" prop="partNo">
      <el-input v-model="dataForm.partNo" placeholder="请选择零件" >
        <el-button slot="append" icon="el-icon-search" @click="openPartDialog()" readonly></el-button>
      </el-input>
    </el-form-item>
        </el-col>
        <el-col :span="12">
      <el-form-item label="零件名称" prop="partName">
        <el-input v-model="dataForm.partName" placeholder="零件名称" disabled ></el-input>
      </el-form-item>
      <el-form-item label="模板编号" prop="templateNo">
        <el-input v-model="dataForm.templateNo" placeholder="模板编号" disabled ></el-input>
      </el-form-item>
      <el-form-item label="模板描述" prop="templateDesc">
        <el-input v-model="dataForm.templateDesc" placeholder="模板描述" disabled></el-input>
      </el-form-item>
    <el-form-item label="零件批次" prop="partBatch">
      <el-input v-model="dataForm.partBatch" placeholder="零件批次"></el-input>
    </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button @click="visible = false">取消</el-button>
      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
    </span>
    <qualityPartDialog :currshowlist.sync="showPart" @listenToPartEvent="selectPart"/>
 
  </el-dialog>
</template>
 
<script>
    import {getTaskObj, addObj, putObj,dir} from '@/api/quality/task'
    import qualityPartDialog from '@/views/quality/task/templatePart.vue';
    export default {
      components: {
        qualityPartDialog
      },
    data () {
      return {
        visible: false,
        showPart:false,
        Requirements:{},
        part:{},
        sourceTypeOptions:[],
        dataForm: {
          id: 0,
          sourceType: '',
          sourceId:null,
          sourceNo: '',
          templateId:0,
          templateNo:'',
          templateDesc:'',
          partNo: '',
          partId:0,
          partName:'',
          partSpecs:'',
          partBatch: ''
        },
        dataRule: {
          sourceType: [
            { required: true, message: '来源类型不能为空', trigger: 'blur' }
          ],
          sourceNo: [
            { required: true, message: '来源编号不能为空', trigger: 'blur' }
          ],
          qtplDesc: [
            { required: true, message: '模板描述不能为空', trigger: 'blur' }
          ],
          partNo: [
            { required: true, message: '零件号不能为空', trigger: 'blur' }
          ],
          partModel: [
            { required: true, message: '零件型号不能为空', trigger: 'blur' }
          ],
          partBatch: [
            { required: true, message: '零件批次不能为空', trigger: 'blur' }
          ],
 
        }
      }
    },
    methods: {
      init (id) {
        this.initDirSourceType("source_type")
        this.dataForm.id = id || 0
        this.visible = true
        this.$nextTick(() => {
          this.$refs['dataForm'].resetFields()
          if (this.dataForm.id) {
            getTaskObj(this.dataForm.id).then(response => {
                this.dataForm = response.data.data
            })
          }else{
            this.cleanDataForm()
          }
        })
      },
      cleanDataForm(){
        this.dataForm.templateId=null
        this.dataForm.templateNo=null
        this.dataForm.templateDesc=null
      },
      // 表单提交
      dataFormSubmit () {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            if (this.dataForm.id) {
                putObj(this.dataForm).then(data => {
                    this.$message.success('修改成功')
                    this.visible = false
                    this.$emit('refreshDataList')
                });
            } else {
                addObj(this.dataForm).then(data => {
                    this.$message.success('添加成功')
                    this.visible = false
                    this.$emit('refreshDataList')
                })
            }
          }
        })
      },
      //弹出待检测零件表单
      openPartDialog(index){
        this.showPart=true;
      },
      //添加待检测零件信息
      selectPart(param){
        if(typeof(param)!="undefined") {
          this.dataForm.partId=param.partId;
          this.dataForm.partNo = param.partNo;
          this.dataForm.partName = param.partName;
          this.dataForm.templateId=param.templateId;
          this.dataForm.templateNo=param.templateNo;
          this.dataForm.templateDesc=param.templateDesc;
          this.$refs['dataForm'].validateField('partNo', valid => {
          })
        }
      },
      //数据字典传值
      initDirSourceType(index) {
        dir(index).then(res => {
          this.sourceTypeOptions = res.data.data;
        })
      },
    }
  }
</script>