shish 3 лет назад
Родитель
Сommit
65ac68c59f
3 измененных файлов с 83 добавлено и 11 удалено
  1. 45 9
      ghsApp/src/admin/item/xjSelect.vue
  2. 4 0
      ghsApp/src/api/product/xj.js
  3. 34 2
      hdApp/src/pagesPurchase/xj.vue

+ 45 - 9
ghsApp/src/admin/item/xjSelect.vue

@@ -22,18 +22,19 @@
 	</form>
 	</view>
 
-	<view style="text-align:center;border-top:1upx dashed #cccccc;padding-top:30upx;padding-bottom:30upx;">
-		<button @click="clearXj" class="admin-button-com middle default">清空全部</button>
+	<view style="text-align:center;border-top:1upx dashed #cccccc;padding-top:30upx;padding-bottom:20upx;">
 	</view>
 
+	<view style="margin-bottom:18upx;font-size:28upx;text-align:center;font-weight:bold;color:red;">注意:-1 表示库存充足</view>
+
 	<view class="billing_box_bg">
 		<view class="scroll-middle_bx">
 			<block>
 				<view class="item_list_bx"  style="width: 100%">
 					<view v-for="(xjItem,xjIndex) in xjList" :key="xjIndex">
-						<view>
-							<view class="item-cmd_bx" @click="previewImage(xjItem.bigCover)">
-								<view class="img_bx" style="background:#eeeeee">
+						<view style="height:190upx;">
+							<view class="item-cmd_bx">
+								<view class="img_bx" style="background:#eeeeee" @click="previewImage(xjItem.bigCover)">
 									<image :src="xjItem.cover"></image>
 								</view>
 								<view class="cmd-info_bx">
@@ -41,9 +42,10 @@
 									<view class="kc"></view>
 									<view class="num-open_bx">
 										<view class="open-bx warn" @tap.stop.prevent>
-											<text v-if="xjItem.status == 2" style="color:#777777;">已停用</text>
-											<text v-else style="color:green;">已启用</text>
-											<switch :checked="xjItem.status == 2 ? false : true" @change="changeXjStatusFn($event,xjItem.id)" style="transform: scale(0.8,0.8)" />
+											<input type="number" v-model="xjItem.stock" 
+											style="width:230upx;border:1upx solid #cccccc;position:absolute;top:80upx;left:230upx;height:60upx;font-size:30upx;" placeholder="请填写数量" />
+											<text v-if="xjItem.stock!='' && Number(xjItem.stock) == 0" 
+											style="position:absolute;top:90upx;left:510upx;font-size:30upx;color:red;font-weight:bold;">下架</text>
 										</view>
 									</view>
 								</view>
@@ -55,12 +57,17 @@
 		</view>
 	</view>
 
+	<view class="app-footer">
+		<button class="admin-button-com big default" @click="clearXj">清空全部</button>
+		<button class="admin-button-com big blue" style="margin-left:50upx;" @click="saveAllItemNum()">保存数量</button>
+	</view>
+
 </view>
 </template>
 <script>
 import AppWrapperEmpty from "@/components/app-wrapper-empty"
 import { mapGetters } from "vuex"
-import { getFilterXj,ReplaceXj,clearAll,batchAdd } from "@/api/product/xj"
+import { getFilterXj,ReplaceXj,clearAll,batchAdd,saveAllNum } from "@/api/product/xj"
 //图片上传插件来源:https://ext.dcloud.net.cn/plugin?id=2922 已改造,不能再升级 shish 20211228
 import htzImageUpload from './components/htz-image-upload/htz-image-upload.vue'
 export default {
@@ -97,6 +104,34 @@ export default {
 		this.headers.token = token
 	},
 	methods: {
+		saveAllItemNum(){
+			let that = this
+			if(this.$util.isEmpty(this.xjList)){
+				that.$msg('没有花材')
+				return false
+			}
+			for (const ele of this.xjList) {
+				if(ele.stock == ''){
+					that.$msg('请填写 '+ele.name+' 库存数')
+					return false					
+				}
+				if(ele.stock%1 !== 0){
+					that.$msg(ele.name+' 库存填写错误')
+					return false					
+				}
+				if(Number(ele.stock)<-1){
+					that.$msg(ele.name+' 库存填写错误')
+					return false
+				}
+			}
+			const product = this.xjList.map(ele => { 
+				return { id: ele.id, stock:ele.stock}
+			})
+			let data = JSON.stringify(product)
+			saveAllNum({itemId:this.option.itemId,data:data}).then(res => {
+				that.$msg(res.msg)
+			})
+		},
 		clearXj(){
 			let that = this
 			that.$util.confirmModal({content:'确认清空全部?'},() => {
@@ -177,6 +212,7 @@ export default {
   }
 }
 .billing_box_bg {
+	margin-bottom:200upx;
 	height: 100%;
 	display: flex;
 	background: white;

+ 4 - 0
ghsApp/src/api/product/xj.js

@@ -1,5 +1,9 @@
 import https from "@/plugins/luch-request_0.0.7/request";
 
+export const saveAllNum = data => {
+	return https.post("/xj/save-all-num", data);
+};
+
 //获取商家小菊
 export const getSjXj = data => {
 	return https.get("/xj/get-sj-xj", data);

+ 34 - 2
hdApp/src/pagesPurchase/xj.vue

@@ -17,7 +17,10 @@
 									<view class="kc"></view>
 									<view class="num-open_bx" @click.stop>
 										<view class="open-bx warn">
-											数量:<input class="change-input" placeholder-style="color:#CCCCCC" v-model="numList[xjItem.id]" type="number" placeholder="请填写" />
+											库存
+											<text v-if="xjItem.stock == -1">充足</text>
+											<text v-else style="margin-left:5upx;">{{xjItem.stock}}</text>
+											<input class="change-input" placeholder-style="color:#CCCCCC" v-model="numList[xjItem.id]" type="number" placeholder="请填写数量" />
 										</view>
 									</view>
 								</view>
@@ -51,7 +54,8 @@ export default {
 			xjData:[],
 			numList:[],
 			xjStock:0,
-			xjPrice:0
+			xjPrice:0,
+			remainNum:[]
 		};
 	},
 	computed:{
@@ -105,11 +109,31 @@ export default {
 		confirmXj(){
 
 			let arr = []
+			let hasErrorItem = false
+			let hasErrorNum = 0
+			let hasErrorItemName = ''
+			let hasEmptyItem = false
 			this.numList.forEach((num,id)=>{
 				if(!this.$util.isEmpty(num) && Number(num)>0){
 					arr.push({id:id,num:num,ptItemId:this.option.ptItemId})
 				}
+				if(this.$util.isEmpty(this.remainNum[id])){
+					hasEmptyItem = true
+				}
+				if(this.remainNum[id].stock != -1 && this.remainNum[id].stock < num){
+					hasErrorItem = true
+					hasErrorItemName = this.remainNum[id].name
+					hasErrorNum = num
+				}
 			})
+			if(hasEmptyItem == true){
+				this.$msg("存在没库存的花材")
+				return false			
+			}
+			if(hasErrorItem == true){
+				this.$msg(hasErrorItemName+" 库存不足 "+hasErrorNum)
+				return false
+			}
 
 			if(this.$util.isMoney(this.option.price) == false){
 				this.$msg("请填写单价")
@@ -141,8 +165,16 @@ export default {
 
 		},
 		init(){
+			let that = this
 			getGhsXj({ghsId:this.option.ghsId,ptItemId:this.option.ptItemId}).then(res => {
 				this.xjList = res.data.list
+
+				if(!this.$util.isEmpty(this.xjList)){
+					this.xjList.forEach((item,idx,array) => {
+						this.remainNum[item.id] = {stock:item.stock,name:item.name}
+					})
+				}
+
 			});
 		}
 	}