shish 4 лет назад
Родитель
Сommit
1306d52e3b

+ 2 - 2
hdApp/src/admin/home/workbench.vue

@@ -114,7 +114,7 @@ export default {
         { name: "总采购(元)", value: 0 }
       ],
       cgSrc: `${this.$constant.imgUrl}/ghs/home/cg.png`,
-      kdSrc: `${this.$constant.imgUrl}/ghs/home/zzd2.png`
+      kdSrc: `${this.$constant.imgUrl}/ghs/home/kd.png`
     };
   },
   onShareAppMessage (res) {
@@ -145,7 +145,7 @@ export default {
   },
   methods: {
     goGd(){
-      this.$util.pageTo({url:'/admin/work/add'})
+      this.$util.pageTo({url:'/admin/order/addOrder'})
     },
     goCg(){
       this.$util.pageTo({url:'/pagesPurchase/order'})

+ 318 - 0
hdApp/src/admin/order/addOrder.vue

@@ -0,0 +1,318 @@
+<template>
+  <view class="app-content">
+
+    <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" style="margin-right:6upx;" @click="selectFlowerNumFn()">支数</button>
+        <button class="admin-button-com middle blue" style="margin-right:10upx;" @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="swichTab($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">
+
+				        <OrderItem :goodsInfo="goodsItem" @showAddModelFn="showAddModelFn" @replaceItemFn="replaceItemFn"></OrderItem>
+
+              </view>
+            </view>
+          </block>
+          <block v-else>
+            <app-wrapper-empty title="暂无数据" :is-empty="$util.isEmpty(list.data)" />
+          </block>
+        </scroll-view>
+      </block>
+    </view>
+
+    <!--选择支数 -->
+    <uni-popup ref="selectFlowerNumRef" background-color="#fff" type="center" :animation="false">
+      <view style="display:flex;padding:20upx;height:25vh;justify-content: space-between;align-items:center;flex-wrap:wrap;">
+
+        <text v-for="(item, index) in flowerNumList" :key="index" @click="selectFlowerNum(item.num)" 
+        style="margin-left:25upx;border:1upx solid #999999;width:100upx;height:100upx;border-radius:20upx;justify-content:center;align-items:center;display:flex;">
+          {{item.name}}
+        </text>
+
+      </view>
+    </uni-popup>
+
+    <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 -->
+
+                <input v-model="customData.userPrice" @focus="customData.userPrice = null" type="digit" placeholder="单价" />
+
+                <text>¥{{customData.userPrice && customData.bigCount ? parseFloat((customData.userPrice*customData.bigCount).toFixed(2)):0}}</text>
+          </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 OrderItem from "./components/order-item";
+import {categoryListB,getCategoryGoodsB,changeStatusB} 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,
+	OrderItem,
+	FooterCart
+  },
+  mixins: [list,productMins],
+  data() {
+    return {
+        selectJobType: "addOrder",
+        selectJobId:0,
+        tabbar: [],
+        height: 0,
+        currentTab: 0,
+        scrollTop: 0,
+        form: {
+            catId: ""
+        },
+        delModal: false,
+        operateData: {},
+        operateShow: false,
+        operateIndex: null,
+        operateTop: 0,
+        checkStock:false,
+        flowerNum:0,
+        flowerNumList:[{num:6,name:6},{num:9,name:9},{num:11,name:11},{num:19,name:19},{num:33,name:33},{num:52,name:52},{num:66,name:66},{num:99,name:99},{num:0,name:'取消'}]
+    };
+  },
+  computed: {
+  },
+  onLoad: function() {
+
+  },
+  methods: {
+    selectFlowerNumFn(){
+      this.$refs.selectFlowerNumRef.open('top')
+    },
+    selectFlowerNum(num){
+      this.$refs.selectFlowerNumRef.close()
+      this.flowerNum = num
+      this.resetList()
+      this.getPlantList()
+    },
+    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/order/addOrderConfirm",type:2})
+    },
+    goBottom(){
+      if (!this.list.finished) {
+        this.getPlantList().then((res) => {
+          uni.stopPullDownRefresh();
+        });
+      } else {
+        uni.stopPullDownRefresh();
+      }
+    },
+    init() {
+      this.getPlantClass()
+    },
+    getPlantClass() {
+      categoryListB().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 getCategoryGoodsB({status:1,page:this.list.page,...this.form,flowerNum:this.flowerNum}).then(res => {
+        this.completes(res)
+      })
+    },
+    swichTab(e, item) {
+      let cur = e.currentTarget.dataset.current;
+      if (this.currentTab == cur) {
+        return false;
+      } else {
+        this.currentTab = cur;
+        this.form.catId = item.id;
+        this.resetList();
+        this.getPlantList();
+      }
+    },
+    changeStatus(item) {
+      let status = item.status == 0 ? 1 : 0
+      changeStatusB({id: item.id,status: status}).then(res => {
+        if(res.code == 1){
+          this.$msg("修改成功")
+          item.status = status
+        }
+      });
+    }
+  }
+};
+</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 {
+	padding: 22upx 20upx 22upx 30upx;
+	.search-bar {
+		display:inline-block;
+		width:410upx;
+	}
+}
+.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>

+ 311 - 0
hdApp/src/admin/order/addOrderConfirm.vue

@@ -0,0 +1,311 @@
+<template>
+<view class="app-content">
+  <view class="affirm-page">
+    <view class="affirm-view overscroll">
+      <form>
+        <view class="module-com">
+          <view class="commodity-view">
+            <view class="commodity-list">
+              <view class="commodity-item" v-for="(item, index) in selectList" :key="index">
+                <image class="item-icon" :src="item.cover"></image>
+                <view class="item-info">
+                  <view class="info-line">
+                    <text class="item-name">{{ item.name }}</text>
+                    <text class="item-price">
+                      <text class="unit"></text>
+                      <text class="price">
+                        <text>{{item.bigCount}}*¥{{parseFloat(item.userPrice)}}</text>
+                      </text>
+                    </text>
+                  </view>
+                  <view class="info-line">
+                    <text class="item-type"></text>
+                    <text class="item-count">
+                    </text>
+                  </view>
+                </view>
+              </view>
+            </view>
+            <view class="summary-bar">
+              <view class="operate-view" @click="gobackEvent"><text class="iconfont icongouwuche"></text>重选商品</view>
+              <view class="describe-view"> 共{{ selectList.length }}种 </view>
+            </view>
+          </view>
+        </view>
+
+        <view class="module-com input-line-wrap">
+
+          <tui-list-cell class="line-cell" :hover="false">
+            <view class="tui-title">运费</view>
+            <input v-model="form.sendCost" placeholder-class="phcolor" class="tui-input" name="sendCost" @focus="form.sendCost=''" placeholder="请填写运费,没有留空" maxlength="50" type="digit" />
+          </tui-list-cell>
+
+          <tui-list-cell class="line-cell" :hover="false" :arrow="false" >
+            <view class="tui-title">
+              <text>合计金额</text>  
+            </view>
+            <text style="color: #3385FF">{{parseFloat(finalPrice)}}</text>
+          </tui-list-cell>
+
+          <tui-list-cell class="line-cell" :hover="false" :arrow="false" >
+            <view class="tui-title">实收金额</view>
+            <input style="border:1upx solid #eee;color:#3385FF;width:150upx;height:70upx;" type="digit" @focus="modifyPrice=''" v-model="modifyPrice" placeholder-class="tui-placeholder"/>
+            <text v-if="modifyPrice > 0 && modifyPrice > finalPrice" style="font-size:25upx;margin-left:20upx;color:red;">人工资材费 ¥{{parseFloat((modifyPrice-finalPrice).toFixed(2))}}</text>
+            <text v-if="modifyPrice > 0 && modifyPrice < finalPrice" style="font-size:25upx;margin-left:20upx;color:green;">优惠 ¥{{parseFloat((finalPrice-modifyPrice).toFixed(2))}}</text>
+          </tui-list-cell>
+
+        </view>
+
+        <app-delivery-module ref="appDelivery" @changeAddress="changeAddress" />
+
+      </form>
+    </view>
+    <view class="under-bar">
+      <view class="price-view"></view>
+      <button class="admin-button-com blue middle" @click="confirmToSubmit">提交</button>
+    </view>
+  </view>
+</view>
+</template>
+<script>
+import TuiListCell from "@/components/plugin/list-cell";
+import productMins from "@/mixins/cgPlantProduct";
+import AppDeliveryModule from "@/components/app-delivery";
+import { cgPlant } from "@/api/goods/index";
+import { mapActions, mapGetters } from "vuex";
+import { getUserDistance } from "@/api/express";
+export default {
+  name: "plantConfirm",
+  components: {
+    TuiListCell,AppDeliveryModule
+  },
+  mixins: [productMins],
+  data () {
+    return {
+      selectJobType: "addOrder",
+      form: {
+        anonymity: "0", // 是否匿名 0不 1要
+        sendDistance: "", // 配送距离,根据腾讯js进行计算
+        goodsId: "", // 【商城下单特有字段】商品id
+        goodsStyleId: "", // 【商城下单特有字段】商品款式id
+        goodsNum: "", // 【商城下单特有字段】商品数量
+        couponId: "0", // 优惠券id,默认0没有使用优惠券
+        receiveLat: "", // 收花人纬度
+        receiveLong: "",// 收花人经度
+        remark:"",
+        sendCost:''
+      },
+      modifyPrice:0
+    };
+  },
+  onLoad (option) {
+
+  },
+	onShow(){
+	},
+	onUnload(){
+
+	},
+  computed: {
+    ...mapGetters(["getLoginInfo"]),
+    finalPrice(){
+      let totalPrice = this.allPrice.toFixed(2)
+      let finalPrice = (Number(totalPrice) + Number(this.form.sendCost)).toFixed(2)
+      let currentPrice = parseFloat(finalPrice)
+      this.modifyPrice = currentPrice 
+      return currentPrice
+    }
+  },
+  methods: {
+    //计算客户距离和运费
+    changeAddress(e) {
+      let lat = this.$refs.appDelivery.region.latitude;
+      let long = this.$refs.appDelivery.region.longitude;
+      getUserDistance({ lat: lat, lng: long }).then(res => {
+        this.freightPrice = res.data.fee;
+        this.showDistance = res.data.showDistance;
+      });
+    },
+    confirmToSubmit () {
+      let that = this
+      let goods = this.selectList.map((ele) => {
+        return {goodsId: ele.id, num: ele.bigCount,price: ele.userPrice,goodsSn:ele.sn,cover:ele.shortCover}
+      })
+      that.$util.confirmModal({content:'确认提交?'},() => {
+          cgPlant({goods:JSON.stringify(goods),...that.form}).then((res) => {
+            that.removeFromSaveDirect()
+            that.pageTo({url: '/admin/order/addOrderResult',type:2,query:{id:res.data.id}})
+          });
+      })
+    },
+    gobackEvent () {
+      this.pageTo({url: '/admin/order/addOrder',type:2})
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.admin-button-com {
+  margin-right: 20upx;
+}
+.affirm-page {
+  position: relative;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+  .affirm-view {
+    flex: 1;
+    margin-bottom:90upx;
+    padding: 20upx;
+    background-color: #f0f2f6;
+    .commodity-view {
+      display: flex;
+      flex-direction: column;
+      .commodity-list {
+        padding: 20upx;
+        .commodity-item {
+          display: flex;
+          margin-bottom: 20upx;
+          .item-icon {
+            flex-shrink: 0;
+            width: 140upx;
+            height: 140upx;
+          }
+          .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: #666;
+                font-size: 28upx;
+              }
+              .item-price {
+                color: #333;
+                font-size: 22upx;
+                .price {
+                  font-size: 32upx;
+                  font-weight: bold;
+                }
+              }
+              .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: 1upx 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: 36upx;
+          }
+        }
+      }
+    }
+    .module-com {
+      background-color: #fff;
+      margin-bottom: 20upx;
+      border-radius: 10upx;
+      overflow: hidden;
+					.tab-box{
+						padding: 10upx 30upx 30upx;
+						.tab{
+							width: 49%;
+							height: 70upx;
+							color: #a2a2a2;
+							border: 1upx solid #dcdcdc;
+							border-radius: 10upx;
+							font-size: 28upx;
+							font-weight: 700;
+							&.active{
+								color: #ff4d4d;
+								border: 1upx solid #ff4d4d;
+							}
+						}
+					}
+      .member-wrap {
+        .member-det {
+          font-size: 24upx;
+          margin-left: 20upx;
+        }
+      }
+      .remark-wrap {
+        align-items: flex-start;
+        .remark {
+          height: 240upx;
+        }
+      }
+    }
+  }
+  .under-bar {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 20upx;
+    position: fixed;
+    bottom:0;
+    /* 手机mobile屏幕小于1000px */
+    @media screen and (max-width: 1100px) {
+      width: 100%;
+    }
+    /* 收银台cashier屏幕大于1000px */
+    @media screen and (min-width:1100px) {
+      width: 40%;
+    } 
+    height: 100upx;
+    background-color: #fff;
+    box-shadow: 0upx -1upx 6upx 0upx rgba(4, 0, 0, 0.06);
+    .price-view {
+      display: flex;
+      align-items: center;
+      font-size: 24upx;
+      .price-title {
+        color: #333;
+      }
+      .price-number {
+        margin: 0 20upx;
+        color: #ff2842;
+        .large {
+          font-size: 40upx;
+        }
+      }
+    }
+    .admin-button-com {
+      width: 200upx;
+    }
+  }
+}
+</style>

+ 70 - 0
hdApp/src/admin/order/addOrderResult.vue

@@ -0,0 +1,70 @@
+<template>
+	<view class="app-content">
+		<view class="billing_box_bg">
+			<view class="top-view"> </view>
+			<view class="result-view">
+				<view class="iconfont iconchenggong"></view>
+				<view class="result-title">操作成功</view>
+				<button class="admin-button-com big blue" style="width:45vh;" @click="goBackHome">返回</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+    name: "success",
+	methods: {
+		goBackHome() {
+			uni.navigateBack({})
+		}
+	}
+};
+</script>
+<style lang="scss" scoped>
+.go-back{
+	width: 80%;
+	height: 80upx;
+	color: #FFFFFF;
+	margin-top: 50upx;
+	background: #3385FF;
+	border-radius: 10upx;
+	font-size:30upx;
+}
+.billing_box_bg {
+	position: relative;
+	padding: 60upx 30upx;
+	display: flex;
+	background: white;
+	flex-direction: column;
+    background-color: #f5f5f5;
+	.top-view {
+		position: absolute;
+		top: 0;
+		left: 0;
+		width: 100%;
+		height: 299upx;
+		background: #3385ff;
+		border-radius: 0upx 0upx 83upx 83upx;
+	}
+	.result-view {
+		position: relative;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		padding: 70upx;
+		width: 100%;
+		background: #ffffff;
+		border-radius: 20upx;
+		z-index: 1;
+		.iconchenggong {
+			font-size: 170upx;
+			color: $mainColor1;
+		}
+		.result-title {
+			margin: 50upx 0 70upx;
+			font-size: 32upx;
+		}
+	}
+}
+</style>

+ 107 - 0
hdApp/src/admin/order/components/order-item.vue

@@ -0,0 +1,107 @@
+<template>
+    <view class="goods-list-top" @click="showAddModelFn()">
+        <view class="img-blo">
+        <image :src="goodsInfo.smallImgList[0]" mode="aspectFit" ></image>
+        </view>
+        <view class="goods-det">
+        <view class="goods-det-top" style="margin-bottom:4upx;">
+            <view class="goods-name" style="font-size:29upx;font-weight:bold;">{{ goodsInfo.name }}</view>
+        </view>
+        <view class="operate-wrap" style="margin-bottom:15upx;">
+            <view class="goods-price" style="font-size:23upx;">60</view>
+            <view style="float:right;display:inlin-block;padding-right:30upx;color:#CCCCCC;">
+                <text @click.stop="delItemFn" style="border:1upx solid #CCCCCC;border-radius:30upx;padding:0upx 12upx;">-</text>
+                <text style="width:90upx;display:inline-block;text-align:center;">
+                  <text v-if="Number(goodsInfo.bigCount)>0">{{goodsInfo.bigCount}}</text>
+                </text>
+                <text style="border:1upx solid #CCCCCC;border-radius:30upx;padding:0upx 12upx;">+</text>
+            </view>
+        </view>
+        <view class="operate-wrap">
+            <view style="font-size:23upx;color:#666666;">
+            <text>库存</text> <text style="font-weight:bold;margin-left:8upx;">{{goodsInfo.stock}}</text>
+            </view>
+        </view>
+        </view>
+    </view>
+</template>
+<script>
+export default {
+	name: "order-item",
+	components: {},
+	mixins: [],
+	props: {
+		goodsInfo: {
+			required: true,
+			type: Object,
+			default() {
+				return {};
+			}
+		},
+    },
+	methods: {
+    delItemFn () {
+      this.goodsInfo.bigCount = 0
+      this.$emit("replaceItemFn", this.goodsInfo,1)
+    },
+		addItemFn () {
+			this.$emit("replaceItemFn", this.goodsInfo,0,'add')
+		},
+		reduceItemFn() {
+			this.$emit("replaceItemFn", this.goodsInfo,0,'sub')
+		},
+		showAddModelFn() {
+			this.goodsInfo.userPrice = ''
+			this.goodsInfo.bigCount = ''
+			this.$emit("showAddModelFn", { ...this.goodsInfo})
+		}
+	}
+}
+</script>
+<style lang="scss" scoped>
+      .goods-list-top {
+        position: relative;
+        @include disFlex(flex-start, flex-start);
+      }
+      .goods-list-bottom {
+        width: 96%;
+        margin-top: 16upx;
+        color: #bebebe;
+        text{
+          border:1px solid rgb(218, 216, 216);
+          border-radius: 20upx;
+          font-size:22upx;
+          padding:6upx 25upx 6upx 25upx;
+        }
+      }
+      .img-blo {
+        width: 130upx;
+        height: 130upx;
+        margin-right: 20upx;
+        & > image {
+          height: 100%;
+          width: 100%;
+        }
+      }
+      .goods-det {
+        width: calc(100% - 150upx);
+        font-size: 28upx;
+        .operate-wrap {
+          @include disFlex(flex-end, space-between);
+        }
+        .operate-icon-wrap {
+          left: -20upx;
+        }
+        .goods-name {
+          margin-bottom: 10upx;
+        }
+        .goods-sales {
+          color: $fontColor3;
+          font-size: 24upx;
+        }
+        .goods-price {
+          color: #ff2842;
+          font-weight: bold;
+        }
+      }
+</style>

+ 2 - 2
hdApp/src/admin/work/components/workItem.vue

@@ -8,7 +8,7 @@
         <view class="order-list_info">
             <view class="order-info_box">
                 <view>编号:</view>
-                <view>{{ item.mainId }}</view>
+                <view>{{ item.workSn }}</view>
             </view>
             <view class="order-info_box">
                 <view>单号:</view>
@@ -16,7 +16,7 @@
             </view>
             <view class="order-info_box">
                 <view>日期:</view>
-                <view>{{ item.addTime }}</view>
+                <view>{{ item.addTime?item.addTime.substr(5,11):'' }}</view>
             </view>
             <view class="order-info_box">
                 <view>来源:</view>

+ 12 - 0
hdApp/src/admin/work/list.vue

@@ -28,6 +28,8 @@
       </block>
     </div>
 
+    <view class="app-footer"> <view class="admin-button-com middle blue" @click="pageTo({url:'/admin/work/add'})">新增</view> </view>
+
   </view>
 </template>
 <script>
@@ -257,6 +259,16 @@ page{
       margin-bottom: 20upx;
     }
   }
+
+	// 按钮
+	.app-footer {
+		justify-content: flex-end;
+		.admin-button-com {
+			width: 160upx;
+			margin-right: 30upx;
+		}
+	}
+
 }
 .upload-confirm-wrap {
   max-height: 600upx;

+ 8 - 0
hdApp/src/api/express/index.js

@@ -0,0 +1,8 @@
+import https from '@/plugins/luch-request_0.0.7/request'
+
+/** *
+ * 计算客户的距离和运费
+ */
+export const getUserDistance = data => {
+	return https.get('/express/get-user-distance', data)
+}

+ 1 - 1
hdApp/src/components/app-delivery.vue

@@ -102,7 +102,7 @@
           class="tui-input"
           type="number"
           name="bookMobile"
-          placeholder="请填写手机号(选填)"
+          placeholder="请填写手机号"
         />
       </tui-list-cell>
 

+ 3 - 0
hdApp/src/pages.json

@@ -279,6 +279,9 @@
 			"root": "admin/order",
 			"pages": [
 				{ "path": "detail", "style": { "navigationBarTitleText": "详情" } },
+				{ "path": "addOrder", "style": { "navigationBarTitleText": "开单" } },
+				{ "path": "addOrderConfirm", "style": { "navigationBarTitleText": "确认" } },
+				{ "path": "addOrderResult", "style": { "navigationBarTitleText": "结果" } },
 				{ "path": "refund", "style": { "navigationBarTitleText": "退款" } },
 				{ "path": "refundList", "style": { "navigationBarTitleText": "退款记录" } },
 				{ "path": "refundDetail", "style": { "navigationBarTitleText": "退款详情" } },