zouyu
2023-11-17 d8ac6057eaad648687699e25a575f3b7b8c1b102
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
    :title="!dataForm.id ? '新增' : '修改'"
    :close-on-click-modal="false"
    :visible.sync="visible"
  >
    <el-form
      :model="dataForm"
      :rules="dataRule"
      ref="dataForm"
      label-width="100px"
      class="l-mes"
    >
      <el-row>
        <el-col :span="12">
          <el-form-item label="规则编号" prop="ruleNo">
            <el-input
              v-model="dataForm.ruleNo"
              placeholder=""
              :disabled="formEdit"
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="规则名称" prop="ruleName">
            <el-input v-model="dataForm.ruleName" placeholder=""></el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item label="报检数量" prop="inspectQuantity">
            <el-input
              v-model="dataForm.inspectQuantity"
              placeholder=""
            ></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="检验数量" prop="checkoutQuantity">
            <el-input
              v-model="dataForm.checkoutQuantity"
              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"
        :disabled="isSubmit"
        v-thinclick="`dataFormSubmit`"
        >确定</el-button
      >
    </span>
  </el-dialog>
</template>
 
<script>
import { getTestRule, addTestRule, putTestRule } from '@/api/quality/testrule'
import { validatePositiveInteger } from '@/util/validate'
 
export default {
  data() {
    return {
      visible: false,
      formEdit: false,
      dataForm: {
        id: 0,
        ruleNo: '',
        ruleName: '',
        inspectQuantity: '',
        checkoutQuantity: ''
      },
      dataRule: {
        inspectQuantity: [
          { required: true, message: '报检数量不能为空', trigger: 'blur' },
          { validator: validatePositiveInteger, trigger: 'blur' }
        ],
        checkoutQuantity: [
          { required: true, message: '检验数量不能为空', trigger: 'blur' },
          { validator: validatePositiveInteger, trigger: 'blur' }
        ]
      },
      isSubmit: false
    }
  },
  created() {},
  methods: {
    init(id) {
      this.dataForm.id = id || 0
      this.visible = true
      this.$nextTick(() => {
        this.$refs.dataForm.resetFields()
        if (this.dataForm.id) {
          this.formEdit = true
          getTestRule(this.dataForm.id).then((response) => {
            this.dataForm = response.data.data
          })
        } else {
          this.formEdit = false
        }
      })
    },
    // 表单提交
    dataFormSubmit() {
      this.isSubmit = true
      this.$refs.dataForm.validate((valid) => {
        if (valid) {
          // 判断报检数量≥检验数量
          if (this.dataForm.inspectQuantity < this.dataForm.checkoutQuantity) {
            this.isSubmit = false
            this.$message.warning('【报检数量】应大于等于【检验数量】')
          } else {
            if (this.dataForm.id) {
              putTestRule(this.dataForm).then((data) => {
                this.$message.success('修改成功')
                this.visible = false
                this.isSubmit = false
                this.$emit('refreshDataList')
              })
            } else {
              addTestRule(this.dataForm).then((data) => {
                this.$message.success('添加成功')
                this.visible = false
                this.isSubmit = false
                this.$emit('refreshDataList')
              })
            }
          }
        } else {
          this.isSubmit = false
        }
      })
    }
  }
}
</script>