revokeDialog.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <div class="dialog">
  3. <el-dialog
  4. v-model="dialogVisible"
  5. :title="dialogTitle"
  6. width="480"
  7. @close="closeDialog()"
  8. >
  9. <el-form
  10. ref="formRef"
  11. :model="formData"
  12. :rules="rules"
  13. label-width="120px"
  14. >
  15. <el-row>
  16. <el-col :span="24">
  17. <el-form-item prop="projectName" label="项目名称">
  18. <el-select v-model="formData.projectName" @change="projectChange">
  19. <el-option
  20. v-for="item in projectOptions"
  21. :key="item.code"
  22. :label="item.label"
  23. :value="item.label"
  24. />
  25. </el-select>
  26. </el-form-item>
  27. </el-col>
  28. </el-row>
  29. <el-row>
  30. <el-col :span="24">
  31. <el-form-item prop="projectCode" label="项目代码">
  32. <el-input disabled v-model="formData.projectCode" />
  33. </el-form-item>
  34. </el-col>
  35. </el-row>
  36. </el-form>
  37. <template #footer>
  38. <div class="dialog-footer">
  39. <el-button v-throttle type="primary" @click="handleSubmit"
  40. >确 定
  41. </el-button>
  42. <el-button @click="closeDialog()">取 消</el-button>
  43. </div>
  44. </template>
  45. </el-dialog>
  46. </div>
  47. </template>
  48. <script setup lang="ts">
  49. import { FormInstance } from "element-plus";
  50. import { revokeUpgradeProject } from "@/api/upgrade";
  51. let dialogVisible = ref(false);
  52. let dialogTitle = ref("");
  53. const formRef = ref<FormInstance>();
  54. const emit = defineEmits(["dialogChange"]);
  55. const formData = reactive({
  56. projectName: "ERP-APP",
  57. projectCode: "ERP-APP",
  58. });
  59. const projectOptions = [
  60. { label: "ERP-APP", code: "ERP-APP" },
  61. { label: "ERP-PRINTCONFIG", code: "ERP-PRINTCONFIG" },
  62. ];
  63. function handleSubmit() {
  64. formRef.value.validate((valid: any) => {
  65. if (valid) {
  66. //增加
  67. const params = {
  68. projectCode: formData.projectCode,
  69. };
  70. revokeUpgradeProject(params).then((response) => {
  71. dialogVisible.value = false;
  72. if (response.httpCode == 200) {
  73. emit("dialogChange");
  74. ElMessage.success("操作成功");
  75. }
  76. });
  77. }
  78. });
  79. }
  80. /** 重置表单 */
  81. function resetForm() {
  82. formRef.value.resetFields();
  83. }
  84. /**关闭弹窗 */
  85. function closeDialog() {
  86. dialogVisible.value = false;
  87. formRef.value.resetFields();
  88. }
  89. function getItemData(item) {}
  90. const projectChange = (val) => {
  91. const proj = projectOptions.find((v) => v.label === val);
  92. formData.projectCode = proj.code;
  93. };
  94. defineExpose({
  95. dialogVisible,
  96. dialogTitle,
  97. getItemData,
  98. resetForm,
  99. });
  100. </script>
  101. <style scoped lang="scss"></style>