index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <script>
  2. import { DOCUMENTSRETURN } from "@/api/business/purchase/task";
  3. export default {
  4. name: "DocumentsReturnDialog",
  5. props: {
  6. selectData: {
  7. type: [Array],
  8. require: true,
  9. },
  10. },
  11. components: {},
  12. data() {
  13. return {
  14. title: "退回需求",
  15. visible: false,
  16. loading: false,
  17. params: { baskCause: "" },
  18. };
  19. },
  20. computed: {
  21. disabled: {
  22. get() {
  23. return !this.selectData.length;
  24. },
  25. set() {},
  26. },
  27. },
  28. watch: {},
  29. methods: {
  30. //
  31. open() {
  32. this.visible = true;
  33. },
  34. //
  35. hide() {
  36. this.visible = false;
  37. this.params.baskCause = "";
  38. },
  39. //
  40. async submit(prop) {
  41. try {
  42. // try
  43. this.loading = true;
  44. const {
  45. params: { baskCause },
  46. } = this;
  47. const documentIds = prop.map((item) => item.id);
  48. const { msg, code } = await DOCUMENTSRETURN({
  49. baskCause,
  50. documentIds,
  51. });
  52. if (code === 200) {
  53. this.hide();
  54. this.$emit("success");
  55. this.$notify.success({ title: msg });
  56. }
  57. } catch (err) {
  58. // catch
  59. } finally {
  60. // loading
  61. this.loading = false;
  62. }
  63. },
  64. },
  65. created() {},
  66. mounted() {},
  67. destroyed() {},
  68. };
  69. </script>
  70. <template>
  71. <el-button
  72. v-bind="$attrs"
  73. v-on="$listeners"
  74. :disabled="disabled"
  75. @click="open"
  76. >
  77. {{ title }}
  78. <el-dialog
  79. :title="title"
  80. :visible.sync="visible"
  81. width="25%"
  82. append-to-body
  83. @close="hide"
  84. >
  85. <div slot="footer" class="dialog-footer">
  86. <el-button
  87. :size="$attrs.size"
  88. :loading="loading"
  89. @click="visible = false"
  90. >取 消</el-button
  91. >
  92. <el-button
  93. type="primary"
  94. :size="$attrs.size"
  95. :loading="loading"
  96. @click="submit(selectData)"
  97. >确 认</el-button
  98. >
  99. </div>
  100. <el-alert
  101. title="请填写退单原因"
  102. type="info"
  103. show-icon
  104. :closable="false"
  105. style="margin-bottom: 10px"
  106. >
  107. </el-alert>
  108. <el-form
  109. :size="$attrs.size"
  110. :model="params"
  111. label-width="0px"
  112. label-position="right"
  113. style="padding: 0"
  114. >
  115. <el-form-item prop="" label="">
  116. <el-input v-model="params.baskCause"> </el-input>
  117. </el-form-item>
  118. </el-form>
  119. </el-dialog>
  120. </el-button>
  121. </template>
  122. <style scoped></style>