serviceDetail.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <div class="purchaseOrderDetail pagePadding">
  3. <div
  4. style="width: 100%"
  5. v-if="powers && powers.length > 0 && powers.some((item) => item == '001')"
  6. >
  7. <p>{{ powers }}</p>
  8. <p>status{{ status }}</p>
  9. <!-- <div class="detail-page-title">
  10. <span class="title">售后申请详情</span>
  11. <add-edit-form :sitem="sitem"></add-edit-form>
  12. </div> -->
  13. <el-collapse v-model="activeNames">
  14. <el-collapse-item title="售后申请详情" name="1">
  15. <add-edit-form :sitem="sitem"></add-edit-form>
  16. </el-collapse-item>
  17. <el-collapse-item
  18. title="业务审核"
  19. name="1"
  20. v-if="powers.some((item) => item == '034')"
  21. >
  22. <exam-form
  23. v-if="status == '0'"
  24. :statusList="statusList"
  25. :newTime="newTime"
  26. :disabled="false"
  27. :isMust="false"
  28. @searchChange="examForm"
  29. />
  30. </el-collapse-item>
  31. <el-collapse-item
  32. title="物流反馈"
  33. name="2"
  34. v-if="powers.some((item) => item == '040')"
  35. >
  36. <!-- v-if="status == '2'" -->
  37. <express-feedback
  38. @refresh="searchList"
  39. :returnCode="returnCode"
  40. v-if="status == '2' || status == '1'"
  41. ></express-feedback>
  42. </el-collapse-item>
  43. <!-- <el-collapse-item
  44. title="采购审核"
  45. name="3"
  46. v-if="powers.some((item) => item == '036')"
  47. >
  48. <purchase-check></purchase-check>
  49. </el-collapse-item> -->
  50. <el-collapse-item
  51. title="退货物流"
  52. name="4"
  53. v-if="powers.some((item) => item == '040')"
  54. >
  55. <return-express
  56. :returnCode="returnCode"
  57. v-if="status == '3'"
  58. ></return-express>
  59. </el-collapse-item>
  60. </el-collapse>
  61. </div>
  62. <div v-else>
  63. <no-auth></no-auth>
  64. </div>
  65. </div>
  66. </template>
  67. <script>
  68. import mixinPage from "@/mixins/elPaginationHandle";
  69. import resToken from "@/mixins/resToken";
  70. // import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder/detail";
  71. import asyncRequest from "@/apis/service/goodsService";
  72. import addEditForm from "./components/addEditForm.vue";
  73. import ExpressFeedback from "./components/express_feedback.vue";
  74. import PurchaseCheck from "./components/purchase_check";
  75. import ReturnExpress from "./components/returnExpress";
  76. export default {
  77. name: "serviceDetail",
  78. mixins: [mixinPage, resToken],
  79. components: {
  80. addEditForm,
  81. ExpressFeedback,
  82. PurchaseCheck,
  83. ReturnExpress,
  84. },
  85. computed: {
  86. powers() {
  87. let tran =
  88. this.$store.getters.btnList.find(
  89. (item) => item.menu_route == "serviceDetail"
  90. ) || {};
  91. if (tran && tran.action && tran.action.length > 0) {
  92. return tran.action;
  93. } else {
  94. return [];
  95. }
  96. },
  97. },
  98. data() {
  99. return {
  100. returnCode: "",
  101. activeNames: ["0", "1", "2", "3", "4"],
  102. sitem: null,
  103. status: "", //存储详情接口状态
  104. statusList: [],
  105. sitem: null,
  106. newTime: "",
  107. loading: false,
  108. };
  109. },
  110. mounted() {
  111. this.sitem = this.$route.query.id;
  112. console.log(this.sitem);
  113. this.returnCode = this.sitem.returnCode;
  114. this.searchList();
  115. },
  116. methods: {
  117. getNewTime() {
  118. this.newTime = new Date().valueOf();
  119. },
  120. // 点击业务审核的保存按钮
  121. async examForm(e) {
  122. console.log(e);
  123. if (!this.loading) {
  124. let type = e.state === "1" ? "1" : "0";
  125. console.log(type);
  126. await this.setstatus(type, "提交业务审核", e.remark);
  127. }
  128. },
  129. //
  130. async setstatus(type, detail, remark) {
  131. await this.$confirm(`确定要${type === "1" ? "同意" : "驳回"}?`, {
  132. confirmButtonText: "确定",
  133. cancelButtonText: "取消",
  134. type: "warning",
  135. })
  136. .then(async () => {
  137. if (this.sitem) {
  138. let { returnCode } = this.sitem;
  139. const model = {
  140. remark,
  141. returnCode,
  142. status: type,
  143. };
  144. let res = await asyncRequest.status(model);
  145. if (res && res.code === 0) {
  146. this.$notify.success({
  147. title: "修改成功!",
  148. message: "",
  149. });
  150. await this.searchList();
  151. } else if (res && res.code >= 100 && res.code <= 104) {
  152. await this.logout();
  153. } else {
  154. this.$message.warning(res.message);
  155. }
  156. }
  157. })
  158. .catch(() => {
  159. console.log("取消");
  160. });
  161. },
  162. async searchList() {
  163. console.log(this.sitem);
  164. if (this.sitem) {
  165. let { returnCode } = this.sitem;
  166. let model = {
  167. returnCode,
  168. };
  169. const res = await asyncRequest.detail(model);
  170. if (res && res.code === 0 && res.data) {
  171. this.status = res.data.status;
  172. // let { error_num, error_img, error_remark, except_code, error_code } =
  173. // res.data;
  174. // console.log(res.data);
  175. // this.ruleForm = {
  176. // stock_out_numbers: "", //出库单编号
  177. // anomalous_numbers: error_num, //异常数量
  178. // anomalous_reason: error_code, //异常原因
  179. // expect_wish: except_code, //期望意愿
  180. // anomalous_images: [error_img],
  181. // anomalous_remark: error_remark, //异常备注
  182. // };
  183. } else if (res && res.code >= 100 && res.code <= 104) {
  184. await this.logout();
  185. } else {
  186. this.$message.warning(res.message);
  187. }
  188. }
  189. },
  190. },
  191. };
  192. </script>