edit.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <div>
  3. <el-button
  4. type="primary"
  5. size="mini"
  6. @click="onShow"
  7. :disabled="data.status != '待评审'"
  8. >
  9. {{ $t("编辑") }}</el-button
  10. >
  11. <el-drawer
  12. custom-class="custom-select-option_class"
  13. :visible.sync="drawer"
  14. size="1300px"
  15. append-to-body
  16. :show-close="false"
  17. :wrapperClosable="false"
  18. :close-on-press-escape="false"
  19. >
  20. <component
  21. ref="target"
  22. @close="drawer = false"
  23. :is="formComponent"
  24. :data="data"
  25. @onEditSuccess="onEditSuccess"
  26. ></component>
  27. </el-drawer>
  28. </div>
  29. </template>
  30. <script>
  31. import { mapGetters } from "vuex";
  32. export default {
  33. props: ["data"],
  34. data() {
  35. return {
  36. drawer: false,
  37. type: "",
  38. userid: JSON.parse(sessionStorage.getItem("active_account")).userid,
  39. };
  40. },
  41. provide() {
  42. return {
  43. valvetype: () => this.type,
  44. };
  45. },
  46. watch: {
  47. drawer(val) {
  48. if (!val) this.$refs.target.close();
  49. },
  50. },
  51. computed: {
  52. ...mapGetters({
  53. loading: "loading",
  54. }),
  55. formComponent() {
  56. switch (this.type) {
  57. case "蝶阀":
  58. return () =>
  59. import(
  60. "@/optionSystem/optionOrder/detail/modules/components/DieFa.vue"
  61. );
  62. break;
  63. default:
  64. break;
  65. }
  66. },
  67. },
  68. methods: {
  69. onShow() {
  70. this.type = this.data.valvetype;
  71. this.drawer = true;
  72. if (this.$refs.target) {
  73. this.$refs.target.init();
  74. }
  75. },
  76. onSubmit() {
  77. this.$refs.target.$refs["form"].validate(async (valid) => {
  78. if (!valid) return false;
  79. this.$refs.target.onSubmit(() => {
  80. this.$refs.target.refresh();
  81. this.drawer = false;
  82. });
  83. });
  84. },
  85. onEditSuccess() {
  86. this.$emit("onEditSuccess");
  87. },
  88. },
  89. created() {},
  90. };
  91. </script>
  92. <style scoped>
  93. /deep/.el-drawer__header {
  94. display: none !important;
  95. }
  96. /deep/.el-step__title {
  97. width: 100px !important;
  98. cursor: pointer;
  99. }
  100. </style>