Fixiaobai
2023-10-13 e8308ddac0ba4a1f406e8f63d7e6b6f2541cb770
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
<template>
  <el-dialog
    width="50%"
    title="节点"
    :visible.sync="innerVisible"  append-to-body  @close="$emit('update:currshowlist', false)"  :show="currshowlist" >
    <div class="app-container">
      <el-form :model="partInfo" :rules="dataRule" ref="partInfo"
               label-width="80px" class="l-mes">
        <el-row type="flex" justify="space-around">
          <el-col :span="10">
            <div style="margin-bottom:20px">
              <el-form-item label="零件" prop="partName">
                <el-input class="innerClass" v-model="partInfo.partName" placeholder="请选择零件" :readonly="true" style="width: 90%">
                  <el-button slot="append" icon="el-icon-search" @click="openPartDialog()"></el-button>
                </el-input>
              </el-form-item>
            </div>
          </el-col>
          <el-col :span="10">
            <div  style="margin-bottom:20px">
              <el-form-item label="数量" prop="qpa">
                <el-input v-model="partInfo.qpa" style="width: 80%"></el-input>
              </el-form-item>
            </div>
          </el-col>
        </el-row>
        <el-row type="flex" justify="space-around">
          <el-col :span="10">
            <div style="margin-bottom:20px">
              <el-form-item label="工序" prop="operationName">
                <el-input class="innerClass" v-model="partInfo.operationName" placeholder="请选择工序" :readonly="true" style="width: 90%">
                  <el-button slot="append" icon="el-icon-search" @click="openOperationDialog()"></el-button>
                </el-input>
              </el-form-item>
            </div>
          </el-col>
          <el-col :span="10">
            <div style="margin-bottom:20px">
            </div>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <div slot="footer" class="dialog-footer">
      <el-button @click="innerVisible=false">取 消</el-button>
      <el-button type="primary" @click="saveSelectRow">确 定</el-button>
    </div>
    <partDialog :currshowlist.sync="showPart" @listenToPartEvent="selectPart"/>
    <operationDialog :currshowlist.sync="showOperation" :queryParam="routingOperateParam" @listenToRoutingOperateEvent="selectOperation"/>
  </el-dialog>
 
</template>
<script>
  import operationDialog from './routing-operation.vue';
  import partDialog from '@/views/common/part.vue';
  import {validateSixDecimalPositive} from "../../../util/validate";
 
  export default {
    props: {
      currshowlist: {
        type: Boolean,
        default: false
      },
      routingOperateParam: {
        type: Object,
        default: () => {
          return {}
        },
        required: true
      }
    },
    data() {
      return {
        showPart:false,
        innerVisible:false,
        loading:false,
        parts:[],
        options: [],
        partInfo: {id:null,partNo:null,partName:null,qpa:null,operationName:null,operationId:null,drawingNumber:null,ean:null,unit:null},
        dataRule: {
          partName: [
            {required: true, message: '零件不能为空', trigger: 'blur'}
          ],
          qpa:[
            {required: true, message: '数量不能为空', trigger: 'blur'},
            {validator: validateSixDecimalPositive, trigger: 'blur'}
          ],
          operationName:[
            {required: true, message: '工序不能为空', trigger: 'blur'}
          ]
        },
        showOperation:false
      }
    },
    components: {
      operationDialog,
      partDialog
    },
    methods: {
      saveSelectRow(){
        this.$refs['partInfo'].validate((valid) => {
          if (valid) {
            this.$emit("listenToPartInfoEvent", this.partInfo);
            this.innerVisible = false;
          }
        });
      },
      openPartDialog() {
        this.showPart = true;
      },
      selectPart(param){
        if (typeof (param) != "undefined") {
          this.partInfo.id=param.id;
          this.partInfo.partNo=param.partNo;
          this.partInfo.partName=param.partName;
          this.partInfo.drawingNumber=param.drawingNumber;
          this.partInfo.ean=param.ean;
          this.partInfo.unit=param.unit;
        }
      },
      openOperationDialog(){
        this.showOperation=true;
      },
      selectOperation(param) {
        if (typeof(param) != "undefined") {
          this.partInfo.operationName=param.operationName;
          this.partInfo.operationId=param.id;
        }
      },
    },
    watch: {
      currshowlist() {
        this.innerVisible = this.currshowlist;
        if(this.currshowlist){
          Object.assign(this.$data.partInfo, this.$options.data().partInfo)
        }
      }
    }
  }
</script>