yyb
4 小时以前 44c1a1c40029e0eeef20a33f551a42e174cdac64
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
<template>
  <div>
    <el-dialog
      v-model="isShow"
      title="新增生产记录"
      width="520px"
      @close="closeModal"
    >
      <el-form
        ref="formRef"
        label-width="120px"
        :model="formState"
        label-position="top"
      >
        <el-form-item
          label="参数项"
          prop="parameterItem"
          :rules="[{ required: true, message: '请输入参数项' }]"
        >
          <el-input v-model="formState.parameterItem" placeholder="请输入参数项" />
        </el-form-item>
        <el-form-item
          label="参数类型"
          prop="type"
          :rules="[{ required: true, message: '请选择参数类型' }]"
        >
          <el-select v-model="formState.type" placeholder="请选择参数类型" style="width: 100%;">
            <el-option
              v-for="dict in parameter_tyep"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item
          label="单位"
          prop="unit"
          :rules="[{ required: true, message: '请输入单位' }]"
        >
          <el-input v-model="formState.unit" placeholder="请输入单位" />
        </el-form-item>
        <el-form-item label="参数格式" prop="parameterFormat">
          <el-input v-model="formState.parameterFormat" placeholder="请输入参数格式(选填)" />
        </el-form-item>
        <el-form-item
          label="是否必填"
          prop="isRequired"
          :rules="[{ required: true, message: '请选择是否必填' }]"
        >
          <el-select v-model="formState.isRequired" placeholder="请选择" style="width: 100%;">
            <el-option label="是" value="1" />
            <el-option label="否" value="0" />
          </el-select>
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="handleSubmit">确认</el-button>
          <el-button @click="closeModal">取消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
 
<script setup>
import { ref, computed, getCurrentInstance } from "vue";
import { add } from "@/api/productionManagement/productionRecords.js";
 
const props = defineProps({
  visible: {
    type: Boolean,
    required: true,
  },
});
 
const emit = defineEmits(["update:visible", "completed"]);
 
const formRef = ref(null);
const formState = ref({
  parameterItem: "",
  type: "",
  unit: "",
  parameterFormat: "",
  isRequired: undefined,
});
 
const isShow = computed({
  get() {
    return props.visible;
  },
  set(val) {
    emit("update:visible", val);
  },
});
 
const { proxy } = getCurrentInstance();
const { parameter_tyep } = proxy.useDict("parameter_tyep");
 
const closeModal = () => {
  isShow.value = false;
};
 
const handleSubmit = () => {
  formRef.value.validate((valid) => {
    if (valid) {
      add(formState.value).then(() => {
        isShow.value = false;
        emit("completed");
        proxy.$modal.msgSuccess("新增成功");
      });
    }
  });
};
 
defineExpose({
  closeModal,
  handleSubmit,
  isShow,
});
</script>