detail.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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>{{ status }}----{{ powers }}</p>
  8. <status-bar
  9. v-if="newTime !== ''"
  10. :newTime="newTime"
  11. :options="statusOptions"
  12. :status="s_status"
  13. />
  14. <el-collapse v-model="activeNames">
  15. <el-collapse-item title="售后申请详情" name="1">
  16. <add-edit-form
  17. :sitem="sitem"
  18. :newTime="newTime"
  19. v-if="newTime != ''"
  20. ></add-edit-form>
  21. </el-collapse-item>
  22. <el-collapse-item
  23. title="业务审核"
  24. name="1"
  25. v-if="status == '0'&&powers.some((item) => item == '043')"
  26. >
  27. <exam-form
  28. v-if="newTime != ''"
  29. :statusList="statusList"
  30. :newTime="newTime"
  31. :disabled="false"
  32. :isMust="false"
  33. @searchChange="examForm"
  34. />
  35. </el-collapse-item>
  36. <el-collapse-item
  37. title="物流反馈"
  38. name="2"
  39. v-if="powers.some((item) => item == '046')"
  40. >
  41. <supplier-feedback
  42. v-if="newTime != ''"
  43. :sitem="sitem"
  44. :newTime="newTime"
  45. />
  46. </el-collapse-item>
  47. <el-collapse-item
  48. title="物流反馈"
  49. name="2"
  50. v-if="powers.some((item) => item == '040')"
  51. >
  52. <!-- v-if="status == '2'" -->
  53. <express-feedback
  54. @refresh="searchList"
  55. :returnCode="returnCode"
  56. v-if="status == '2' || status == '1'"
  57. ></express-feedback>
  58. </el-collapse-item>
  59. <!-- <el-collapse-item
  60. title="采购审核"
  61. name="3"
  62. v-if="powers.some((item) => item == '036')"
  63. >
  64. <purchase-check></purchase-check>
  65. </el-collapse-item> -->
  66. <el-collapse-item
  67. title="退货物流"
  68. name="4"
  69. v-if="powers.some((item) => item == '040')"
  70. >
  71. {{ status }}
  72. <return-express
  73. @refresh="searchList"
  74. :returnCode="orderCode"
  75. v-if="status == '3'"
  76. ></return-express>
  77. </el-collapse-item>
  78. <el-collapse-item title="审批记录" name="10">
  79. <process-time-line
  80. v-if="newTime !== ''"
  81. :newTime="newTime"
  82. :type="'SHD'"
  83. :orderCode="orderCode"
  84. />
  85. </el-collapse-item>
  86. </el-collapse>
  87. {{ orderCode }}
  88. </div>
  89. <div v-else>
  90. <no-auth></no-auth>
  91. </div>
  92. </div>
  93. </template>
  94. <script>
  95. import mixinPage from "@/mixins/elPaginationHandle";
  96. import resToken from "@/mixins/resToken";
  97. import asyncRequest from "@/apis/service/sheetOrder/zxAfterSale";
  98. import addEditForm from "./components/addEditForm.vue";
  99. import ExpressFeedback from "./components/express_feedback";
  100. import supplierFeedback from "./components/supplier_feedback";
  101. import PurchaseCheck from "./components/purchase_check";
  102. import ReturnExpress from "./components/returnExpress";
  103. export default {
  104. name: "zxAfterSaleDetail",
  105. mixins: [mixinPage, resToken],
  106. components: {
  107. addEditForm,
  108. ExpressFeedback,
  109. PurchaseCheck,
  110. ReturnExpress,
  111. supplierFeedback,
  112. },
  113. computed: {
  114. powers() {
  115. let tran =
  116. this.$store.getters.btnList.find(
  117. (item) => item.menu_route == "zxAfterSaleDetail"
  118. ) || {};
  119. if (tran && tran.action && tran.action.length > 0) {
  120. return tran.action;
  121. } else {
  122. return [];
  123. }
  124. },
  125. },
  126. data() {
  127. return {
  128. activeNames: ["0", "1", "2", "3", "4", "10"],
  129. s_status: "", //存储详情接口状态
  130. statusList: [],
  131. sitem: null,
  132. newTime: "",
  133. loading: false,
  134. statusOptions: [
  135. { value: "0", label: "业务审核" },
  136. { value: "1", label: "物流信息反馈" },
  137. // { value: "2", label: "反馈物流费" },
  138. { value: "3", label: "填写退货信息" },
  139. { value: "4", label: "已退货" },
  140. // { value: "5", label: "已发货" },
  141. ],
  142. orderCode: "",
  143. return_code: "",
  144. code: "",
  145. };
  146. },
  147. mounted() {
  148. this.code = this.$route.query.id;
  149. this.searchList();
  150. },
  151. methods: {
  152. getNewTime() {
  153. this.newTime = new Date().valueOf();
  154. },
  155. // 点击业务审核的保存按钮
  156. async examForm(e) {
  157. console.log(e);
  158. if (!this.loading) {
  159. let type = e.state === "1" ? "1" : "0";
  160. console.log(type);
  161. await this.setstatus(type, "提交业务审核", e.remark);
  162. }
  163. },
  164. //
  165. async setstatus(type, detail, remark) {
  166. await this.$confirm(`确定要${type === "1" ? "同意" : "驳回"}?`, {
  167. confirmButtonText: "确定",
  168. cancelButtonText: "取消",
  169. type: "warning",
  170. })
  171. .then(async () => {
  172. // if (this.sitem) {
  173. // let { returnCode } = this.sitem;
  174. const model = {
  175. remark,
  176. returnCode: this.code,
  177. status: type,
  178. };
  179. let res = await asyncRequest.status(model);
  180. if (res && res.code === 0) {
  181. this.$notify.success({
  182. title: "修改成功!",
  183. message: "",
  184. });
  185. await this.searchList();
  186. } else if (res && res.code >= 100 && res.code <= 104) {
  187. await this.logout();
  188. } else {
  189. this.$message.warning(res.message);
  190. }
  191. // }
  192. })
  193. .catch(() => {
  194. console.log("取消");
  195. });
  196. },
  197. async searchList() {
  198. let model = {
  199. returnCode: this.code,
  200. };
  201. const res = await asyncRequest.detail(model);
  202. if (res && res.code === 0 && res.data) {
  203. this.status = res.data.status;
  204. console.log(this.s_status);
  205. console.log(res.data);
  206. this.sitem = res.data;
  207. console.log(this.sitem);
  208. this.orderCode = res.data.returnCode;
  209. // console.log(this.orderCode);
  210. this.getNewTime();
  211. } else if (res && res.code >= 100 && res.code <= 104) {
  212. await this.logout();
  213. } else {
  214. this.$message.warning(res.message);
  215. }
  216. },
  217. },
  218. };
  219. </script>