Explorar o código

Merge branch 'pre-release' of jianguan-web/qpls-md-app into master

李磊 %!s(int64=2) %!d(string=hai) anos
pai
achega
b285ed3559

+ 8 - 0
api/shelf.js

@@ -28,6 +28,14 @@ export const shelfProductList = (params) => {
     method: 'post'
   })
 }
+// 禁用货架产品 
+export const shelfProductEnable = (params) => {
+  return axios.request({
+    url: `shelfProduct/updateEnableFlag`,
+    data: params,
+    method: 'post'
+  })
+}
 //  货架  详情
 export const shelfDetail = (params) => {
   return axios.request({

+ 1 - 1
config/index.js

@@ -6,7 +6,7 @@ const getConfig = (theme) => {
 			themePath: 'default',
 			pro_URL: 'https://iscm.360arrow.com/qpls-md/', // 生产地址
 			uat_URL: 'http://p.iscm.360arrow.com/qpls-md/', // 预发布地址
-			dev_URL: 'http://192.168.0.215:8503/qpls-md/', // 本地地址
+			dev_URL: 'http://192.168.2.111:8503/qpls-md/', // 本地地址
 			appName: 'iSCM智慧供应链', // app 名称
 			company: '陕西山海高科信息技术有限公司',
 			loadText:{

+ 7 - 4
manifest.json

@@ -2,8 +2,8 @@
     "name" : "iSCM智慧供应链",
     "appid" : "__UNI__5B57B68",
     "description" : "iSCM智慧供应链系统",
-    "versionName" : "1.2.1",
-    "versionCode" : 121,
+    "versionName" : "1.3.1",
+    "versionCode" : 131,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -55,7 +55,9 @@
         /* 模块配置 */
         "modules" : {
             "Bluetooth" : {},
-            "Share" : {}
+            "Share" : {},
+            "Push" : {},
+            "Barcode" : {}
         },
         /* 应用发布信息 */
         "distribute" : {
@@ -128,7 +130,8 @@
                         "appid" : "wx1409d0e9171fc6ed",
                         "UniversalLinks" : "https://iscm.360arrow.com/ulink/"
                     }
-                }
+                },
+                "push" : {}
             },
             "icons" : {
                 "android" : {

+ 4 - 6
pages.json

@@ -576,12 +576,10 @@
         }
         ,{
             "path" : "pages/shelfSetting/editShelfHw",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "编辑货位",
-                "enablePullDownRefresh": false
-            }
-            
+			"style": {
+						"navigationStyle": "custom" ,// 隐藏系统导航栏
+						"navigationBarTextStyle": "black" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
+					}   
         }
         ,{
             "path" : "pages/shelfSetting/addShelfHw",

+ 13 - 3
pages/batchShelves/scanProduct.vue

@@ -28,7 +28,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="product-nums">
+				<view class="product-nums" v-if="!isDisable">
 					<view>本次上架数量<text>(左右滑动选择)</text></view>
 					<view class="numsBox flex align_center justify_between">
 						<view class="a-left" @click="numsBoxScroll(0)"><u-icon name="arrow-left"></u-icon></view>
@@ -42,7 +42,8 @@
 						<view class="a-right" @click="numsBoxScroll(1)"><u-icon name="arrow-right"></u-icon></view>
 					</view>
 				</view>
-				<view class="infoTits" v-if="productInfo.shelfCartApi">产品已录入,请确认数量</view>
+				<view class="infoTits" v-if="!isDisable&&productInfo.shelfCartApi">产品已录入,请确认数量</view>
+				<view class="infoTits" v-if="isDisable">此产品已被禁用,不可添加!</view>
 			</view>
 			<view class="noData" v-else>
 				暂无扫描结果
@@ -81,7 +82,8 @@
 				scleft: 0,
 				fromPage: null,
 				qrCode: '',
-				numsWidth: 52
+				numsWidth: 52,
+				isDisable: false
 			}
 		},
 		onReady() {
@@ -146,6 +148,7 @@
 					if(res.status == 200&&res.data&&res.data.productList&&res.data.productList.length){
 						const ret = res.data.productList[0]
 						 this.productInfo = ret
+						 this.isDisable = ret.shelfProductApi&&ret.shelfProductApi.enableFlag==0
 						 this.shelfPlaceCode = res.data.shelfPlaceCode
 						 // 数量区域宽度
 						 const query = uni.createSelectorQuery().in(_this);
@@ -190,6 +193,13 @@
 					shelfCartSn: item?item.shelfCartSn:undefined
 				}
 				console.log(params)
+				if(this.isDisable){
+					uni.showToast({
+						icon:'none',
+						title: '此产品已被禁用,不可添加!'
+					})
+					return false
+				}
 				shelfCartSave(params).then(res => {
 					console.log(res)
 					if(res.status == 200){

+ 8 - 1
pages/batchShelves/searchProduct.vue

@@ -32,7 +32,7 @@
 						</view>
 						<view class="ptxt flex justify_between">
 							<text style="word-break: break-all;">{{item.code}}</text>
-							<view v-if="item.shelfProductApi">
+							<view v-if="item.shelfProductApi&&item.shelfProductApi.enableFlag==1">
 								可用库存:<text>{{item.shelfProductApi.qty}}</text>{{item.unit}}
 							</view>
 						</view>
@@ -155,6 +155,13 @@
 			},
 			// 新增
 			addItem(item){
+				if(item.shelfProductApi&&item.shelfProductApi.enableFlag==0){
+					uni.showToast({
+						icon:'none',
+						title: '此产品已被禁用,不可添加!'
+					})
+					return false
+				}
 				this.saveData(item,1)
 			},
 			// 修改数量

+ 2 - 2
pages/common/copyText.vue

@@ -35,8 +35,8 @@
 		margin-left: 20upx;
 		background: #c1c1bf;
 		font-weight: normal;
-		padding: 0 5upx;
-		border-radius: 5upx;
+		padding: 2upx 8upx;
+		border-radius: 8upx;
 		color: #fff;
 	}
 </style>

+ 48 - 103
pages/sales/addSales.vue

@@ -6,7 +6,7 @@
 				<u-button size="mini" :hair-line="false" plain type="primary" hover-class="none" @click="goBack" :custom-style="customBtnStyle">重新选择</u-button>
 			</view>
 		</view>
-		<view class="flex_1 content-box">
+		<view class="content-box">
 			<view class="content-form">
 				<u-form :model="form" ref="uForm"  label-width="180" :error-type="['toast']">
 					<u-form-item label="客户地址" required >
@@ -55,16 +55,14 @@
 					</u-form-item>
 				</u-form>
 			</view>
-			<view class="form-footer-btn">
-				<u-button class="handle-btn" size="medium" shape="circle" hover-class="none" @click="handleSaveCust" :custom-style="customBtnStyle">新增销售单</u-button>
-			</view>
+		</view>
+		<view class="form-footer-btn">
+			<u-button class="handle-btn" size="medium" shape="circle" hover-class="none" @click="handleSaveCust" :custom-style="customBtnStyle">新增销售单</u-button>
 		</view>
 		<!-- 省市区 -->
 		<Address ref="applyAddress" :isJrMini="false" @onConfirm="areaConfirm"></Address>
 		<!-- 选择收款方式 -->
 		<u-picker v-model="showSettle" title="收款方式"  @confirm="settleStyleChange" :range="settleTypeList" range-key="name" mode="selector" :default-selector="JSON.parse(JSON.stringify(defaultSettleIndex))"></u-picker>
-		<!-- 客户类型 -->
-		<u-picker v-model="showCust" title="客户类型" @confirm="custTypeChange" :range="custTypeList" range-key="name" mode="selector" :default-selector="JSON.parse(JSON.stringify(defaultCustIndex))"></u-picker>
 		<!-- 业务员 -->
 		<u-picker v-model="showUser" title="业务员" @confirm="userChange" :range="userList" range-key="name" mode="selector"></u-picker>
 	</view>
@@ -72,7 +70,7 @@
 
 <script>
 	import {settleStyleQueryAll,salesSave} from '@/api/sales.js'
-	import {customerDetail,custType,employeeAllList,updateByCustomerSn} from '@/api/customer.js'
+	import {customerDetail,employeeAllList,updateByCustomerSn} from '@/api/customer.js'
 	import Address from '@/components/address.vue'
 	import vSelect  from  '@/components/select/v-select.vue'
 	export default{
@@ -89,9 +87,6 @@
 				showSettle:false,//结算方式初始值
 				settleTypeList:[],//收款方式列表
 				settleStyleName:'',//收款方式名称
-				custTypeList:[] ,// 客户类型数据
-				showCust:false, //客户类型下拉弹窗初始值
-				custTypeName:'', // 客户类型名称
 				areaInfo: {},  //  省市区
 				areaIdArr: [],  //  省市区id数组
 				itemId:'',
@@ -140,43 +135,19 @@
 		},
 		onLoad(option) {
 			console.log(option.nowId,'option')
-			if(option.nowId){
-				// if(option.pageType=='edit'){
-				// 	uni.setNavigationBarTitle({
-				// 	  title:'编辑销售单'
-				// 	})
-				// }else{
-				// 	uni.setNavigationBarTitle({
-				// 	  title:'新增销售单'
-				// 	})
-				// }
-				this.itemId=option.nowId
-				this.getCustomerData(this.itemId)
-				this.getUserAllList()
-				setTimeout(()=>{
-					// 回显收款方式并下拉数据默认高亮选中
-					const ind=this.settleTypeList.findIndex((item)=>{
-						return item.settleStyleSn==this.customerData.settleStyleSn
-					})
-					console.log(ind,'ind')
-					this.settleStyleName=this.settleTypeList[ind].name
-					this.defaultSettleIndex=[ind]
-					// 回显业务员并下拉数据默认高亮选中
-					if(this.customerData.salesManSn){
-						const userInd=this.userList.findIndex((item)=>{
-							return item.customerSn==this.customerData.salesManSn
-						})
-						this.defaultUserIndex=[userInd]
-						this.form.salesManName=this.userList[userInd].name
-						this.form.salesManSn=this.userList[userInd].salesManSn
-					}
-					console.log(ind,'a',JSON.parse(JSON.stringify(this.defaultSettleIndex)) )
-				},200)
-			}
-			this.getSettleStyle()
-			this.getCustomerList()
+			this.itemId=option.nowId
+			this.pageInit()
 		},
 		methods:{
+			async pageInit(){
+				const a = await employeeAllList({}) // 获取业务员列表数据
+				const b = await settleStyleQueryAll({}) // 获取结算方式列表
+				this.userList = a.status == 200 ? a.data : []
+				this.settleTypeList = b.status == 200 ? b.data : []
+				if(this.itemId){
+				  this.getCustomerData(this.itemId)
+				}
+			},
 			getCustomerData(val){
 				uni.showLoading({title:'加载中...',mask:true})
 				customerDetail({id:val}).then(res=>{
@@ -205,7 +176,7 @@
 						  priceType: this.customerData.priceType, //  价格类型
 						  settleStyleSn: this.customerData.settleStyleSn //  收款方式
 						})
-						if(this.customerData.priceType || this.customerData.dispatchType){
+						if(this.customerData.priceType){
 							setTimeout(()=>{
 								this.$refs.priceType.setVal(this.customerData.priceType)
 							},200)
@@ -216,6 +187,25 @@
 							},200)
 						}
 						this.form=Object.assign(this.form,res.data)
+						
+						// 回显收款方式并下拉数据默认高亮选中
+						const ind=this.settleTypeList.findIndex((item)=>{
+							return item.settleStyleSn==this.customerData.settleStyleSn
+						})
+						if(ind){
+							this.settleStyleName=this.settleTypeList[ind].name
+							this.defaultSettleIndex=[ind]
+						}
+						// 回显业务员并下拉数据默认高亮选中
+						if(this.customerData.salesManSn){
+							const userInd=this.userList.findIndex((item)=>{
+								return item.customerSn==this.customerData.salesManSn
+							})
+							this.defaultUserIndex=[userInd]
+							this.form.salesManName=this.userList[userInd].name
+							this.form.salesManSn=this.userList[userInd].salesManSn
+						}
+						
 					}else{
 						this.customerData=null
 					}
@@ -249,11 +239,9 @@
 			},
 			// 重新选择
 			goBack(){
-				uni.$emit('clear')
-				setTimeout(()=>{
-					uni.navigateBack({})
-				},500)
-				
+				uni.redirectTo({
+					url: '/pages/sales/chooseCustomer?backPage=addSales'
+				})
 			},
 			radioChange(e) {
 				console.log(e);
@@ -285,49 +273,12 @@
 				// console.log(this.areaIdArr,'this.areaIdArr')
 				this.$refs.applyAddress.open(this.areaIdArr)
 			},
-			// 获取业务员列表数据
-			getUserAllList () {
-			  employeeAllList({}).then(res => {
-			    if (res.status == 200) {
-			      this.userList = res.data || []
-			    } else {
-			      this.userList = []
-			    }
-			  })
-			},
-			// 获取客户类型列表
-			getCustomerList(){
-				custType({}).then(res=>{
-					if(res.status==200){
-						this.custTypeList=res.data
-					}else{
-						this.custTypeList=[]
-					}
-				})
-			},
-			// 获取结算方式列表
-			getSettleStyle(){
-				settleStyleQueryAll({}).then(res=>{
-					if(res.status==200){
-						this.settleTypeList=res.data
-					}else{
-						this.settleTypeList=null
-					}
-				})
-			},
 			// 收款方式change
 			settleStyleChange(e){
-				console.log(e,'data')
 				this.defaultSettleIndex=[e]
 				this.settleStyleName=this.settleTypeList[e].name
 				this.form.settleStyleSn=this.settleTypeList[e].settleStyleSn
 			},
-			// 客户类型change
-			custTypeChange(e){
-				this.defaultCustIndex=[e]
-				this.custTypeName=this.custTypeList[e].name
-				this.form.customerTypeSn=this.custTypeList[e].customerTypeSn
-			},
 			// 业务员change
 			userChange(e){
 				this.defaultUserIndex=[e]
@@ -388,7 +339,7 @@
 							salesManName: '',
 							distributionFlag: this.form.distributionFlag, // 铺货出库
 							salesTragetType: 'CUSTOMER',
-							remarks: this.remarks //  备注
+							remarks: this.form.remarks //  备注
 						}
 						console.log(params,'params')
 						salesSave(params).then(res=>{
@@ -397,8 +348,9 @@
 									title: res.message,
 									icon: 'none'
 								})
+								uni.$emit("refreshSalesHomeBL")
 								setTimeout(()=>{
-									uni.navigateTo({
+									uni.redirectTo({
 										url:'/pages/sales/edit?pageType=edit&data='+JSON.stringify(res.data)
 									})
 								},300)
@@ -414,19 +366,18 @@
 </script>
 
 <style lang="scss">
+	page{
+		height: 100vh;
+	}
 	.addCustomer-content{
 		width: 100%;
 		height: 100vh;
-		// background-color: #fff;
-		
 		display: flex;
 		flex-direction: column;
 		.content-customerName{
 			width: 100%;
 			.customerName{
-				// position: fixed;
 				width: 100%;
-				// z-index: 999;
 				color: #000000;
 				font-size: 30upx;
 				font-weight: 1000;
@@ -435,14 +386,12 @@
 			}
 		}
 		.content-box{
-			display: flex;
-			flex-direction: column;
-			// margin-top: 100upx;
 			padding:0 40upx;
 			background-color: #fff;
+			flex-grow: 1;
+			overflow: auto;
 		}
 		.content-form{
-			flex: 1;
 			.receiveAddress{
 				width: 100%;
 				line-height: 1.5em;
@@ -456,12 +405,8 @@
 		}
 		.form-footer-btn{
 			background-color: #fff;
-			position: fixed;
-			bottom: 0;
-			left: 0;
 			width: 100%;
-			padding:0 30upx ;
-			z-index: 999;
+			padding:8px 30upx ;
 			.handle-btn{
 				width: 100%;
 				background-color: rgb(51, 95, 182);

+ 2 - 2
pages/sales/chooseCustomer.vue

@@ -123,11 +123,11 @@
 				this.listData = []
 			},
 			chooseItem(item){
-				console.log(item)
+				console.log(item,this.backPage)
 				this.queryWord=item.customerName
 				// 新增销售单
 				if(this.backPage == 'addSales'){
-					uni.navigateTo({
+					uni.redirectTo({
 						url:'/pages/sales/addSales?pageType=edit&nowId='+item.id
 					})
 				}

+ 1 - 1
pages/sales/chooseProduct.vue

@@ -124,7 +124,7 @@
 			uni.getSystemInfo({
 				success: function (res) {
 					const winH = res.windowHeight * 2
-					_this.scrollH = winH - 180
+					_this.scrollH = winH - 120
 				}
 			})
 		},

+ 3 - 3
pages/sales/edit.vue

@@ -9,7 +9,7 @@
 			</view>
 			<view class="info-item-box">
 				<text class="info-item-tit color_6">客户名称</text>
-				<text>{{detailData && detailData.buyerName || '--'}}</text>
+				<text>{{detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</text>
 			</view>
 		</view>
 		<!-- 产品列表 -->
@@ -375,9 +375,9 @@
 						const winH = res.windowHeight * 2
 						let totalH = _this.$refs.salesTotal && _this.$refs.salesTotal.$el && _this.$refs.salesTotal.$el.offsetHeight || 0
 						if(_this.toggle){
-							_this.scrollH = winH - 656 - totalH
+							_this.scrollH = winH - 605 - totalH
 						}else{
-							_this.scrollH = winH - 522 - totalH
+							_this.scrollH = winH - 468 - totalH
 						}
 						// if(_this.detailData&&_this.detailData.billStatus=='FINISH'){
 							_this.scrollH = _this.scrollH + 100

+ 3 - 1
pages/sales/index.vue

@@ -27,7 +27,7 @@
 					<u-image class="nav-pic" style="margin-top: 5upx;" :src="`../../static/${theme}/navIcon/price_icon.png`" width="60" height="60"></u-image>
 					<text class="nav-txt" style="margin-top: 5upx;">产品报价</text>
 				</view>
-				<!-- <view class="nav-item" @click="toPage('/pages/sales/chooseCustomer')">
+				<!-- <view class="nav-item" @click="toPage('/pages/sales/chooseCustomer?backPage=addSales')">
 					<u-image class="nav-pic" :src="`../../static/${theme}/navIcon/sale_icon.png`" width="70" height="70"></u-image>
 					<text class="nav-txt">新增销售单</text>
 				</view> -->
@@ -145,6 +145,8 @@
 			this.getLookUpList('SETTLE_STYLE', 'vuex_paymentTypeList');
 			// 获取单据来源
 			this.getLookUpList('SALES_SOURCE', 'vuex_salesSourceList');
+			// 获取产品状态
+			this.getLookUpList('ONLINE_FLAG2', 'vuex_onlineFlagList');
 			// 获取门店审核状态
 			this.getLookUpList('XPRH_STORE_APPLY_STATUS', 'vuex_storeAuthState');
 			// 门店审核结算方式

+ 1 - 1
pages/sales/listComponent.vue

@@ -5,7 +5,7 @@
 				<view class="sales-list-item" v-for="(item, index) in listData" :key="item.id" @click="getDetail(item)">
 					<view class="list-item-tit flex align_center justify_between">
 						<view class="u-line" :style="{background: $config('primaryColor')}"></view>
-						<view class="buyer">{{item.buyerName}}</view>
+						<view class="buyer">{{item.buyerNameCurrent}}</view>
 						<view>{{item.billStatusDictValue}} <u-icon name="arrow-right" color="#969da3" size="28"></u-icon></view>
 					</view>
 					<view class="list-item-con">

+ 1 - 1
pages/sales/orderInfoModal.vue

@@ -9,7 +9,7 @@
 				</view>
 				<view class="order-info-list">
 					<text class="info-item-tit">客户名称:</text>
-					<text class="info-item-txt">{{ (infoData && infoData.buyerName) || '--' }}</text>
+					<text class="info-item-txt">{{infoData&&infoData.buyerNameCurrent?infoData.buyerName?infoData.buyerName==infoData.buyerNameCurrent?infoData.buyerNameCurrent:infoData.buyerNameCurrent+'('+infoData.buyerName+')':infoData.buyerNameCurrent:'--' }}</text>
 				</view>
 				<view class="order-info-list">
 					<text class="info-item-tit">客户地址:</text>

+ 34 - 25
pages/sales/productPricing.vue

@@ -1,8 +1,8 @@
 <template>
 	<view class="productPricing-content">
 		<view class="checkbox-price">
-			<u-checkbox-group  placement="row">
-				<u-checkbox v-model="item.checked" activeColor="rgb(4, 133, 246)" v-for="(item,index) in tabList" :key="index" :name="item.val">{{item.name}}</u-checkbox>
+			<u-checkbox-group  placement="row" :size="28">
+				<u-checkbox :label-size="26" v-model="item.checked" activeColor="rgb(4, 133, 246)" v-for="(item,index) in tabList" :key="index" :name="item.val">{{item.name}}</u-checkbox>
 			</u-checkbox-group>
 		</view>
 		<scroll-view class="product-list" scroll-y @scrolltolower="onreachBottom">
@@ -11,7 +11,8 @@
 					<view class="st-detailList-tit flex justify_between">
 						<!-- <view class="u-line" :style="{backgroundColor: $config('primaryColor')}"></view> -->
 						<view class="u-name">
-							<text>{{item.name}}</text>
+							<text style="margin-right: 20upx;">{{item.name}}</text>
+							<u-tag size="mini" :type="item.onlineFalg==1?'success':'info'" :text="item.onlineFalgDictValue"></u-tag>
 							<copyText :text="item.name" label="产品名称"></copyText>
 						</view>
 						<view class="u-last">
@@ -23,35 +24,33 @@
 							<u-image :src="item.productMainPic&&item.productMainPic.imageUrl?item.productMainPic.imageUrl:`../../static/${theme}/def_img@2x.png`" width="128" height="128" border-radius="10"></u-image>
 						</view>
 						<view class="flex_1">
-							<view class="padding_3">产品编码:{{item.code}} </view>
+							<view class="padding_3">产品编码:{{item.code}} <copyText :text="item.code" label="产品编码"></copyText></view>
 							<view class="padding_3">原厂编码:{{(item.origCode&&item.origCode!=' ')?item.origCode:'--'}} </view>
 							<view class="padding_3">品牌:{{item.productBrandName || '--'}} </view>
-							<view class="flex align_center justify_between">
-								<view class="font_13">
-									库存数:<text>{{toThousands(item.stockQty|| 0)}} 个</text>
-								</view>
-								<view class="font_13">
-									车主价:<text class="red">¥{{toThousands(item.carOwnersPrice|| 0,2)}} </text>
-								</view>
+							<view class="font_13">
+								库存数:<text>{{toThousands(item.stockQty|| 0)}} 个</text>
+							</view>
+							<view class="font_13">
+								车主价/自定义车主价:<text class="red">{{item.carOwnersPrice ||item.carOwnersPrice==0?'¥'+toThousands(item.carOwnersPrice,2):'--'}}/{{item.dealerProductPrice&&(item.dealerProductPrice.carOwnersPrice||item.dealerProductPrice.carOwnersPrice==0)?'¥'+toThousands(item.dealerProductPrice.carOwnersPrice,2):'--'}} </text>
 							</view>
 						</view>
 					</view>
 					<view class="price-all flex" v-if="selPriceShow">
-						<view class="price-item" v-if="priceList[0].checked">
-							<text>{{toThousands(item.offerCost|| 0,2)}} </text>
+						<view class="price-item1" v-if="priceList[0].checked">
+							<text>{{(item.offerCost||item.offerCost==0)?toThousands(item.offerCost,2):'--'}} </text>
 							<view>成本价</view>
 						</view>
-						<view class="price-item" v-if="priceList[1].checked">
-							<text>{{toThousands(item.cityPrice|| 0,2)}} </text>
+						<view class="price-item1" v-if="priceList[1].checked">
+							<text>{{(item.cityPrice || item.cityPrice==0)?toThousands(item.cityPrice,2):'--'}} </text>
 							<view>市级价</view>
 						</view>
-						<view class="price-item" v-if="priceList[2].checked">
-							<text>{{toThousands(item.specialPrice|| 0,2)}} </text>
+						<view class="price-item1" v-if="priceList[2].checked">
+							<text>{{(item.specialPrice||item.specialPrice==0)?toThousands(item.specialPrice,2):'--'}} </text>
 							<view>特约价</view>
 						</view>
-						<view class="price-item" v-if="priceList[3].checked">
-							<text>{{toThousands(item.terminalPrice|| 0,2)}} </text>
-							<view>终端会员价</view>
+						<view class="price-item2" v-if="priceList[3].checked">
+							<text>{{(item.terminalPrice||item.terminalPrice==0)?toThousands(item.terminalPrice,2):'--'}}/{{item.dealerProductPrice&&(item.dealerProductPrice.terminalPrice||item.dealerProductPrice.terminalPrice==0)?toThousands(item.dealerProductPrice.terminalPrice,2):'--'}}  </text>
+							<view>终端价/自定义终端价</view>
 						</view>
 					</view>
 				</view>
@@ -82,7 +81,7 @@
 					{ name: '成本价', checked: false, val: 'offerCost' },
 					{ name: '市级价', checked: false, val: 'cityPrice' },
 					{ name: '特约价', checked: false, val: 'specialPrice' },
-					{ name: '终端会员价', checked: false, val: 'terminalPrice' },
+					{ name: '终端价/自定义终端价', checked: false, val: 'terminalPrice' },
 				],
 				pageNo:1,
 				pageSize:15,
@@ -90,7 +89,12 @@
 				theme: '',
 				status: 'loadmore',
 				showModal:false,
-				params:{}
+				params:{
+					"code": "",
+					"name": "",
+					"origCode": "",
+					"putStockFlag": 1
+				}
 			}
 		},
 		onNavigationBarButtonTap(e){
@@ -236,16 +240,21 @@
 						.price-all{
 							border-top: 1px solid #e4e7ed;
 							padding: 20upx 20upx 0;
-							.price-item{
-								width: 25%;
+							.price-item1{
+								width: 18%;
 								border-right:  1px solid #e4e7ed;
 								text-align: center;
 								>view{
 									color:#999;
 								}
 							}
-							.price-item:last-child{
+							.price-item2{
+								width: 46%;
 								border-right:  none;
+								text-align: center;
+								>view{
+									color:#999;
+								}
 							}
 						}
 					}

+ 1 - 1
pages/sales/salesDetail.vue

@@ -5,7 +5,7 @@
 			<u-section @click="infoModal=true" title="基础信息" sub-title="查看更多" :line-color="$config('primaryColor')"></u-section>
 			<view class="info-item-box">
 				<text class="info-item-tit color_6">客户名称</text>
-				<text>{{detailData && detailData.buyerName || '--'}}</text>
+				<text>{{detailData&&detailData.buyerNameCurrent?detailData.buyerName?detailData.buyerName==detailData.buyerNameCurrent?detailData.buyerNameCurrent:detailData.buyerNameCurrent+'('+detailData.buyerName+')':detailData.buyerNameCurrent:'--' }}</text>
 			</view>
 			<view class="info-item-box">
 				<text class="info-item-tit color_6">销售单号</text>

+ 2 - 2
pages/sales/salesRecord.vue

@@ -15,14 +15,14 @@
 						</view>
 					</u-cell-item>
 				</u-cell-group> -->
-				<u-search placeholder="输入客户名称搜索" v-model="queryparams.buyerName" @change="changeInput" @clear="tagClick" @search="getList(1)" @custom="getList(1)"></u-search>
+				<u-search placeholder="输入客户名称搜索" v-model="queryparams.buyerNameCurrent" @change="changeInput" @clear="tagClick" @search="getList(1)" @custom="getList(1)"></u-search>
 			</view>
 			<scroll-view class="sales-list-con" :style="{height: scrollH+'upx'}" scroll-y @scrolltolower="onreachBottom">
 				<view class="sales-list-main">
 					<view class="sales-list-item" v-for="(item, index) in listData" :key="item.id">
 						<view class="list-item-tit flex align_center">
 							<!-- <view class="u-line" :style="{background: $config('primaryColor')}"></view> -->
-							<view class="buyer">{{item.salesBillEntity.buyerName}}</view>
+							<view class="buyer">{{item.salesBillEntity.buyerNameCurrent}}</view>
 						</view>
 						<view class="list-item-con">
 							<view class="list-item-line flex align_center justify_between">

+ 4 - 4
pages/sales/salesSearch.vue

@@ -6,8 +6,8 @@
 					<u-input clearable v-model="form.date" disabled placeholder="请选择创建时间区间" class="form-item-inp" @click="showDate=true" />
 					<u-icon v-show="form.date.length != 0" name="close-circle-fill" color="#c8c0cc" size="32" class="close-circle" @click="clearTime"></u-icon>
 				</u-form-item>
-				<u-form-item label="客户名称" prop="buyerName" class="form-item">
-					<u-input v-model="form.buyerName" :maxlength="30" placeholder="请输入客户名称" />
+				<u-form-item label="客户名称" prop="buyerNameCurrent" class="form-item">
+					<u-input v-model="form.buyerNameCurrent" :maxlength="30" placeholder="请输入客户名称" />
 				</u-form-item>
 				<u-form-item label="销售单号" prop="salesBillNo" class="form-item">
 					<u-input v-model="form.salesBillNo" :maxlength="30" placeholder="请输入销售单号" />
@@ -64,7 +64,7 @@
 					date: '',
 					beginDate: '',
 					endDate: '',
-					buyerName: '', //  客户名称
+					buyerNameCurrent: '', //  客户名称
 					salesBillNo: '', //  销售单号
 					purchaseBillNo: '', //  采购单号
 					settleStyleSn: undefined //  收款方式
@@ -100,7 +100,7 @@
 				}
 				this.beginDate = this.defaultParams.beginDate ? this.defaultParams.beginDate : ''
 				this.endDate = this.defaultParams.endDate ? this.defaultParams.endDate : ''
-				this.form.buyerName = this.defaultParams.buyerName ? this.defaultParams.buyerName : ''
+				this.form.buyerNameCurrent = this.defaultParams.buyerNameCurrent ? this.defaultParams.buyerNameCurrent : ''
 				this.form.salesBillNo = this.defaultParams.salesBillNo ? this.defaultParams.salesBillNo : ''
 				this.form.purchaseBillNo = this.defaultParams.purchaseBillNo ? this.defaultParams.purchaseBillNo : ''
 				this.form.settleStyleSn = this.defaultParams.settleStyleSn ? this.defaultParams.settleStyleSn : ''

+ 37 - 4
pages/sales/search.vue

@@ -1,12 +1,19 @@
 <template>
 	<view class="modal-box">
 		<u-popup v-model="isShow"  @close="isShow=false" mode="right" length="85%" >
-			<u-form :model="form" ref="uForm" label-width="180" class="form-content">
+			<u-form :model="form" ref="uForm" label-width="200" class="form-content">
 				<u-form-item label="产品编码"><u-input v-model.trim="form.code" placeholder="请输入产品编码" input-align="right" /></u-form-item>
 				<u-form-item label="原厂编码"><u-input v-model.trim="form.origCode" placeholder="请输入原厂编码" input-align="right" /></u-form-item>
 				<u-form-item label="产品名称"><u-input v-model.trim="form.name" placeholder="请输入产品名称" input-align="right" /></u-form-item>
 				<u-form-item label="产品品牌"><u-input v-model="brandName" @click="brandModal=true" disabled placeholder="请选择产品品牌" input-align="right" /></u-form-item>
 				<u-form-item label="产品分类"><u-input v-model="productTypeNameArr" @click="showTypeModal=true" disabled placeholder="请选择产品分类" input-align="right" /></u-form-item>
+				<u-form-item label="产品状态" class="form-item">
+					<u-input v-model="onlineFalgName" @click="onlineFalgModal=true" disabled placeholder="请选择产品状态" input-align="right" />
+					<u-icon v-show="onlineFalgName.length != 0" name="close-circle-fill" color="#c8c0cc" size="32" class="close-circle" @click="clearOnlineFlag"></u-icon>
+				</u-form-item>
+				<u-form-item label="包含未入库产品" label-width="300">
+					<view class="flex justify_end" style="width: 100%;"><u-switch v-model="form.putStockFlag"></u-switch></view>
+				</u-form-item>
 			</u-form>
 			<view class="form-footer-btn">
 				<u-button class="handle-btn" shape="circle" size="medium" hover-class="none" @click="handleClean">重置</u-button>
@@ -17,6 +24,8 @@
 		<productBrand :openModal="brandModal" :itemSn="form.productBrandSn" @choose="brandChoose" @clean="brandClean" @close="brandModal=false" />
 		<!-- 产品分类 -->
 		<productType :openModal="showTypeModal" :nowData="nowData" @choose="typeChoose" @clean="typeClean" @close="showTypeModal=false" />
+		<!-- 选择产品状态 -->
+		<u-picker v-model="onlineFalgModal" @confirm="onlineFalgChange" :range="onlineFlagList" range-key="dispName" mode="selector"></u-picker>
 	</view>
 </template>
 
@@ -31,7 +40,6 @@
 				type: Boolean,
 				default: false
 			}
-			
 		},
 		computed: {
 			productTypeNameArr: function() {
@@ -52,6 +60,8 @@
 					productTypeSn1: undefined, //  产品分类1
 					productTypeSn2: undefined, //  产品分类2
 					productTypeSn3: undefined, //  产品分类3
+					onlineFalg: undefined,
+					putStockFlag: true
 				},
 				customBtnStyle: {  //  自定义按钮样式
 					borderColor: this.$config('primaryColor'),
@@ -66,7 +76,10 @@
 				brandName: '',
 				isShow:this.showModal,
 				showTypeModal: false,
-				brandModal:false
+				brandModal:false,
+				onlineFalgModal: false,
+				onlineFalgName: '',
+				onlineFlagList: []
 			}
 		},
 		methods:{
@@ -75,15 +88,17 @@
 				this.form.code = ''
 				this.form.name = ''
 				this.form.origCode = ''
+				this.form.putStockFlag = true
 				this.brandClean()
 				this.typeClean()
+				this.clearOnlineFlag()
 				setTimeout(()=>{
 					this.handleSearch()
 				},300)
 			},
 			handleSearch(){
 				let data = JSON.parse(JSON.stringify(this.form))
-				console.log(data)
+				data.putStockFlag = data.putStockFlag ? 1 : 0
 				this.$emit('refresh', data)
 				this.isShow=false
 			},
@@ -118,6 +133,22 @@
 				this.form.productTypeSn1 = undefined
 				this.form.productTypeSn2 = undefined
 				this.form.productTypeSn3 = undefined
+			},
+			clearOnlineFlag(){
+				this.onlineFalgName = ''
+				this.form.onlineFalg = undefined
+			},
+			// 产品状态 change
+			onlineFalgChange(ind){
+				this.form.onlineFalg = this.onlineFlagList[ind].code || undefined
+				this.onlineFalgName = this.onlineFlagList[ind].dispName || ''
+			},
+			getStateList(){
+				this.onlineFlagList = this.$store.state.vuex_onlineFlagList
+				if(this.form.onlineFalg){
+					const b = this.onlineFlagList.find(item => item.code == this.form.onlineFalg)
+					this.onlineFalgName = b ? b.dispName : ''
+				}
 			}
 		},
 		watch:{
@@ -129,6 +160,8 @@
 			isShow (newValue, oldValue) {
 				if (!newValue) {
 					this.$emit('close')
+				}else{
+					this.getStateList()
 				}
 			}
 		}

+ 54 - 4
pages/shelfSetting/editShelfHw.vue

@@ -1,5 +1,13 @@
 <template>
 	<view class="content flex flex_column">
+		<u-navbar back-text="编辑货位" :border-bottom="false">
+			<view slot='right' 
+			style="padding: 0 30upx;" 
+			@click="enableShelfProduct" 
+			v-if="type=='edit'&&nowData&&nowData.shelfProductApiEntity&&(!nowData.shelfProductApiEntity.qty||(nowData.shelfProductApiEntity.enableFlag==0&&nowData.shelfProductApiEntity.qty))">
+				<text :style="{color:nowData&&nowData.shelfProductApiEntity.enableFlag==1?$config('errorColor'):$config('primaryColor')}">{{nowData&&nowData.shelfProductApiEntity.enableFlag==1?'禁用':'启用'}}</text>
+			</view>
+		</u-navbar>
 		<view class="form-body">
 			<u-form :model="form" label-width="180rpx" :error-type="['toast']" ref="uForm">
 				<u-form-item label="货位号">
@@ -17,10 +25,13 @@
 							<view class="pinfo flex_1">
 								<view class="ptxt flex align_center justify_between">
 									<text>{{productEntity.code}}</text>
-									<text class="pcode" @click="toBindProduct">
+									<text class="pcode" @click="toBindProduct" v-if="type=='bind'||(type=='edit'&&nowData&&nowData.shelfProductApiEntity&&nowData.shelfProductApiEntity.enableFlag==1)">
 										<u-icon name='reload'></u-icon>
 										更换产品
 									</text>
+									<text v-else class="pcode" style="color: #999;">
+										(已禁用)
+									</text>
 								</view>
 								<view class="pname">
 									{{productEntity.name}}
@@ -51,14 +62,14 @@
 		</view>
 		<view class="flex footer-btn">
 			<u-button v-if="type=='bind'" class="delbtn" :loading='loading' @click="handleDel" type='primary' shape="circle" size="medium">删除货位</u-button>
-			<u-button :style="{width:type=='bind'?'45%':'100%'}" class="newbtn" :loading='loading' @click="formSubmit" type='primary' shape="circle" size="medium">保存</u-button>
+			<u-button :disabled="type=='edit'&&nowData&&nowData.shelfProductApiEntity&&nowData.shelfProductApiEntity.enableFlag==0" :style="{width:type=='bind'?'45%':'100%'}" class="newbtn" :loading='loading' @click="formSubmit" type='primary' shape="circle" size="medium">保存</u-button>
 		</view>
 	</view>
 </template>
 
 <script>
 	import { clzConfirm, numberToFixed } from '@/libs/tools';
-	import { shelfProductSave, shelfProductDetail, delShelfPlaceSn } from '@/api/shelf'
+	import { shelfProductSave, shelfProductDetail, delShelfPlaceSn, shelfProductEnable } from '@/api/shelf'
 	export default {
 		data() {
 			return {
@@ -92,6 +103,7 @@
 		onLoad(opts) {
 			const _this = this
 			this.nowData = this.$store.state.vuex_tempData;
+			console.log(this.nowData)
 			this.customerSn = this.nowData.customerSn
 			this.shelfSn = this.nowData.shelfSn
 			this.type = opts.type
@@ -174,7 +186,9 @@
 					  name: res.data.productName,
 					  productMsg: res.data.productImageUrl,
 					  currQty: res.data.qty,
-					  unit: res.data.productEntity.unit
+					  unit: res.data.productEntity.unit,
+					  enabledFlag: res.data.productEntity.enabledFlag,
+					  shelfProductSn: res.data.shelfProductSn
 				  }
 			      this.form.productSn = res.data.productSn
 				  this.bakProductSn = res.data.productSn
@@ -190,6 +204,42 @@
 			    }
 			  })
 			},
+			// 禁用货位产品
+			enableShelfProduct(){
+				const _this = this
+				const isEnable = this.nowData&&this.nowData.shelfProductApiEntity&&this.nowData.shelfProductApiEntity.enableFlag==1
+				if(isEnable){
+					clzConfirm({
+					  title: '提示',
+					  content: '禁用后不参于盘点和补货,但是可以退货、调回,确认禁用吗?',
+					  success (ret) {
+							if (ret.confirm || ret.index == 0) {
+								_this.enableFun(isEnable)
+							}
+					  }
+					})
+				}else{
+					_this.enableFun(isEnable)
+				}
+				
+			},
+			enableFun(isEnable){
+			  const _this = this
+			  const shelfProductSn = this.nowData.shelfProductApiEntity.shelfProductSn
+			  _this.spinning = true
+			  shelfProductEnable({ shelfSn: this.nowData.shelfSn, shelfProductSn: shelfProductSn, enableFlag: isEnable ? 0 : 1 }).then(res => {
+				if (res.status == 200) {
+				   uni.showToast({
+				   	icon: "none",
+				   	title: res.message
+				   })
+				   this.nowData.shelfProductApiEntity.enableFlag = isEnable ? 0 : 1
+				   // 获取产品信息
+				   this.getProductInfo()
+				}
+				_this.spinning = false
+			  })
+			},
 			// 删除货位
 			handleDel (row) {
 			  const _this = this

+ 1 - 1
pages/shelfSetting/searchShelfHw.vue

@@ -114,7 +114,7 @@
 			//编辑货位
 			toEdit(item){
 				const type = 'edit'
-				const params = Object.assign({shelfSn: this.shelfSn,shelfName: this.shelfName},item)
+				const params = Object.assign({shelfSn: this.shelfSn,shelfName: this.shelfName, shelfProductApiEntity: item},item)
 				this.$store.state.vuex_tempData = params
 				uni.navigateTo({
 					url: "/pages/shelfSetting/editShelfHw?type=" + type

+ 131 - 102
pages/shelfSetting/shelfSet.vue

@@ -7,6 +7,7 @@
 				<u-badge v-if="showDot" :is-dot="true" size="mini" type="error"></u-badge>
 			</view>
 		</u-navbar>
+	<view class="body-content flex flex_column">
 		<view class="card-box" v-if="detailData">
 			<view class="card-row flex align_center justify_between">
 				<view class="label">货架名称</view>
@@ -39,7 +40,7 @@
 			<u-action-sheet :list="actionList" @click="clickAction" v-model="updateShowPrice"></u-action-sheet>
 		</view>
 		<!-- 货位信息 -->
-		<view class="shelfPlace" v-if="shelfPlaceList">
+		<view class="shelfPlace" :style="{height: scrollH+'px'}" v-if="shelfPlaceList">
 			<view class="flex align_center shelfPlaceHead">
 				<view class="lt"><text>□</text>表示没有绑定产品</view>
 				<view class="search-btn flex align_center" @click="toSearchHw">
@@ -65,7 +66,7 @@
 				</view>
 			</view>
 		</view>
-		<view v-else>
+		<view style="width: 100%;" v-else>
 			<view class="nodata" v-if="!loading">
 				<view>
 					<u-image :src="`../../static/${$config('themePath')}/def_no_data@3x.png`" width="180" height="180" border-radius="10"></u-image>
@@ -83,6 +84,8 @@
 			</view>
 		</view>
 	</view>
+		
+	</view>
 </template>
 
 <script>
@@ -99,6 +102,7 @@
 				detailData: null,
 				switchVal: false,
 				showMenus:false,
+				scrollH: 400,
 				popData:[{title:'快速补货',val:'0'},{title:'打印贴签',val:'1'}],
 				pleft:0,
 				ptop:0,
@@ -123,6 +127,11 @@
 				]
 			}
 		},
+		watch:{
+			showMore(a,b){
+				this.getScrollHeight(a)
+			},
+		},
 		onLoad(option) {
 			this.shelfSn = option.shelfSn
 			// 获取货架详情
@@ -131,7 +140,7 @@
 			// 获取货物
 			this.getShelfPlace()
 			this.isLoad = true
-			this.webView = this.$mp.page.$getAppWebview(); 
+			// this.webView = this.$mp.page.$getAppWebview(); 
 			uni.$on("editCustome",(data)=>{
 				this.isLoad = true
 				this.saveShelf(data,0)
@@ -141,10 +150,10 @@
 				this.saveShelf(data,1)
 			})
 			
-			const win = uni.getWindowInfo()
-			this.pleft = Math.floor(win.windowWidth * 0.3)
-			this.ptop = Math.floor(win.windowHeight - 70)
-			
+			// const win = uni.getWindowInfo()
+			// this.pleft = Math.floor(win.windowWidth * 0.3)
+			// this.ptop = Math.floor(win.windowHeight - 70)
+			this.getScrollHeight(this.showMore)
 			console.log(this.shelfSn)
 		},
 		onUnload() {
@@ -157,6 +166,19 @@
 			}
 		},
 		methods: {
+			getScrollHeight(a){
+				const sys = uni.getSystemInfoSync()
+				const h = a? 290 : 250
+				if(sys.platform == 'android'){
+					this.scrollH = sys.windowHeight - h
+				}else{
+					if(sys.safeArea.top){
+						this.scrollH = sys.windowHeight - h + sys.statusBarHeight - 34
+					}else{
+						this.scrollH = sys.windowHeight - h - 14
+					}
+				}
+			},
 			// 刷新货位
 			updateHw(){
 				this.placeTab = []
@@ -189,7 +211,7 @@
 				}
 				// 快速补货
 				if(e == 2){
-					createShelfReplenishBill({shelfSn: this.shelfSn}).then(res => {
+					createShelfReplenishBill({shelfSn: this.shelfSn, enableFlag: 1}).then(res => {
 						console.log(res.data)
 						if(res.data&&res.data.length){
 							const params = Object.assign(this.detailData,{list:res.data})
@@ -411,121 +433,128 @@
 			}
 		}
 	}
-	.moreSeting{
-		text-align: center;
-		color: #999;
-		padding: 20upx;
-		> text{
-			margin-right: 10rpx;
-		}
-	}
-}
-.card-box{
-	background-color: #fff;
-	border-radius: 0.5rem;
-	box-shadow: 0.1rem 0.2rem 0.3rem #eee;
-	padding: 0 1rem;
-	margin: 0.5rem;
-	.card-row{
-		border-bottom: 1rpx solid #eee;
-		padding: 20rpx 0;
-		min-height: 90rpx;
-		&:last-child{
-			border-bottom: 0;
-		}
-		.label{
-			flex: 1;
-			width: 20%;
-		}
-		.text{
-			width: 80%;
-			color: #666;
-		}
-	}
-}
-.shelfPlace{
-	.shelfPlaceHead{
-		padding: 0.2rem 0.5rem 0.5rem;
-		justify-content: space-between;
-		.lt{
-			font-size: 0.9rem;
-			color: #999;
-			text{
-				color: #ff5500;
-				font-size: 1rem;
+	.body-content{
+		width: 100%;
+     }
+	.card-box{
+		background-color: #fff;
+		border-radius: 0.5rem;
+		box-shadow: 0.1rem 0.2rem 0.3rem #eee;
+		padding: 0 1rem;
+		margin: 0.5rem;
+		.card-row{
+			border-bottom: 1rpx solid #eee;
+			padding: 20rpx 0;
+			min-height: 90rpx;
+			&:last-child{
+				border-bottom: 0;
+			}
+			.label{
+				flex: 1;
+				width: 20%;
+			}
+			.text{
+				width: 80%;
+				color: #666;
 			}
 		}
-		.search-btn{
-			border:1rpx solid #eee;
-			border-radius: 50rpx;
-			width: 50%;
-			justify-content: space-between;
-			padding:0.3rem 0.5rem;
+		.moreSeting{
+			text-align: center;
 			color: #999;
-			background-color: #fff;
-			font-size: 0.9rem;
-			&:active{
-				opacity: 0.6;
+			padding: 20upx;
+			> text{
+				margin-right: 10rpx;
 			}
 		}
 	}
-	.shelfTabs{
-		height: calc(100vh - 150rpx);
-		.leftTabs{
-			width: 20%;
-			overflow: auto;
-			> view{
-				padding: 0.8rem 0.5rem;
-				border-left: 0.2rem solid #f8f8f8;
-				text-align: center;
+	
+	.shelfPlace{
+		height: calc(100% - 300rpx);
+		.shelfPlaceHead{
+			padding: 0.2rem 0.5rem 0.5rem;
+			justify-content: space-between;
+			.lt{
+				font-size: 0.9rem;
+				color: #999;
+				text{
+					color: #ff5500;
+					font-size: 1rem;
+				}
 			}
-			.active{
-				border-color: rgb(47, 126, 209);
+			.search-btn{
+				border:1rpx solid #eee;
+				border-radius: 50rpx;
+				width: 50%;
+				justify-content: space-between;
+				padding:0.3rem 0.5rem;
+				color: #999;
 				background-color: #fff;
+				font-size: 0.9rem;
+				&:active{
+					opacity: 0.6;
+				}
 			}
 		}
-		.rightCons{
-			width: 80%;
-			background-color: #fff;
-			position: relative;
-			.hwList{
+		.shelfTabs{
+			height: calc(100% - 85rpx);
+			.leftTabs{
+				width: 20%;
 				overflow: auto;
-				padding: 0.5rem;
-				padding-bottom: 105rpx;
-				> text{
-					border: 1rpx solid #eee;
-					padding: 0.2rem 0.8rem;
-					border-radius: 0.3rem;
-					margin: 0.5rem 2%;
-					float: left;
-					width: 20%;
+				> view{
+					padding: 0.8rem 0.5rem;
+					border-left: 0.2rem solid #f8f8f8;
 					text-align: center;
 				}
-				.red{
-					border-color: #ff5500;
-				}
-				.add{
-					border-style: dashed;
-					border-color: #999;
-					color: #999;
+				.active{
+					border-color: rgb(47, 126, 209);
+					background-color: #fff;
 				}
 			}
-			.hwAction{
-				padding: 0.5rem;
-				position: fixed;
-				bottom: 0;
-				right: 0;
+			.rightCons{
 				width: 80%;
 				background-color: #fff;
-				button{
-					width: 240rpx;
+				position: relative;
+				.hwList{
+					overflow: auto;
+					padding: 0.5rem;
+					padding-bottom: 105rpx;
+					> text{
+						border: 1rpx solid #eee;
+						padding: 0.2rem 0.8rem;
+						border-radius: 0.3rem;
+						margin: 0.5rem 2%;
+						float: left;
+						width: 20%;
+						text-align: center;
+					}
+					.red{
+						border-color: #ff5500;
+					}
+					.add{
+						border-style: dashed;
+						border-color: #999;
+						color: #999;
+					}
 				}
-				.newbtn{
-					background-color: rgb(51, 95, 182);
-					color: #fff;
+				.hwAction{
+					padding: 0.5rem;
+					position: fixed;
+					bottom: 0;
+					right: 0;
+					width: 80%;
+					background-color: #fff;
+					button{
+						width: 240rpx;
+					}
+					.newbtn{
+						background-color: rgb(51, 95, 182);
+						color: #fff;
+					}
 				}
 			}
 		}
 	}
 }
+
+
 </style>

+ 1 - 1
pages/shuntBackManage/cancellingStocks.vue

@@ -27,7 +27,7 @@
 			<u-button @click="submit" shape="circle" :custom-style="{background:$config('primaryColor')}" type="primary">确定退库</u-button>
 		</view>
 		<!-- 确认弹框 -->
-		<common-modal :openModal="confirmModal" content="调回产品将退回至经销商仓库,确认退库吗?" confirmText="确认退库" @confirm="modalConfirm" @close="confirmModal=false" />
+		<common-modal :openModal="confirmModal" content="此操作将会扣减数字货架的库存,确认退库吗?" confirmText="确认退库" @confirm="modalConfirm" @close="confirmModal=false" />
 		<!-- 生成销售退货单弹窗 -->
 		<common-modal :showTitle="false" :openModal="refundModal" @confirm="refundModalConfirm" @close="refundModal=false">
 			<view style="font-size: 28upx;">

+ 2 - 1
pages/soldOut/chooseProduct.vue

@@ -313,7 +313,8 @@
 				let params = {
 					shelfSn: this.nowData.shelfSn,
 					queryWord: this.queryWord,
-					stockStateList: this.stockStateList
+					stockStateList: this.stockStateList,
+					enableFlag: 1
 				}
 				uni.showLoading({
 					mask:true,

+ 0 - 1
pages/soldOut/creatOrder.vue

@@ -107,7 +107,6 @@
 </template>
 
 <script>
-	import { queryProductListForReplenish } from '@/api/shelf'
 	import { saveMainAndDetail } from '@/api/shelfReplenish'
 	import { clzConfirm } from '@/libs/tools'
 	export default {

+ 4 - 1
pages/stock/detaiList.vue

@@ -66,7 +66,10 @@
 							<u-tag v-if="item.bizTypeDictValue" :text="item.bizTypeDictValue" :border-color="$config('primaryColor')" shape="circle" size="mini" />
 						</view>
 						<view class="flex align_center justify_between">
-							<view>{{item.unitName || '--'}}</view>
+							<view>
+							<text v-if="item.unitType&&item.unitType=='CUSTOMER'">{{ item.unitNameCurrent||'--' }}</text>
+							<text v-else>{{ item.unitName||'--' }}</text>
+							</view>
 							<view>
 								<view :style="{color: item.qty && item.qty!=0 ? (item.flowType=='PUT' ? 'green':'red'):'', display:'inline-block'}"><text v-if="item.qty && item.qty!=0">{{ item.flowType=='PUT' ? '+':'-' }}</text>{{ toThousands(item.qty||0) }}</view>
 								{{item.product && item.product.unit}}

+ 4 - 1
pages/stock/warehouseDetail.vue

@@ -40,7 +40,10 @@
 			</view>
 			<view class="info-item flex align_center justify_between">
 				<view class="info-name">单位名称</view>
-				<view>{{paramsData && paramsData.unitName || '--'}}</view>
+				<view v-if="paramsData">
+					<text v-if="paramsData.unitType&&paramsData.unitType=='CUSTOMER'">{{ paramsData.unitNameCurrent||'--' }}</text>
+					<text v-else>{{ paramsData.unitName||'--' }}</text>
+				</view>
 			</view>
 			<view class="info-item flex align_center justify_between">
 				<view class="info-name">批次号</view>

+ 1 - 0
pages/stockCheck/startCheck.vue

@@ -486,6 +486,7 @@
 					shelfPlaceCodeHead: this.curTab,
 					currQtyFlag: this.curType=='available' ? 1 : '',
 					freezeQtyFlag: this.curType=='blocked' ? 1 : '',
+					enableFlag: 1
 				}
 				_this.status = 'loading'
 				getShelfProductList(params).then(res => {

+ 2 - 2
pages/userCenter/index.vue

@@ -26,10 +26,10 @@
 				<u-cell-item  index="1" @click="toPage(4)" title="系统参数" v-if="$hasPermissions('M_ARStatement_mobile')">
 					<u-icon slot="icon" name="xitongcanshu-05" custom-prefix="iscm-icon" size="42" color="#00aaff"></u-icon>
 				</u-cell-item>
-				<u-cell-item icon="man-delete" icon-size="38" :icon-style="{color:'#00aaff'}" index="1" @click="closeAccount" title="注销账户"></u-cell-item>
 				<u-cell-item icon="reload" icon-size="35" :icon-style="{color:'#00aaff'}" index="1" @click="resetPrint" title="重置打印机"></u-cell-item>
 			</u-cell-group>
 			<u-cell-group>
+				<u-cell-item icon="man-delete" icon-size="38" :icon-style="{color:'#00aaff'}" index="1" @click="closeAccount" title="注销账户"></u-cell-item>
 				<!-- <u-cell-item icon="info-circle" icon-size="38" :icon-style="{color:'#00aaff'}" index="1" @click="toPage" title="关于我们"></u-cell-item> -->
 				<u-cell-item icon="level" icon-size="34" :icon-style="{color:'#00aaff'}" index="2" @click="toPage(2)" :value="curVer.version" title="版本检查"></u-cell-item>
 				<u-cell-item icon="file-text" icon-size="36" :icon-style="{color:'#00aaff'}" index="0" @click="toPage(0)" title="服务协议及隐私政策"></u-cell-item>
@@ -181,7 +181,7 @@
 				const _this = this;
 				clzConfirm({
 					title: '提示',
-					content: '账户注销后将不能再使用iSCM系统,且您的所有相关数据将被删除,确定注销吗?',
+					content: '账户注销后将不能再使用iSCM系统,且您的所有相关数据将被删除,确定注销吗?',
 					success: function(res) {
 						if (res.confirm || res.index == 0) {
 							logoff().then(ret => {

+ 1 - 0
store/index.js

@@ -106,6 +106,7 @@ const store = new Vuex.Store({
 		vuex_allLookUp: [],  //  数据字典
 		vuex_paymentTypeList: [], // 收款方式
 		vuex_salesSourceList: [], // 销售单据来源
+		vuex_onlineFlagList: [], // 产品上线状态
 		vuex_storeAuthState: [], // 门店审核状态
 		vuex_shelfSettleType: [], // 门店审核结算方式
 		vuex_tempPrintList:[], // 临时打印数据