From e6d72c439e54ae561ab905a2bf92f3d6a2f01054 Mon Sep 17 00:00:00 2001
From: 周宾 <2802492122@qq.com>
Date: 星期一, 29 十二月 2025 11:07:48 +0800
Subject: [PATCH] 天津双奇点-仓储物流模块-自定义产品列表增加产品图片预览功能

---
 src/pages/inventoryManagement/receiptManagement/index.vue |   25 +++++-------
 src/pages/inventoryManagement/issueManagement/index.vue   |   21 +++++-----
 src/pages/inventoryManagement/stockManagement/index.vue   |   20 +++++----
 src/pages/inventoryManagement/dispatchLog/index.vue       |   37 ++++++++++--------
 4 files changed, 54 insertions(+), 49 deletions(-)

diff --git a/src/pages/inventoryManagement/dispatchLog/index.vue b/src/pages/inventoryManagement/dispatchLog/index.vue
index 3d53a41..2d04156 100644
--- a/src/pages/inventoryManagement/dispatchLog/index.vue
+++ b/src/pages/inventoryManagement/dispatchLog/index.vue
@@ -4,13 +4,8 @@
 		<view class="search-section">
 			<view class="search-bar">
 				<view class="search-input">
-					<up-input
-						class="search-text"
-						placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-						v-model="productCategoryValue"
-						@change="reloadPage"
-						clearable
-					/>
+					<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>
@@ -58,7 +53,8 @@
 							<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: 0;" @click="deleteGoods(item)">鍒犻櫎</button>
+							<button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;"
+								@click="deleteGoods(item)">鍒犻櫎</button>
 						</view>
 					</view>
 				</block>
@@ -70,7 +66,8 @@
 						<view class="item">
 							<view class="label">浜у搧鍥剧墖</view>
 							<view class="value">
-								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load></image>
+								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load
+									@click="previewImg(baseUrl + item.url)"></image>
 							</view>
 						</view>
 						<view class="item">
@@ -106,7 +103,8 @@
 							<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: 0;" @click="deleteGoods(item)">鍒犻櫎</button>
+							<button class="mini-btn" type="warn" size="mini" style="margin-left: 0;margin-right: 0;"
+								@click="deleteGoods(item)">鍒犻櫎</button>
 						</view>
 					</view>
 				</block>
@@ -121,7 +119,7 @@
 
 <script setup>
 import { ref, reactive, computed } from 'vue'
-import { listPage, listPageByCustom,stockmanagementDel } from '@/api/inventoryManagement/dispatchLog.js'
+import { listPage, listPageByCustom, stockmanagementDel } from '@/api/inventoryManagement/dispatchLog.js'
 import { onShow, onReachBottom, onPullDownRefresh } from '@dcloudio/uni-app'
 import config from '@/config'
 const productCategoryValue = ref('')
@@ -142,7 +140,11 @@
 const goBack = () => {
 	uni.navigateBack()
 }
-
+const previewImg = (url) => {
+	uni.previewImage({
+		urls: [url]
+	})
+}
 // 鍒嗛〉鐩稿叧
 const pageParams = reactive({
 	size: 10,
@@ -175,7 +177,7 @@
 	contentList.value = []
 	getList()
 }
-const deleteGoods = async (goods) => { 
+const deleteGoods = async (goods) => {
 	uni.showModal({
 		title: '鎻愮ず',
 		content: '纭畾瑕佸垹闄よ鍟嗗搧鐨勫嚭搴撳彴璐﹀悧锛�',
@@ -184,7 +186,7 @@
 				uni.showLoading({
 					title: '鍒犻櫎涓�...'
 				})
-				let params = {ids:[goods.id]}
+				let params = { ids: [goods.id] }
 				stockmanagementDel(params).then(res => {
 					uni.hideLoading()
 					reloadPage()
@@ -202,7 +204,7 @@
 	}
 	loading.value = true
 	let params = pageParams
-	if(productCategoryValue.value){
+	if (productCategoryValue.value) {
 		params.productCategory = productCategoryValue.value
 	}
 	let resp = await getListApi(params)
@@ -242,7 +244,8 @@
 	color: #999;
 	font-size: 14px;
 }
-.item-box{
+
+.item-box {
 	box-sizing: border-box;
 	margin: 20rpx;
 	padding: 20rpx;
@@ -266,6 +269,7 @@
 		}
 	}
 }
+
 // 娴姩鎸夐挳鏍峰紡
 .fab-button {
 	position: fixed;
@@ -281,5 +285,6 @@
 	box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
 	z-index: 1000;
 }
+
 @import '@/styles/sales-common.scss';
 </style>
\ No newline at end of file
diff --git a/src/pages/inventoryManagement/issueManagement/index.vue b/src/pages/inventoryManagement/issueManagement/index.vue
index 93fb013..d64202d 100644
--- a/src/pages/inventoryManagement/issueManagement/index.vue
+++ b/src/pages/inventoryManagement/issueManagement/index.vue
@@ -4,13 +4,8 @@
 		<view class="search-section">
 			<view class="search-bar">
 				<view class="search-input">
-					<up-input
-						class="search-text"
-						placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-						v-model="productCategoryValue"
-						@change="reloadPage"
-						clearable
-					/>
+					<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>
@@ -78,7 +73,8 @@
 						<view class="item">
 							<view class="label">浜у搧鍥剧墖</view>
 							<view class="value">
-								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load></image>
+								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load
+									@click="previewImg(baseUrl + item.url)"></image>
 							</view>
 						</view>
 						<view class="item">
@@ -208,7 +204,7 @@
 	}
 	loading.value = true
 	let params = pageParams
-	if(productCategoryValue.value){
+	if (productCategoryValue.value) {
 		params.productCategory = productCategoryValue.value
 	}
 	let resp = await getListApi(params)
@@ -219,8 +215,12 @@
 		return
 	}
 	contentList.value = [...contentList.value, ...resp.data.records]
-	console.log(resp.data.records)
 	totalSize.value = resp.data.total
+}
+const previewImg = (url) => {
+	uni.previewImage({
+		urls: [url]
+	})
 }
 
 onReachBottom(() => {
@@ -289,5 +289,6 @@
 	box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
 	z-index: 1000;
 }
+
 @import '@/styles/sales-common.scss';
 </style>
\ No newline at end of file
diff --git a/src/pages/inventoryManagement/receiptManagement/index.vue b/src/pages/inventoryManagement/receiptManagement/index.vue
index 9f913c5..d023541 100644
--- a/src/pages/inventoryManagement/receiptManagement/index.vue
+++ b/src/pages/inventoryManagement/receiptManagement/index.vue
@@ -4,13 +4,8 @@
 		<view class="search-section">
 			<view class="search-bar">
 				<view class="search-input">
-					<up-input
-						class="search-text"
-						placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-						v-model="productCategoryValue"
-						@change="reloadPage"
-						clearable
-					/>
+					<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>
@@ -77,7 +72,8 @@
 						<view class="item">
 							<view class="label">浜у搧鍥剧墖</view>
 							<view class="value">
-								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load @click="previewImg(baseUrl + item.url)"></image>
+								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load
+									@click="previewImg(baseUrl + item.url)"></image>
 							</view>
 						</view>
 						<view class="item">
@@ -138,7 +134,7 @@
 
 <script setup>
 import { ref, reactive, computed } from 'vue'
-import { listPage, listPageByCustom, deleteCustom,stockinDel } 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 productCategoryValue = ref('')
@@ -206,7 +202,7 @@
 	getList()
 }
 
-const previewImg = (url)=>{
+const previewImg = (url) => {
 	uni.previewImage({
 		urls: [url]
 	})
@@ -222,13 +218,13 @@
 				})
 				let params = {}
 				let deleteApi = ''
-				if(tabCurrent.value == 0){
+				if (tabCurrent.value == 0) {
 					deleteApi = stockinDel
 					params = {
-						ids:[goods.id],
+						ids: [goods.id],
 						type: 1
 					}
-				}else{
+				} else {
 					deleteApi = deleteCustom
 					params = [goods.id]
 				}
@@ -251,7 +247,7 @@
 	}
 	loading.value = true
 	let params = pageParams
-	if(productCategoryValue.value){
+	if (productCategoryValue.value) {
 		params.productCategory = productCategoryValue.value
 	}
 	let resp = await getListApi(params)
@@ -332,5 +328,6 @@
 	box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
 	z-index: 1000;
 }
+
 @import '@/styles/sales-common.scss';
 </style>
\ No newline at end of file
diff --git a/src/pages/inventoryManagement/stockManagement/index.vue b/src/pages/inventoryManagement/stockManagement/index.vue
index 0f641d6..c1af4cb 100644
--- a/src/pages/inventoryManagement/stockManagement/index.vue
+++ b/src/pages/inventoryManagement/stockManagement/index.vue
@@ -4,13 +4,8 @@
 		<view class="search-section">
 			<view class="search-bar">
 				<view class="search-input">
-					<up-input
-						class="search-text"
-						placeholder="璇疯緭鍏ヤ骇鍝佸悕绉版悳绱�"
-						v-model="productCategoryValue"
-						@change="reloadPage"
-						clearable
-					/>
+					<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>
@@ -74,7 +69,8 @@
 						<view class="item">
 							<view class="label">浜у搧鍥剧墖</view>
 							<view class="value">
-								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load></image>
+								<image class="img" :src="baseUrl + item.url" mode="aspectFill鈥�" lazy-load
+									@click="previewImg(baseUrl + item.url)"></image>
 							</view>
 						</view>
 						<view class="item">
@@ -151,6 +147,11 @@
 const goBack = () => {
 	uni.navigateBack()
 }
+const previewImg = (url) => {
+	uni.previewImage({
+		urls: [url]
+	})
+}
 
 // 鎵撳紑缂栬緫/鏂板
 const openForm = (goods, type) => {
@@ -200,7 +201,7 @@
 	}
 	loading.value = true
 	let params = pageParams
-	if(productCategoryValue.value){
+	if (productCategoryValue.value) {
 		params.productCategory = productCategoryValue.value
 	}
 	let resp = await getListApi(params)
@@ -281,5 +282,6 @@
 	box-shadow: 0 4px 16px rgba(41, 121, 255, 0.3);
 	z-index: 1000;
 }
+
 @import '@/styles/sales-common.scss';
 </style>
\ No newline at end of file

--
Gitblit v1.9.3