main.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <div>
  3. <detailDatatable
  4. :newTime="newTime"
  5. v-if="newTime !== '' && sitem"
  6. :sitem="sitem"
  7. :columns="columns"
  8. >
  9. <template slot="supplier_name">
  10. <span>{{ sitem.supplier_name }}</span>
  11. <el-popover placement="top" width="300" trigger="hover">
  12. <ul>
  13. <li>
  14. <span>销售方公司编号:</span><span>{{ sitem.supplierNo }}</span>
  15. </li>
  16. </ul>
  17. <i class="el-icon-warning-outline fr" slot="reference"></i>
  18. </el-popover>
  19. </template>
  20. <template slot="company">
  21. <span>{{ sitem.company }}</span>
  22. <el-popover placement="top" width="300" trigger="hover">
  23. <ul>
  24. <li>
  25. <span>购买方公司编号:</span><span>{{ sitem.companyNo }}</span>
  26. </li>
  27. </ul>
  28. <i class="el-icon-warning-outline fr" slot="reference"></i>
  29. </el-popover>
  30. </template>
  31. <template slot="status">
  32. <el-tag
  33. :size="'mini'"
  34. :type="sitem.status == '0' ? 'warning' : ''"
  35. v-text="
  36. (statusOptions.find((item) => item.value == sitem.status) || {})
  37. .label || '--'
  38. "
  39. ></el-tag>
  40. </template>
  41. <template slot="order_type">
  42. <el-tag
  43. :size="'mini'"
  44. v-text="
  45. (
  46. cg_order_type_options.find(
  47. (item) => item.id == sitem.order_type
  48. ) || {}
  49. ).label || '--'
  50. "
  51. ></el-tag>
  52. <el-popover
  53. placement="top"
  54. width="300"
  55. v-if="sitem.order_type === '1'"
  56. trigger="hover"
  57. >
  58. <ul>
  59. <li>
  60. <span>备库单编号:</span><span>{{ sitem.bkcode }}</span>
  61. </li>
  62. </ul>
  63. <i class="el-icon-warning-outline fr" slot="reference"></i>
  64. </el-popover>
  65. <el-popover
  66. placement="top"
  67. width="300"
  68. v-if="sitem.order_type !== '1'"
  69. trigger="hover"
  70. >
  71. <ul>
  72. <li>
  73. <span>订单编号:</span><span>{{ sitem.orderCode }}</span>
  74. </li>
  75. </ul>
  76. <i class="el-icon-warning-outline fr" slot="reference"></i>
  77. </el-popover>
  78. </template>
  79. <template slot="wsm">
  80. <span>{{ sitem.wsm_supplier }}/{{ sitem.wsm_name }}</span>
  81. <el-popover placement="top" width="300" trigger="hover">
  82. <ul>
  83. <li>
  84. <span>仓库公司编号:</span><span>{{ sitem.wsm_supplierNo }}</span>
  85. </li>
  86. <li>
  87. <span>仓库名称编号:</span><span>{{ sitem.wsm_code }}</span>
  88. </li>
  89. </ul>
  90. <i class="el-icon-warning-outline fr" slot="reference"></i>
  91. </el-popover>
  92. </template>
  93. <template slot="gold_price">
  94. <div
  95. v-if="
  96. sitem.status == '0' &&
  97. sitem.can[0].id == '6' &&
  98. cost_detailArr.is_gold_price == '1' &&
  99. private_field &&
  100. private_field.length > 0 &&
  101. private_field.some((item) => item == '1')
  102. "
  103. >
  104. {{ sitem.gold_price }}
  105. </div>
  106. <div v-else>----</div>
  107. </template>
  108. <template slot="customer">
  109. <span>{{ sitem.customer.companyName }}</span>
  110. <el-popover
  111. placement="top"
  112. width="300"
  113. trigger="hover"
  114. v-if="sitem.order_type != 1"
  115. >
  116. <ul>
  117. <li>
  118. <span>客户编号:</span><span>{{ sitem.customer.companyNo }}</span>
  119. </li>
  120. </ul>
  121. <i class="el-icon-warning-outline fr" slot="reference"></i>
  122. </el-popover>
  123. </template>
  124. <!-- <template slot="addr_info">
  125. <el-table
  126. :data="sitem.addr_info"
  127. :size="'mini'"
  128. border
  129. stripe
  130. style="width: 100%"
  131. >
  132. <el-table-column
  133. prop="receipt_quantity"
  134. label="发货数量"
  135. show-overflow-tooltip
  136. min-width="180px"
  137. >
  138. </el-table-column>
  139. <el-table-column
  140. prop="contactor"
  141. label="收货人"
  142. show-overflow-tooltip
  143. >
  144. </el-table-column>
  145. <el-table-column prop="mobile" label="联系电话" show-overflow-tooltip>
  146. </el-table-column>
  147. </el-table>
  148. </template> -->
  149. <template slot="total_fee">
  150. <span
  151. v-if="
  152. newTime !== '' &&
  153. private_field &&
  154. private_field.length > 0 &&
  155. private_field.some((item) => item == '1')
  156. "
  157. >{{ sitem.total_fee }}</span
  158. >
  159. <span v-else>******</span>
  160. </template>
  161. <template slot="good_price">
  162. <span
  163. v-if="
  164. newTime !== '' &&
  165. private_field &&
  166. private_field.length > 0 &&
  167. private_field.some((item) => item == '1')
  168. "
  169. >{{ sitem.good_price }}</span
  170. >
  171. <span v-else>******</span>
  172. </template>
  173. </detailDatatable>
  174. </div>
  175. </template>
  176. <script>
  177. import { columns, statusOptions } from "./columns";
  178. import { cg_order_type_options } from "@/assets/js/statusList";
  179. //————————————————
  180. import mixinPage from "@/mixins/elPaginationHandle";
  181. import resToken from "@/mixins/resToken";
  182. import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder";
  183. import { mapGetters } from "vuex";
  184. import detailDatatable from "../detail-data-table";
  185. export default {
  186. computed: {
  187. ...mapGetters(["tablebtnSize", "searchSize", "size", "private_field"]),
  188. powers() {
  189. let tran =
  190. this.$store.getters.btnList.find(
  191. (item) => item.menu_route == "standingBookDetail"
  192. ) || {};
  193. if (tran && tran.action && tran.action.length > 0) {
  194. return tran.action;
  195. } else {
  196. return [];
  197. }
  198. },
  199. },
  200. components: {
  201. detailDatatable,
  202. },
  203. mixins: [mixinPage, resToken],
  204. props: ["queryId"],
  205. data() {
  206. return {
  207. cg_order_type_options,
  208. statusOptions,
  209. cost_detailArr: [],
  210. //——————————————————————
  211. columns,
  212. newTime: "",
  213. sitem: null,
  214. loading: false,
  215. };
  216. },
  217. mounted() {
  218. this.initData();
  219. },
  220. methods: {
  221. getNewTime() {
  222. this.newTime = new Date().valueOf();
  223. },
  224. async initData() {
  225. this.loading = true;
  226. const res = await asyncRequest.detail({ cgdNo: this.queryId });
  227. if (res && res.code === 0 && res.data) {
  228. this.sitem = res.data;
  229. // console.log("11111111111111111", this.sitem);
  230. this.goldPrice();
  231. const { status, can, cgdNo } = this.sitem;
  232. this.status = status;
  233. if (can && can.length > 0) {
  234. this.sitem.class_cat = "";
  235. can.forEach((x, i) => {
  236. this.sitem.class_cat += i === 0 ? x.name : "/" + x.name;
  237. });
  238. }
  239. this.getNewTime();
  240. } else if (res && res.code >= 100 && res.code <= 104) {
  241. await this.logout();
  242. } else {
  243. this.$message.warning(res.message);
  244. }
  245. this.loading = false;
  246. },
  247. async goldPrice() {
  248. let res = {};
  249. let { order_type } = this.sitem;
  250. if (order_type == "1" || order_type == "2") {
  251. res = await asyncRequest.cost_detail({ spuCode: this.sitem.spuCode });
  252. } else {
  253. res = await asyncRequest.cove_detail({ spuCode: this.sitem.spuCode });
  254. }
  255. if (res && res.code === 0 && res.data) {
  256. this.cost_detailArr = res.data;
  257. } else if (res && res.code >= 100 && res.code <= 104) {
  258. await this.logout();
  259. } else {
  260. this.$message.warning(res.message);
  261. }
  262. },
  263. },
  264. };
  265. </script>
  266. <style>
  267. </style>