detail.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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. <div class="detail-page-title">
  8. <span class="title">采购单编号:{{ queryId }}</span>
  9. <div class="fr">
  10. <el-button
  11. type="primary"
  12. :size="'mini'"
  13. class="fr"
  14. @click="diffAdd = true"
  15. >填写总工差</el-button
  16. >
  17. </div>
  18. <!-- <span class="fr">
  19. <el-tag>
  20. {{
  21. (statusList.find((item) => item.code == status) || {}).label ||
  22. "--"
  23. }}
  24. </el-tag>
  25. </span> -->
  26. </div>
  27. <status-bar
  28. v-if="newTime !== ''"
  29. :newTime="newTime"
  30. :options="statusOptions"
  31. :status="status"
  32. />
  33. <el-collapse v-model="activeNames">
  34. <el-collapse-item title="采购单信息" name="1">
  35. <purchase-order-addEdit
  36. style="padding: 0 0 20px 0"
  37. :newTime="newTime"
  38. v-if="newTime !== ''"
  39. :sitem="sitem"
  40. :id="queryId"
  41. @refresh="initData()"
  42. />
  43. </el-collapse-item>
  44. <el-collapse-item title="备货入库单" name="2">
  45. <purchase-order-in-table
  46. :newTime="newTime"
  47. v-if="newTime !== '' && status !== '' && status !== '0'"
  48. :sitem="sitem"
  49. :id="queryId"
  50. @refresh="initData()"
  51. />
  52. </el-collapse-item>
  53. <!-- -->
  54. <el-collapse-item title="审批记录" name="10">
  55. <process-time-line
  56. v-if="newTime !== ''"
  57. :newTime="newTime"
  58. :type="'CGD'"
  59. :orderCode="orderCode"
  60. />
  61. </el-collapse-item>
  62. </el-collapse>
  63. <diff-order-add
  64. :sitem="sitem"
  65. :show-model="diffAdd"
  66. @refresh="initData"
  67. @cancel="diffAdd = false"
  68. />
  69. </div>
  70. <div v-else>
  71. <no-auth></no-auth>
  72. </div>
  73. </div>
  74. </template>
  75. <script>
  76. import mixinPage from "@/mixins/elPaginationHandle";
  77. import resToken from "@/mixins/resToken";
  78. import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder/detail";
  79. import purchaseOrderAddEdit from "./components/purchase-order-addEdit";
  80. import purchaseOrderInTable from "./components/purchase-order-in-table";
  81. import diffOrderAdd from "@/views/purchaseIn/purchaseDiffOrder/addEditModel";
  82. export default {
  83. name: "purchaseOrderDetail",
  84. mixins: [mixinPage, resToken],
  85. components: {
  86. purchaseOrderAddEdit,
  87. purchaseOrderInTable,
  88. diffOrderAdd,
  89. },
  90. computed: {
  91. powers() {
  92. let tran =
  93. this.$store.getters.btnList.find(
  94. (item) => item.menu_route == "purchaseOrderDetail"
  95. ) || {};
  96. if (tran && tran.action && tran.action.length > 0) {
  97. return tran.action;
  98. } else {
  99. return [];
  100. }
  101. },
  102. },
  103. mounted() {
  104. console.log(this.$route);
  105. },
  106. data() {
  107. return {
  108. isMetal: false,
  109. finishStatus: "finish",
  110. activeNames: ["0", "1", "2", "3", "4", "5", "10"],
  111. sitem: null,
  112. statusOptions: [
  113. { value: "0", label: "发货意见" },
  114. { value: "1", label: "填写发货单" },
  115. { value: "2", label: "部分发货" },
  116. { value: "3", label: "发货完成" },
  117. // { value: "4", label: "发货中" },
  118. // { value: "5", label: "已发货" },
  119. ],
  120. statusList: [
  121. {
  122. code: "0",
  123. label: "待同意发货",
  124. },
  125. {
  126. code: "1",
  127. label: "待发货",
  128. },
  129. {
  130. code: "2",
  131. label: "部分发货",
  132. },
  133. {
  134. code: "3",
  135. label: "发货完成",
  136. },
  137. ],
  138. status: "",
  139. newTime: "",
  140. loading: false,
  141. queryId: "",
  142. diffAdd: false,
  143. orderCode: "",
  144. };
  145. },
  146. mounted() {
  147. this.queryId = this.$route.query.id;
  148. this.initData();
  149. },
  150. methods: {
  151. getNewTime() {
  152. this.newTime = new Date().valueOf();
  153. },
  154. openModal() {
  155. this.diffAdd = true;
  156. },
  157. async examForm(e) {
  158. if (!this.loading) {
  159. let type = e.state === "1" ? "2" : "0";
  160. await this.setStatus(type, "提交入库方审核", e.remark);
  161. }
  162. },
  163. async initData() {
  164. this.loading = true;
  165. const res = await asyncRequest.detail({ cgdNo: this.queryId });
  166. if (res && res.code === 0 && res.data) {
  167. this.sitem = res.data;
  168. const { status, can } = this.sitem;
  169. this.status = status;
  170. console.log(res.data);
  171. this.orderCode = res.data.cgdNo;
  172. console.log(this.orderCode);
  173. this.getNewTime();
  174. } else if (res && res.code >= 100 && res.code <= 104) {
  175. await this.logout();
  176. } else {
  177. this.$message.warning(res.message);
  178. }
  179. this.loading = false;
  180. },
  181. },
  182. };
  183. </script>
  184. <style lang="scss" scoped>
  185. .purchaseOrderDetail {
  186. }
  187. </style>