周宾
19 小时以前 b54a94b098a5a0a3375bab0d6493bacf45dd0a58
src/pages/inventoryManagement/receiptManagement/index.vue
@@ -1,6 +1,22 @@
<template>
   <view>
   <view class="sales-account">
      <PageHeader title="入库管理" @back="goBack" />
      <view class="search-section">
         <view class="search-bar">
            <view class="search-input">
               <up-input
                  class="search-text"
                  placeholder="请输入产品名称搜索"
                  v-model="productCategoryValue"
                  @change="reloadPage"
                  clearable
               />
            </view>
            <view class="filter-button" @click="reloadPage">
               <up-icon name="search" size="24" color="#999"></up-icon>
            </view>
         </view>
      </view>
      <view class="tabs">
         <uni-segmented-control :current="tabCurrent" :values="tabItems" @clickItem="switchTab" />
      </view>
@@ -8,7 +24,50 @@
      <view v-if="contentList?.length !== 0" class="content">
         <view v-if="tabCurrent === 0">
            <block v-for="item in contentList" :key="item.id">
               <view class="item-box item-box0"></view>
               <view class="item-box item-box0">
                  <view class="item">
                     <view class="label">入库时间</view>
                     <view class="value">{{ item.createTime }}</view>
                  </view>
                  <view class="item">
                     <view class="label">产品名称</view>
                     <view class="value">{{ item.productCategory }}</view>
                  </view>
                  <view class="item">
                     <view class="label">产品高度</view>
                     <view class="value">{{ item.specificationModel }}{{ item.unit }}</view>
                  </view>
                  <view class="item">
                     <view class="label">入库数量/件</view>
                     <view class="value">{{ item.inboundNum }}</view>
                  </view>
                  <view class="item">
                     <view class="label">每件数量/支</view>
                     <view class="value">{{ item.boxNum }}</view>
                  </view>
                  <view class="item">
                     <view class="label">单价(元)/件</view>
                     <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                  </view>
                  <view class="item">
                     <view class="label">单价(美元)/件</view>
                     <view class="value">{{ item.dollarPrice }}</view>
                  </view>
                  <view class="item">
                     <view class="label">纸箱规格</view>
                     <view class="value">{{ item.cartonSpecifications }}cm</view>
                  </view>
                  <view class="item">
                     <view class="label">入库人</view>
                     <view class="value">{{ item.createBy }}</view>
                  </view>
                  <view class="item" style="justify-content: flex-end;">
                     <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 20rpx;"
                        @click="deleteGoods(item)">删除</button>
                     <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;"
                        @click="openForm(item, 'edit')">编辑</button>
                  </view>
               </view>
            </block>
            <uni-load-more :status="loadMoreStatus"></uni-load-more>
         </view>
@@ -42,8 +101,12 @@
                     <view class="value">{{ item.boxNum }}</view>
                  </view>
                  <view class="item">
                     <view class="label">单价(元)/支</view>
                     <view class="label">单价(元)/件</view>
                     <view class="value">{{ item.taxInclusiveUnitPrice }}</view>
                  </view>
                  <view class="item">
                     <view class="label">单价(美元)/件</view>
                     <view class="value">{{ item.dollarPrice }}</view>
                  </view>
                  <view class="item">
                     <view class="label">纸箱规格</view>
@@ -54,14 +117,17 @@
                     <view class="value">{{ item.createBy }}</view>
                  </view>
                  <view class="item" style="justify-content: flex-end;">
                     <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;" @click="openForm(item,'edit')">编辑</button>
                     <button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 20rpx;"
                        @click="deleteGoods(item)">删除</button>
                     <button class="mini-btn" type="primary" size="mini" style="margin-left: 0;margin-right: 0;"
                        @click="openForm(item, 'edit')">编辑</button>
                  </view>
               </view>
            </block>
            <uni-load-more :status="loadMoreStatus"></uni-load-more>
         </view>
      </view>
      <view class="fab-button" @click="openForm({},'add')">
      <view class="fab-button" @click="openForm({}, 'add')">
         <up-icon name="plus" size="24" color="#ffffff"></up-icon>
      </view>
      <view v-if="contentList?.length === 0" class="no-data">
@@ -72,10 +138,11 @@
<script setup>
import { ref, reactive, computed } from 'vue'
import { listPage, listPageByCustom } from '@/api/inventoryManagement/receiptManagement.js'
import { listPage, listPageByCustom, deleteCustom,stockinDel } from '@/api/inventoryManagement/receiptManagement.js'
import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
import config from '@/config'
const baseUrl = config.baseUrl
const productCategoryValue = ref('')
const baseUrl = config.imgUrl
// tab相关
const tabItems = reactive(['采购入库', '成品入库'])
const tabCurrent = ref(0)
@@ -84,6 +151,7 @@
   if (tabCurrent.value !== e.currentIndex) {
      tabCurrent.value = e.currentIndex
   }
   productCategoryValue.value = ''
   reloadPage()
}
@@ -93,10 +161,16 @@
}
// 打开编辑/新增
const openForm = (goods,type) => {
   uni.navigateTo({
      url: '/pages/inventoryManagement/receiptManagement/edit?goods=' + JSON.stringify(goods)
   })
const openForm = (goods) => {
   if (tabCurrent.value === 0) {
      uni.navigateTo({
         url: '/pages/inventoryManagement/receiptManagement/procurement-edit?goods=' + JSON.stringify(goods)
      })
   } else {
      uni.navigateTo({
         url: '/pages/inventoryManagement/receiptManagement/edit?goods=' + JSON.stringify(goods)
      })
   }
}
// 分页相关
@@ -131,6 +205,36 @@
   contentList.value = []
   getList()
}
const deleteGoods = async (goods) => {
   uni.showModal({
      title: '提示',
      content: '确定要删除该商品的入库吗?',
      success: function (res) {
         if (res.confirm) {
            uni.showLoading({
               title: '删除中...'
            })
            let params = {}
            let deleteApi = ''
            if(tabCurrent.value == 0){
               deleteApi = stockinDel
               params = {
                  ids:[goods.id],
                  type: 1
               }
            }else{
               deleteApi = deleteCustom
               params = [goods.id]
            }
            deleteApi(params).then(res => {
               uni.hideLoading()
               reloadPage()
            })
         }
      }
   })
}
const getList = async () => {
   let getListApi = null
   if (tabCurrent.value == 1) {
@@ -139,7 +243,11 @@
      getListApi = listPage
   }
   loading.value = true
   let resp = await getListApi(pageParams)
   let params = pageParams
   if(productCategoryValue.value){
      params.productCategory = productCategoryValue.value
   }
   let resp = await getListApi(params)
   loading.value = false
   if (resp.code != 200 || !resp.data) {
      contentList.value = []
@@ -176,7 +284,8 @@
   color: #999;
   font-size: 14px;
}
.item-box{
.item-box {
   box-sizing: border-box;
   margin: 20rpx;
   padding: 20rpx;
@@ -200,6 +309,7 @@
      }
   }
}
// 浮动按钮样式
.fab-button {
   position: fixed;
@@ -215,4 +325,5 @@
   box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
   z-index: 1000;
}
@import '@/styles/sales-common.scss';
</style>