Pārlūkot izejas kodu

Merge branch 'tree' into zhongqi-itemUpdate

shish 2 mēneši atpakaļ
vecāks
revīzija
6c32519bbc

+ 17 - 0
ghsApp/src/admin/billing/affirm.vue

@@ -1087,6 +1087,23 @@ export default {
       }
       params = { ...params, xj: JSON.stringify(xj) };
 
+      //株数
+      let treeData = null;
+      if (this.option && this.option.customId) {
+        treeData = uni.getStorageSync('tree' + this.option.customId);
+        if (!this.$util.isEmpty(treeData)) {
+          treeData = treeData.map((treeItem) => {
+            let list = treeItem.list ? treeItem.list.filter((item) => {
+              return !this.$util.isEmpty(item.num) && Number(item.num) > 0;
+            }) : [];
+            return { ...treeItem, list: list };
+          }).filter((treeItem) => {
+            return !this.$util.isEmpty(treeItem.list);
+          });
+        }
+      }
+      params = { ...params, treeData: JSON.stringify(treeData) };
+
       uni.showLoading({ mask: true });
       Fn(params).then((res) => {
         uni.hideLoading();

+ 36 - 0
ghsApp/src/admin/billing/index2.vue

@@ -39,6 +39,7 @@
 										@showAddModelFn="showAddModelFn"
 										@replaceItemFn="replaceItemFn"
 										@goToSpecialVariety="goToSpecialVariety"
+										@goTree="goTree"
 										@delProduct="delProduct"
 									></Commondity>
 								</view>
@@ -146,6 +147,8 @@ export default {
 			autoLoad: false,
 			xjData:{},
 			xjDataInfo:{},
+			treeData:{},
+			treeDataInfo:{},
 		};
 	},
 	computed: {
@@ -170,6 +173,28 @@ export default {
 			}
 		}
 		this.xjData = {}
+		//株数选择页
+		if(this.treeData.hasUpdate == 1){
+			this.customData = this.treeDataInfo
+			if(this.treeData.cancel == 1){
+				this.customData.bigCount = 0
+				this.customData.smallCount = 0
+				this.replaceItemFn(this.customData,1)
+			}else{
+				this.treeDataInfo.bigPrice = this.treeData.price
+				this.treeDataInfo.price = this.treeData.price
+				this.treeDataInfo.itemPrice = this.treeData.price
+				this.treeDataInfo.userPrice = this.treeData.price
+				this.customData.bigCount = this.treeData.stock
+				this.customData.smallCount = 0
+				this.customData.bigPrice = this.treeData.price
+				this.customData.price = this.treeData.price
+				this.customData.itemPrice = this.treeData.price
+				this.customData.userPrice = this.treeData.price
+				this.confirmAddItemModel(this.customData)
+			}
+		}
+		this.treeData = {}
 	},
 	onLoad () {
 		let that = this
@@ -218,6 +243,17 @@ export default {
 				this.$util.pageTo({url: "/admin/item/xj?stock="+info.stock+"&price="+price+"&customId="+this.option.customId+"&userPrice="+userPrice+"&productId="+info.id+"&ptItemId="+info.itemId})
 			}
 		},
+		goTree(info){
+			this.treeDataInfo = info
+			if(info.stock <= 0){
+				uni.showToast({title:"没有库存",icon:"none"})
+			}else{
+				let userPrice = info.userPrice ? parseFloat(info.userPrice) : 0
+				let price = userPrice > 0 ? userPrice : (info.price ? parseFloat(info.price) : 0)
+				let smallUnit = info.smallUnit ? info.smallUnit : '个'
+				this.$util.pageTo({url: "/admin/item/tree?stock="+info.stock+"&price="+price+"&customId="+this.option.customId+"&userPrice="+userPrice+"&productId="+info.id+"&ptItemId="+info.itemId+"&smallUnit="+smallUnit})
+			}
+		},
 		selectFlowerNumFn(){
 			this.$refs.globalClassImgRef.open('top')
 		},

+ 18 - 4
ghsApp/src/admin/item/add.vue

@@ -164,6 +164,16 @@
           <input v-model="form.inTurn" placeholder-class="phcolor" class="tui-input" name="inTurn" @focus="form.inTurn=''" placeholder="请填写数字" type="number" />
         </tui-list-cell>
 
+          <tui-list-cell class="line-cell" :hover="false">
+            <view class="tui-title">类型</view>
+            <view>
+              <button class="admin-button-com mini-btn" :class="form.kind == 0 ? 'blue' : 'default'" @click="kindChange(0)">鲜花</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 1 ? 'blue' : 'default'" @click="kindChange(1)">绿植</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 2 ? 'blue' : 'default'" @click="kindChange(2)">苗木(筛)</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 3 ? 'blue' : 'default'" @click="kindChange(3)">苗木(穴)</button>
+            </view>
+          </tui-list-cell>
+
       </view>
 
       <view class="app-footer">
@@ -236,9 +246,9 @@ export default {
         price:'',
         skPrice:'',
         hjPrice:'',
-        skMore:6,
-        addPrice:3,
-        hjAddPrice:2,
+        skMore:0,
+        addPrice:0,
+        hjAddPrice:0,
         hjDiscountPrice:0,
         discountPrice:0,
         skDiscountPrice:0,
@@ -253,7 +263,8 @@ export default {
         virtualStock:0,
         ratioType:0,
         inTurn:100,
-        cpInfo:[]
+        cpInfo:[],
+        kind:0
       },
       itemClassSelectedData:{},
       itemClassData:[],
@@ -326,6 +337,9 @@ export default {
         that.$forceUpdate()
       })
     },
+    kindChange(kind){
+      this.form.kind = kind
+    },
     changeClass(){
       this.$refs.classRef.open('center')
     },

+ 18 - 4
ghsApp/src/admin/item/copy.vue

@@ -168,6 +168,16 @@
             <input v-model="form.inTurn" placeholder-class="phcolor" class="tui-input" name="inTurn" @focus="form.inTurn=''" placeholder="请填写数字" type="number" />
           </tui-list-cell>
 
+          <tui-list-cell class="line-cell" :hover="false">
+            <view class="tui-title">类型</view>
+            <view>
+              <button class="admin-button-com mini-btn" :class="form.kind == 0 ? 'blue' : 'default'" @click="kindChange(0)">鲜花</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 1 ? 'blue' : 'default'" @click="kindChange(1)">绿植</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 2 ? 'blue' : 'default'" @click="kindChange(2)">苗木(筛)</button>
+              <button class="admin-button-com mini-btn" :class="form.kind == 3 ? 'blue' : 'default'" @click="kindChange(3)">苗木(穴)</button>
+            </view>
+          </tui-list-cell>
+
       </view>
 
       <view class="app-footer">
@@ -240,10 +250,10 @@ export default {
         price:'',
         skPrice:'',
         hjPrice:'',
-        skMore:6,
+        skMore:0,
         inTurn:100,
-        addPrice:3,
-        hjAddPrice:2,
+        addPrice:0,
+        hjAddPrice:0,
         discountPrice:0,
         skDiscountPrice:0,
         hjDiscountPrice:0,
@@ -256,7 +266,8 @@ export default {
         itemId:0,
         smallRatio:1,
         ratioType:0,
-        cpInfo:[]
+        cpInfo:[],
+        kind:0
       },
       itemClassData:[],
       unitData:[],
@@ -412,6 +423,9 @@ export default {
     statusChange(e){
       this.form.status = e.detail.value ? 1 : 2;
     },
+    kindChange(kind){
+      this.form.kind = kind
+    },
     ratioTypeChange(e){
       this.form.ratioType = e.detail.value
     },

+ 7 - 1
ghsApp/src/admin/item/detail.vue

@@ -330,6 +330,11 @@
             </view>
           </tui-list-cell>
 
+          <tui-list-cell class="line-cell" :hover="false" v-if="productData.id && productData.id>0">
+            <view class="tui-title">类型</view>
+            <view>{{form.kind == 0 ?'鲜切花':form.kind==1?'绿植':form.kind==2?'苗木(筛)':'苗木(穴)'}}</view>
+          </tui-list-cell>
+
       </view>
 
       <view class="app-footer">
@@ -571,7 +576,8 @@ export default {
         virtualStock:0,
         ratioType:0,
         inTurn:100,
-        cpInfo:[]
+        cpInfo:[],
+        kind:0
       },
       itemClassData:[],
       unitData:[],

+ 407 - 0
ghsApp/src/admin/item/tree.vue

@@ -0,0 +1,407 @@
+<template>
+	<view class="app-content">
+		<view class="tree-page">
+			<view class="top-wrap">
+				<view class="formula-row">
+					<view class="count-box">{{ totalNum }}</view>
+					<text class="symbol">x</text>
+					<input
+						class="price-input"
+						v-model="price"
+						type="digit"
+						placeholder="单价"
+						placeholder-style="color:#000000"
+						@focus="price = ''"
+					/>
+					<text class="amount">{{ totalAmount }}</text>
+				</view>
+				<view class="stock-row">
+					<text>{{ filledNum }}筛</text>
+					<button class="admin-button-com middle blue add-row-btn" @click="addRow">新增一行</button>
+				</view>
+			</view>
+
+			<scroll-view scroll-y class="content-scroll">
+				<view class="tree-grid">
+					<view v-for="(row, rowIndex) in rowList" :key="rowIndex" class="grid-row">
+						<text class="row-index">{{ rowIndex + 1 }}</text>
+						<view v-for="cell in row" :key="cell.index" class="grid-cell">
+							<text class="cell-index">{{ cell.index }}</text>
+							<input
+								class="num-input"
+								:value="numList[cell.index]"
+								type="number"
+								@input="handleNumInput(cell.index, $event)"
+								@focus="handleInputFocus(cell.index)"
+							/>
+						</view>
+						<view class="delete-row-btn" @click="deleteRow(rowIndex)">删除</view>
+					</view>
+				</view>
+			</scroll-view>
+
+			<view class="app-footer footer-button">
+				<button class="admin-button-com big blue" @click="clearTree">清除全部</button>
+				<button class="admin-button-com big blue footer-btn" @click="goBack">返回</button>
+				<button class="admin-button-com big blue footer-btn" @click="confirmTree">保存</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: "tree",
+	data() {
+		return {
+			price: "",
+			numList: {},
+			cellCount: 15,
+			stock: 0,
+			unitName: "个"
+		};
+	},
+	computed: {
+		totalNum() {
+			let total = 0;
+			Object.keys(this.numList).forEach((key) => {
+				let num = Number(this.numList[key]);
+				if (!isNaN(num) && num > 0) {
+					total += num;
+				}
+			});
+			return parseFloat(total.toFixed(0));
+		},
+		filledNum() {
+			let total = 0;
+			Object.keys(this.numList).forEach((key) => {
+				let num = Number(this.numList[key]);
+				if (!isNaN(num) && num > 0) {
+					total += 1;
+				}
+			});
+			return total;
+		},
+		totalAmount() {
+			let price = Number(this.price);
+			if (isNaN(price) || price <= 0 || this.totalNum <= 0) {
+				return "0";
+			}
+			return parseFloat((this.totalNum * price).toFixed(2));
+		},
+		rowList() {
+			let rows = [];
+			for (let i = 1; i <= this.cellCount; i += 5) {
+				let row = [];
+				for (let j = i; j < i + 5 && j <= this.cellCount; j++) {
+					row.push({ index: j });
+				}
+				rows.push(row);
+			}
+			return rows;
+		}
+	},
+	onLoad() {
+		this.price = this.option.price ? this.option.price : "";
+		this.stock = this.option.stock ? Number(this.option.stock) : 0;
+		this.unitName = this.option.smallUnit ? this.option.smallUnit : "个";
+		this.initSaveInfo();
+	},
+	methods: {
+		init() {
+		},
+		getStorageKey() {
+			return "tree" + this.option.customId;
+		},
+		getPtItemId() {
+			return this.option.ptItemId ? this.option.ptItemId : 0;
+		},
+		initSaveInfo() {
+			let saveInfo = uni.getStorageSync(this.getStorageKey());
+			let ptItemId = this.getPtItemId();
+			if (this.$util.isEmpty(saveInfo)) {
+				return;
+			}
+			saveInfo.forEach((item) => {
+				if (item.ptItemId == ptItemId) {
+					if (!this.$util.isEmpty(item.price)) {
+						this.price = item.price;
+					}
+					let list = item.list ? item.list : [];
+					list.forEach((hasItem) => {
+						this.$set(this.numList, hasItem.index, hasItem.num);
+						if (Number(hasItem.index) > this.cellCount) {
+							this.cellCount = Math.ceil(Number(hasItem.index) / 5) * 5;
+						}
+					});
+				}
+			});
+		},
+		handleInputFocus(index) {
+			this.$set(this.numList, index, "");
+		},
+		handleNumInput(index, event) {
+			this.$set(this.numList, index, event.detail.value);
+		},
+		addRow() {
+			this.cellCount += 5;
+		},
+		deleteRow(rowIndex) {
+			let startIndex = rowIndex * 5 + 1;
+			let endIndex = startIndex + 4;
+			if (this.cellCount <= 5) {
+				for (let i = startIndex; i <= endIndex; i++) {
+					this.$delete(this.numList, i);
+				}
+				return;
+			}
+
+			let newNumList = {};
+			Object.keys(this.numList).forEach((key) => {
+				let index = Number(key);
+				if (index < startIndex) {
+					newNumList[index] = this.numList[key];
+				}
+				if (index > endIndex) {
+					newNumList[index - 5] = this.numList[key];
+				}
+			});
+			this.numList = newNumList;
+			this.cellCount -= 5;
+		},
+		clearTree() {
+			this.$util.confirmModal({ content: "确认全部清除?" }, () => {
+				this.confirmClearTree();
+			});
+		},
+		confirmClearTree() {
+			let saveInfo = uni.getStorageSync(this.getStorageKey());
+			let ptItemId = this.getPtItemId();
+			if (!this.$util.isEmpty(saveInfo)) {
+				for (let i = saveInfo.length - 1; i >= 0; i--) {
+					if (saveInfo[i].ptItemId == ptItemId) {
+						saveInfo.splice(i, 1);
+					}
+				}
+				uni.setStorageSync(this.getStorageKey(), saveInfo);
+			}
+			this.numList = {};
+			//返回上一页带参数
+			let pages = getCurrentPages();
+			let prevPage = pages[pages.length - 2];
+			//修改上一页data里面的treeData
+			prevPage.$vm.treeData = { price: null, stock: 0, hasUpdate: 1, cancel: 1 };
+			uni.navigateBack({});
+		},
+		goBack() {
+			//返回上一页带参数
+			let pages = getCurrentPages();
+			let prevPage = pages[pages.length - 2];
+			//修改上一页data里面的treeData
+			prevPage.$vm.treeData = { price: this.price, stock: 0, hasUpdate: 0, cancel: 0 };
+			uni.navigateBack({});
+		},
+		confirmTree() {
+			if (this.$util.isMoney(this.price) == false) {
+				this.$msg("请填写单价");
+				return false;
+			}
+			if (this.totalNum <= 0) {
+				this.$msg("请填写数量");
+				return false;
+			}
+			if (this.totalNum > this.stock) {
+				this.$msg("数量超过总库存");
+				return false;
+			}
+
+			let arr = [];
+			Object.keys(this.numList).forEach((index) => {
+				let num = this.numList[index];
+				if (!this.$util.isEmpty(num) && Number(num) > 0) {
+					arr.push({ index: Number(index), num: num });
+				}
+			});
+			this.saveTreeInfo(arr);
+			//返回上一页带参数
+			let pages = getCurrentPages();
+			let prevPage = pages[pages.length - 2];
+			//修改上一页data里面的treeData
+			prevPage.$vm.treeData = { price: this.price, stock: this.totalNum, hasUpdate: 1, cancel: 0 };
+			uni.navigateBack({});
+		},
+		saveTreeInfo(list) {
+			let saveInfo = uni.getStorageSync(this.getStorageKey());
+			let ptItemId = this.getPtItemId();
+			if (!this.$util.isEmpty(saveInfo)) {
+				let getIndex = -1;
+				saveInfo.forEach((treeItem, treeIndex) => {
+					if (treeItem.ptItemId == ptItemId) {
+						getIndex = treeIndex;
+					}
+				});
+				if (getIndex > -1) {
+					saveInfo[getIndex].list = list;
+					saveInfo[getIndex].price = this.price;
+				} else {
+					saveInfo.push({ ptItemId: ptItemId, price: this.price, list: list });
+				}
+			} else {
+				saveInfo = [{ ptItemId: ptItemId, price: this.price, list: list }];
+			}
+			uni.setStorageSync(this.getStorageKey(), saveInfo);
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.tree-page {
+	height: 100%;
+	background: #ffffff;
+	display: flex;
+	flex-direction: column;
+	overflow: hidden;
+}
+.top-wrap {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	width: 100%;
+	max-width: 750upx; /*no*/
+	min-width: 320upx; /*no*/
+	margin: 0 auto;
+	box-sizing: border-box;
+	padding: 24upx 28upx 0;
+	border-bottom: 1upx solid #d8d8d8;
+	background: #ffffff;
+	z-index: 100;
+}
+.formula-row {
+	display: flex;
+	align-items: center;
+	height: 76upx;
+}
+.count-box,
+.price-input {
+	width: 220upx;
+	height: 64upx;
+	line-height: 64upx;
+	border: 1upx solid #b5b5b5;
+	border-radius: 4upx;
+	text-align: center;
+	font-size: 28upx;
+	box-sizing: border-box;
+}
+.count-box {
+	color: #666666;
+	font-weight: 700;
+}
+.symbol {
+	margin: 0 34upx;
+	font-size: 30upx;
+	color: #000000;
+}
+.amount {
+	flex: 1;
+	text-align: center;
+	font-size: 32upx;
+	color: #000000;
+}
+.stock-row {
+	height: 84upx;
+	display: flex;
+	align-items: center;
+	justify-content: space-between;
+	font-size: 32upx;
+	color: #000000;
+}
+.add-row-btn {
+	min-width: 145upx;
+	height: 66upx;
+	line-height: 66upx;
+	padding: 0 18upx;
+}
+.content-scroll {
+	flex: 1;
+	height: 0;
+	min-height: 0;
+	margin-top: 184upx;
+	background: #ffffff;
+}
+.tree-grid {
+	padding: 18upx 14upx 150upx;
+}
+.grid-row {
+	position: relative;
+	display: flex;
+	padding-left: 36upx;
+	margin-top: 22upx;
+	align-items: flex-start;
+}
+.grid-row:first-child {
+	margin-top: 0;
+}
+.row-index {
+	position: absolute;
+	left: 0;
+	top: 48upx;
+	width: 28upx;
+	text-align: center;
+	font-size: 28upx;
+	color: #006dff;
+}
+.grid-cell {
+	width: 104upx;
+	margin-left: 16upx;
+}
+.grid-cell:first-of-type {
+	margin-left: 0;
+}
+.cell-index {
+	display: block;
+	height: 30upx;
+	line-height: 30upx;
+	text-align: center;
+	font-size: 26upx;
+	color: #b6b6b6;
+}
+.num-input {
+	width: 104upx;
+	height: 70upx;
+	line-height: 70upx;
+	margin-top: 8upx;
+	border: 1upx solid #b7b7b7;
+	background: #ffffff;
+	text-align: center;
+	font-size: 25upx;
+	color: #000000;
+	box-sizing: border-box;
+}
+.delete-row-btn {
+	width: 60upx;
+	height: 70upx;
+	line-height: 70upx;
+	margin-top: 38upx;
+	margin-left: 12upx;
+	text-align: center;
+	font-size: 24upx;
+	color: #ffffff;
+	background: #ff4d4f;
+	border-radius: 6upx;
+}
+.footer-button {
+	height: 124upx;
+	padding: 0 60upx;
+	justify-content: space-between;
+	box-sizing: border-box;
+	border-top: 1upx solid #eeeeee;
+}
+.footer-button button {
+	margin: 0;
+}
+.footer-btn {
+	margin-left: 0;
+}
+</style>

+ 65 - 27
ghsApp/src/admin/shop/add.vue

@@ -14,38 +14,29 @@
 					<input v-model="form.shopName" placeholder-class="phcolor" class="tui-input" name="shopName" placeholder="请输入名称,如雄安店" maxlength="50" type="text" />
 				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false">
-					<view class="tui-title">类型</view>
-					<radio-group class="tui-input" @change="joinChange">
-						<label class="list" for="chainLink">
-							<radio id="chainLink" value="0" :checked="form.join == 0" style="transform:scale(0.7,0.7)" />
-							<span class="checkbox-text">直营</span>
-						</label>
-						<label class="list" for="joinLink">
-							<radio id="joinLink" value="1" :checked="form.join == 1" style="transform:scale(0.7,0.7)" />
-							<span class="checkbox-text">加盟</span>
-						</label>
-					</radio-group>
+					<view class="tui-title">管理方式</view>
+					<view class="select-button-wrap">
+						<button class="admin-button-com middle" :class="[form.join == 0 ? 'blue' : 'default']" @click="form.join = 0">直营</button>
+						<button class="admin-button-com middle" :class="[form.join == 1 ? 'blue' : 'default']" @click="form.join = 1">加盟</button>
+						<input v-model="form.join" name="join" hidden />
+					</view>
 				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false">
 					<view class="tui-title">状态</view>
-					<view>
-						<switch style="transform:scale(0.7,0.7)" :checked="form.open == 0 ? false : true" @change="openChange" /> {{form.open==0 ? '休息' : '营业'}}
+					<view class="select-button-wrap">
+						<button class="admin-button-com middle" :class="[form.open == 1 ? 'blue' : 'default']" @click="setOpenStatus(1)">营业</button>
+						<button class="admin-button-com middle" :class="[form.open == 0 ? 'blue' : 'default']" @click="setOpenStatus(0)">休息</button>
+						<input v-model="form.open" name="open" hidden />
 					</view>
 				</tui-list-cell>
 				<template v-if="visible">
 					<tui-list-cell class="line-cell" :hover="false">
 						<view class="tui-title">时间</view>
-						<radio-group class="tui-input" @change="radioChange">
-							<label class="list" for="hourLink">
-								<radio id="hourLink" value="0" :checked="form.openType == 0" style="transform:scale(0.7,0.7)" />
-								<span class="checkbox-text">24小时</span>
-							</label>
-							<label class="list" for="setTimeLink">
-								<radio id="setTimeLink" value="1" :checked="form.openType == 1" style="transform:scale(0.7,0.7)" />
-								<span class="checkbox-text">指定时段</span>
-							</label>
+						<view class="select-button-wrap time-button-wrap">
+							<button class="admin-button-com middle" :class="[form.openType == 0 ? 'blue' : 'default']" @click="setOpenType(0)">24小时</button>
+							<button class="admin-button-com middle" :class="[form.openType == 1 ? 'blue' : 'default']" @click="setOpenType(1)">指定时段</button>
 							<input v-model="form.openType" name="openType" hidden />
-						</radio-group>
+						</view>
 					</tui-list-cell>
 					<template v-if="openTimeVisible">
 						<tui-list-cell class="line-cell" :hover="false">
@@ -64,6 +55,15 @@
 						</tui-list-cell>
 					</template>
 				</template>
+				<tui-list-cell class="line-cell" :hover="false">
+					<view class="tui-title">主营业务</view>
+					<view class="select-button-wrap-mini">
+						<button class="admin-button-com mini-btn" :class="[form.business == 0 ? 'blue' : 'default']" @click="setBusiness(0)">鲜切花</button>
+						<button class="admin-button-com mini-btn" :class="[form.business == 1 ? 'blue' : 'default']" @click="setBusiness(1)">绿植</button>
+						<button class="admin-button-com mini-btn" :class="[form.business == 2 ? 'blue' : 'default']" @click="setBusiness(2)">苗木</button>
+						<input v-model="form.business" name="business" hidden />
+					</view>
+				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false">
 					<view class="tui-title">手机</view>
 					<input v-model="form.mobile" placeholder-class="phcolor" class="tui-input" name="mobile" placeholder="请输入手机号" maxlength="50" type="number" />
@@ -240,7 +240,8 @@ export default {
 				carSale:0,
 				afterSale:1,
 				saleHour:12,
-				cgUnitType:0
+				cgUnitType:0,
+				business:0
 			},
 			showRegion: false,
 			region: {
@@ -322,8 +323,12 @@ export default {
 			this.form.default = e.detail.value ? 1 : 0
 		},
 		openChange(e) {
-			this.visible = e.detail.value ? true : false
-			this.form.open = e.detail.value ? 1 : 0
+			this.setOpenStatus(e.detail.value ? 1 : 0)
+		},
+		setOpenStatus(value) {
+			const selected = Number(value)
+			this.visible = selected === 1 ? true : false
+			this.form.open = selected === 1 ? 1 : 0
 		},
 		startTimeChange: function(e) {
 			this.start_time = e.detail.value
@@ -340,7 +345,13 @@ export default {
 			this.form.cutStyle = Number(e.detail.value)
 		},
 		radioChange(e) {
-			const selected = Number(e.detail.value)
+			this.setOpenType(e.detail.value)
+		},
+		setBusiness(type){
+			this.form.business = type
+		},
+		setOpenType(value) {
+			const selected = Number(value)
 			this.openTimeVisible = selected === 0 ? false : true;
 			this.form.openType = selected === 0 ? 0 : 1; // openType: 0. 24小时 1. xx ~ xx
 			if (this.openTimeVisible) {
@@ -459,6 +470,33 @@ export default {
 			}
 		}
 	}
+	.select-button-wrap {
+		display: flex;
+		align-items: center;
+		.admin-button-com {
+			width: 150upx;
+			margin: 0;
+		}
+		.admin-button-com + .admin-button-com {
+			margin-left: 30upx;
+		}
+	}
+	.select-button-wrap-mini {
+		display: flex;
+		align-items: center;
+		.admin-button-com {
+			width: 150upx;
+			margin: 0;
+		}
+		.admin-button-com + .admin-button-com {
+			margin-left: 15upx;
+		}
+	}
+	.time-button-wrap {
+		.admin-button-com {
+			width: 190upx;
+		}
+	}
 	// 按钮
 	.confirm-btn {
 		position: fixed;

+ 5 - 0
ghsApp/src/api/order-item/index.js

@@ -37,4 +37,9 @@ export const filterName = data => {
 
 export const updateRemarkItemFn = data => {
 	return https.get("/order-item/update-item-remark", data);
+};
+
+//打印花材的物流标
+export const printItemWlLabel = data => {
+	return https.get("/order-item/print-item-wl-label", data);
 };

+ 4 - 1
ghsApp/src/api/order/index.js

@@ -281,4 +281,7 @@ export const getScanPayList = data => https.get("/scan-pay/list", data);
 
 export const modifyAddress = data => {
 	return https.post('/order/modify-address', data)
-}
+}
+
+//获取订单花材的筛数明细
+export const getTree = data => https.get("/order-tree/get-tree", data);

+ 39 - 1
ghsApp/src/components/module/app-commodity2.vue

@@ -16,7 +16,15 @@
 				<text style="font-size:22upx;border:1upx solid #3385ff;color:white;background-color:#3385ff;margin-right:5upx;padding-left:5upx;padding-right:5upx;" 
 				v-if="info.presell == 1">预售</text>
 				{{ info.name || "" }}
-				<text v-if="info.variety && info.variety ==1" class="show-color"></text>
+				<block v-if="info.kind == 2">
+					<text class="show-tree"></text>
+				</block>
+				<block v-else-if="info.kind ==3">
+					<text class="show-hole"></text>
+				</block>
+				<block v-else>
+					<text v-if="info.variety && info.variety ==1" class="show-color"></text>
+				</block>
 			</view>
 			<view class="kc" style="position:absolute;top:55upx;z-index:99" @click.stop="copyCreate()">		
 				<block v-if="info.ratioType == 0">{{info.ratio}}{{info.smallUnit}}/{{info.bigUnit}}</block>
@@ -117,6 +125,10 @@ export default {
 			this.$emit("delProduct", info)
 		},
 		addItemFn () {
+			if(this.info.kind == 2){
+				this.$emit("goTree", this.info)
+				return false
+			}
 			if(this.info && this.info.variety == 1 && this.selectJobType == 'bill'){
 				//小菊多颜色选择页
 				this.$emit("goToSpecialVariety", this.info);
@@ -125,6 +137,10 @@ export default {
 			this.$emit("replaceItemFn", this.info,0,'add')
 		},
 		reduceItemFn() {
+			if(this.info.kind == 2){
+				this.$emit("goTree", this.info)
+				return false
+			}
 			if(this.info && this.info.variety == 1 && this.selectJobType == 'bill'){
 				//小菊多颜色选择页
 				this.$emit("goToSpecialVariety", this.info);
@@ -133,6 +149,10 @@ export default {
 			this.$emit("replaceItemFn", this.info,0,'sub')
 		},
 		showAddModelFn() {
+			if(this.info.kind == 2){
+				this.$emit("goTree", this.info)
+				return false
+			}
 			if(this.info && this.info.variety == 1 && this.selectJobType == 'bill'){
 				//小菊多颜色选择页
 				this.$emit("goToSpecialVariety", this.info);
@@ -200,6 +220,24 @@ export default {
 			border:none;
 			margin-left:16upx;
 		}
+		.show-tree{
+			display:inline-block;
+			width:25upx;
+			height:25upx;
+			background-color:rgb(230, 8, 19);
+			border-radius:0;
+			border:none;
+			margin-left:16upx;
+		}
+		.show-hole{
+			display:inline-block;
+			width:0;
+			height:0;
+			border-left:14upx solid transparent;
+			border-right:14upx solid transparent;
+			border-bottom:25upx solid rgb(36, 103, 228);
+			margin-left:16upx;
+		}
 		& .kc {
 			position: relative;
 			color: #999999;

+ 2 - 0
ghsApp/src/pages.json

@@ -104,6 +104,7 @@
 			"root": "pagesOrder",
 			"pages": [
 				{"path": "detail","style": {"navigationBarTitleText": "订单详情", "enablePullDownRefresh": true}},
+				{"path": "tree","style": {"navigationBarTitleText": "数量", "enablePullDownRefresh": true}},
 				{"path": "showOrder","style": {"navigationBarTitleText": "订单", "enablePullDownRefresh": true}},
 				{"path": "info","style": {"navigationBarTitleText": "订单详情", "enablePullDownRefresh": true}},
 				{"path": "arrival","style": {"navigationBarTitleText": "确认发货"}},
@@ -450,6 +451,7 @@
 				{"path": "detail","style": {"navigationBarTitleText": "花材详情"}},
 				{"path": "add","style": {"navigationBarTitleText": "添加花材"}},
 				{"path": "copy","style": {"navigationBarTitleText": "复制新建花材"}},
+				{"path": "tree","style": {"navigationBarTitleText": "填写株数"}},
 				{"path": "xj","style": {"navigationBarTitleText": "请选择颜色"}},
 				{"path": "xjSelect","style": {"navigationBarTitleText": "多颜色"}},
 				{"path": "presell","style": {"navigationBarTitleText": "预售管理"}},

+ 118 - 2
ghsApp/src/pagesOrder/detail.vue

@@ -302,6 +302,11 @@
 									<text class="item-count" v-else>-</text>
 								</view>
 							</view>
+							<view class="dish-tag-row" v-if="detailInfo.shopBusiness == 2" @click="goTree(s)">
+								<text class="dish-num" v-if="Number(s.dishNum)>0">{{ s.dishNum }}筛</text>
+								<text class="dish-num" v-else>-</text>
+								<button class="admin-button-com middle dish-print-btn" @click.stop="printTree(s)">打印</button>
+							</view>
 						</view>
 					</view>
 					<view class="summary-bar">
@@ -474,6 +479,25 @@
 			</template>
 		</modal-module>
 
+		<modal-module :show="treePrintShow" @click="confirmPrintTree" :maskClosable="true" title="填写数量" padding="30rpx 30rpx" >
+			<template v-slot:content>
+				<view class="app-modal-input-wrap">
+					<view class="inp-list-line">
+						<view class="line-label">打印数</view>
+						<view class="line-input">
+							<input type="number" @blur="treePrintBlur" :focus="treePrintFocus" v-model="treePrintNum" :adjust-position="false" class="inp-input" />
+						</view>
+					</view>
+					<view class="inp-list-line">
+						<view class="line-label">装箱数</view>
+						<view class="line-input">
+							<input type="number" v-model="treeBoxNum" :adjust-position="false" class="inp-input" />
+						</view>
+					</view>
+				</view>
+			</template>
+		</modal-module>
+
 		<uni-popup ref="modifyRemarkRef" background-color="#fff" type="center" :animation="false" class="class-popup-style">
 			<view style="padding:30upx;">
 				<textarea v-model="modifyRemarkText" style="border:1upx solid #cccccc;height:140upx;font-size:28upx;" placeholder="请填写备注"></textarea>
@@ -605,8 +629,8 @@
 import { mapGetters } from "vuex";
 import stepStatus from "./components/stepStatus";
 import TuiListCell from "@/components/plugin/list-cell";
-import { getDetail,debtPay,hasPay, freeShipping,confirmFinish,cancel,modifyRemarkFn,orderFh,modifyOrderConfirmTimeFn,printWlLabel } from "@/api/order";
-import { getOrderProduct,giveItem } from "@/api/order-item";
+import { getDetail,debtPay,hasPay, freeShipping,confirmFinish,cancel,modifyRemarkFn,orderFh,modifyOrderConfirmTimeFn,printWlLabel} from "@/api/order";
+import { getOrderProduct,giveItem,printItemWlLabel } from "@/api/order-item";
 import productMins from "@/mixins/product";
 import { ORDER_STATUS } from "@/utils/declare";
 import { cloudPrintOrder, cancelOrder,cancelBookOrderInfo,confirmReachFn,changeSendStaffFn } from "@/api/order";
@@ -676,6 +700,11 @@ export default {
 			tipAmount: '',
 			tipOrderId: 0,
 			tipDeliveryId: '',
+			treePrintShow: false,
+			treePrintFocus: false,
+			treePrintNum: '',
+			treeBoxNum: '',
+			treePrintItem: null,
 			// 配送状态映射
 			sendStatusMap: {
 				'-4': { text: '未叫跑腿', color: '#999' },
@@ -752,6 +781,66 @@ export default {
 			// 如果不是当年,显示年月日时间 (从位置2开始截取14个字符: YYYY-MM-DD HH:)
 			return dateStr.substr(2, 14)
 		},
+		goTree(item){
+			this.$util.pageTo({url: '/pagesOrder/tree?orderSn='+this.detailInfo.orderSn+'&productId='+item.productId})
+		},
+		printTree(item){
+			this.treePrintItem = item
+			this.treePrintNum = ''
+			this.treeBoxNum = ''
+			this.treePrintShow = true
+			setTimeout(() => {
+				this.$nextTick(() => {
+					this.treePrintFocus = true
+				})
+			}, 200)
+		},
+		treePrintBlur() {
+			this.treePrintFocus = false
+		},
+		confirmPrintTree(val) {
+			if (val.index == 0) {
+				this.treePrintShow = false
+				this.treePrintFocus = false
+				return
+			}
+
+			let currentNum = this.treePrintNum
+			let currentBoxNum = this.treeBoxNum
+			if (currentNum === '' || currentNum == null) {
+				this.$msg('请填写打印数')
+				this.treePrintFocus = true
+				return
+			}
+			if (Number(currentNum) <= 0) {
+				this.$msg('打印数不能小于1')
+				this.treePrintFocus = true
+				return
+			}
+			if (currentBoxNum === '' || currentBoxNum == null) {
+				this.$msg('请填写装箱')
+				return
+			}
+			if (Number(currentBoxNum) <= 0) {
+				this.$msg('装箱不能小于1')
+				this.treePrintFocus = true
+				return
+			}
+			if (!this.treePrintItem || !this.treePrintItem.id) {
+				this.$msg('打印的花材id出错')
+				this.treePrintShow = false
+				this.treePrintFocus = false
+				return
+			}
+			let orderSn = this.detailInfo.orderSn || ''
+			printItemWlLabel({orderSn: orderSn,id: this.treePrintItem.id,num: currentNum,boxNum: currentBoxNum}).then(res => {
+				this.treePrintShow = false
+				this.treePrintFocus = false
+				if (res.code == 1) {
+
+				}
+			})
+		},
 		toggleFinanceInfo() {
 			this.showFinanceInfo = !this.showFinanceInfo
 		},
@@ -1807,6 +1896,7 @@ export default {
 			padding: 20upx;
 			.commodity-item {
 				display: flex;
+				flex-wrap: wrap;
 				margin-bottom: 20upx;
 				.item-icon {
 					flex-shrink: 0;
@@ -1852,6 +1942,32 @@ export default {
 						}
 					}
 				}
+				.dish-tag-row {
+					width: 100%;
+					flex: 0 0 100%;
+					margin-top: 12upx;
+					padding: 12upx 16upx;
+					border: 1upx solid #eeeeee;
+					border-radius: 8upx;
+					box-sizing: border-box;
+					background-color: #fafafa;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					.dish-num {
+						color:rgb(156, 150, 150);
+						font-size: 28upx;
+						font-weight: 600;
+					}
+					.dish-print-btn {
+						width: 120upx;
+						padding-top: 12upx;
+						padding-bottom: 12upx;
+						font-size: 26upx;
+						color:#b4b2b2;
+						border-color:#b4b2b2;
+					}
+				}
 			}
 		}
 		.summary-bar {

+ 124 - 0
ghsApp/src/pagesOrder/tree.vue

@@ -0,0 +1,124 @@
+<template>
+	<view class="tree-page">
+		<view class="tree-empty" v-if="loading">加载中...</view>
+		<view class="tree-empty" v-else-if="!rows.length">{{ emptyText }}</view>
+		<view class="tree-row" v-else v-for="(row, rowIndex) in rows" :key="rowIndex">
+			<text class="row-index">第{{ rowIndex + 1 }}筛</text>
+			<view class="num-list">
+				<text class="num-item" v-for="(num, numIndex) in row" :key="numIndex">{{ num }}</text>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+import { getTree } from "@/api/order"
+export default {
+	name: "tree",
+	components: {},
+	mixins: [],
+	data() {
+		return {
+			option: {},
+			rows: [],
+			loading: false,
+			emptyText: "暂无数据"
+        }
+    },
+	onLoad(option){
+		this.option = option || {}
+		this.init()
+    },
+    methods: {
+        init(){
+            let orderSn = this.option.orderSn||''
+            let productId = this.option.productId||0
+			this.loading = true
+			this.emptyText = "暂无数据"
+            getTree({ orderSn, productId }).then(res=>{
+                if(res.code == 1){
+                    let list = (res.data && res.data.list) || []
+					this.rows = this.formatRows(list)
+					if (!this.rows.length) {
+						this.emptyText = "暂无数量数据"
+					}
+				} else {
+					this.rows = []
+					this.emptyText = res.msg || "获取数据失败"
+                }
+            }).catch(() => {
+				this.rows = []
+				this.emptyText = "获取数据失败"
+			}).finally(() => {
+				this.loading = false
+            })
+        },
+		formatRows(list) {
+			let nums = []
+			list.forEach(item => {
+				if (Array.isArray(item)) {
+					item.forEach(child => {
+						if (child && child.num !== undefined) {
+							nums.push(child.num)
+						} else if (typeof child === "number" || typeof child === "string") {
+							nums.push(child)
+						}
+					})
+				} else if (item && item.num !== undefined) {
+					nums.push(item.num)
+				}
+			})
+
+			let rows = []
+			for (let i = 0; i < nums.length; i += 5) {
+				rows.push(nums.slice(i, i + 5))
+			}
+			return rows
+		}
+    }
+}
+</script>
+<style lang="scss" scoped>
+.tree-page {
+	padding: 24upx;
+}
+
+.tree-row {
+	display: flex;
+	align-items: center;
+	margin-top: 20upx;
+
+	&:first-child {
+		margin-top: 0;
+	}
+}
+
+.tree-empty {
+	padding-top: 120upx;
+	text-align: center;
+	color: #999;
+	font-size: 32upx;
+}
+
+.row-index {
+	width: 120upx;
+	color: #3385FF;
+	font-size: 32upx;
+}
+
+.num-list {
+	flex: 1;
+	display: flex;
+	align-items: center;
+}
+
+.num-item {
+	min-width: 80upx;
+	margin-left: 16upx;
+	font-size: 34upx;
+	color: #333;
+
+	&:first-child {
+		margin-left: 0;
+	}
+}
+</style>

+ 2 - 2
ghsPad/src/pages/home/components/leftArea.vue

@@ -33,10 +33,10 @@
                             <text class="name">{{item.name}}</text>
                             <view class="num-action_box">
                                 <view class="num-btn" :data-item-key="getItemKey(item)" @click.stop="changeItemNumByEvent($event, -1)">
-                                    <zui-svg-icon icon="general-sub" :width="28" :height="28" color="#8abf8a" />
+                                    <zui-svg-icon icon="general-sub" :width="38" :height="38" color="#8abf8a" />
                                 </view>
                                 <view class="num-btn" :data-item-key="getItemKey(item)" @click.stop="changeItemNumByEvent($event, 1)">
-                                    <zui-svg-icon icon="general-plus" :width="28" :height="28" color="#8abf8a" />
+                                    <zui-svg-icon icon="general-plus" :width="38" :height="38" color="#8abf8a" />
                                 </view>
                             </view>
                         </view>

+ 72 - 34
hdApp/src/admin/shop/add.vue

@@ -11,44 +11,29 @@
 					<input v-model="form.shopName" placeholder-class="phcolor" class="tui-input" name="shopName" placeholder="请输入名称" maxlength="50" type="text" />
 				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false">
-					<view class="tui-title">分店类型</view>
-					<radio-group class="tui-input" @change="joinChange">
-						<label class="list" for="chainLink">
-							<radio id="chainLink" value="0" style="transform:scale(0.7,0.7)" :checked="form.join == 0" />
-							<span class="checkbox-text">直营店</span>
-						</label>
-						<label class="list" for="joinLink">
-							<radio id="joinLink" value="1" style="transform:scale(0.7,0.7)" :checked="form.join == 1" />
-							<span class="checkbox-text">加盟店</span>
-						</label>
-					</radio-group>
-				</tui-list-cell>
-
-				<tui-list-cell class="line-cell" :hover="false">
-					<view class="tui-title">总店</view>
-					<view>
-						<switch style="transform:scale(0.7,0.7)" :checked="form.default == 0 ? false : true" @change="defaultChange" /> {{form.default==0 ? '否' : '是'}}
+					<view class="tui-title">管理方式</view>
+					<view class="select-button-wrap">
+						<button class="admin-button-com middle" :class="[form.join == 0 ? 'blue' : 'default']" @click="form.join = 0">直营店</button>
+						<button class="admin-button-com middle" :class="[form.join == 1 ? 'blue' : 'default']" @click="form.join = 1">加盟店</button>
+						<input v-model="form.join" name="join" hidden />
 					</view>
 				</tui-list-cell>
-
 				<tui-list-cell class="line-cell" :hover="false">
 					<view class="tui-title">营业状态</view>
-					<view><switch style="transform:scale(0.7,0.7)" :checked="form.open == 0 ? false : true" @change="openChange" /></view>
+					<view class="select-button-wrap">
+						<button class="admin-button-com middle" :class="[form.open == 1 ? 'blue' : 'default']" @click="setOpenStatus(1)">营业</button>
+						<button class="admin-button-com middle" :class="[form.open == 0 ? 'blue' : 'default']" @click="setOpenStatus(0)">休息</button>
+						<input v-model="form.open" name="open" hidden />
+					</view>
 				</tui-list-cell>
 				<template v-if="visible">
 					<tui-list-cell class="line-cell" :hover="false">
 						<view class="tui-title">营业时间</view>
-						<radio-group class="tui-input" @change="radioChange">
-							<label class="list" for="hourLink">
-								<radio id="hourLink" value="0" style="transform:scale(0.7,0.7)" :checked="form.openType == 0" />
-								<span class="checkbox-text">24小时</span>
-							</label>
-							<label class="list" for="setTimeLink">
-								<radio id="setTimeLink" value="1" style="transform:scale(0.7,0.7)" :checked="form.openType == 1" />
-								<span class="checkbox-text">指定时段</span>
-							</label>
+						<view class="select-button-wrap time-button-wrap">
+							<button class="admin-button-com middle" :class="[form.openType == 0 ? 'blue' : 'default']" @click="setOpenType(0)">24小时</button>
+							<button class="admin-button-com middle" :class="[form.openType == 1 ? 'blue' : 'default']" @click="setOpenType(1)">指定时段</button>
 							<input v-model="form.openType" name="openType" hidden />
-						</radio-group>
+						</view>
 					</tui-list-cell>
 					<template v-if="openTimeVisible">
 						<tui-list-cell class="line-cell" :hover="false">
@@ -67,11 +52,25 @@
 						</tui-list-cell>
 					</template>
 				</template>
+				<tui-list-cell class="line-cell" :hover="false">
+					<view class="tui-title">主营业务</view>
+					<view class="select-button-wrap-mini">
+						<button class="admin-button-com mini-btn" :class="[form.business == 0 ? 'blue' : 'default']" @click="setBusiness(0)">鲜切花</button>
+						<button class="admin-button-com mini-btn" :class="[form.business == 1 ? 'blue' : 'default']" @click="setBusiness(1)">绿植</button>
+						<button class="admin-button-com mini-btn" :class="[form.business == 2 ? 'blue' : 'default']" @click="setBusiness(2)">苗木</button>
+						<input v-model="form.business" name="business" hidden />
+					</view>
+				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false">
 					<view class="tui-title">手机号</view>
 					<input v-model="form.mobile" placeholder-class="phcolor" class="tui-input" name="mobile" placeholder="请输入手机号" maxlength="50" type="number" />
 				</tui-list-cell>
-
+				<tui-list-cell class="line-cell" :hover="false">
+					<view class="tui-title">总店</view>
+					<view>
+						<switch style="transform:scale(0.7,0.7)" :checked="form.default == 0 ? false : true" @change="defaultChange" /> {{form.default==0 ? '否' : '是'}}
+					</view>
+				</tui-list-cell>
 				<tui-list-cell class="line-cell" :hover="false" :arrow="true" @click="openAddres">
 					<view class="tui-title">所在城市</view>
 					<view class="tui-input" v-if="form.province || form.city">{{ form.province + '-' + form.city }}</view>
@@ -215,6 +214,7 @@ export default {
 				meetAmount:0,
 				cutAmount:0,
 				cutStyle:0,
+				business:0
 			},
 			hasMap:0, // 是否具备地址功能 0不具备 1具备
 			showRegion: false,
@@ -310,8 +310,12 @@ export default {
 			}
 		},
 		openChange(e) {
-			this.visible = e.target.value ? true : false
-			this.form.open = e.target.value ? 1 : 0
+			this.setOpenStatus(e.target.value ? 1 : 0)
+		},
+		setOpenStatus(value) {
+			const selected = Number(value)
+			this.visible = selected === 1 ? true : false
+			this.form.open = selected === 1 ? 1 : 0
 		},
 		startTimeChange: function(e) {
 			this.start_time = e.detail.value
@@ -339,8 +343,15 @@ export default {
 			this.form.openEndTime = e.detail.value
 		},
 		radioChange(e) {
-			this.openTimeVisible = e.detail.value == 0 ? false : true;
-			this.form.openType = e.detail.value == 0 ? 0 : 1; // openType: 0. 24小时 1. xx ~ xx
+			this.setOpenType(e.detail.value)
+		},
+		setBusiness(type){
+			this.form.business = type
+		},
+		setOpenType(value) {
+			const selected = Number(value)
+			this.openTimeVisible = selected === 0 ? false : true;
+			this.form.openType = selected === 0 ? 0 : 1; // openType: 0. 24小时 1. xx ~ xx
 			if (this.openTimeVisible) {
 				this.start_time = '09:00'
 				this.end_time = '18:00'
@@ -497,6 +508,33 @@ export default {
 			padding: 0 30upx;
 		}
 	}
+	.select-button-wrap {
+		display: flex;
+		align-items: center;
+		.admin-button-com {
+			width: 150upx;
+			margin: 0;
+		}
+		.admin-button-com + .admin-button-com {
+			margin-left: 20upx;
+		}
+	}
+	.select-button-wrap-mini {
+		display: flex;
+		align-items: center;
+		.admin-button-com {
+			width: 150upx;
+			margin: 0;
+		}
+		.admin-button-com + .admin-button-com {
+			margin-left: 15upx;
+		}
+	}
+	.time-button-wrap {
+		.admin-button-com {
+			width: 190upx;
+		}
+	}
 	.confirm-btn {
 		position:fixed;
 		bottom:0upx;

+ 13 - 3
hdPad/src/pages/home/components/leftArea.vue

@@ -2,7 +2,7 @@
     <view class="itemList-box">
         <view class="title">
             列表
-            <text style="float:right;">{{ getMyShopInfo.shop.shopName=='首店'? getMyShopInfo.shop.merchantName: getMyShopInfo.shop.merchantName+' '+getMyShopInfo.shop.shopName}}</text>
+            <text style="float:right;">{{ shopTitle }}</text>
         </view>
         <scroll-view
             class="itemList-item_box"
@@ -33,10 +33,10 @@
                             <text class="name">{{item.name}}</text>
                             <view class="num-action_box">
                                 <view class="num-btn" :data-item-key="getItemKey(item)" @click.stop="changeItemNumByEvent($event, -1)">
-                                    <zui-svg-icon icon="general-sub" :width="28" :height="28" color="#8abf8a" />
+                                    <zui-svg-icon icon="general-sub" :width="38" :height="38" color="#8abf8a" />
                                 </view>
                                 <view class="num-btn" :data-item-key="getItemKey(item)" @click.stop="changeItemNumByEvent($event, 1)">
-                                    <zui-svg-icon icon="general-plus" :width="28" :height="28" color="#8abf8a" />
+                                    <zui-svg-icon icon="general-plus" :width="38" :height="38" color="#8abf8a" />
                                 </view>
                             </view>
                         </view>
@@ -141,6 +141,16 @@ export default {
     },
 	computed:{
 		...mapGetters(["getMyShopInfo"]),
+        shopTitle() {
+            const shop = (this.getMyShopInfo && this.getMyShopInfo.shop) || {}
+            const merchantName = shop.merchantName || ''
+            const shopName = shop.shopName || ''
+
+            if (!merchantName && !shopName) return ''
+            return shopName == '首店'
+                ? merchantName
+                : `${merchantName}${merchantName && shopName ? ' ' : ''}${shopName}`
+        },
 	},
     methods:{
         getTouchPoint(event) {

+ 11 - 5
hdPad/src/pages/home/components/leftGroup.vue

@@ -2,11 +2,7 @@
 	<view class="itemList-box">
 		<view class="title">
 			列表
-			<text style="float: right">{{
-				getMyShopInfo.shop.shopName == "首店"
-					? getMyShopInfo.shop.merchantName
-					: getMyShopInfo.shop.merchantName + " " + getMyShopInfo.shop.shopName
-			}}</text>
+			<text style="float: right">{{ shopTitle }}</text>
 		</view>
 		<scroll-view
 			class="itemList-item_box"
@@ -111,6 +107,16 @@ export default {
 	},
 	computed: {
 		...mapGetters(["getMyShopInfo"]),
+		shopTitle() {
+			const shop = (this.getMyShopInfo && this.getMyShopInfo.shop) || {};
+			const merchantName = shop.merchantName || "";
+			const shopName = shop.shopName || "";
+
+			if (!merchantName && !shopName) return "";
+			return shopName == "首店"
+				? merchantName
+				: `${merchantName}${merchantName && shopName ? " " : ""}${shopName}`;
+		},
 	},
 	created() {
 		this.getGroupList();