shish 4 лет назад
Родитель
Сommit
7917fe68f3

+ 191 - 0
hdApp/src/admin/goods/plantCg.vue

@@ -0,0 +1,191 @@
+<template>
+  <view class="order-page">
+    <app-tabs :tabs="tabs" :isFixed="true" :currentTab="tabIndex" @change="change" itemWidth="20%"/>
+    <view class="pay_list">
+      <block v-if="!$util.isEmpty(list.data)">
+        <plantCgItem v-for="(item, index) in list.data" :key="index" :info="item" @click="goDetailFn"></plantCgItem>
+      </block>
+      <block v-else>
+        <AppWrapperEmpty title="暂无数据" :is-empty="$util.isEmpty(list.data)"/>
+      </block>
+    </view>
+    <view class="app-footer open_btn">
+			<view @click="addEvent" class="admin-button-com middle blue">新增采购</view>
+		</view>
+  </view>
+</template>
+<script>
+import AppTabs from "@/components/plugin/tabs";
+import plantCgItem from "./plantCgItem";
+import AppWrapperEmpty from "@/components/app-wrapper-empty";
+import { purchaseList } from "@/api/purchase/index";
+export default {
+  components: {
+    AppWrapperEmpty,
+    plantCgItem,
+    AppTabs
+  },
+  data () {
+    return {
+       tabs: [
+        {
+          name: "全部",
+          value: 0,
+          key: '0'
+        },
+        {
+          name: "待付款",
+          value: 0,
+          key: '1'
+        },
+        {
+          name: "待配送",
+          value: 0,
+          key: '2'
+        },
+        {
+          name: "配送中",
+          value: 0,
+          key: '3'
+        },
+        {
+          name: "已完成",
+          value: 0,
+          key: '4'
+        }
+      ],
+      list: {
+        data: []
+      },
+      supplierList: [],
+      tabIndex: 0,
+      status: '0'
+    }
+  },
+  onPullDownRefresh() {
+    this.getpurchaseList().then(res => {
+      uni.stopPullDownRefresh()
+    })
+  },
+  methods: {
+    change(e) {
+			if (this.tabIndex == e.index) {
+				return false;
+			} else {
+				this.tabIndex = e.index;
+        this.status = e.item.key
+        this.getpurchaseList()
+			}
+		},
+    init() {
+      this.getpurchaseList()
+    },
+    // 获取采购记录列表
+    getpurchaseList () {
+      return purchaseList({ status: this.status }).then(res => {
+        this.list.data = res.data.list
+        this.tabs[0].value = res.data.shop.totalPurchaseOrder // 全部
+        this.tabs[1].value = res.data.shop.cgUnPay // 待付款
+        this.tabs[2].value = res.data.shop.cgUnSend // 待配送
+        this.tabs[3].value = res.data.shop.cgSending // 配送中
+        this.tabs[4].value = res.data.shop.cgFinish // 已完成
+      })
+    },
+    goDetailFn (val) {
+      uni.navigateTo({ url: '/admin/goods/plantCgDetail?id=' + val.id })
+    },
+    addEvent() {
+      uni.navigateTo({url: '/admin/goods/plant'})
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.order-page {
+  .tabs {
+    height: 80upx;
+    line-height: 80upx;
+    & > view {
+      // padding: 0 80upx;
+      width: 50%;
+      text-align: center;
+      font-size: 28upx;
+      color: #666;
+      display: inline-block;
+    }
+    & > .active {
+      position: relative;
+      color: #3385ff;
+      font-weight: 700;
+    }
+    & > .active::after {
+      content: "";
+      position: absolute;
+      bottom: 0;
+      left: 50%;
+      transform: translateX(-50%);
+      width: 70upx;
+      height: 6upx;
+      background: #3385ff;
+    }
+  }
+  .order_list {
+    // height: 200upx;
+    height: 100%;
+    background: #f0f2f6;
+    padding: 0 0 20upx;
+    .list_item {
+      margin: 20upx 0 0;
+      // padding-left: 20upx;
+      position: relative;
+      height: 180upx;
+      width: 100vw;
+      background: #fff;
+      display: flex;
+      align-items: center;
+      & > image {
+        margin-left: 30upx;
+        width: 120upx;
+        height: 120upx;
+        border-radius: 60upx;
+      }
+      & > .store_name {
+        margin-left: 30upx;
+        & > .store_title {
+          margin-bottom: 30upx;
+          font-size: 32upx;
+          font-weight: 700;
+          color: #333;
+        }
+        & > .accumulative {
+          font-size: 26upx;
+          color: #999;
+        }
+      }
+      & > .store_btn {
+        position: absolute;
+        right: 30upx;
+        // padding-right: 30upx;
+        & > .btn_entrance {
+          display: inline-block;
+          font-size: 26upx;
+          color: #3385ff;
+          border: 1px solid #3385ff;
+          border-radius: 8upx;
+          padding: 15upx 30upx;
+          margin-left: 30upx;
+        }
+        & > .btn_forbid {
+          border: 1px solid #999;
+          color: #999;
+        }
+      }
+    }
+  }
+  .pay_list {
+    padding-top: 100upx;
+    padding-bottom: 100upx;
+    background-color: #f0f2f6;
+  }
+}
+</style>

+ 615 - 0
hdApp/src/admin/goods/plantCgDetail.vue

@@ -0,0 +1,615 @@
+<template>
+  <view class="app-content">
+    <view class="info-content_box">
+      <view class="title">
+        供应商
+      </view>
+      <view class="address-des_bx content-box" @click="goToSettle(detailInfo)">
+        <view>
+          <view> {{ detailInfo.ghsName }} {{ detailInfo.ghsMobile }} </view>
+          <view>{{ detailInfo.ghsFullAddress}}</view>
+        </view>
+        <view>
+          <i @click.stop="callUp(detailInfo.ghsMobile)" class="iconfont icondianhua1"></i>
+        	<i @click.stop="navigate(detailInfo.lat,detailInfo.long,detailInfo.supplierName)"
+          class="iconfont icondianhua" style="font-size:53upx;margin-left:50upx;margin-right:9upx;color:#3385ff;"></i>
+        </view>
+      </view>
+
+      <view class="bills-info_box content-box">
+        <view class="order-info_box">
+          <view>订单日期:</view>
+          <view>{{ detailInfo.updateTime ? detailInfo.updateTime.substring(0, 16) : '' }}</view>
+        </view>
+        <view class="order-info_box">
+          <view>订单编号:</view>
+          <view>{{ detailInfo.orderSn }}</view>
+          <view class="price">
+            <button @click="copy(detailInfo.orderSn)" class="admin-button-com default">复制</button>
+          </view>
+        </view>
+        <view v-if="detailInfo.status==1" class="order-info_box">
+          <view>过期时间:</view>
+          <view>{{ detailInfo.deadline ? detailInfo.deadline.substring(0, 16) : '' }}</view>
+        </view>
+        <view v-if="detailInfo.ghsShopAdminId != 0" class="order-info_box">
+          <view>商家开单:</view>
+          <view>
+            <i class="iconfont icondagou" style="font-size:35upx;"></i>
+          </view>
+        </view>
+        <view class="order-info_box" v-if="detailInfo.book == 1">
+          <view>订单类型:</view>
+          <view>
+            <text style="color:white;border:1px solid #657cac;border-radius:20upx;font-size:20upx;padding:5upx 12upx;background:#657cac;">预订单</text>
+          </view>
+        </view>
+        <view class="order-info_box">
+          <view>配送时间:</view>
+          <view>{{ detailInfo.sendTimeWant }}</view>
+        </view>
+        <view class="order-info_box">
+          <view>支付方式:</view>
+          <view>{{ detailInfo.payWay==0?'微信' :detailInfo.payWay==1?'支付宝' :detailInfo.payWay==2?'余额' :detailInfo.payWay==4?'现金' :detailInfo.payWay==5?'银行卡' :'--' }}</view>
+        </view>
+        <view class="order-info_box">
+          <view>采购人员:</view>
+          <view>{{ detailInfo.adminName }}</view>
+        </view>
+        <view class="order-info_box">
+          <view>订单状态:</view>
+          <view>{{ detailInfo.status==1?'待付款' :detailInfo.status==2?'待配送' :detailInfo.status==3?'配送中' :detailInfo.status==4?'已完成' :detailInfo.status==5?'已取消' :'已退款' }}</view>
+        </view>
+
+        <view v-if="detailInfo.refund == 2" class="order-info_box">
+          <view>累计退款:</view>
+          <view style="color:red;font-weight:bold;font-size:30upx;">¥{{parseFloat(detailInfo.tkPrice)}}</view>
+            <view class="price" v-if="detailInfo.refund == 2">
+              <button @click="pageTo({url: '/pagesPurchase/refundList',query: {id: detailInfo.id}})" class="admin-button-com">退款记录</button>
+            </view>
+        </view>
+        <view v-if="detailInfo.refund == 2" class="order-info_box">
+          <view>退款方式:</view>
+          <view style="color:red;font-weight:bold;font-size:30upx;">{{detailInfo.tkExplain||''}}</view>
+        </view>
+
+      </view>
+
+      <view v-if="detailInfo.debt == 1 || detailInfo.clearId > 0" class="bills-info_box content-box">
+        <view class="order-info_box" v-if="detailInfo.debt == 1">
+          <view>欠款状态:</view>
+            <view>是</view>
+            <view class="price">
+              <button @click="goToSettle(detailInfo)" class="admin-button-com">全部欠款单</button>
+            </view>
+        </view>
+        <view class="order-info_box" v-else>
+          <view>欠款状态:</view>
+						<view v-if="detailInfo.clearId > 0">已结帐</view>
+            <view class="price" v-if="detailInfo.clearId > 0">
+              <button @click="pageTo({url: '/admin/clear/info',query: {id: detailInfo.clearId}})" class="admin-button-com">查看帐单</button>
+            </view>
+        </view>
+      </view>
+
+      <view class="module-com content-box proInfo distribution" v-if="detailInfo.sendProgress.title" >
+        <text>配送进展</text>
+        <text class="evolve">{{detailInfo.sendProgress.title}}</text>
+      </view>
+      <view class="module-com content-box proInfo">
+        <view class="commodity-view">
+          <view class="infoAEdit">
+            <text>商品信息</text>
+          </view>
+          <view class="commodity-list">
+            <view v-for="(s, idx) in detailInfo.product" :key="idx" class="commodity-item" >
+              <image class="item-icon" :src="s.cover" @click="pageTo({url:'/admin/item/detail',query:{id: s.productId}})" />
+              <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="detailInfo.stockChange == 1">{{parseFloat(s.xhNum)}}{{s.xhUnitName}}*¥{{parseFloat(s.xhUnitPrice)}}</text>
+                      <text v-else></text>
+                    </text>
+                  </text>
+                </view>
+                <view class="info-line">
+                  <text class="item-type" v-if="detailInfo.book == 1">
+                    <text>预订 {{parseFloat(s.preItemNum)}}{{s.xhUnitName}}*¥{{parseFloat(s.xhPreUnitPrice)}}</text>
+                    </text>
+                  <text class="item-type" v-else><text></text></text>
+                  <text class="item-count" v-if="detailInfo.stockChange == 1">¥{{ parseFloat(s.totalPrice)||0 }}</text>
+                  <text class="item-count" v-else></text>
+                </view>
+              </view>
+            </view>
+          </view>
+          <view class="summary-bar">
+            <view class="operate-view"></view>
+            <view class="describe-view">
+              共{{ detailInfo.kindNum || 0 }}种 {{ detailInfo.bigNum }}扎<text v-if="detailInfo.smallNum>0">{{detailInfo.smallNum}}支</text>,合计 ¥<text class="price">{{ parseFloat(detailInfo.itemPrice)||0 }}</text>
+            </view>
+          </view>
+        </view>
+      </view>
+      <view v-if="detailInfo.remark !=''" class="content-box price-detail">
+        <div class="module-com input-line-wrap">
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">备注</div>
+            <div>{{detailInfo.remark}}</div>
+          </tui-list-cell>
+        </div>
+      </view>
+      <view class="content-box price-detail" v-if="detailInfo.book == 0">
+        <div class="module-com input-line-wrap">
+          <tui-list-cell class="line-cell" :hover="false" v-if="Number(detailInfo.sendCost)>0">
+            <div class="tui-title">运费</div>
+            <div class="detail-price_box" style="font-size: 28upx;">¥{{ parseFloat(detailInfo.sendCost)||0 }}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false" v-if="Number(detailInfo.labourCost)>0">
+            <div class="tui-title">人工资材费</div>
+            <div class="detail-price_box" style="font-size: 28upx;">¥{{ parseFloat(detailInfo.labourCost)||0 }}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false" v-if="detailInfo.discountAmount > 0">
+            <div class="tui-title"><text v-if="detailInfo.discountType == 4">红包优惠</text><text v-else>优惠</text></div>
+            <div class="detail-price_box" style="font-size: 28upx;">-¥{{ parseFloat(detailInfo.discountAmount)||0}}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false" v-if="detailInfo.refundPrice > 0">
+            <div class="tui-title">订单金额</div>
+            <div class="detail-price_box" style="font-size: 28upx;">¥{{ parseFloat(detailInfo.orderPrice)||0}}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false" v-if="detailInfo.refundPrice > 0">
+            <div class="tui-title">退款金额</div>
+            <div class="detail-price_box" style="font-size: 28upx;">-¥{{ parseFloat(detailInfo.refundPrice)||0}}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">实际金额</div>
+            <div class="detail-price_box" style="font-size: 28upx;">¥{{ parseFloat(detailInfo.realPrice)||0}}</div>
+          </tui-list-cell>
+        </div>
+      </view>
+
+      <view class="content-box price-detail" v-else>
+        <div class="module-com input-line-wrap">
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">重量(公斤)</div>
+            <div class="detail-price_box" style="font-size: 28upx;">
+              <text v-if="Number(detailInfo.miniKilo) > Number(detailInfo.weight)" style="color:#CCCCCC;margin-right:15upx;">未达{{parseFloat(detailInfo.miniKilo)}}公斤按{{parseFloat(detailInfo.miniKilo)}}公斤计算</text>
+              <text>{{ detailInfo.weight ? parseFloat(detailInfo.weight) : 0 }}</text>
+             </div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">服务费</div>
+            <div class="detail-price_box" style="font-size: 28upx;">
+              <text style="color:#CCCCCC;margin-right:15upx;">{{Number(detailInfo.miniKilo) > Number(detailInfo.weight) ? parseFloat(detailInfo.miniKilo) : parseFloat(detailInfo.weight)}}*¥{{ detailInfo.kiloFee ? parseFloat(detailInfo.kiloFee) : 0}}</text>
+              <text>¥{{ detailInfo.allKiloFee ? parseFloat(detailInfo.allKiloFee) : 0}}</text>
+            </div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">商品金额</div>
+            <div class="detail-price_box" style="font-size: 28upx;">¥{{ detailInfo.itemPrice ? parseFloat(detailInfo.itemPrice) : 0 }}</div>
+          </tui-list-cell>
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">总计</div>
+					<div class="detail-price_box red" style="font-size: 28upx;">¥{{ detailInfo.orderPrice ? parseFloat(detailInfo.orderPrice) : 0 }}</div>
+				</tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">预付金额</div>
+            <div class="detail-price_box red" style="font-size: 28upx;">¥{{ detailInfo.bookPrice ? parseFloat(detailInfo.bookPrice) : 0}}</div>
+          </tui-list-cell>
+          <tui-list-cell class="line-cell" :hover="false" v-if="detailInfo.stockChange == 1">
+              <view class="tui-title">结账</view>
+              <view class="detail-price_box" style="font-size: 28upx;color:green;" v-if="settlePrice > 0">退 ¥{{settlePrice}}</view>
+              <view class="detail-price_box" style="font-size: 28upx;color:red;" v-else-if="settlePrice < 0">欠 ¥{{Math.abs(settlePrice)}}</view>
+              <view class="detail-price_box" style="font-size: 28upx;" v-else>0</view>
+          </tui-list-cell>
+        </div>
+      </view>
+
+    </view>
+    <view class="footer_bar" v-if="detailInfo.status == 1">
+      <view @click="toPay">付款</view>
+    </view>
+  </view>
+</template>
+
+<script>
+
+import { purchaseDetail, purchaseDebtPay, purchaseClearCreateOrder } from "@/api/purchase/index";
+import TuiListCell from "@/components/plugin/list-cell";
+export default {
+  name: "plantCgDetail",
+  components: {
+    TuiListCell
+  },
+  data () {
+    return {
+      pageType: "order_change",
+      autoLoad: false,
+      stepActive: 0,
+      form: {
+        name: ""
+      },
+      detailInfo: {
+        ghsShopAdminId:0,
+        status:0,
+        bigNum:0,
+        smallNum:0,
+        actPrice:0.00,
+        sendCost:0.00
+      },
+      loading: false,
+      id: '',
+      settlePrice:0
+    };
+  },
+  onShow () {
+
+  },
+  onPullDownRefresh() {
+			this.initData().then(res => {
+				uni.stopPullDownRefresh()
+			})
+		},
+  methods: {
+		navigate(latitude, longitude, address) {   
+			// 将经纬度转换成Number
+			let latituded = Number(latitude);
+			let longituded = Number(longitude);					
+			uni.openLocation({
+				latitude: latituded,
+				longitude: longituded,
+				address: address,
+				success: function() {
+					console.log('success');
+				}
+			});
+		},
+    //跳转到结账页
+    goToSettle (item) {
+      this.pageTo({
+        url: '/pagesPurchase/gathering?id='+item.supplierId
+      })
+    },
+    copy (val) {
+      const self = this;
+      uni.setClipboardData({
+        data: val,
+        success: function () {
+          self.$msg("复制成功");
+        }
+      });
+    },
+    callUp (mobile) {
+      uni.makePhoneCall({
+        phoneNumber: mobile
+      });
+    },
+    init() {
+      this.initData()
+    },
+    async initData () {
+      return purchaseDetail({ id: this.option.id }).then(res => {
+        this.detailInfo = res.data
+
+			this.settlePrice = Number(this.detailInfo.bookPrice) - Number(this.detailInfo.orderPrice)
+			this.settlePrice = parseFloat(this.settlePrice.toFixed(2))
+
+        this.$forceUpdate()
+      })
+      
+    },
+    // 修改花材
+    editFlr () {
+
+    },
+    toPay () {
+      uni.navigateTo({
+        url: `/pagesPurchase/wechatPay?orderSn=${this.detailInfo.orderSn}&realPrice=${this.detailInfo.realPrice}&id=${this.detailInfo.id}`
+      })
+    },
+    getError () {
+    },
+    getSuccess () {
+      uni.navigateTo({
+        url: '/pagesPurchase/particulars'
+      })
+    },
+    postponePay () {
+      purchaseDebtPay({ orderSn: this.detailInfo.orderSn }).then(res => {
+        console.log(res)
+      }).catch(err => { console.log(err) })
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.info-content_box {
+  padding: 0 20upx 100upx;
+  & > .title {
+    color: #666666;
+    font-size: 28upx;
+    font-weight: 600;
+    padding: 30upx 3upx;
+  }
+  & .address-des_bx {
+    display: flex;
+    padding: 20upx 10upx 30upx 20upx;
+    & > view:nth-child(1) {
+      flex: 1;
+      margin-top: 10upx;
+      & > view:nth-child(1) {
+        color: #333333;
+        font-size: 32upx;
+        font-weight: bold;
+      }
+      & > view:nth-child(2) {
+        color: #666666;
+        font-size: 28upx;
+        font-weight: 400;
+        margin-top: 20upx;
+      }
+    }
+    & > view:nth-child(2) {
+      display: flex;
+      & .icondianhua1 {
+        font-size: 50upx;
+        color: #3385ff;
+        margin-left: 0upx;
+      }
+    }
+  }
+  .bills-info_box {
+    margin-top: 20upx;
+    padding: 30upx 20upx 30upx;
+    // border-bottom: 1px solid #EEEEEE;
+    & > .order-info_box {
+      display: flex;
+      align-items: center;
+      font-size: 26upx;
+      font-weight: 400;
+      margin-bottom: 5upx;
+      & > view:nth-child(1) {
+        color: #999999;
+        width: 135upx;
+        text-align: right;
+      }
+      & > view:nth-child(2) {
+        color: #333333;
+      }
+      & > .price {
+        flex: 1;
+        font-size: 30upx;
+        color: #333333;
+        display: flex;
+        align-items: center;
+        justify-content: flex-end;
+        & .iconxiangyou {
+          color: #999999;
+          font-size: 25upx;
+          margin-left: 12upx;
+        }
+      }
+    }
+  }
+  .content-box {
+    background-color: #ffffff;
+    border-radius: 10upx;
+  }
+  .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: black;
+              font-size: 30upx;
+              font-weight: 700;
+							overflow: hidden;
+							white-space: nowrap;
+							text-overflow: ellipsis;
+							width:360upx;
+            }
+            .item-price {
+              color: #333;
+              font-size: 22upx;
+              .price {
+                font-size: 25upx;
+              }
+            }
+            .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;
+        }
+      }
+    }
+  }
+  .shipping-address {
+    display: flex;
+    align-items: center;
+    margin-top: 20upx;
+    & > view:nth-child(1) {
+      color: #999999;
+      font-size: 28upx;
+      font-weight: 400;
+      display: inline-block;
+      padding: 30upx 0 30upx 20upx;
+      flex: 1;
+      & > text {
+        color: #333333;
+        font-weight: 600;
+      }
+    }
+    & > view:nth-child(2) {
+      font-size: 60upx;
+      color: #d6e7ff;
+      margin-right: 10upx;
+    }
+  }
+  .price-detail {
+    margin-top: 20upx;
+    margin-bottom: 20upx;
+  }
+  .detail-price_box {
+    color: #333333;
+    font-size: 22upx;
+    text-align: right;
+    flex: 1;
+    font-weight: 600;
+    &.red {
+      color: #ff2842;
+    }
+  }
+}
+.app-footer {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  & .admin-button-com {
+    padding: 0;
+    margin-right: 15upx;
+    width: 140upx;
+    height: 70upx;
+    line-height: 70upx;
+    text-align: center;
+    color: #3385ff;
+    border: 1px solid #3385ff;
+    &.active {
+      color: #666666;
+      border: 1px solid #ccc;
+    }
+  }
+}
+.proInfo {
+  margin-top: 20upx;
+}
+.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;
+    }
+  }
+}
+.footer_bar {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100vw;
+  padding: 15upx 0;
+  // height: 100upx;
+  background: #fff;
+  line-height: 100upx;
+  border-top: 1px solid #ddd;
+  z-index: 10;
+  & > view {
+    float: right;
+    height: 70upx;
+    display: inline-block;
+    padding: 0 50upx;
+    background: #3385ff;
+    margin-right: 20upx;
+    border-radius: 8upx;
+    line-height: 70upx;
+    text-align: center;
+    font-size: 32upx;
+    color: #fff;
+  }
+}
+.distribution {
+  line-height: 80upx;
+  padding: 0 40upx 0 20upx;
+  display: flex;
+  justify-content: space-between;
+  .evolve {
+    position: relative;
+    &::after {
+      content: "";
+      position: absolute;
+      top: 50%;
+      right: -20upx;
+      transform: translateY(-50%) rotate(225deg);
+      width: 10upx;
+      height: 10upx;
+      border-left: 1px solid #ddd;
+      border-bottom: 1px solid #ddd;
+    }
+  }
+}
+</style>

+ 152 - 0
hdApp/src/admin/goods/plantCgItem.vue

@@ -0,0 +1,152 @@
+<template>
+  <view class="order-item-view" @click="clickItemEvent">
+    <view class="item-header">
+      <view class="title">
+        <image class="icon" :src="info.ghsAvatar" alt="" />
+        <text class="name">
+          <text>{{ info.ghsName}}</text>
+        </text>
+      </view>
+      <view class="status">{{ getStatusName }} </view>
+    </view>
+    <view class="item-main" >
+      <view class="item-info">
+        <view class="info-row">
+          <text class="info-label"> 日期:</text>
+          <text class="info-value">{{ info.addTime ? info.addTime.substring(0, 16) : '' }}</text>
+        </view>
+        <view class="info-row">
+          <text class="info-label"> 单号:</text>
+          <text class="info-value">{{ info.orderSn }} </text>
+        </view>
+        <view class="info-row">
+          <text class="info-label"> 采购:</text>
+          <text class="info-value">{{ info.shopAdminName }} </text>
+        </view>
+        <view class="info-row">
+          <text class="info-label"> 数量:</text>
+          <text v-if="info.smallNum > 0" class="info-value">{{ info.bigNum }}/{{info.smallNum}}</text>
+          <text class="info-value">{{info.bigNum}}</text>
+        </view>
+      </view>
+      <view class="item-price">¥{{ parseFloat(info.actPrice)||0 }} <text class="iconfont iconxiangyou"></text>
+      </view>
+    </view>
+  </view>
+</template>
+<script>
+export default {
+  props: {
+    info: {
+      required: true
+    }
+  },
+  data () {
+    return {
+    };
+  },
+  computed: {
+    getStatusName () {
+      let statusName = "";
+
+      switch (this.info.status) {
+        case '1':
+          statusName = "待付款";
+          break;
+        case '2':
+          statusName = "待配送";
+          break;
+        case '3':
+          statusName = "配送中";
+          break;
+        case '4':
+          statusName = "已完成";
+          break;
+        case '5':
+          statusName = "已取消";
+          break;
+        default:
+          break;
+      }
+      return statusName;
+    }
+  },
+  methods: {
+    clickItemEvent () {
+      this.$emit("click", this.info);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.order-item-view {
+  padding: 30upx 0;
+  margin-bottom: 20upx;
+  width: 100%;
+  background-color: #fff;
+  .item-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20upx;
+    .title {
+      display: flex;
+      align-items: center;
+      flex: 1;
+      .icon {
+        margin: 0 20upx;
+        width: 50upx;
+        height: 50upx;
+        border-radius: 25upx;
+        border-radius: 50%;
+      }
+      .name {
+        font-size: 32upx;
+        font-weight: 600;
+        color: #333333;
+      }
+    }
+    .status {
+      flex-shrink: 0;
+      margin-right: 20upx;
+      color: $mainColor;
+    }
+  }
+  .item-main {
+    display: flex;
+    padding: 0 20upx;
+    box-sizing: border-box;
+    align-items: flex-end;
+    .item-info {
+      flex: 1;
+      font-size: 26upx;
+      .info-row {
+        margin-top: 12upx;
+        display: flex;
+        align-items: center;
+      }
+      .info-label {
+        font-weight: 400;
+        color: #999999;
+      }
+      .info-value {
+        font-weight: 400;
+        color: #333333;
+      }
+    }
+    .item-price {
+      display: flex;
+      align-items: center;
+      flex-shrink: 0;
+      font-size: 30upx;
+      font-weight: 600;
+      color: #333333;
+      .iconfont {
+        font-size: 28upx;
+        color: #999999;
+        margin-left: 10upx;
+      }
+    }
+  }
+}
+</style>

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

@@ -102,7 +102,7 @@ export default {
         { name: "供应商", img: `${this.$constant.imgUrl}/ghs/home/icon_ghs.png`, url: "/pagesPurchase/order",pf:0 },
         { name: "报损单", img: `${this.$constant.imgUrl}/ghs/home/kcyjs.png`, url: "/admin/breakage/list",pf:1},
         { name: "员工", img: `${this.$constant.imgUrl}/ghs/home/yggl.png`, url: "/admin/staff/list",pf:0 },
-        { name: "成品采购单", img: `${this.$constant.imgUrl}/ghs/home/icon_caigou.png`, url: "/admin/goods/category",pf:1},
+        { name: "成品采购单", img: `${this.$constant.imgUrl}/ghs/home/icon_caigou.png`, url: "/admin/goods/plantCg",pf:1},
         { name: "花材分类", img: `${this.$constant.imgUrl}/ghs/home/hcgl.png`,url: "/admin/itemClass/list",pf:1},
       ],
       totalData: [

+ 3 - 1
hdApp/src/pages.json

@@ -212,7 +212,9 @@
 				{ "path": "plantResult", "style": { "navigationBarTitleText": "结果" } },
 				{ "path": "cgNewPlant", "style": { "navigationBarTitleText": "新采购" } },
 				{ "path": "cgNewPlantResult", "style": { "navigationBarTitleText": "采购成功" } },
-				{ "path": "stockChange", "style": { "navigationBarTitleText": "库存变动记录" } }
+				{ "path": "stockChange", "style": { "navigationBarTitleText": "库存变动记录" } },
+				{ "path": "plantCg", "style": { "navigationBarTitleText": "成品采购单" } },
+				{ "path": "plantCgDetail", "style": { "navigationBarTitleText": "明细" } }
 			]
 		},
 		{