From 8e153de91f55b07847225e23c3a9a8ab5d67e83e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 26 九月 2025 13:21:50 +0800
Subject: [PATCH] 生产管控模块
---
src/pages/sales/invoiceLedger/index.vue | 255 ++++++++++----------------------------------------
1 files changed, 52 insertions(+), 203 deletions(-)
diff --git a/src/pages/sales/invoiceLedger/index.vue b/src/pages/sales/invoiceLedger/index.vue
index fa48fda..f4cf5c2 100644
--- a/src/pages/sales/invoiceLedger/index.vue
+++ b/src/pages/sales/invoiceLedger/index.vue
@@ -2,30 +2,30 @@
<view class="sales-account">
<!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
<PageHeader title="寮�绁ㄥ彴璐�" @back="goBack" />
-
+
<!-- 鎼滅储鍜岀瓫閫夊尯鍩燂紙淇濇寔涓庨攢鍞彴璐﹂鏍间竴鑷达級 -->
- <view class="search-filter-section">
+ <view class="search-section">
<view class="search-bar">
<view class="search-input">
- <input
+ <up-input
class="search-text"
- placeholder="瀹㈡埛鍚嶇О/閿�鍞悎鍚屽彿"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉�/鍚堝悓鍙锋悳绱�"
v-model="searchForm.searchText"
- confirm-type="search"
- @confirm="handleQuery"
+ @change="handleQuery"
+ clearable
/>
</view>
-<!-- <view class="filter-button" @click="showFilter = true">-->
-<!-- <up-icon name="list" size="24" color="#999"></up-icon>-->
-<!-- </view>-->
+ <!-- <view class="filter-button" @click="showFilter = true">-->
+ <!-- <up-icon name="list" size="24" color="#999"></up-icon>-->
+ <!-- </view>-->
<view class="filter-button" @click="handleQuery">
<up-icon name="search" size="24" color="#999"></up-icon>
</view>
</view>
</view>
-
+
<!-- 鍒楄〃鍖哄煙 -->
- <view class="ledger-list" v-if="total > 0">
+ <view class="ledger-list" v-if="ledgerList.length > 0">
<view v-for="(item, index) in ledgerList" :key="index">
<view class="ledger-item">
<view class="item-header">
@@ -103,25 +103,25 @@
>
鍒犻櫎
</up-button>
- <up-button
- size="small"
- plain
- class="action-btn"
- v-if="item.invoiceFileName"
- @click="openFileActions(item.commonFiles || [])"
- >
- 鏌ョ湅闄勪欢
- </up-button>
- <up-button
- type="primary"
- size="small"
- class="action-btn"
- v-else
- :disabled="item.invoicePerson !== userStore.nickName"
- @click="openUpload(item)"
- >
- 涓婁紶
- </up-button>
+<!-- <up-button-->
+<!-- size="small"-->
+<!-- plain-->
+<!-- class="action-btn"-->
+<!-- v-if="item.invoiceFileName"-->
+<!-- @click="openFileActions(item.commonFiles || [])"-->
+<!-- >-->
+<!-- 鏌ョ湅闄勪欢-->
+<!-- </up-button>-->
+<!-- <up-button-->
+<!-- type="primary"-->
+<!-- size="small"-->
+<!-- class="action-btn"-->
+<!-- v-else-->
+<!-- :disabled="item.invoicePerson !== userStore.nickName"-->
+<!-- @click="openUpload(item)"-->
+<!-- >-->
+<!-- 涓婁紶-->
+<!-- </up-button>-->
</view>
</view>
</view>
@@ -129,7 +129,7 @@
<view v-else class="no-data">
<text>鏆傛棤寮�绁ㄥ彴璐︽暟鎹�</text>
</view>
-
+
<!-- 绛涢�夊脊绐� -->
<up-popup v-model="showFilter" mode="bottom" round><up-transition>
<view class="filter-popup">
@@ -158,7 +158,7 @@
</view>
</view>
</up-transition></up-popup>
-
+
<!-- 鏃ュ巻锛氬紑绁ㄦ棩鏈熻寖鍥� -->
<up-popup v-model="showInvoiceRange" mode="bottom"><up-transition>
<up-datetime-picker
@@ -169,7 +169,7 @@
@cancel="showInvoiceRange = false"
/>
</up-transition></up-popup>
-
+
<!-- 鏃ユ湡锛氬綍鍏ユ棩鏈� -->
<up-popup v-model="showCreateDatePicker" mode="bottom"><up-transition>
<up-datetime-picker
@@ -181,9 +181,9 @@
@cancel="showCreateDatePicker = false"
/>
</up-transition></up-popup>
-
-
+
+
<!-- 鍗曡涓婁紶寮圭獥锛堟棤琛ㄥ崟锛� -->
<up-popup v-model="showUpload" mode="bottom" round><up-transition>
<view class="upload-container">
@@ -210,7 +210,7 @@
</view>
</view>
</up-transition></up-popup>
-
+
<!-- 闄勪欢鍒楄〃閫夋嫨 -->
<up-action-sheet v-model="showFileSheet" :actions="fileActions" cancel-text="鍙栨秷" close-on-click-action @select="onSelectFile">
<view class="up-action-sheet__cancel" @click="showFileSheet = false">
@@ -221,9 +221,19 @@
</template>
<script setup>
-import { ref, reactive, onMounted } from 'vue'
+import {reactive, ref} from 'vue'
import dayjs from 'dayjs'
import PageHeader from '@/components/PageHeader.vue'
+import useUserStore from '@/store/modules/user'
+import {getToken} from '@/utils/auth'
+import config from '@/config.js'
+import {
+ commitFile,
+ delInvoiceLedgerByRegProductId,
+ registrationProductPage
+} from '@/api/salesManagement/invoiceLedger.js'
+import {onShow} from "@dcloudio/uni-app";
+
const showToast = (message) => {
uni.showToast({
title: message,
@@ -239,21 +249,11 @@
const closeToast = () => {
uni.hideLoading()
}
-import useUserStore from '@/store/modules/user'
-import { getToken } from '@/utils/auth'
-import config from '@/config.js'
-import {
- registrationProductPage,
- commitFile,
- delInvoiceLedgerByRegProductId
-} from '@/api/salesManagement/invoiceLedger.js'
-import {onShow} from "@dcloudio/uni-app";
const userStore = useUserStore()
// 鍒楄〃涓庢煡璇�
const ledgerList = ref([])
-const total = ref(0)
const page = reactive({ current: -1, size: -1 })
const searchForm = reactive({
searchText: '',
@@ -304,10 +304,7 @@
const { invoiceDate, ...rest } = searchForm
const res = await registrationProductPage({ ...rest, ...page })
// 鍏煎涓嶅悓杩斿洖缁撴瀯
- const records = res?.data?.records || res?.records || res?.data || []
- const totalVal = res?.data?.total || res?.total || records.length || 0
- ledgerList.value = records
- total.value = totalVal
+ ledgerList.value = res?.data?.records || res?.records || res?.data || []
closeToast()
} catch (e) {
closeToast()
@@ -533,165 +530,15 @@
</script>
<style scoped lang="scss">
-.u-divider {
- margin: 0 !important;
-}
-.sales-account {
- min-height: 100vh;
- background: #f8f9fa;
- position: relative;
-}
+@import '@/styles/sales-common.scss';
-.search-filter-section {
- padding: 10px 20px;
- background: #ffffff;
-}
-
-.search-bar {
- display: flex;
- align-items: center;
- gap: 12px;
-}
-
-.search-input {
- flex: 1;
- background: #f5f5f5;
- border-radius: 24px;
- padding: 10px 16px;
- display: flex;
- align-items: center;
- gap: 8px;
-}
-
-.search-text {
- flex: 1;
- font-size: 14px;
- color: #333;
- background: transparent;
- border: none;
- outline: none;
-}
-
-.search-text::placeholder {
- color: #999;
-}
-
-.filter-button {
- width: 40px;
- height: 40px;
- border-radius: 8px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.ledger-list {
- padding: 20px;
-}
-
-.ledger-item {
- background: #ffffff;
- border-radius: 12px;
- margin-bottom: 16px;
- overflow: hidden;
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- padding: 0 16px;
-}
-
-.item-header {
- padding: 16px 0;
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.item-left {
- display: flex;
- align-items: center;
- gap: 8px;
-}
-
-.document-icon {
- width: 24px;
- height: 24px;
- background: #2979ff;
- border-radius: 4px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.item-id {
- font-size: 14px;
- color: #333;
- font-weight: 500;
-}
-
-.item-details {
- padding: 16px 0;
-}
-
-.detail-row {
- display: flex;
- align-items: flex-end;
- justify-content: space-between;
- margin-bottom: 8px;
-
- &:last-child {
- margin-bottom: 0;
- }
-}
-
-.detail-label {
- font-size: 12px;
- color: #777777;
- min-width: 60px;
-}
-
-.detail-value {
- font-size: 12px;
- color: #000000;
- text-align: right;
- flex: 1;
- margin-left: 16px;
-}
-
-.detail-value.highlight {
- color: #2979ff;
- font-weight: 500;
-}
-
-.no-data {
- padding: 40px 0;
- text-align: center;
- color: #999;
-}
-
-.action-buttons {
- display: flex;
- gap: 12px;
- padding: 0 0 16px 0;
- justify-content: space-between;
-}
-
-.action-btn {
- flex: 1;
-}
-
+// 寮�绁ㄥ彴璐︾壒鏈夋牱寮�
.filter-popup {
padding: 12px 12px 20px;
}
.switch-row {
padding: 12px 16px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.switch-label {
- font-size: 14px;
- color: #333;
}
.filter-actions {
@@ -746,6 +593,7 @@
box-shadow: 0 -0.125rem 0.5rem rgba(0,0,0,0.05);
z-index: 1000;
}
+
.cancel-btn {
font-weight: 400;
font-size: 1rem;
@@ -755,6 +603,7 @@
box-shadow: 0 0.25rem 0.625rem 0 rgba(3,88,185,0.2);
border-radius: 2.5rem 2.5rem 2.5rem 2.5rem;
}
+
.save-btn {
font-weight: 400;
font-size: 1rem;
--
Gitblit v1.9.3