shish 3 лет назад
Родитель
Сommit
d177369d5e

+ 286 - 0
hdApp/src/admin/goods/pdGoods.vue

@@ -0,0 +1,286 @@
+<template>
+  <view class="app-content">
+    <view class="input-wrap" >
+      <view class="search-bar">
+        <app-search-module v-model="searchText" placeholder="输入拼音首字母搜索" @input="searchFn()" />
+      </view>
+      <view style="padding:0 0upx 0 15upx;" >
+        <button class="admin-button-com middle blue" @click="clearSelect()">清除已选</button>
+      </view>
+    </view>
+
+    <view class="app-middle">
+      <scroll-view scroll-y scroll-with-animation class="tab-view" :scroll-top="scrollTop">
+        <view v-for="(item,index) in tabbar" :key="index" class="tab-bar-item" :class="[currentTab==index ? 'active' : '']" :data-current="index" @tap.stop="changeClass($event ,item)" >
+          <text>{{item.categoryName || ''}}</text>
+        </view>
+      </scroll-view>
+      <block v-for="(item,index) in tabbar" :key="index">
+        <scroll-view scroll-y class="right-box" v-if="currentTab==index" @scrolltolower="goBottom">
+          <block v-if="!$util.isEmpty(list.data)">
+            <view class="page-view">
+              <view class="goods-list" v-for="(goodsItem, idx) in list.data" :key="idx">
+
+				        <PlantItem :goodsInfo="goodsItem" @showAddModelFn="showAddModelFn" @replaceItemFn="replaceItemFn"></PlantItem>
+
+              </view>
+            </view>
+          </block>
+          <block v-else>
+            <app-wrapper-empty title="暂无数据" :is-empty="$util.isEmpty(list.data)" />
+          </block>
+        </scroll-view>
+      </block>
+    </view>
+
+    <modal-module :show="isAddModel" @cancel="addItemModelHidden" @click="confirmAddItemModel" :title="customData.name" color="#333" :size="32" padding="30rpx 30rpx" >
+      <template slot="customContent">
+        <view class="select-cmd_bx">
+          <view class="kc"><text class="unit_price">库存 {{ customData.stock }}</text></view>
+          <view class="num_bx"> 
+				<!-- #ifdef APP-PLUS -->
+				<input v-model="customData.bigCount" type="number" @focus="customData.bigCount = null" placeholder="数量" />
+				<!-- #endif -->
+				<!-- #ifdef MP-WEIXIN -->							
+				<input v-model="customData.bigCount" type="number" @focus="customData.bigCount = null" :focus="isAddInputFocus" placeholder="数量" />
+				<!-- #endif -->
+          </view>
+        </view>
+      </template>
+    </modal-module>
+
+	<FooterCart :price="allPrice" :count="allCount" @confirm="confirmToSave" ></FooterCart>
+
+  </view>
+</template>
+<script>
+import AppSearchModule from "@/components/module/app-search";
+import OperateModule from "@/admin/home/components/module/operate";
+import AppWrapperEmpty from "@/components/app-wrapper-empty";
+import ModalModule from "@/components/plugin/modal";
+import PlantItem from "./components/plant-item";
+import {categoryListInfo,getCategoryToGoods} from "@/api/goods";
+import FooterCart from "@/components/module/app-footer-cg-plant-cart";
+import { list } from "@/mixins";
+import productMins from "@/mixins/cgPlantProduct";
+export default {
+  name: "plant",
+  components: {
+    OperateModule,
+    AppWrapperEmpty,
+    ModalModule,
+    AppSearchModule,
+	PlantItem,
+	FooterCart
+  },
+  mixins: [list,productMins],
+  data() {
+    return {
+      selectJobType: "pd",
+      tabbar: [],
+      height: 0,
+      currentTab: 0,
+      scrollTop: 0,
+      form: {
+        catId: ""
+      },
+      delModal: false,
+      operateData: {},
+      operateShow: false,
+      operateIndex: null,
+      operateTop: 0,
+      checkStock:false,
+      searchText:''
+    };
+  },
+  methods: {
+    clearSelect(){
+        let that = this
+        that.$util.confirmModal({content:'确认清除?'},() => {
+              that.removeFromSaveDirect()
+        })      
+    },
+    confirmToSave(){
+      if (this.$util.isEmpty(this.selectList)){
+        this.$msg('请选择商品')
+        return false
+      }
+      this.$util.pageTo({url:"/admin/goods/pdGoodsConfirm",type:2})
+    },
+    searchFn(){
+      if (this.$util.isEmpty(this.searchText)){
+
+      }else{
+        this.form.catId = 0
+        getCategoryToGoods({status:'',page:this.list.page,...this.form,flower:0,searchText:this.searchText}).then(res => {
+          this.completes(res)
+        })
+      }
+    },
+    goBottom(){
+      if (!this.list.finished) {
+        this.getPlantList().then((res) => {
+          uni.stopPullDownRefresh();
+        });
+      } else {
+        uni.stopPullDownRefresh();
+      }
+    },
+    newCg(){
+      this.$util.pageTo({url:"/admin/goods/selectKind",type:2})
+    },
+    init() {
+      this.getPlantClass()
+    },
+    getPlantClass() {
+      categoryListInfo({flower:0}).then(res => {
+        this.tabbar = res.data;
+        if(this.tabbar && this.tabbar[0] && this.tabbar[0].id){
+          this.form.catId = this.tabbar[0].id
+          this.getPlantList()
+        }
+      })
+    },
+    getPlantList() {
+      return getCategoryToGoods({status:'',page:this.list.page,...this.form,flower:0,searchText:this.searchText}).then(res => {
+        this.completes(res)
+      })
+    },
+    changeClass(e, item) {
+      let cur = e.currentTarget.dataset.current;
+      if (this.currentTab != cur) {
+        this.currentTab = cur;
+        this.form.catId = item.id;
+        this.resetList();
+        this.getPlantList();
+      }
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.app-content {
+  min-height: calc(100vh - 80upx);
+  background-color: #fff;
+}
+page {
+  background: #fff;
+}
+::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+  color: transparent;
+}
+.tab-view {
+	height: 100vh;
+  width: 200upx;
+  position: fixed;
+  left: 0;
+  z-index: 10;
+  background-color: #f0f2f6;
+  .tab-bar-item {
+    width: 200upx;
+    height: 110upx;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-size: 26upx;
+    color: #444;
+    font-weight: 400;
+  }
+  .active {
+    position: relative;
+    color: $mainColor;
+    font-size: 26upx;
+    background: #fff;
+  }
+  .active::before {
+    content: "";
+    position: absolute;
+    border-left: 8upx solid $mainColor;
+    height: 100%;
+    left: 0;
+  }
+}
+.right-box {
+  width: 100%;
+  height:100vh;
+  position:fixed;
+  padding-left:220upx;
+  padding-bottom:200upx;
+  box-sizing: border-box;
+  left: 0;
+  .page-view {
+    width: 100%;
+    overflow: hidden;
+    box-sizing: border-box;
+    padding-bottom: env(safe-area-inset-bottom);
+    .goods-list {
+      margin: 40upx 0;
+    }
+  }
+}
+.app-footer {
+  justify-content: space-between;
+  .btn-list {
+    width: 100%;
+    &:first-child {
+      border-left: 0;
+    }
+    .admin-button-com {
+      width: 160upx;
+      padding-top: 16upx;
+      padding-bottom: 16upx;
+      float:right;
+      margin-right:30upx;
+    }
+  }
+  .other-btn {
+    color: $fontColor2;
+    .iconfont {
+      font-size: 24upx;
+      color: $fontColor3;
+      transform: scale(0.4);
+    }
+  }
+}
+.input-wrap {
+		display: flex;
+		padding: 22upx 20upx 10upx 13upx;
+		.search-bar {
+			flex: 1;
+		}
+}
+.select-cmd_bx {
+	& .kc {
+		color: #999999;
+		font-size: 28upx;
+		font-weight: 400;
+		margin-bottom: 40upx;
+		text-align: center;
+		margin-top: 30upx;
+		.unit_price{
+			padding-right:25upx;
+		}
+	}
+	& .num_bx {
+		display: flex;
+		align-items: center;
+		margin-bottom: 40upx;
+    & > text{
+      width:100upx;
+      font-size:30upx;
+    }
+		& > input {
+				flex: 1;
+				height: 80upx;
+				border: 1upx solid #dddddd;
+				border-radius: 4upx;
+				text-align: center;
+				margin-right: 24upx;
+				font-size: 32upx;
+		}
+	}
+}
+</style>

+ 302 - 0
hdApp/src/admin/goods/pdGoodsConfirm.vue

@@ -0,0 +1,302 @@
+<template>
+	<view class="ex-page">
+		<view class="main-view overscroll">
+			<view class="space-view ex-table">
+				<block v-if="!$util.isEmpty(selectList)">
+					<view class="table-view">
+						<view class="table-header" :style="{ backgroundColor: headerBackgroundColor }" >
+							<view class="table-th" v-for="(item, index) in columns" :key="index" :style="{ flex: item.width ? `0 0 ${item.width}rpx` : '1', textAlign: item.align || 'left', fontSzie: `${headerFontSize}rpx`, margin: `0 ${gutter}rpx` }" >
+								{{ item.name || "" }}
+							</view>
+						</view>
+						<view class="table-tr" v-for="(item, index) in selectList" :key="index">
+							<view class="table-td" v-for="(column, columnIndex) in columns" :key="columnIndex" :style="{ flex: column.width ? `0 0 ${column.width}rpx` : '1', textAlign: column.align || 'left', fontSzie: `${fontSize}rpx`, margin: `0 ${gutter}rpx` }" >
+								<view v-if="column.custom == 'icon'" class="list-icon">
+									<image class="icon-image" :src="item.cover" />
+									<view class="icon-info">
+										<view class="info-name"> {{ item.name }} </view>
+										<view class="info-type"></view>
+									</view>
+								</view>
+								<view v-else-if="column.custom == 'stock'">
+									<text v-if="Number(item.stock)>0">{{item.stock}}</text>
+								</view>
+								<view v-else-if="column.custom == 'inventory'">
+									<text v-if="Number(item.bigCount)>0">{{item.bigCount==99999?0:item.bigCount}}</text>
+								</view>
+								<view v-else-if="column.custom == 'profit'">
+									<text></text>
+								</view>
+								<text v-else :class="[column.color || '']">
+									{{ (column.dataIndex && item[column.dataIndex]) || "" }}
+								</text>
+							</view>
+						</view>
+					</view>
+				</block>
+			</view>
+			<view class="space-view ex-info">
+				<form>
+					<view class="module-com input-line-wrap">
+						<TuiListCell class="line-cell" :hover="false" :arrow="false">
+							<view class="tui-title ">备注</view>
+							<input v-model="remark" placeholder-class="phcolor" class="tui-input" placeholder="这里写备注" maxlength="50" type="text" />
+						</TuiListCell>
+					</view>
+				</form>
+			</view>
+		</view>
+		<view class="bar-view" v-if="selectList.length>0">
+			<view class="btn-view">
+				<button class="admin-button-com big defalut" style="margin-right:60upx;" @click="gotoSelectPage">返回修改</button>
+				<button class="admin-button-com big blue" @click="confirmPop()">确认盘点</button>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+import TuiListCell from "@/components/plugin/list-cell";
+import productMins from "@/mixins/product";
+import { mapActions, mapGetters } from "vuex";
+import { updateCheckOrderToDraftApi, savaCheckOrderDraftApi, getCheckOrderDetailApi, checkOrderApi } from "@/api/inventory";
+import {currentShop} from "@/api/shop";
+export default {
+	components: { TuiListCell },
+	mixins: [productMins],
+	data() {
+		return {
+			selectJobType: "pd",
+			orderSn: null,
+			infoData: null,
+			autoLoad: false,
+			shopInfo:null,
+			remark: "",
+			columns: [
+				{
+					name: "名称",
+					custom: "icon"
+				},
+				{
+					name: "盘点前",
+					custom: "stock",
+					width: 120,
+					align: "center"
+				},
+				{
+					name: "盘点后",
+					custom: "inventory",
+					color: "warn",
+					width: 120,
+					align: "center"
+				},
+				{
+					name: "盈亏数",
+					color: "success",
+					custom: "profit",
+					width: 120,
+					align: "center"
+				}
+			]
+		};
+	},
+	onLoad(option) {
+		const { orderSn } = option;
+		if (orderSn) {
+			this.orderSn = orderSn;
+			this.initInfo();
+		}
+	this.getInfo();
+		if (!this.getMerchantInfo) {
+			this.initMerchantInfo();
+		}
+	},
+	computed: {
+		...mapGetters(["getMerchantInfo"])
+	},
+	methods: {
+		...mapActions(["initMerchantInfo"]),
+		async initInfo() {
+			const { data } = await getCheckOrderDetailApi(this.orderSn);
+			this.infoData = data;
+			const { remark, itemInfo } = data;
+			this.remark = remark;
+			this.setSelectInfoByType({
+				type: this.pageType,
+				info: itemInfo.map(ele => {
+					return {
+						...ele,
+						bigNum: Number(ele.bigNumStock),
+						smallNum: Number(ele.smallNumStock),
+						bigCount: Number(ele.bigNum),
+						smallCount: Number(ele.smallNum)
+					};
+				})
+			})
+		},
+		gotoSelectPage() {
+			uni.navigateTo({url: "/pagesStorehouse/inventory/select"})
+		},
+		getInfo(){
+			return currentShop().then(res => {
+				this.shopInfo = res.data
+			})	
+		},
+		async saveToDraft() {
+			let api = savaCheckOrderDraftApi;
+			if (this.orderSn) {
+				api = updateCheckOrderToDraftApi;
+			}
+			let params = {
+				remark: this.remark
+			};
+			if (this.orderSn) {
+				params.orderSn = this.orderSn;
+			}
+			let formatList = this.selectList.map(ele => {
+				return {
+					bigNum: ele.bigCount,
+					smallNum: ele.smallCount,
+					productId: ele.id,
+					classId:ele.classId,itemId:ele.itemId
+				};
+			});
+			params.itemInfo = JSON.stringify(formatList);
+			const { data: { orderSn } } = await api(params);
+			this.orderSn = orderSn;
+			this.$msg("保存成功");
+		},
+		confirmPop() {
+			let that = this;
+			that.$util.confirmModal({content:'确认盘点?'},() => {
+				that.saveCheckOrder()
+			})
+		},
+		saveCheckOrder() {
+			let params = {remark: this.remark}
+			let formatList = this.selectList.map(ele => {
+				return { bigNum: ele.bigCount, smallNum: ele.smallCount, productId: ele.id }
+			});
+			let that = this
+			params.itemInfo = JSON.stringify(formatList);
+			checkOrderApi(params).then(res=>{
+				if(res.code == 1){
+					that.$msg("盘点成功");
+					that.removeFromSaveDirect()
+					uni.navigateBack()
+				}
+			})
+		}
+	}
+};
+</script>
+<style lang="scss" scoped>
+.ex-page {
+	height: 100%;
+	display: flex;
+	flex-direction: column;
+	.main-view {
+		flex: 1;
+		background-color: #f9fbfc;
+		.space-view {
+			margin-top: 15upx;
+			background-color: #fff;
+		}
+		.ex-info {
+			.module-com {
+				background-color: #fff;
+				margin-bottom: 20upx;
+				border-radius: 10upx;
+				overflow: hidden;
+				.member-wrap {
+					.member-det {
+						font-size: 24upx;
+						margin-left: 20upx;
+					}
+				}
+				.remark-wrap {
+					align-items: flex-start;
+					.remark {
+						height: 240upx;
+					}
+				}
+			}
+		}
+		.ex-table {
+			/deep/.list-icon {
+				display: flex;
+				.icon-image {
+					width: 60upx;
+					height: 60upx;
+					margin-right: 20upx;
+				}
+				.icon-info {
+					display: flex;
+					flex-direction: column;
+					justify-content: space-around;
+					.info-name {
+						font-size: 28upx;
+						font-weight: bold;
+						color: #333333;
+					}
+					.info-type {
+						font-size: 24upx;
+						color: #666666;
+					}
+				}
+			}
+		}
+		.empty-view {
+			display: flex;
+			justify-content: center;
+			margin: 120upx auto;
+		}
+	}
+	.bar-view {
+		display: flex;
+		justify-content: flex-end;
+		align-items: center;
+		padding: 0 30upx;
+		width: 100%;
+		height: 100upx;
+		box-shadow: 0upx -1px 6upx 0upx rgba(4, 0, 0, 0.06);
+		.btn-view {
+			display: flex;
+			.admin-button-com {
+				margin: 0 10upx;
+			}
+		}
+	}
+}
+.table-view {
+	.table-header {
+		display: flex;
+		padding: 20upx 30upx;
+		box-shadow: 0upx 1px 0upx 0upx #eeeeee;
+		color: #999999;
+		.table-th {
+			white-space: nowrap;
+		}
+	}
+	.table-tr {
+		display: flex;
+		align-items: center;
+		padding: 20upx 30upx;
+		border-bottom: 1px solid #eeeeee;
+		color: #999999;
+		.table-td {
+			.warn {
+				color: #ffaf1d;
+			}
+			.fail {
+				color: #f51608;
+			}
+			.success {
+				color: #09bb07;
+			}
+			.info {
+				color: #333;
+			}
+		}
+	}
+}
+</style>

+ 181 - 0
hdApp/src/admin/goods/pdList.vue

@@ -0,0 +1,181 @@
+<template>
+	<view class="allot-ex-page">
+		<view class="tabs">
+			<Tabs :tabs="tabs" :currentTab="tabIndex" @change="changeTabEvent" @add="addEvent" :itemWidth="'33.33%'" ></Tabs>
+		</view>
+		<scroll-view scroll-y class="allot-list">
+			<block v-if="!$util.isEmpty(list.data)">
+				<view class="allot-item" v-for="(item, index) in list.data" :key="index" @click="gotoDetailsEvent(item)" >
+					<view class="info">
+						<view class="info-order">{{ item.orderSn }}</view>
+						<view class="info-name">{{ item.remark }}</view>
+						<view class="info-name">{{ item.remark }}</view>
+						<view>
+							<text class="info-time">{{ item.updateTime ? item.updateTime.substr(5,11) : '' }}</text>
+							<text class="info-num" v-if="Number(item.bigNum) > 0">{{ `${item.bigNum}` }}扎</text>
+							<text class="info-num" v-if="Number(item.smallNum) > 0">{{ item.smallNum }}支</text>
+						</view>
+					</view>
+				</view>
+			</block>
+			<block v-else>
+				<AppWrapperEmpty title="暂无数据" :is-empty="$util.isEmpty(list.data)" />
+			</block>
+		</scroll-view>
+		<div class="app-footer open_btn">
+			<div @click="addEvent" class="admin-button-com big blue">新增盘点</div>
+		</div>
+	</view>
+</template>
+<script>
+import Tabs from "@/components/plugin/tabs";
+import AppWrapperEmpty from "@/components/app-wrapper-empty";
+import { INVENTORY_STATUS } from "@/utils/declare";
+import { getPdGoodsList } from "@/api/pd";
+import { list } from "@/mixins";
+export default {
+	name: "list",
+	components: { Tabs, AppWrapperEmpty },
+	mixins: [list],
+	data() {
+		return {
+			listenLoading: false,
+			INVENTORY_STATUS,
+			tabIndex: 0,
+			tabs: [
+				{
+					name: "全部",
+					key: ""
+				},
+				{
+					name: "草稿",
+					key: INVENTORY_STATUS.DRAFT
+				},
+				{
+					name: "已盘点",
+					key: INVENTORY_STATUS.DONE
+				}
+			]
+		};
+	},
+	onShow() {
+		if (!this.listenLoading) {
+			this.resetList();
+			this.init();
+		}
+	},
+	onPullDownRefresh() {
+		this.resetList();
+		this.getPdList().then(res => {
+			uni.stopPullDownRefresh();
+		});
+	},
+	methods: {
+		async init() {
+			this.getPdList();
+		},
+		getPdList() {
+			this.listenLoading = true;
+			return getPdGoodsList(this.tabs[this.tabIndex].key).then(res => {
+				this.completes(res);
+				this.listenLoading = false;
+			})
+		},
+		changeTabEvent(info) {
+			const { index } = info;
+			if (this.tabIndex == index) {
+				return false;
+			} else {
+				this.tabIndex = index;
+				this.resetList();
+				this.getPdList();
+			}
+		},
+		addEvent() {
+			uni.navigateTo({url:'/admin/goods/pdGoods'})
+		},
+		gotoDetailsEvent(item) {
+			if (item.status == INVENTORY_STATUS.DONE) {
+				uni.navigateTo({url: `/pagesStorehouse/inventory/details?orderSn=${item.orderSn}`})
+			} else {
+				uni.navigateTo({url: `/pagesStorehouse/inventory/update?orderSn=${item.orderSn}`})
+			}
+		}
+	}
+};
+</script>
+<style lang="scss" scoped>
+.allot-ex-page {
+	height: 100%;
+	display: flex;
+	flex-direction: column;
+	background-color: #f9fbfc;
+	.allot-list {
+		margin-top: 20upx;
+		flex: 1;
+		padding-bottom: 150upx;
+		.allot-item {
+			margin-bottom: 1px;
+			padding: 30upx;
+			display: flex;
+			align-items: center;
+			box-shadow: 0upx 1px 0upx 0upx #eeeeee;
+			background-color: #fff;
+			.info {
+				flex: 1;
+				margin-right: 20upx;
+				.info-order {
+					font-size: 32upx;
+					font-weight: 600;
+					color: #333333;
+				}
+				.info-name {
+					margin: 40upx 0 20upx;
+					font-size: 28upx;
+					font-weight: 400;
+					color: #666666;
+				}
+				.info-time {
+					margin-right: 30upx;
+					font-size: 28upx;
+					font-weight: 400;
+					color: #666666;
+				}
+				.info-num {
+					margin-right: 30upx;
+					font-size:30upx;
+					font-weight:bold;
+					color: #131212;
+				}
+			}
+			.status {
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				flex-shrink: 0;
+				width: 100upx;
+				color: #cccccc;
+				.status-name {
+					margin-top: 10upx;
+					font-size: 24upx;
+				}
+				.iconxuanzhong {
+					font-size: 46upx;
+				}
+				.iconbianji {
+					font-size: 36upx;
+				}
+				&.primary {
+					color: #3385ff;
+				}
+				&.gray {
+					color: #cccccc;
+				}
+				&.warn {
+					color: #ffaf1d;
+				}
+			}
+		}
+	}
+}
+</style>

+ 2 - 2
hdApp/src/admin/goods/plantCg.vue

@@ -10,8 +10,8 @@
         <AppWrapperEmpty title="暂无数据" :is-empty="$util.isEmpty(list.data)"/>
       </block>
     <view class="app-footer open_btn">
-      <view @click="addNewEvent" class="admin-button-com big blue">新商品采购</view>
-      <view @click="addOldEvent" class="admin-button-com big blue">已有商品采购</view>
+      <view @click="addNewEvent" class="admin-button-com big blue" style="margin-right:60upx;">新商品采购</view>
+      <view @click="addOldEvent" class="admin-button-com big blue">新增采购</view>
 		</view>
   </view>
 </template>

+ 5 - 4
hdApp/src/admin/home/apply.vue

@@ -32,9 +32,9 @@ export default {
             title:'花材',
             list:[
                 {name: "花材",img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/item/list",pf:1},
-                {name: "花材分类",img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/itemClass/list",pf:1},
-                {name: "停用花材",img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/item/list?delStatus=1",pf:1},
-                { name: "盘点", img: `${this.$constant.imgUrl}/ghs/home/pandian.png`, url: "/pagesStorehouse/inventory/list",pf:1}
+                {name: "分类",img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/itemClass/list",pf:1},
+                {name: "停用",img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/item/list?delStatus=1",pf:1},
+                { name: "花材盘点", img: `${this.$constant.imgUrl}/ghs/home/pandian.png`, url: "/pagesStorehouse/inventory/list",pf:1}
             ]
         },
         {
@@ -44,7 +44,8 @@ export default {
                 { name: "分类", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`, url: "/admin/goods/category",pf:1},
                 { name: "种类", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`, url: "/admin/goods/kind",pf:1},
                 { name: "涨价设置", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`, url: "/admin/goods/price-increase",pf:1},
-                { name: "运费规则", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`, url: "/admin/goods/freight",pf:1}
+                { name: "运费规则", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`, url: "/admin/goods/freight",pf:1},
+                { name: "商品盘点", img: `${this.$constant.imgUrl}/ghs/home/pandian.png`, url: "/admin/goods/pdList",pf:1}
             ]
         },
         {

+ 5 - 0
hdApp/src/api/pd/index.js

@@ -0,0 +1,5 @@
+import https from "@/plugins/luch-request_0.0.7/request";
+
+export const getPdGoodsList = data => {
+	return https.get("/pd-goods/list", data);
+};

+ 4 - 1
hdApp/src/pages.json

@@ -247,7 +247,10 @@
 				{ "path": "cgNewPlantResult", "style": { "navigationBarTitleText": "采购成功" } },
 				{ "path": "stockChange", "style": { "navigationBarTitleText": "库存变动记录" } },
 				{ "path": "plantCg", "style": { "navigationBarTitleText": "商品采购记录" } },
-				{ "path": "plantCgDetail", "style": { "navigationBarTitleText": "明细" } }
+				{ "path": "plantCgDetail", "style": { "navigationBarTitleText": "明细" } },
+				{ "path": "pdList", "style": { "navigationBarTitleText": "商品盘点列表" } },
+				{ "path": "pdGoods", "style": { "navigationBarTitleText": "选择商品" } },
+				{ "path": "pdGoodsConfirm", "style": { "navigationBarTitleText": "确认盘点" } }
 			]
 		},
 		{

+ 9 - 2
hdApp/src/pagesStorehouse/inventory/list.vue

@@ -9,10 +9,11 @@
 					<view class="info">
 						<view class="info-order">{{ item.orderSn }}</view>
 						<view class="info-name">{{ item.remark }}</view>
+						<view class="info-name">{{ item.remark }}</view>
 						<view>
 							<text class="info-time">{{ item.updateTime ? item.updateTime.substr(5,11) : '' }}</text>
-							<text v-if="Number(item.bigNum) > 0">{{ `${item.bigNum}` }}扎</text>
-							<text v-if="Number(item.smallNum) > 0">{{ item.smallNum }}支</text>
+							<text class="info-num" v-if="Number(item.bigNum) > 0">{{ `${item.bigNum}` }}扎</text>
+							<text class="info-num" v-if="Number(item.smallNum) > 0">{{ item.smallNum }}支</text>
 						</view>
 					</view>
 				</view>
@@ -144,6 +145,12 @@ export default {
 					font-weight: 400;
 					color: #666666;
 				}
+				.info-num {
+					margin-right: 30upx;
+					font-size:30upx;
+					font-weight:bold;
+					color: #131212;
+				}
 			}
 			.status {
 				display: flex;

+ 12 - 12
hdApp/src/pagesStorehouse/inventory/update.vue

@@ -1,16 +1,6 @@
 <template>
 	<view class="ex-page">
 		<view class="main-view overscroll">
-			<view class="space-view ex-info">
-				<form>
-					<view class="module-com input-line-wrap">
-						<TuiListCell class="line-cell" :hover="false" :arrow="false">
-							<view class="tui-title ">备注</view>
-							<input v-model="remark" placeholder-class="phcolor" class="tui-input" placeholder="这里写备注" maxlength="50" type="text" />
-						</TuiListCell>
-					</view>
-				</form>
-			</view>
 			<view class="space-view ex-table">
 				<block v-if="!$util.isEmpty(selectList)">
 					<view class="table-view">
@@ -49,6 +39,16 @@
 					</view>
 				</block>
 			</view>
+			<view class="space-view ex-info">
+				<form>
+					<view class="module-com input-line-wrap">
+						<TuiListCell class="line-cell" :hover="false" :arrow="false">
+							<view class="tui-title ">备注</view>
+							<input v-model="remark" placeholder-class="phcolor" class="tui-input" placeholder="这里写备注" maxlength="50" type="text" />
+						</TuiListCell>
+					</view>
+				</form>
+			</view>
 		</view>
 		<view class="bar-view" v-if="selectList.length>0">
 			<view class="btn-view">
@@ -82,13 +82,13 @@ export default {
 					custom: "icon"
 				},
 				{
-					name: "盘前库存",
+					name: "盘前",
 					custom: "stock",
 					width: 120,
 					align: "center"
 				},
 				{
-					name: "盘点",
+					name: "盘点",
 					custom: "inventory",
 					color: "warn",
 					width: 120,