spring
12 小时以前 3ea1ff641e1c680a5a1727fb4034797bfe65d93e
src/pages/inventoryManagement/receiptManagement/index.vue
@@ -2,19 +2,6 @@
  <view class="receipt-page">
    <PageHeader title="入库管理" @back="goBack" />
    <!-- 标签:合格入库 / 不合格入库 -->
    <view class="tabs-wrap">
      <view
        v-for="tab in tabs"
        :key="tab.name"
        class="tab-item"
        :class="{ active: activeTab === tab.name }"
        @click="activeTab = tab.name"
      >
        <text>{{ tab.label }}</text>
      </view>
    </view>
    <!-- 搜索区域 -->
    <view class="search-section">
      <view class="search-row">
@@ -34,7 +21,7 @@
      </view>
    </view>
    <!-- 列表(合格/不合格共用接口 type 区分) -->
    <!-- 列表 -->
    <view class="list-section" v-if="activeTab !== 'custom'">
      <view v-if="tableData.length > 0">
        <view
@@ -73,7 +60,7 @@
</template>
<script setup>
import { ref, reactive, toRefs, watch } from 'vue'
import { ref, reactive, toRefs } from 'vue'
import { onShow, onReachBottom } from '@dcloudio/uni-app'
import PageHeader from '@/components/PageHeader.vue'
import {
@@ -81,16 +68,11 @@
  batchDeleteStockInRecords
} from '@/api/inventoryManagement/stockInRecord.js'
import {
  findAllQualifiedStockInRecordTypeOptions,
  findAllUnQualifiedStockInRecordTypeOptions
  findAllQualifiedStockInRecordTypeOptions
} from '@/api/basicData/enum.js'
const activeTab = ref('qualified')
const stockRecordTypeOptions = ref([])
const tabs = [
  { label: '合格入库', name: 'qualified', type: '0' },
  { label: '不合格入库', name: 'unqualified', type: '1' }
]
const currentType = () => '0'
const tableData = ref([])
const total = ref(0)
@@ -104,18 +86,13 @@
})
const { searchForm } = toRefs(data)
const currentType = () => tabs.find(t => t.name === activeTab.value)?.type || '0'
function getRecordType(recordType) {
  if (recordType == null || recordType === '') return ''
  return stockRecordTypeOptions.value.find(item => item.value === recordType)?.label || ''
}
function fetchRecordTypeOptions() {
  const api = currentType() === '1'
    ? findAllUnQualifiedStockInRecordTypeOptions
    : findAllQualifiedStockInRecordTypeOptions
  api()
  findAllQualifiedStockInRecordTypeOptions()
    .then(res => {
      const data = res.data != null ? res.data : res
      stockRecordTypeOptions.value = Array.isArray(data) ? data : []
@@ -126,7 +103,6 @@
}
const getList = () => {
  if (activeTab.value === 'custom') return
  const isFirstPage = page.current === 1
  if (isFirstPage) {
    uni.showLoading({ title: '加载中...', mask: true })
@@ -170,13 +146,6 @@
  getList()
}
watch(activeTab, () => {
  page.current = 1
  loadStatus.value = 'loadmore'
  stockRecordTypeOptions.value = []
  getList()
})
const handleQuery = () => {
  page.current = 1
  loadStatus.value = 'loadmore'
@@ -188,7 +157,7 @@
  try {
    uni.setStorageSync('receiptDetailItem', JSON.stringify({
      item,
      type: currentType()
      type: '0'
    }))
  } catch (e) {}
  uni.navigateTo({
@@ -218,7 +187,7 @@
const goBack = () => uni.navigateBack()
onShow(() => {
  if (activeTab.value !== 'custom') getList()
  getList()
})
onReachBottom(() => {
@@ -231,25 +200,6 @@
  min-height: 100vh;
  background: #f5f5f5;
  padding-bottom: 40rpx;
}
.tabs-wrap {
  display: flex;
  background: #fff;
  padding: 24rpx;
  gap: 24rpx;
}
.tab-item {
  flex: 1;
  text-align: center;
  padding: 20rpx;
  border-radius: 12rpx;
  background: #f0f0f0;
  font-size: 28rpx;
  color: #666;
}
.tab-item.active {
  background: #2979ff;
  color: #fff;
}
.search-section {
  background: #fff;
@@ -340,11 +290,17 @@
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  text-align: center;
}
.btn-delete {
  font-size: 28rpx;
  color: #f56c6c;
  padding: 12rpx 32rpx;
  margin: 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.no-data {
  text-align: center;