From 5d51aeded717c667a22096174168e4e5e59bde39 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 22 八月 2025 15:38:57 +0800 Subject: [PATCH] 1.来票登记开发联调 --- src/pages/procurementManagement/procurementLedger/view.vue | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 287 insertions(+), 0 deletions(-) diff --git a/src/pages/procurementManagement/procurementLedger/view.vue b/src/pages/procurementManagement/procurementLedger/view.vue new file mode 100644 index 0000000..174b8ae --- /dev/null +++ b/src/pages/procurementManagement/procurementLedger/view.vue @@ -0,0 +1,287 @@ +<template> + <view class="account-view"> + <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 --> + <PageHeader title="鍙拌处璇︽儏" @back="goBack" /> + + <!-- 鍩烘湰淇℃伅灞曠ず --> + <view class="info-section"> + <view class="section-title">鍩烘湰淇℃伅</view> + <view class="info-grid"> + <view class="info-item"> + <text class="info-label">閲囪喘鍚堝悓鍙�</text> + <text class="info-value">{{ form.purchaseContractNumber }}</text> + </view> + <view class="info-item"> + <text class="info-label">閿�鍞悎鍚屽彿</text> + <text class="info-value">{{ form.salesContractNo }}</text> + </view> + <view class="info-item"> + <text class="info-label">渚涘簲鍟嗗悕绉�</text> + <text class="info-value">{{ form.supplierName }}</text> + </view> + <view class="info-item"> + <text class="info-label">椤圭洰鍚嶇О</text> + <text class="info-value">{{ form.projectName }}</text> + </view> + <view class="info-item"> + <text class="info-label">浠樻鏂瑰紡</text> + <text class="info-value">{{ form.paymentMethod }}</text> + </view> + <view class="info-item"> + <text class="info-label">褰曞叆浜�</text> + <text class="info-value">{{ form.recorderName }}</text> + </view> + <view class="info-item"> + <text class="info-label">褰曞叆鏃ユ湡</text> + <text class="info-value">{{ form.entryDate }}</text> + </view> + </view> + </view> + + <!-- 浜у搧淇℃伅灞曠ず --> + <view class="product-section" v-if="productData && productData.length > 0"> + <view class="section-title">浜у搧淇℃伅</view> + <view class="product-card" v-for="(product, idx) in productData" :key="idx"> + <view class="product-header"> + <view class="product-title"> + <van-icon name="description" color="#2979ff" size="15" /> + <text class="product-productCategory">浜у搧 {{ idx + 1 }}</text> + </view> + </view> + + <view class="product-info"> + <view class="info-grid"> + <view class="info-item"> + <text class="info-label">浜у搧澶х被</text> + <text class="info-value">{{ product.productCategory }}</text> + </view> + <view class="info-item"> + <text class="info-label">瑙勬牸鍨嬪彿</text> + <text class="info-value">{{ product.specificationModel }}</text> + </view> + <view class="info-item"> + <text class="info-label">鍗曚綅</text> + <text class="info-value">{{ product.unit }}</text> + </view> + <view class="info-item"> + <text class="info-label">绋庣巼(%)</text> + <text class="info-value">{{ product.taxRate }}</text> + </view> + <view class="info-item"> + <text class="info-label">鍚◣鍗曚环(鍏�)</text> + <text class="info-value highlight">{{ product.taxInclusiveUnitPrice }}</text> + </view> + <view class="info-item"> + <text class="info-label">鏁伴噺</text> + <text class="info-value highlight">{{ product.quantity }}</text> + </view> + <view class="info-item"> + <text class="info-label">鍚◣鎬讳环(鍏�)</text> + <text class="info-value highlight">{{ product.taxInclusiveTotalPrice }}</text> + </view> + <view class="info-item"> + <text class="info-label">涓嶅惈绋庢�讳环(鍏�)</text> + <text class="info-value highlight">{{ product.taxExclusiveTotalPrice }}</text> + </view> + <view class="info-item"> + <text class="info-label">鍙戠エ绫诲瀷</text> + <text class="info-value">{{ product.invoiceType }}</text> + </view> + </view> + </view> + </view> + </view> + + <!-- 鏃犱骇鍝佷俊鎭彁绀� --> + <view class="no-product" v-else> + <text>鏆傛棤浜у搧淇℃伅</text> + </view> + </view> +</template> + +<script setup> +import { onMounted, ref } from 'vue'; +import {getPurchaseById} from "@/api/procurementManagement/procurementLedger"; + +// 琛ㄥ崟鏁版嵁 +const form = ref({ + id: '', + salesContractNo: '', + customerContractNo: '', + customerId: '', + customerName: '', + projectName: '', + executionDate: '', + paymentMethod: '', + entryPerson: '', + entryPersonName: '', + entryDate: '', + salesman: '' +}); + +// 浜у搧鏁版嵁 +const productData = ref([]); + +// 缂栬緫鏁版嵁 +const editData = ref(null); + +// 杩斿洖涓婁竴椤� +const goBack = () => { + // 娓呯悊鏈湴瀛樺偍鐨勬暟鎹� + uni.removeStorageSync('editData'); + uni.navigateBack(); +}; + +// 濉厖琛ㄥ崟鏁版嵁 +const fillFormData = () => { + if (!editData.value) return; + + // 鑾峰彇瀹屾暣鐨勪骇鍝佷俊鎭� + getPurchaseById({ id: editData.value.id, type: 2 }).then((res) => { + productData.value = res.productData || []; + form.value = {...res} + }); +}; + +onMounted(() => { + // 鑾峰彇缂栬緫鏁版嵁骞跺~鍏呰〃鍗� + const editDataStr = uni.getStorageSync('editData'); + if (editDataStr) { + try { + editData.value = JSON.parse(editDataStr); + // 浣跨敤 nextTick 纭繚鏁版嵁鍔犺浇瀹屾垚鍚庡啀濉厖 + setTimeout(() => { + fillFormData(); + }, 100); + } catch (error) { + console.error('瑙f瀽缂栬緫鏁版嵁澶辫触:', error); + } + } +}); +</script> + +<style scoped lang="scss"> +.account-view { + min-height: 100vh; + background: #f8f9fa; + padding-bottom: 2rem; +} + +.header { + display: flex; + align-items: center; + background: #fff; + padding: 1rem 1.25rem; + border-bottom: 0.0625rem solid #f0f0f0; + position: sticky; + top: 0; + z-index: 100; + /* 鍏煎 iOS 鍒樻捣/鐏靛姩宀涘畨鍏ㄥ尯 */ + padding-top: env(safe-area-inset-top); +} + +.title { + flex: 1; + text-align: center; + font-size: 1.125rem; + font-weight: 600; + color: #333; +} + +.info-section { + background: #fff; + margin: 1rem; + padding: 1rem; + border-radius: 0.5rem; + box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,0.04); +} + +.section-title { + font-size: 1rem; + font-weight: 600; + color: #333; + margin-bottom: 1rem; + padding-bottom: 1rem; + border-bottom: 0.0625rem solid #e8e8e8; +} + +.info-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.75rem; +} + +.info-item { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.info-label { + font-size: 0.75rem; + color: #666; + font-weight: 400; +} + +.info-value { + font-size: 0.875rem; + color: #333; + font-weight: 500; +} + +.info-value.highlight { + color: #2979ff; + font-weight: 600; +} + +.product-section { + background: #fff; + margin: 1rem; + padding: 1rem; + border-radius: 0.5rem; + box-shadow: 0 0.125rem 0.5rem rgba(0,0,0,0.04); +} + +.product-card { + background: #f8f9fa; + border-radius: 0.5rem; + padding: 1rem; + margin-bottom: 1rem; +} + +.product-card:last-child { + margin-bottom: 0; +} + +.product-header { + display: flex; + align-items: center; + padding-bottom: 0.75rem; + border-bottom: 0.0625rem solid #e8e8e8; + margin-bottom: 1rem; +} + +.product-title { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.product-productCategory { + font-size: 0.875rem; + font-weight: 500; + color: #333; +} + +.product-info .info-grid { + grid-template-columns: 1fr 1fr; + gap: 0.5rem; +} + +.no-product { + text-align: center; + padding: 2rem; + color: #999; + font-size: 0.875rem; +} +</style> -- Gitblit v1.9.3