stockDetail.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <view class="stockDetail-wrap">
  3. <!-- 查询结果 -->
  4. <view class="stockDetail-info" v-if="productData">
  5. <view class="info-item flex align_center justify_between">
  6. <view class="info-name">产品编码</view>
  7. <view style="width:70%;">{{productData && productData.dealerProductEntity.code || '--'}} <copyText :text="productData.dealerProductEntity.code" label="产品编码"></copyText></view>
  8. </view>
  9. <view class="info-item flex align_center justify_between">
  10. <view class="info-name">产品名称</view>
  11. <view style="width:70%;">{{productData && productData.dealerProductEntity.name || '--'}} <copyText :text="productData.dealerProductEntity.name" label="产品名称"></copyText></view>
  12. </view>
  13. <view class="info-item flex align_center justify_between">
  14. <view class="info-name">原厂编码</view>
  15. <view style="width:70%;">{{productData && productData.dealerProductEntity.origCode || '--'}} <copyText :text="productData.dealerProductEntity.origCode" label="原厂编码"></copyText></view>
  16. </view>
  17. <view class="info-item flex align_center justify_between">
  18. <view class="info-name">条形码</view>
  19. <view style="width:70%;">{{productData && productData.dealerProductEntity.qrCode || '--'}} <copyText :text="productData.dealerProductEntity.qrCode" label="条形码"></copyText></view>
  20. </view>
  21. <view class="info-item flex align_center justify_between">
  22. <view class="info-name">可用库存</view>
  23. <view style="width:70%;">{{productData.currentQty||0}}</view>
  24. </view>
  25. <view class="info-item flex align_center justify_between">
  26. <view class="info-name">冻结库存</view>
  27. <view style="width:70%;">{{productData.freezeQty||0}}</view>
  28. </view>
  29. <view class="info-item flex align_center justify_between">
  30. <view class="info-name">仓库/仓位</view>
  31. <view style="width:70%;">{{productData && productData.warehouseName || '--'}}>{{productData && productData.warehouseLocationName || '--'}}</view>
  32. </view>
  33. <view class="info-item flex align_center justify_between">
  34. <view class="info-name">产品分类</view>
  35. <view style="width:70%;">{{productData.dealerProductEntity.productTypeName1 }} > {{productData.dealerProductEntity.productTypeName2 }} > {{productData.dealerProductEntity.productTypeName3 }} </view>
  36. </view>
  37. <view class="info-item flex align_center justify_between">
  38. <view class="info-name">单位</view>
  39. <view style="width:70%;">{{productData && productData.dealerProductEntity.unit || '--'}}</view>
  40. </view>
  41. <view class="info-item flex align_center justify_between">
  42. <view class="info-name">产品图片</view>
  43. <view style="width:70%;" @click="viewImgs()">
  44. <u-image :src="productData.productMainImage?productData.productMainImage:`../../static/def_img@2x.png`" width="80" height="80" border-radius="10"></u-image>
  45. </view>
  46. </view>
  47. </view>
  48. </view>
  49. </template>
  50. <script>
  51. import { toThousands } from '@/libs/tools'
  52. import { stockfindGroupPage } from '@/config/api'
  53. import copyText from '@/pages/common/copyText.vue'
  54. export default{
  55. components: { copyText },
  56. data(){
  57. return {
  58. productData: null,
  59. theme: '',
  60. toThousands
  61. }
  62. },
  63. onLoad(option) {
  64. this.getData()
  65. },
  66. methods: {
  67. getData(){
  68. const data = this.$store.state.vuex_tempData
  69. const params = {
  70. "productSn":data.productSn,
  71. "warehouseSn":data.warehouseSn,
  72. "warehouseLocationSn":data.warehouseLocationSn,
  73. "minCurrentQty":1
  74. }
  75. stockfindGroupPage(params).then(res => {
  76. console.log(res.data)
  77. if(res.status == 200){
  78. this.productData = res.data
  79. }
  80. })
  81. },
  82. viewImgs(){
  83. const imgUrls = []
  84. this.productData.productPicList && this.productData.productPicList.map(item => {
  85. imgUrls.push(item.imageUrl)
  86. })
  87. if(imgUrls.length){
  88. uni.previewImage({
  89. urls: imgUrls
  90. })
  91. }
  92. }
  93. }
  94. }
  95. </script>
  96. <style lang="scss">
  97. page{
  98. background: #f8f8f8;
  99. }
  100. .stockDetail-wrap{
  101. padding: 30upx;
  102. .panel-box {
  103. background-color: #ffffff;
  104. padding: 20upx 20upx;
  105. border-radius: 20upx;
  106. box-shadow: 3upx 2upx 6upx #eee;
  107. margin-bottom: 30upx;
  108. display: flex;
  109. justify-content: space-between;
  110. align-items: center;
  111. .info-con{
  112. margin-left: 20upx;
  113. .padding_7{
  114. padding: 14upx 0 0;
  115. font-size: 14px;
  116. }
  117. }
  118. }
  119. .stockDetail-info{
  120. background-color: #ffffff;
  121. padding: 10upx 20upx 20upx;
  122. border-radius: 20upx;
  123. box-shadow: 3upx 2upx 6upx #eee;
  124. .info-item{
  125. border-bottom: 1px dashed #e4e7ed;
  126. padding: 20upx 0;
  127. .info-name{
  128. color: #464646;
  129. }
  130. }
  131. }
  132. }
  133. </style>