productItem.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div class="bgcolor productItem">
  3. <div class="navBarTOP">
  4. <van-nav-bar class="navBar" title="产品列表" left-arrow @click-left="onClickLeft">
  5. <template #right>
  6. <span style="color: #0057ba" @click="placeOrderFn"> 去下单 </span>
  7. </template>
  8. </van-nav-bar>
  9. </div>
  10. <div class="lineGrey"></div>
  11. <div class="lineGrey"></div>
  12. <div class="lineGrey"></div>
  13. <div class="lineGrey"></div>
  14. <div class="lineGrey"></div>
  15. <div class="container" style="width: 100%; margin: 0 auto">
  16. <van-tabs class="myTab" type="card" v-model="tabVal" color="#0057ba" @change="tabChange">
  17. <van-tab :title="timeData + '下单SKU'" name="0"></van-tab>
  18. <van-tab title="建议订单" name="1"></van-tab>
  19. </van-tabs>
  20. <div v-for="item in list" v-if="list.length">
  21. <p style="font-weight: bold; font-size: 14px">&nbsp;&nbsp;&nbsp;{{ item.m01Name }}</p>
  22. <el-table class="table-headermd" :data="item.productDetailList" border>
  23. <el-table-column label="物料名称" prop="productName" />
  24. <el-table-column label="规格" prop="productSku" />
  25. </el-table>
  26. </div>
  27. <van-empty v-if="list.length == 0" />
  28. </div>
  29. </div>
  30. </template>
  31. <script>
  32. import { getItemList } from '@/api';
  33. import { getOrderUrlByStoreId } from '@/api/inventory';
  34. export default {
  35. data() {
  36. return {
  37. list: [],
  38. tabVal: '0',
  39. detail: null,
  40. timeData: '',
  41. };
  42. },
  43. activated() {
  44. this.getMonth();
  45. this.getMyInventoryList();
  46. },
  47. methods: {
  48. getMonth() {
  49. // 获取当前日期
  50. var currentDate = new Date();
  51. // 获取当前月份
  52. var currentMonth = currentDate.getMonth();
  53. // 获取当前年份
  54. // var currentYear = currentDate.getFullYear();
  55. var previousMonthDate1 = new Date();
  56. if (currentDate.getDate() == 1) {
  57. previousMonthDate1.setMonth(currentMonth - 1);
  58. } else {
  59. }
  60. var previousMonth1 = previousMonthDate1.getMonth();
  61. var previousYear1 = previousMonthDate1.getFullYear();
  62. // 计算前三个月的年份和月份
  63. var previousMonthDate = new Date();
  64. if (currentDate.getDate() == 1) {
  65. previousMonthDate.setMonth(currentMonth - 3);
  66. } else {
  67. previousMonthDate.setMonth(currentMonth - 2);
  68. }
  69. 1;
  70. var previousMonth = previousMonthDate.getMonth();
  71. var previousYear = previousMonthDate.getFullYear();
  72. //前三个月
  73. if (previousYear1 == previousYear) {
  74. var formattedPreviousMonth1 = previousYear1 + '-' + (previousMonth1 + 1);
  75. // 格式化年份和月份
  76. var formattedPreviousMonth = previousYear + '-' + (previousMonth + 1);
  77. this.timeData =
  78. formattedPreviousMonth.split('-')[1] + '-' + formattedPreviousMonth1.split('-')[1] + '月';
  79. } else {
  80. var formattedPreviousMonth1 = previousYear1 + '年' + (previousMonth1 + 1) + '月';
  81. // .toString().padStart(2, '0');
  82. // 格式化年份和月份
  83. var formattedPreviousMonth = previousYear + '年' + (previousMonth + 1) + '月';
  84. this.timeData = formattedPreviousMonth + '-' + formattedPreviousMonth1;
  85. }
  86. },
  87. tabChange(name) {
  88. this.tabVal = name;
  89. this.setListData();
  90. // this.getMyInventoryList();
  91. },
  92. onSelect(action) {
  93. this.$router.push({
  94. path: '/material',
  95. query: {
  96. tabVal: action,
  97. },
  98. });
  99. },
  100. getMyInventoryList() {
  101. let loading1 = this.$toast.loading({
  102. duration: 0,
  103. message: '加载中...',
  104. forbidClick: true,
  105. });
  106. getItemList({ storeCode: this.$route.query.id }).then((res) => {
  107. loading1.clear();
  108. if (res.code == 200) {
  109. this.loading = false;
  110. this.detail = res.data;
  111. this.setListData();
  112. } else {
  113. this.$toast.fail(res.msg);
  114. }
  115. });
  116. },
  117. setListData() {
  118. this.list = this.tabVal == '0' ? this.detail.threeMonthItemList : this.detail.adviceItemList;
  119. },
  120. placeOrderFn() {
  121. let loading1 = this.$toast.loading({
  122. duration: 0,
  123. message: '加载中...',
  124. forbidClick: true,
  125. });
  126. getOrderUrlByStoreId({
  127. storeId: this.$route.query.id,
  128. from: this.$route.query.from || '',
  129. }).then((res) => {
  130. loading1.clear();
  131. if (res.code == 200 && res.data) {
  132. window.location.href = res.data;
  133. } else {
  134. this.Toast({
  135. message: res.msg,
  136. duration: 5000,
  137. });
  138. }
  139. });
  140. },
  141. onClickLeft() {
  142. this.$router.go(-1);
  143. },
  144. },
  145. };
  146. </script>
  147. <style lang="scss">
  148. .productItem {
  149. .myTab {
  150. .van-tabs__nav--card {
  151. margin: 0 !important;
  152. border-left: 0;
  153. border-right: 0;
  154. }
  155. .van-tabs__wrap,
  156. .van-tabs__nav--card {
  157. height: 39px;
  158. }
  159. .van-tab {
  160. line-height: 40px;
  161. }
  162. }
  163. .myList {
  164. .van-cell {
  165. padding: 0;
  166. &:after {
  167. border-bottom: none;
  168. }
  169. }
  170. }
  171. }
  172. </style>
  173. <style lang="scss">
  174. .table-headermd {
  175. font-size: 1.2rem;
  176. text-align: center;
  177. position: initial;
  178. width: 94% !important;
  179. margin: 0 auto;
  180. border-right: 0;
  181. }
  182. .table-headermd .el-table__header,
  183. .table-headermd .el-table__body {
  184. width: 100% !important;
  185. }
  186. .table-headermd col {
  187. width: 5.8rem;
  188. }
  189. .table-headermd col:nth-child(2),
  190. .table-headermd col:nth-child(4),
  191. .table-headermd col:nth-child(3) {
  192. width: 5rem;
  193. }
  194. .table-headermd .van-cell {
  195. padding: 0 4px;
  196. height: 100%;
  197. }
  198. .table-headermd th.el-table__cell > .cell {
  199. padding: 0 4px;
  200. }
  201. .table-headermd th.el-table__cell {
  202. background-color: #1989fa;
  203. color: #fff;
  204. }
  205. .table-headermd .el-table__cell {
  206. padding: 4px 0;
  207. }
  208. </style>