Jelajahi Sumber

备注问题

shish 2 bulan lalu
induk
melakukan
a76c268111
28 mengubah file dengan 290 tambahan dan 79 penghapusan
  1. 2 1
      ghsApp/src/admin/breakage/index.vue
  2. 2 1
      ghsApp/src/admin/changePrice/batchChange.vue
  3. 2 1
      ghsApp/src/admin/changePrice/changeCgStaff.vue
  4. 37 3
      ghsApp/src/admin/changePrice/changeHide.vue
  5. 2 1
      ghsApp/src/admin/changePrice/changeStock2.vue
  6. 5 1
      ghsApp/src/admin/changePrice/components/Item2.vue
  7. 5 1
      ghsApp/src/admin/changePrice/components/changeCgStaffItem.vue
  8. 5 1
      ghsApp/src/admin/changePrice/components/changeClassItem.vue
  9. 46 14
      ghsApp/src/admin/changePrice/components/changeHide.vue
  10. 5 1
      ghsApp/src/admin/changePrice/components/changeStockItem2.vue
  11. 5 1
      ghsApp/src/admin/changePrice/components/outItem.vue
  12. 5 1
      ghsApp/src/admin/changePrice/components/stopItem.vue
  13. 2 1
      ghsApp/src/admin/changePrice/list2.vue
  14. 2 1
      ghsApp/src/admin/changePrice/outList.vue
  15. 2 1
      ghsApp/src/admin/changePrice/stopList.vue
  16. 4 0
      ghsApp/src/admin/item/components/item.vue
  17. 5 34
      ghsApp/src/admin/item/components/item2.vue
  18. 2 1
      ghsApp/src/admin/item/list.vue
  19. 2 7
      ghsApp/src/admin/item/list2.vue
  20. 2 1
      ghsApp/src/admin/part/index.vue
  21. 8 1
      ghsApp/src/components/module/app-commodity.vue
  22. 68 0
      ghsApp/src/components/module/itemRemarkBar.vue
  23. 2 1
      ghsApp/src/pagesPurchase/add.vue
  24. 6 1
      ghsApp/src/pagesPurchase/components/CommodityPurchase.vue
  25. 2 1
      ghsApp/src/pagesStorehouse/allot/exSelect.vue
  26. 8 1
      ghsApp/src/pagesStorehouse/components/pdItem2.vue
  27. 2 1
      ghsApp/src/pagesStorehouse/inventory/select2.vue
  28. 52 0
      ghsApp/src/static/css/item-list-row.scss

+ 2 - 1
ghsApp/src/admin/breakage/index.vue

@@ -28,7 +28,7 @@
 					<view class="item_list_bx selectAll">
 						<template v-for="(productItem, productIndex) in globalItemData">
 							<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-							<view style="height: 175upx" :key="productIndex">
+							<view class="item-row item-row--h175" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 								<Commondity
 									:checkStock="true"
 									:info="productItem"
@@ -159,6 +159,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 2 - 1
ghsApp/src/admin/changePrice/batchChange.vue

@@ -32,7 +32,7 @@
 							<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
 	
 								<template v-for="(productItem, productIndex) in classItem.child">
-									<view style="height:230upx" :id="`class_${classIndex}`" :key="productIndex">
+									<view class="item-row item-row--h230" :class="{ 'item-row--remark': productItem.itemRemark }" :id="`class_${classIndex}`" :key="productIndex">
 										<ItemComponent :ref="`item_${productItem.id}`" v-if="classItem.isActive" :isPrice="false" @checkItem="checkItemEvent" :info="productItem"></ItemComponent>
 									</view>
 								</template>
@@ -230,6 +230,7 @@
 	</script>
 	
 	<style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 	.billing_box_bg {
 		height: 100%;
 		background: white;

+ 2 - 1
ghsApp/src/admin/changePrice/changeCgStaff.vue

@@ -29,7 +29,7 @@
 							<text style="float:right;color:#3385FF;margin-right:50upx;font-size:30upx;" @click="getCurrentAll(classIndex)">全选 / 取消</text>
 						</view>
 						<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
-							<view style="height:230upx" :id="`class_${classIndex}`" v-for="(productItem, productIndex) in classItem.child" :key="productIndex">
+							<view class="item-row item-row--h230" :class="{ 'item-row--remark': productItem.itemRemark }" :id="`class_${classIndex}`" v-for="(productItem, productIndex) in classItem.child" :key="productIndex">
 								<ItemComponent :ref="`item_${productItem.id}`" v-if="classItem.isActive" :isPrice="false" @checkItem="checkItemEvent" @changeStaff="changeMan" :info="productItem"></ItemComponent>
 							</view>
 						</view>
@@ -254,6 +254,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 37 - 3
ghsApp/src/admin/changePrice/changeHide.vue

@@ -65,7 +65,7 @@
                             </view>
 
                             <!-- 分类下的商品 -->
-                            <view v-for="(productItem, itemIndex) in groupData.items" :key="productItem.id" style="height:190upx">
+                            <view v-for="(productItem, itemIndex) in groupData.items" :key="productItem.id" class="item-row item-row--change-hide" :class="{ 'item-row--change-hide-remark': productItem.itemRemark }">
                                 <ItemComponent 
                                     :isPrice="false" 
                                     :info="productItem" 
@@ -273,6 +273,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .app-content {
 	display: flex;
 	flex-direction: column;
@@ -359,6 +360,7 @@ export default {
 
 	.scroll-middle_bx {
 		flex: 1;
+		min-width: 0;
 		display: flex;
 		width: 100%;
 		overflow: hidden;
@@ -405,30 +407,51 @@ export default {
 
 	.right-box {
 		flex: 1;
+		min-width: 0;
+		width: 0;
+		height: 100%;
 		box-sizing: border-box;
+		overflow: hidden;
 	}
 
 	.item_list_bx {
-		padding: 40upx 16upx;
+		width: 100%;
+		padding: 40upx 12upx 40upx 8upx;
+		box-sizing: border-box;
+		overflow: hidden;
 
         .item_list_title {
-            margin-bottom: 20upx;
+            position: sticky;
+            top: 0;
+            z-index: 20;
+            margin-bottom: 16upx;
+            padding: 8upx 4upx;
             font-size: 34upx;
             font-weight: 600;
             color: #3385FF;
+            background: #ffffff;
+            box-sizing: border-box;
 
             .title-row {
                 width: 100%;
                 display: flex;
+                flex-direction: row;
                 justify-content: space-between;
                 align-items: center;
+                overflow: hidden;
+                box-sizing: border-box;
             }
 
             .class-name {
                 flex: 1;
+                min-width: 0;
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
             }
 
             .select-all-btn {
+                flex-shrink: 0;
                 color: #3385FF;
                 font-size: 34upx;
                 font-weight: bold;
@@ -461,6 +484,17 @@ export default {
 	}
 }
 
+.item-row--change-hide {
+	width: 100%;
+	overflow: hidden;
+	min-height: 160upx;
+	max-height: 160upx;
+}
+.item-row--change-hide-remark {
+	min-height: 216upx;
+	max-height: 216upx;
+}
+
 .class-popup-style {
 	z-index: 999999;
 }

+ 2 - 1
ghsApp/src/admin/changePrice/changeStock2.vue

@@ -28,7 +28,7 @@
 						<view v-if="!$util.isEmpty(globalItemData)">
 							<template v-for="(productItem, productIndex) in globalItemData">
 								<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-								<view style="height:190upx" :key="productIndex">
+								<view class="item-row item-row--h190" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 									<ItemComponent :isPrice="false" :info="productItem" @saveStock="saveStock" :ref="`productRef${productItem.id}`" 
 									@hideChangeFn="hideChangeFn" @cancelPreSellFn="cancelPreSellFn" @cancelLimitBuyFn="cancelLimitBuyFn">
 								</ItemComponent>
@@ -197,6 +197,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 5 - 1
ghsApp/src/admin/changePrice/components/Item2.vue

@@ -61,13 +61,17 @@
 		<text style="position:absolute;left:40upx;">毛利 ¥{{ info.ml ? parseFloat(info.ml) : 0 }}</text>
 		<text style="position:absolute;right:50upx;">成本 ¥{{ info.avCost?parseFloat(info.avCost):0 }}</text>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "item",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		isPrice: {
@@ -165,7 +169,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 230upx;
 	.level-price{
 		display:flex;
 		color:#CCCCCC;

+ 5 - 1
ghsApp/src/admin/changePrice/components/changeCgStaffItem.vue

@@ -36,12 +36,16 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "outItem",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		isPrice: {
@@ -76,7 +80,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 230upx;
 	.level-price{
 		display:flex;
 		color:rgb(75, 74, 74);

+ 5 - 1
ghsApp/src/admin/changePrice/components/changeClassItem.vue

@@ -36,12 +36,16 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "outItem",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		isPrice: {
@@ -73,7 +77,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 230upx;
 	.level-price{
 		display:flex;
 		color:rgb(75, 74, 74);

+ 46 - 14
ghsApp/src/admin/changePrice/components/changeHide.vue

@@ -1,5 +1,5 @@
 <template>
-<view class="product">
+<view class="product" :class="{ 'product--has-remark': info.itemRemark }">
 	<view class="item-cmd_bx">
 		<!-- 图片区域 -->
 		<view class="img_bx" @click.stop="pageTo({url: '/admin/item/detail?id='+info.id})">
@@ -16,7 +16,7 @@
 			<!-- 商品标题 -->
 			<view class="tit">
 				<text v-if="info.presell == 1" class="presell-tag">预售</text>
-				{{ info.name || "" }}
+				<text class="tit-name">{{ info.name || "" }}</text>
 			</view>
 
 			<!-- 价格 -->
@@ -37,12 +37,18 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 </view>
 </template>
 
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "changeHideItem",
+	components: {
+		ItemRemarkBar
+	},
 	props: {
 		isPrice: {
 			type: Boolean,
@@ -77,14 +83,24 @@ export default {
 
 <style lang="scss" scoped>
 .product {
-	height: 190upx;
+	width: 100%;
+	height: 160upx;
+	overflow: hidden;
+	box-sizing: border-box;
+
+	&.product--has-remark {
+		height: 216upx;
+	}
 
 	.item-cmd_bx {
+		width: 100%;
 		height: 160upx;
 		position: relative;
-		margin-bottom: 20upx;
+		margin-bottom: 0;
 		display: flex;
 		align-items: flex-start;
+		overflow: hidden;
+		box-sizing: border-box;
 
 		// 图片区域
 		.img_bx {
@@ -124,22 +140,28 @@ export default {
 		.cmd-info_bx {
 			position: relative;
 			flex: 1;
+			min-width: 0;
+			width: 0;
 			padding-left: 16upx;
+			padding-right: 52upx;
+			box-sizing: border-box;
 			display: flex;
 			flex-direction: column;
 			justify-content: flex-start;
+			overflow: hidden;
 
 			.tit {
-				font-size:32upx;
-				font-weight:700;
+				width: 100%;
+				min-width: 0;
+				font-size: 32upx;
+				font-weight: 700;
 				color: #333333;
-				overflow: hidden;
-				white-space: nowrap;
-				text-overflow: ellipsis;
 				margin-bottom: 8upx;
 				display: flex;
+				flex-direction: row;
 				align-items: center;
-				padding-right: 60upx;
+				overflow: hidden;
+				box-sizing: border-box;
 
 				.presell-tag {
 					font-size: 18upx;
@@ -150,6 +172,14 @@ export default {
 					margin-right: 6upx;
 					flex-shrink: 0;
 				}
+
+				.tit-name {
+					flex: 1;
+					min-width: 0;
+					overflow: hidden;
+					white-space: nowrap;
+					text-overflow: ellipsis;
+				}
 			}
 
 			// 价格
@@ -181,13 +211,15 @@ export default {
 			// 选择框
 			.details-select {
 				position: absolute;
-				top: 8upx;
-				right: 8upx;
-				width: 44upx;
-				height: 44upx;
+				top: 0;
+				right: 0;
+				z-index: 5;
+				width: 48upx;
+				height: 48upx;
 				display: flex;
 				align-items: center;
 				justify-content: center;
+				flex-shrink: 0;
 
 				.iconfont {
 					font-size: 40upx;

+ 5 - 1
ghsApp/src/admin/changePrice/components/changeStockItem2.vue

@@ -40,13 +40,17 @@
 			</text>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "item",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		isPrice: {
@@ -89,7 +93,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 190upx;
 	.level-price{
 		display:flex;
 		color:#CCCCCC;

+ 5 - 1
ghsApp/src/admin/changePrice/components/outItem.vue

@@ -28,12 +28,16 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "outItem",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		isPrice: {
@@ -65,7 +69,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 230upx;
 	.level-price{
 		display:flex;
 		color:rgb(75, 74, 74);

+ 5 - 1
ghsApp/src/admin/changePrice/components/stopItem.vue

@@ -35,12 +35,16 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "stopItem",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		info: {
@@ -62,7 +66,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	height:230upx;
+	min-height: 230upx;
 	.level-price{
 		display:flex;
 		color:rgb(75, 74, 74);

+ 2 - 1
ghsApp/src/admin/changePrice/list2.vue

@@ -33,7 +33,7 @@
 
 							<template v-for="(productItem, productIndex) in globalItemData">
 								<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-								<view style="height:230upx" :key="productIndex">
+								<view class="item-row item-row--h230" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 									<ItemComponent :isPrice="false" :info="productItem" @hideChangeFn="hideChangeFn" :ref="`productRef${productItem.id}`"
 									@savePrice="savePrice" @cancelDiscountFn="cancelDiscountFn" @cancelFullOff="cancelFullOff" @cancelPreSellFn="cancelPreSellFn" @cancelLimitBuyFn="cancelLimitBuyFn"></ItemComponent>
 								</view>
@@ -264,6 +264,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 2 - 1
ghsApp/src/admin/changePrice/outList.vue

@@ -32,7 +32,7 @@
 						<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
 
 							<template v-for="(productItem, productIndex) in classItem.child">
-								<view style="height:230upx" :id="`class_${classIndex}`" :key="productIndex">
+								<view class="item-row item-row--h230" :class="{ 'item-row--remark': productItem.itemRemark }" :id="`class_${classIndex}`" :key="productIndex">
 									<ItemComponent :ref="`item_${productItem.id}`" v-if="classItem.isActive" :isPrice="false" @checkItem="checkItemEvent" :info="productItem"></ItemComponent>
 								</view>
 							</template>
@@ -162,6 +162,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 2 - 1
ghsApp/src/admin/changePrice/stopList.vue

@@ -32,7 +32,7 @@
 						<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
 
 							<template v-for="(productItem, productIndex) in classItem.child">
-								<view style="height:230upx" :id="`class_${classIndex}`" :key="productIndex">
+								<view class="item-row item-row--h230" :class="{ 'item-row--remark': productItem.itemRemark }" :id="`class_${classIndex}`" :key="productIndex">
 									<ItemComponent :ref="`item_${productItem.id}`" v-if="classItem.isActive" :isPrice="false" :info="productItem" @checkItem="checkItemEvent"></ItemComponent>
 								</view>
 							</template>
@@ -177,6 +177,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 4 - 0
ghsApp/src/admin/item/components/item.vue

@@ -54,6 +54,7 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
 	<text class="bottom-button" @click.stop="moreAction(info)">更多</text>
 	<text class="bottom-button" @click.stop="goToStockDetail(info)">库明细</text>
 	<text class="bottom-button" @click.stop="hideChangeFn(info)">{{ frontHide == 0 ? '隐藏' : '显示' }}</text>
@@ -62,9 +63,12 @@
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "item",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		info: {

+ 5 - 34
ghsApp/src/admin/item/components/item2.vue

@@ -75,10 +75,7 @@
 		</view>
 	</view>
 
-	<view class="remark-bar" v-if="info.itemRemark">
-		<text class="remark-label">备注</text>
-		<text class="remark-text">{{ info.itemRemark }}</text>
-	</view>
+	<item-remark-bar :text="info.itemRemark" />
 
 	<view class="bottom-buttons-container">
 		<text class="bottom-button" @click.stop="doPrintLabel(info,1)">价码</text>
@@ -91,9 +88,12 @@
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "item",
 	components: {
+		ItemRemarkBar
 	},
 	props: {
 		info: {
@@ -152,36 +152,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .product{
-	min-height:230upx;
-}
-.remark-bar {
-	display: flex;
-	align-items: center;
-	margin-top: 4upx;
-	margin-bottom: 6upx;
-	padding: 6upx 10upx;
-	background: #fff8f2;
-	border-left: 5upx solid #ff8c3a;
-	box-sizing: border-box;
-}
-.remark-label {
-	font-size: 28upx;
-	font-weight: bold;
-	color: #ff8c3a;
-	line-height: 1.2;
-	margin-right: 10upx;
-	flex-shrink: 0;
-}
-.remark-text {
-	font-size: 30upx;
-	font-weight: bold;
-	color: #ff2842;
-	line-height: 1.3;
-	overflow: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
-	flex: 1;
-	min-width: 0;
+	min-height: 230upx;
 }
 .bottom-buttons-container{
 	display: flex;

+ 2 - 1
ghsApp/src/admin/item/list.vue

@@ -29,7 +29,7 @@
 							<view class="item_list_title"> {{ classItem.className }}</view>
 							<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
 								<template v-for="(productItem, productIndex) in classItem.child">
-									<view style="height:255upx" :id="`class_${classIndex}`" :key="productIndex">
+									<view class="item-row item-row--h255" :class="{ 'item-row--remark': productItem.itemRemark }" :id="`class_${classIndex}`" :key="productIndex">
 										<ItemStock v-if="classItem.isActive" :info="productItem" @moreAction="moreAction" 
 										@doPrintLabel="doPrintLabel" @cancelDiscountFn="cancelDiscountFn" @cancelFullOff="cancelFullOff"
 										:ref="`productRef${productItem.id}`" @hideChangeFn="hideChangeFn" 
@@ -526,6 +526,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	display: flex;

+ 2 - 7
ghsApp/src/admin/item/list2.vue

@@ -48,7 +48,7 @@
 								<template v-for="(productItem, productIndex) in globalItemData">
 									<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
 									<!-- 下面这个key显示有问题,不要动,动了好像会有问题!!!! -->
-									<view class="item-row" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
+									<view class="item-row item-row--h260" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 										<ItemStock :info="productItem" @moreAction="moreAction" 
 										@doPrintLabel="doPrintLabel" @cancelDiscountFn="cancelDiscountFn" @cancelFullOff="cancelFullOff"
 										:ref="`productRef${productItem.id}`" @hideChangeFn="hideChangeFn" 
@@ -792,6 +792,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .app-content {
 	display: flex;
 	flex-direction: column;
@@ -868,12 +869,6 @@ export default {
 	.item_list_bx {
 		padding: 40upx 16upx;
 	}
-	.item-row {
-		min-height: 260upx;
-	}
-	.item-row--remark {
-		min-height: 315upx;
-	}
 	.item_list_title {
 		margin-bottom: 20upx;
 		font-size: 30upx;

+ 2 - 1
ghsApp/src/admin/part/index.vue

@@ -28,7 +28,7 @@
 					<view class="item_list_bx selectAll">
 						<template v-for="(productItem, productIndex) in globalItemData">
 							<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-							<view style="height: 175upx" :key="productIndex">
+							<view class="item-row item-row--h175" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 								<Commondity
 									:checkStock="true"
 									:info="productItem"
@@ -159,6 +159,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	background: white;

+ 8 - 1
ghsApp/src/components/module/app-commodity.vue

@@ -1,4 +1,5 @@
 <template>
+	<view class="commodity-wrap">
 	<view class="item-cmd_bx" @click="showAddModelFn()">
 		<view class="img_bx" style="background:#eeeeee">
 			<block v-if="info.status == 2">
@@ -49,11 +50,17 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
+	</view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "Commodity",
-	components: {},
+	components: {
+		ItemRemarkBar
+	},
 	mixins: [],
 	props: {
 		info: {

+ 68 - 0
ghsApp/src/components/module/itemRemarkBar.vue

@@ -0,0 +1,68 @@
+<template>
+	<view class="item-remark-bar" v-if="displayText">
+		<text class="item-remark-bar__label">备注</text>
+		<view class="item-remark-bar__text-wrap">
+			<text class="item-remark-bar__text">{{ displayText }}</text>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: 'ItemRemarkBar',
+	props: {
+		text: {
+			type: String,
+			default: ''
+		}
+	},
+	computed: {
+		displayText() {
+			const t = this.text == null ? '' : String(this.text).trim()
+			return t
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+.item-remark-bar {
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	width: 100%;
+	height: 48upx;
+	max-height: 48upx;
+	margin-top: 4upx;
+	margin-bottom: 4upx;
+	padding: 0 10upx;
+	background: #fff8f2;
+	border-left: 5upx solid #ff8c3a;
+	box-sizing: border-box;
+	overflow: hidden;
+}
+.item-remark-bar__label {
+	font-size: 26upx;
+	font-weight: bold;
+	color: #ff8c3a;
+	line-height: 48upx;
+	margin-right: 8upx;
+	flex-shrink: 0;
+}
+.item-remark-bar__text-wrap {
+	flex: 1;
+	min-width: 0;
+	height: 48upx;
+	overflow: hidden;
+}
+.item-remark-bar__text {
+	display: block;
+	font-size: 28upx;
+	font-weight: bold;
+	color: #ff2842;
+	line-height: 48upx;
+	overflow: hidden;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+}
+</style>

+ 2 - 1
ghsApp/src/pagesPurchase/add.vue

@@ -31,7 +31,7 @@
 					<view class="item_list_bx selectAll">
 						<template v-for="(productItem, productIndex) in globalItemData">
 							<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-							<view style="height:240upx" :key="productIndex">
+							<view class="item-row item-row--h240" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 							<CommodityPurchase
 								:type="selectJobType"
 								:key="productIndex"
@@ -281,6 +281,7 @@ export default {
 	}
 </style>
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 
 .billing_box_bg {
 	height: 100%;

+ 6 - 1
ghsApp/src/pagesPurchase/components/CommodityPurchase.vue

@@ -48,6 +48,7 @@
         </view>
       </view>
     </view>
+    <item-remark-bar :text="info.itemRemark" />
 
     <text class="bottom-button" @click.stop="copyCreate(info)">复制新建</text>
     <text class="bottom-button" @click.stop="goToStockDetail(info)">库存明细</text>
@@ -56,9 +57,13 @@
 </view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
   name: "Commodity",
-  components: {},
+  components: {
+    ItemRemarkBar
+  },
   mixins: [],
   props: {
     info: {

+ 2 - 1
ghsApp/src/pagesStorehouse/allot/exSelect.vue

@@ -26,7 +26,7 @@
 						<view v-if="!$util.isEmpty(globalItemData)">
 							<template v-for="(productItem, productIndex) in globalItemData">
 								<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-								<view style="height: 175upx" :key="productIndex">
+								<view class="item-row item-row--h175" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 								<Commondity
 									:key="productIndex"
 									:info="productItem"
@@ -169,6 +169,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	display: flex;

+ 8 - 1
ghsApp/src/pagesStorehouse/components/pdItem2.vue

@@ -1,4 +1,5 @@
 <template>
+	<view class="commodity-wrap">
 	<view class="item-cmd_bx" @click="showAddModelFn()">
 
 		<button @click.stop="copyCreate(info)" class="admin-button-com mini-btn default" 
@@ -51,11 +52,17 @@
 			</view>
 		</view>
 	</view>
+	<item-remark-bar :text="info.itemRemark" />
+	</view>
 </template>
 <script>
+import ItemRemarkBar from '@/components/module/itemRemarkBar.vue'
+
 export default {
 	name: "Commodity",
-	components: {},
+	components: {
+		ItemRemarkBar
+	},
 	mixins: [],
 	props: {
 		info: {

+ 2 - 1
ghsApp/src/pagesStorehouse/inventory/select2.vue

@@ -30,7 +30,7 @@
 						<view v-if="!$util.isEmpty(globalItemData)">
 							<template v-for="(productItem, productIndex) in globalItemData">
 								<view class="item_list_title" v-if="productItem.className && productItem.className!=''">{{ productItem.className }}</view>
-								<view style="height:175upx" :key="productIndex">
+								<view class="item-row item-row--h175" :class="{ 'item-row--remark': productItem.itemRemark }" :key="productIndex">
 								<Commondity
 									:key="productIndex"
 									:info="productItem"
@@ -198,6 +198,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+@import '@/static/css/item-list-row.scss';
 .billing_box_bg {
 	height: 100%;
 	display: flex;

+ 52 - 0
ghsApp/src/static/css/item-list-row.scss

@@ -0,0 +1,52 @@
+.item-row {
+	box-sizing: border-box;
+	overflow: hidden;
+}
+.item-row--h175 {
+	min-height: 175upx;
+	max-height: 175upx;
+}
+.item-row--h175.item-row--remark {
+	min-height: 230upx;
+	max-height: 230upx;
+}
+.item-row--h190 {
+	min-height: 190upx;
+	max-height: 190upx;
+}
+.item-row--h190.item-row--remark {
+	min-height: 245upx;
+	max-height: 245upx;
+}
+.item-row--h230 {
+	min-height: 230upx;
+	max-height: 230upx;
+}
+.item-row--h230.item-row--remark {
+	min-height: 285upx;
+	max-height: 285upx;
+}
+.item-row--h240 {
+	min-height: 240upx;
+	max-height: 240upx;
+}
+.item-row--h240.item-row--remark {
+	min-height: 295upx;
+	max-height: 295upx;
+}
+.item-row--h255 {
+	min-height: 255upx;
+	max-height: 255upx;
+}
+.item-row--h255.item-row--remark {
+	min-height: 310upx;
+	max-height: 310upx;
+}
+.item-row--h260 {
+	min-height: 260upx;
+	max-height: 260upx;
+}
+.item-row--h260.item-row--remark {
+	min-height: 315upx;
+	max-height: 315upx;
+}