index.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <script>
  2. import { delTargetTemplate,checkQuote, } from "@/api/business/spd/starget/targetTemplate";
  3. export default {
  4. name: "DeleteDialog",
  5. props: ['selectData'],
  6. data() {
  7. return {
  8. title: "删 除",
  9. };
  10. },
  11. watch: {},
  12. methods: {
  13. async open() {
  14. const { selectData } = this.$props;
  15. const { code, data } = await checkQuote(selectData.id);
  16. if(code == '200'){
  17. if(data){
  18. this.$modal.msgError("该目标模板存在引用,无法删除!");
  19. this.visible = false;
  20. return;
  21. }
  22. }else{
  23. this.$modal.msgError("校验该目标模板是否存在引用异常,无法删除!");
  24. this.visible = false;
  25. return;
  26. }
  27. this.$confirm(`是否删除数据项?`, "提示", {
  28. confirmButtonText: "确定",
  29. cancelButtonText: "取消",
  30. type: "info",
  31. beforeClose: async (action, instance, done) => {
  32. if (action === "confirm") {
  33. instance.confirmButtonLoading = true;
  34. instance.confirmButtonText = "执行中...";
  35. try {
  36. // try
  37. const { msg, code } = await delTargetTemplate(selectData.id);
  38. if (code === 200) {
  39. done();
  40. this.$emit("success");
  41. this.$notify.success(msg);
  42. }
  43. } catch (err) {
  44. // catch
  45. console.error(err);
  46. instance.confirmButtonText = "确认";
  47. } finally {
  48. // finally
  49. instance.confirmButtonLoading = false;
  50. }
  51. } else {
  52. done();
  53. }
  54. },
  55. })
  56. .then(() => {})
  57. .catch(() => {});
  58. },
  59. },
  60. created() {},
  61. mounted() {},
  62. destroyed() {},
  63. };
  64. </script>
  65. <template>
  66. <el-button
  67. v-bind="$attrs"
  68. v-on="$listeners"
  69. @click="open"
  70. >
  71. {{ title }}
  72. </el-button>
  73. </template>