dialog.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <script setup lang="ts">
  2. import { reactive, computed, ref } from "vue";
  3. import { ElMessage } from "element-plus";
  4. const emit = defineEmits(["closeDialog"]);
  5. const visible = ref(false);
  6. const ruleFormRef = ref(null);
  7. const form = reactive({
  8. name: "",
  9. region: "",
  10. date1: "",
  11. date2: "",
  12. delivery: false,
  13. type: [],
  14. resource: "",
  15. desc: ""
  16. });
  17. const close = () => {
  18. // 请关闭弹框
  19. visible.value = false;
  20. };
  21. const save = () => {
  22. // 保存
  23. ElMessage({
  24. message: "保存成功",
  25. type: "success"
  26. });
  27. emit("closeDialog");
  28. };
  29. const open = () => {
  30. // 打开弹框
  31. visible.value = true;
  32. console.log("打开弹框");
  33. };
  34. defineExpose({
  35. open
  36. });
  37. </script>
  38. <template>
  39. <el-dialog v-model="visible" title="新建指标" width="400">
  40. <div class="m-auto w-[300px]">
  41. <el-form
  42. ref="ruleFormRef"
  43. :model="form"
  44. label-position="right"
  45. label-width="auto"
  46. style="max-width: 300px"
  47. >
  48. <el-form-item label="指标名称">
  49. <el-input
  50. v-model="form.name"
  51. autocomplete="off"
  52. placeholder="请输入"
  53. />
  54. </el-form-item>
  55. <el-form-item label="指标分类">
  56. <el-select v-model="form.region" placeholder="请选择">
  57. <el-option label="Zone No.1" value="shanghai" />
  58. <el-option label="Zone No.2" value="beijing" />
  59. </el-select>
  60. </el-form-item>
  61. <el-form-item label="指标定义">
  62. <el-input
  63. v-model="form.name"
  64. type="textarea"
  65. autocomplete="off"
  66. placeholder="请输入"
  67. />
  68. </el-form-item>
  69. <el-form-item label="指标口径">
  70. <el-input
  71. v-model="form.name"
  72. type="textarea"
  73. autocomplete="off"
  74. placeholder="请输入"
  75. />
  76. </el-form-item>
  77. <el-form-item label="来源">
  78. <el-select v-model="form.region" placeholder="请选择">
  79. <el-option label="Zone No.1" value="shanghai" />
  80. <el-option label="Zone No.2" value="beijing" />
  81. </el-select>
  82. </el-form-item>
  83. <el-form-item label="SQL语句">
  84. <el-input
  85. v-model="form.name"
  86. type="textarea"
  87. autocomplete="off"
  88. placeholder="请输入"
  89. />
  90. </el-form-item>
  91. <el-form-item label="状态">
  92. <el-select v-model="form.region" placeholder="请选择">
  93. <el-option label="Zone No.1" value="shanghai" />
  94. <el-option label="Zone No.2" value="beijing" />
  95. </el-select>
  96. </el-form-item>
  97. </el-form>
  98. </div>
  99. <template #footer>
  100. <div class="dialog-footer">
  101. <el-button @click="close">取消</el-button>
  102. <el-button type="primary" @click="save">保存</el-button>
  103. </div>
  104. </template>
  105. </el-dialog>
  106. </template>