shish %!s(int64=4) %!d(string=hai) anos
pai
achega
4c64762998

+ 442 - 0
hdApp/src/admin/goodsManage/add.vue

@@ -0,0 +1,442 @@
+<template>
+  <view class="app-content">
+    <form @submit="formSubmit">
+      <view class="module-com input-line-wrap">
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title required">名称</view>
+          <input v-model="form.name" placeholder-class="phcolor" class="tui-input" name="name" placeholder="请输入" maxlength="50" type="text" />
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title required">价格</view>
+          <input v-model="form.price" placeholder-class="phcolor" class="tui-input" name="price" placeholder="请输入" maxlength="50" type="digit" />
+        </tui-list-cell>
+        <tui-list-cell class="line-cell category-wrap" :hover="false">
+          <view class="tui-title">分类</view>
+          <view class="tui-input">
+            <block v-for="(item, index) in categoryData" :key="index">
+              <button class="admin-button-com" :class="[(form.catIds.includes(item.id + '')||form.catIds.includes(item.id*1)) ? '' : 'default']" 
+              @click="selCategoryFn(item)" >{{ item.categoryName || '暂无' }}</button>
+            </block>
+          </view>
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">主花支数</view>
+          <input v-model="form.flowerNum" placeholder-class="phcolor" class="tui-input" name="sold" placeholder="支数" maxlength="50" type="number" />
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">历史销量</view>
+          <input v-model="form.sold" placeholder-class="phcolor" class="tui-input" name="sold" placeholder="选填,总销量=历史销量+真实销量" maxlength="50" type="number" />
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">节日涨价</view>
+          <label for="autoPrice" class="tui-input" @click="autoRiseChange(form.autoRise)">
+            <checkbox id="autoPrice" class="ljd-checkbox" :checked="form.autoRise == 1" style="transform: scale(0.7,0.7);" ></checkbox>
+            <span>需要</span>
+          </label>
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">配送类型</view>
+          <label for="sendType" class="tui-input" @click="needSendChange(form.needSend)">
+            <checkbox id="sendType" class="ljd-checkbox" :checked="form.needSend == 1" @change="giftChange" style="transform: scale(0.7,0.7);" ></checkbox>
+            <span>自取商品</span>
+          </label>
+        </tui-list-cell>
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">运费</view>
+          <radio-group class="tui-input" @change="freightChange">
+            <label class="list" for="customLink">
+              <radio id="customLink" value="0" :checked="form.freightType == 0" style="transform: scale(0.8,0.8);" />
+              <span class="checkbox-text">按距离收费</span>
+            </label>
+            <label class="list" for="goodsLink">
+              <radio id="goodsLink" value="1" :checked="form.freightType == 1" style="transform: scale(0.8,0.8);" />
+              <span class="checkbox-text">免运费</span>
+            </label>
+          </radio-group>
+        </tui-list-cell>
+
+        <tui-list-cell class="line-cell" :hover="false">
+          <view class="tui-title">状态</view>
+          <radio-group class="tui-input" @change="statusChange">
+            <label class="list" for="upLink">
+              <radio id="upLink" value="1" :checked="form.status == 1" style="transform: scale(0.8,0.8);" />
+              <span class="checkbox-text">上架</span>
+            </label>
+            <label class="list" for="downLink">
+              <radio id="downLink" value="0" :checked="form.status == 0" style="transform: scale(0.8,0.8);" />
+              <span class="checkbox-text">下架</span>
+            </label>
+          </radio-group>
+        </tui-list-cell>
+
+      </view>
+
+      <view class="module-com content-box proInfo">
+        <view class="commodity-view">
+          <view class="infoAEdit">
+            <text>使用花材</text> <text v-if="!$util.isEmpty(selectList)" style="float:right;color:#3385ff" @click="selectItem()">修改花材</text>
+          </view>
+          <template v-if="!$util.isEmpty(selectList)">
+            <view class="commodity-list">
+              <view v-for="(s, idx) in selectList" :key="idx" class="commodity-item" >
+                <image class="item-icon" :src="s.cover" @click="pageTo({url:'/admin/item/detail',query:{id: s.id}})" />
+                <view class="item-info">
+                  <view class="info-line">
+                    <text class="item-name">{{ s.name }}</text>
+                    <text class="item-price">
+                      <text class="unit"></text>
+                      <text class="price">
+                        <text v-if="Number(s.bigCount)>0">{{s.bigCount}}{{s.bigUnit}}</text>
+                        <text v-if="Number(s.smallCount)>0">{{s.smallCount}}{{s.smallUnit}}</text>
+                      </text>
+                    </text>
+                  </view>
+                </view>
+              </view>
+            </view>
+          </template>
+          <template v-else>
+            <view style="text-align:center;">
+                <button class="admin-button-com middle blue" style="margin:0 auto;margin-top:10upx;margin-bottom:10upx;" @click="selectItem()">选择花材</button>
+            </view>
+          </template>
+        </view>
+      </view>
+
+      <view class="module-com input-line-wrap goods-wrap">
+        <view class="module-tit">
+          <span>图片</span>
+          <span class="app-color-3">(最多4张)</span>
+        </view>
+        <view class="module-det">
+          <htz-image-upload :max="4" :compress="true" v-model="currentImgData" :headers="headers"
+           @uploadSuccess="imgUploadSuccess" @imgDelete="imgDeleteFn" :action="getLoginInfo.imgUploadApi">
+          </htz-image-upload>
+        </view>
+      </view>
+
+      <view class="module-com input-line-wrap summary-wrap">
+        <view class="module-tit">商品简介</view>
+        <view class="module-det" style="padding-bottom: 20upx">
+          <textarea v-model="form.briefContent" class="goods-summary" placeholder-class="phcolor" placeholder="请输入商品简介" />
+        </view>
+      </view>
+
+      <view class="app-footer">
+        <button class="admin-button-com middle default" @click="goBack">取消</button>
+        <button class="admin-button-com middle blue" formType="submit">保存</button>
+      </view>
+
+    </form>
+  </view>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import TuiListCell from "@/components/plugin/list-cell";
+import AppUploader from "@/components/app-uploader";
+const form = require("@/utils/formValidation.js");
+import { getClass } from "@/api/category";
+import { getDetailB, addB, updateB } from "@/api/goods"
+//图片上传插件来源:https://ext.dcloud.net.cn/plugin?id=2922 已改造,不能再升级 shish 20211228
+import htzImageUpload from './components/htz-image-upload/htz-image-upload.vue'
+import productMins from "@/mixins/product";
+export default {
+  name: "add",
+  components: { TuiListCell, AppUploader,htzImageUpload },
+	mixins: [productMins],
+  data() {
+    return {
+      headers:{token:''},
+      status: 1,
+			selectJobType: "addGoodsSelectItem",
+      form: {
+        name: "",
+        price: "",
+        catIds: [],
+        autoRise: "1",
+        needSend: "0",
+        freightType: "0",
+        shopImg: [],
+        briefContent: "",
+        status:1,
+        cover:''
+      },
+      categoryData:[],
+      currentImgData:[]
+    };
+  },
+  onLoad() {
+    const token = uni.getStorageSync('token')
+    this.headers.token = token
+  },
+  watch:{
+  },
+  methods: {
+    selectItem(){
+      this.pageTo({url:'/admin/goodsManage/selectItem'})
+    },
+    goBack(){
+      uni.navigateBack({delta:1})
+    },
+    imgDeleteFn(res){
+      const index = res.index
+      this.form.shopImg.splice(index,1)
+    },
+    imgUploadSuccess(res) {
+      var _res = JSON.parse(res.data)
+      if(_res.code == 1){
+        this.currentImgData.push(_res.data.smallUrl)
+        this.form.shopImg.push(_res.data.shortUrl)
+      }
+    },
+    init() {
+      getClass({flower:1}).then(res => {
+        if(res.code && res.code == 1){
+          this.categoryData = res.data
+        }
+      })
+    },
+    confirmFn() {
+      let that = this
+      if (this.$util.isEmpty(this.form.catIds)) {
+        this.$msg("请选择分类");
+        return false;
+      }
+      if (this.$util.isEmpty(this.form.shopImg)) {
+        this.$msg("请上传图片");
+        return false;
+      }
+      this.form.cover = this.form.shopImg[0]
+      if (this.$util.isEmpty(this.selectList)) {
+        this.$msg("请选择花材");
+        return false;
+      }
+
+      const product = this.selectList.map(ele => {
+        let unitName = ele.bigUnit
+        let unitType = 0
+        let num = ele.bigCount
+        let count = ele.bigCount
+        if(Number(ele.smallCount)>0){
+          unitType = 1
+          unitName = ele.smallUnit
+          num=ele.smallCount
+          count = (ele.smallCount/ele.ratio).toFixed(2)
+        }
+	      return { id: ele.id, ptItemId:ele.itemId,bigName:ele.bigUnit,smallName:ele.smallUnit,unitName:unitName,cover:ele.shortCover,ratio:ele.ratio,num:num,count:count}
+      })
+      that.$util.confirmModal({content:'确认添加?'},() => {
+        uni.showLoading({mask:true})
+        let form = JSON.parse(JSON.stringify(this.form));
+        addB({ status: this.status, ...form,itemList:JSON.stringify(product) }).then(res => {
+          uni.hideLoading()
+          this.$msg("添加成功")
+          this.removeFromSaveDirect()
+          setTimeout(function(){
+            uni.navigateBack({})
+          },1500)
+        })
+      })
+    },
+    selCategoryFn(item) {
+      let index = this.form.catIds.findIndex(e => e == item.id);
+      if (index == -1) {
+        this.form.catIds.push(item.id);
+      } else {
+        this.form.catIds.splice(index, 1);
+      }
+    },
+    autoRiseChange(e) {
+      this.form.autoRise = e == "0" ? "1" : "0";
+    },
+    needSendChange(e) {
+      this.form.needSend = e == "0" ? "1" : "0";
+    },
+    freightChange(e) {
+      this.form.freightType = e.detail.value;
+    },
+    // 表单验证
+    formSubmit(e) {
+      // 表单规则
+      let rules = [
+        {
+          name: "name",
+          rule: ["required"],
+          msg: ["请输入名称"]
+        },
+        {
+          name: "price",
+          rule: ["required"],
+          msg: ["请输入价格"]
+        }
+      ];
+      // 进行表单检查
+      let formData = e.detail.value;
+      let checkRes = form.validation(formData, rules);
+      // 验证通过!
+      if (!checkRes) {
+        setTimeout(() => {
+          this.confirmFn();
+        });
+      } else {
+        this.$msg(checkRes);
+      }
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.app-content {
+  min-height: calc(100vh - 100upx);
+  padding-bottom: 100upx;
+}
+.module-com {
+  margin-bottom: 20upx;
+  background-color: #fff;
+  color: $fontColor2;
+  .module-tit {
+    padding: 20upx 30upx;
+    font-size: 28upx;
+  }
+  .module-det {
+    padding: 0 30upx;
+  }
+}
+.category-wrap {
+  align-items: flex-start;
+  padding-bottom: 0 !important;
+  .tui-input {
+    @include disFlex(center, flex-start);
+    flex-wrap: wrap;
+    .admin-button-com {
+      margin-right: 20upx;
+      margin-bottom: 20upx;
+      position: relative;
+      z-index: 9999;
+    }
+  }
+}
+.summary-wrap {
+  .goods-summary {
+    height: 200upx;
+  }
+}
+.app-footer {
+  justify-content: space-evenly;
+  z-index: 9999;
+  .admin-button-com {
+    width: 46%;
+    padding-top:30upx;
+    padding-bottom:30upx;
+  }
+}
+.commodity-view {
+  display: flex;
+  flex-direction: column;
+  .commodity-list {
+    padding: 25upx;
+    .commodity-item {
+      display: flex;
+      margin-bottom: 20upx;
+      .item-icon {
+        flex-shrink: 0;
+        width: 120upx;
+        height: 120upx;
+      }
+      .item-info {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        flex: 1;
+        margin-left: 20upx;
+        .info-line {
+          margin-bottom: 20upx;
+          display: flex;
+          justify-content: space-between;
+          align-items: flex-end;
+          .item-name {
+            color: black;
+            font-size: 30upx;
+            font-weight: 700;
+            overflow: hidden;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+            width:360upx;
+          }
+          .item-price {
+            padding-right:30upx;
+            color: #333;
+            .price {
+              font-size: 28upx;
+            }
+          }
+          .item-type {
+            color: #999;
+            font-size: 24upx;
+          }
+          .item-count {
+            color: #666;
+            font-size: 24upx;
+          }
+        }
+      }
+    }
+  }
+  .summary-bar {
+    padding: 0 20upx;
+    height: 90upx;
+    display: flex;
+
+    align-items: center;
+    justify-content: space-between;
+    border-top: 1px solid #eeeeee;
+    .operate-view {
+      display: flex;
+
+      align-items: center;
+      color: #3385ff;
+      font-size: 26upx;
+      .iconfont {
+        margin-right: 20upx;
+        font-size: 40upx;
+      }
+    }
+    .describe-view {
+      display: flex;
+
+      align-items: center;
+      color: #333;
+      font-size: 24upx;
+      .price {
+        font-weight: bold;
+        font-size: 30upx;
+      }
+    }
+  }
+}
+.infoAEdit {
+  display: flex;
+  justify-content: space-between;
+  height: 60upx;
+  line-height: 80upx;
+  font-size: 28;
+  font-weight: 700;
+  color: #666;
+  padding: 0 20upx;
+  .iconfont {
+    margin-right: 15upx;
+    font-size: 30upx;
+  }
+  & > .editFlr {
+    position: relative;
+    color: #1890f3;
+    font-size: 26upx;
+    &:after {
+      content: "";
+      position: absolute;
+      left: 0;
+      top: 0;
+    }
+  }
+}
+</style>

+ 71 - 75
hdApp/src/admin/goodsManage/detail.vue

@@ -123,10 +123,6 @@
                 </view>
               </view>
             </view>
-            <view class="summary-bar">
-              <view class="operate-view"></view>
-              <view class="describe-view">共<text v-if="Number(goodsInfo.bigNum)>0">{{goodsInfo.bigNum}}扎</text><text v-if="Number(goodsInfo.smallNum)>0">{{goodsInfo.smallNum}}支</text></view>
-            </view>
           </view>
         </view>
       </template>
@@ -154,6 +150,7 @@
         <button class="admin-button-com middle default" @click="goBack">取消</button>
         <button class="admin-button-com middle blue" formType="submit">保存</button>
       </view>
+
     </form>
   </view>
 </template>
@@ -270,9 +267,8 @@ export default {
         this.$msg("请上传图片")
         return false
       }
-      let host = this.option.id ? updateB : addB;
       let form = JSON.parse(JSON.stringify(this.form))
-      host({ ...form }).then(res => {
+      updateB({ ...form }).then(res => {
         uni.navigateBack({})
         this.$msg("操作成功")
       });
@@ -353,90 +349,90 @@ export default {
     padding-bottom:30upx;
   }
 }
-  .commodity-view {
-    display: flex;
-    flex-direction: column;
-    .commodity-list {
-      padding: 25upx;
-      .commodity-item {
+.commodity-view {
+  display: flex;
+  flex-direction: column;
+  .commodity-list {
+    padding: 25upx;
+    .commodity-item {
+      display: flex;
+      margin-bottom: 20upx;
+      .item-icon {
+        flex-shrink: 0;
+        width: 120upx;
+        height: 120upx;
+      }
+      .item-info {
         display: flex;
-        margin-bottom: 20upx;
-        .item-icon {
-          flex-shrink: 0;
-          width: 120upx;
-          height: 120upx;
-        }
-        .item-info {
+        flex-direction: column;
+        justify-content: center;
+        flex: 1;
+        margin-left: 20upx;
+        .info-line {
+          margin-bottom: 20upx;
           display: flex;
-          flex-direction: column;
-          justify-content: center;
-          flex: 1;
-          margin-left: 20upx;
-          .info-line {
-            margin-bottom: 20upx;
-            display: flex;
-            justify-content: space-between;
-            align-items: flex-end;
-            .item-name {
-              color: black;
-              font-size: 30upx;
-              font-weight: 700;
-							overflow: hidden;
-							white-space: nowrap;
-							text-overflow: ellipsis;
-							width:360upx;
-            }
-            .item-price {
-              padding-right:30upx;
-              color: #333;
-              .price {
-                font-size: 28upx;
-              }
-            }
-            .item-type {
-              color: #999;
-              font-size: 24upx;
-            }
-            .item-count {
-              color: #666;
-              font-size: 24upx;
+          justify-content: space-between;
+          align-items: flex-end;
+          .item-name {
+            color: black;
+            font-size: 30upx;
+            font-weight: 700;
+            overflow: hidden;
+            white-space: nowrap;
+            text-overflow: ellipsis;
+            width:360upx;
+          }
+          .item-price {
+            padding-right:30upx;
+            color: #333;
+            .price {
+              font-size: 28upx;
             }
           }
+          .item-type {
+            color: #999;
+            font-size: 24upx;
+          }
+          .item-count {
+            color: #666;
+            font-size: 24upx;
+          }
         }
       }
     }
-    .summary-bar {
-      padding: 0 20upx;
-      height: 90upx;
+  }
+  .summary-bar {
+    padding: 0 20upx;
+    height: 90upx;
+    display: flex;
+
+    align-items: center;
+    justify-content: space-between;
+    border-top: 1px solid #eeeeee;
+    .operate-view {
       display: flex;
 
       align-items: center;
-      justify-content: space-between;
-      border-top: 1px solid #eeeeee;
-      .operate-view {
-        display: flex;
-
-        align-items: center;
-        color: #3385ff;
-        font-size: 26upx;
-        .iconfont {
-          margin-right: 20upx;
-          font-size: 40upx;
-        }
+      color: #3385ff;
+      font-size: 26upx;
+      .iconfont {
+        margin-right: 20upx;
+        font-size: 40upx;
       }
-      .describe-view {
-        display: flex;
+    }
+    .describe-view {
+      display: flex;
 
-        align-items: center;
-        color: #333;
-        font-size: 24upx;
-        .price {
-          font-weight: bold;
-          font-size: 30upx;
-        }
+      align-items: center;
+      color: #333;
+      font-size: 24upx;
+      .price {
+        font-weight: bold;
+        font-size: 30upx;
       }
     }
   }
+}
 .infoAEdit {
   display: flex;
   justify-content: space-between;

+ 6 - 2
hdApp/src/admin/goodsManage/list.vue

@@ -5,7 +5,8 @@
 				<app-search-module v-model="py" placeholder="输入英文字母搜索" @input="searchFn" />
 			</view>
 			<view style="float:right">
-        <button class="admin-button-com middle blue" style="margin-right:10upx;" @click="selectFlowerNumFn()">支数</button>
+        <button class="admin-button-com middle blue" style="margin-right:6upx;" @click="selectFlowerNumFn()">支数</button>
+        <button class="admin-button-com middle blue" style="margin-right:6upx;" @click="addGoods()">新增花束</button>
 				<button class="admin-button-com middle blue" @click="cgPlant()">盆栽采购</button>
 			</view>
 		</view>
@@ -135,6 +136,9 @@ export default {
         uni.stopPullDownRefresh();
       }
     },
+    addGoods(){
+        this.$util.pageTo({url:"/admin/goodsManage/add"})
+    },
     cgPlant(){
       this.$util.pageTo({url:"/admin/goodsManage/plant"})
     },
@@ -305,7 +309,7 @@ page {
   padding: 22upx 20upx 22upx 30upx;
   .search-bar {
     display:inline-block;
-    width:416upx;
+    width:280upx;
   }
 }
 </style>

+ 255 - 0
hdApp/src/admin/goodsManage/selectItem.vue

@@ -0,0 +1,255 @@
+<template>
+<view class="app-content">
+	<view class="billing_box_bg">
+		<view class="input-wrap" >
+			<view class="search-bar">
+				<app-search-module v-model="py" placeholder="输入英文字母搜索" @input="searchFn" />
+			</view>
+			<view style="float:right">
+				<button class="admin-button-com middle blue" @click="removeFromSave()">清除花材</button>
+			</view>
+		</view>
+		
+		<view class="scroll-middle_bx">
+
+			<scroll-view scroll-y scroll-with-animation class="tab-view">
+				<!--分类 start -->
+				<div v-for="(item, index) in globalClassItemList" :key="index" class="tab-bar-item" :class="classIndex == index ? 'active' : ''" :data-current="index" @tap.stop="swichClass(index)">
+					<text>{{ item.className || "" }}</text>
+				</div>
+				<!--分类 end -->
+				<view style="height: 120upx"></view>
+			</scroll-view>
+
+			<scroll-view scroll-y class="right-box" :scroll-into-view="scroll_into_view" scroll-with-animation="true" @scroll="scroll_detail" lower-threshold="100" @scrolltolower="scroll_bottom">
+				<!--花材列表 start -->
+				<block v-if="!$util.isEmpty(globalClassItemList)">
+					<view class="item_list_bx selectAll" v-for="(classItem, classIndex) in globalClassItemList" :key="classIndex" :id="`class_${classIndex}`">
+						<view class="item_list_title">{{ classItem.className }}</view>
+
+						<view v-if="classItem.child && !$util.isEmpty(classItem.child)">
+
+							<template v-for="(productItem, productIndex) in classItem.child">
+								<view style="height: 160upx" :id="`class_${classItem.classId}_${productItem.id}`" :key="productIndex">
+									<Commondity v-if="classItem.isActive"
+										:checkStock="true"
+										:info="productItem"
+										@showAddModelFn="showAddModelFn"
+										@replaceItemFn="replaceItemFn"
+									></Commondity>
+								</view>
+							</template>
+
+						</view>
+						<view v-else>
+							<view style="height:260upx;text-align:center;color:#CCCCCC;position: relative;">
+								<view style="position: absolute;margin:auto;top:130upx;left:0;right:0;bottom:0;">暂无花材</view>
+							</view>
+						</view>
+
+					</view>
+				</block>
+				<block v-else>
+					<app-wrapper-empty title="暂无数据" :is-empty="$util.isEmpty(globalClassItemList)" />
+				</block>
+				<!--花材列表 end -->
+			</scroll-view>
+
+		</view>
+		
+		<modal-module :show="isAddModel" @cancel="addItemModelHidden" @click="confirmAddItemModel" :title="customData.itemName" color="#333" :size="32" padding="30rpx 30rpx" >
+			<template slot="customContent">
+				<view class="select-cmd_bx" v-if="customData">
+					<view class="kc"><text class="unit_price">库存 {{ customData.stock||0 }}</text></view>
+					<view class="num_bx"> 
+
+						<!-- #ifdef APP-PLUS -->
+						<input style="width: 260upx" v-model="customData.bigCount" v-if="globalUnitType == 0" type="number" />
+						<text style="font-size:35upx;font-weight:bold;color:#666666;" v-if="globalUnitType == 0">{{customData.bigUnit}}</text>
+						<input style="width: 260upx" v-model="customData.smallCount" v-if="globalUnitType == 1" type="number" />
+						<text style="font-size:35upx;font-weight:bold;color:#666666;" v-if="globalUnitType == 1">{{customData.smallUnit}}</text>
+						<!-- #endif -->
+						<!-- #ifdef MP-WEIXIN -->
+						<input style="width: 260upx" v-model="customData.bigCount" v-if="globalUnitType == 0" :focus="isAddInputFocus" type="number" />
+						<text style="font-size:35upx;font-weight:bold;color:#666666;" v-if="globalUnitType == 0">{{customData.bigUnit}}</text>
+						<input style="width: 260upx" v-model="customData.smallCount" v-if="globalUnitType == 1" :focus="isAddInputFocus" type="number" />
+						<text style="font-size:35upx;font-weight:bold;color:#666666;" v-if="globalUnitType == 1">{{customData.smallUnit}}</text>
+						<!-- #endif -->
+						<image @click="switchGlobalUnitType" :src="`${constant.imgUrl}/icon/switch/switch128.png`" style="width:86upx;height:86upx;" mode="widthFix"></image>
+
+					</view>
+				</view>
+			</template>
+		</modal-module>
+		<FooterCart :price="allPrice" :count="allCount" @confirm="confirmToSave" ></FooterCart>
+	</view>
+</view>
+</template>
+
+<script>
+import AppSearchModule from "@/components/module/app-search";
+import AppTabs from "@/components/plugin/tabs";
+import AppWrapperEmpty from "@/components/app-wrapper-empty";
+import Commondity from "@/components/module/app-commodity";
+import FooterCart from "@/components/module/app-footer-cart";
+import ModalModule from "@/components/plugin/modal";
+import { COMMODITY_TYPE } from "@/utils/declare";
+import productMins from "@/mixins/product";
+export default {
+	name: "selectItem",
+	components: {
+		AppTabs,
+		AppSearchModule,
+		AppWrapperEmpty,
+		Commondity,
+		ModalModule,
+		FooterCart,
+	},
+	mixins: [productMins],
+	data() {
+		return {
+			selectJobType: "addGoodsSelectItem",
+			COMMODITY_TYPE,
+			isAddModel: false,
+			isSmallCount:false,
+			checkStock:false,
+			customData: {
+				bigCount: 0,
+				smallCount: 0,
+				userPrice:0
+			}
+		};
+	},
+	computed: {
+	},
+	onUnload() {
+	},
+	methods: {
+		confirmToSave() {
+			if(this.$util.isEmpty(this.selectList)){
+				this.$msg('请选择花材')
+				return false
+			}
+			uni.navigateBack({ delta: 1 })
+		}
+	}
+};
+</script>
+<style lang="scss" scoped>
+.billing_box_bg {
+	height: 100%;
+	background: white;
+	display: flex;
+	flex-direction: column;
+	.input-wrap {
+		padding: 22upx 20upx 22upx 30upx;
+		.search-bar {
+			display:inline-block;
+			width:530upx;
+		}
+	}
+	.scroll-middle_bx {
+		flex: 1;
+		display: flex;
+		width: 100%;
+		height: 100%;
+		overflow: hidden;
+	}
+	.tab-view {
+		position: relative;
+		height: calc(100vh - 140upx);
+		width: 170upx;
+		flex-shrink: 0;
+		background-color: #f0f2f6;
+		.tab-bar-item {
+			position: relative;
+			width: 170upx;
+			height: 90upx;
+			box-sizing: border-box;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: 26upx;
+			color: #444;
+			font-weight: 400;
+			.tag {
+				display: flex;
+				padding: 0 20upx;
+				align-items: center;
+				position: absolute;
+				right: 0;
+				top: 0;
+				height: 32upx;
+				background: #ff2842;
+				border-radius: 16upx;
+				color: #fff;
+				font-size: 20upx;
+			}
+      &:last-child{
+        margin-bottom: 110upx;
+      }
+		}
+		.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 {
+		height: calc(100vh - 140upx);
+		flex: 1;
+		box-sizing: border-box;
+
+	}
+	.item_list_bx {
+		padding: 40upx 16upx;
+		//padding: 0 16upx;
+    &:last-child{
+      margin-bottom: 70upx;
+    }
+	}
+	.item_list_title {
+		margin-bottom: 20upx;
+		font-size: 24upx;
+		font-weight: 600;
+		color: #666666;
+	}
+	.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;
+			justify-content:center;
+			padding-left:70upx;
+			& > input {
+				width: 212upx;
+				height: 80upx;
+				border: 1upx solid #dddddd;
+				border-radius: 4upx;
+				text-align: center;
+				margin-right: 24upx;
+				font-size: 40upx;
+			}
+		}
+	}
+}
+</style>

+ 2 - 0
hdApp/src/pages.json

@@ -197,6 +197,8 @@
 				{ "path": "list", "style": { "navigationBarTitleText": "商品管理" } },
 				{ "path": "category", "style": { "navigationBarTitleText": "分类管理" } },
 				{ "path": "detail", "style": { "navigationBarTitleText": "商品详情" } },
+				{ "path": "add", "style": { "navigationBarTitleText": "新增" } },
+				{ "path": "selectItem", "style": { "navigationBarTitleText": "选择花材" } },
 				{ "path": "img-store", "style": { "navigationBarTitleText": "图库管理" } },
 				{ "path": "goods-name", "style": { "navigationBarTitleText": "填写商品信息" } },
 				{ "path": "freight", "style": { "navigationBarTitleText": "运费设置" } },

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

@@ -136,6 +136,8 @@ export default {
 			return name;
 		},
 		addEvent() {
+			this.$msg('开发中')
+			return false
 			uni.navigateTo({
 				url: `/pagesStorehouse/inventory/update`,
 				success: result => {},

+ 3 - 8
mallApp/src/pages/billing/affirmGhs.vue

@@ -28,8 +28,7 @@
 						</view>
 						<view class="summary-bar">
 							<view class="operate-view" @click="gobackEvent">
-								<text class="iconfont icongouwuche"></text>
-								修改花材
+								<text class="iconfont icongouwuche"></text>修改花材
 							</view>
 							<view class="describe-view">共{{ allCountFun.bigLength }}扎,合计 ¥<text class="price">{{ allPriceFun }}</text></view>
 						</view>
@@ -39,15 +38,11 @@
 			</form>
 		</view>
 		<view class="under-bar">
-			<view class="price-view">
-				<text class="price-title">合计</text>
-				<text class="price-number">¥<text class="large">{{ modifyPrice}}</text></text>
-			</view>
-			<button class="admin-button-com blue middle" @click="confirmForm">提交</button>
+			<view class="price-view"> </view>
+			<button class="admin-button-com blue middle" style="border:none;height:68upx;margin-right:38upx;" @click="confirmForm">提交</button>
 		</view>
 	</view>
 </template>
-
 <script>
 import productMins from "@/mixins/cgProduct";
 const formUtil = require("@/utils/formValidation.js");

+ 1 - 1
mallApp/src/pages/item/item.vue

@@ -6,7 +6,7 @@
 				<app-search-module v-model="py" placeholder="输字母找花材,如小菊输xj" @input="searchFn" />
 			</view>
 			<view style="padding:0 0upx 0 20upx;" >
-				<button class="admin-button-com middle blue" @click="removeMemory(option.id)">清除已选</button>
+				<button class="admin-button-com middle blue" style="border:none;height:70upx;" @click="removeMemory(option.id)">清除已选</button>
 			</view>
 		</view>