shish 4 ay önce
ebeveyn
işleme
21ae8d5122

+ 274 - 253
hdApp/src/admin/home/workbench.vue

@@ -1,14 +1,14 @@
 <template>
   <view>
     <block v-if="loginStyle  == 0">
-      <view style="width:100vw;text-align: center;">
+      <view class="login-entry">
         <!-- #ifdef MP-WEIXIN -->
-        <view style="margin-top:10upx;font-size:34upx;margin-bottom:30upx;">个人买花</view>
-        <view><button class="admin-button-com big blue" style="width:240upx;" @click="buyItem">去买花</button></view>
+        <view class="login-entry-title login-entry-title--buy">个人买花</view>
+        <view><button class="admin-button-com big blue login-entry-btn" @click="buyItem">去买花</button></view>
         <!-- #endif -->
-        <view style="margin-top:70upx;font-size:34upx;margin-bottom:20upx;">花店进货</view>
-        <view><button class="admin-button-com big blue" style="width:240upx;" @click="pageTo({url:'/admin/home/login'})">去登录</button></view>
-        <view style="font-size:44upx;color:green;text-decoration: underline;margin-top:40upx;" @click="pageTo({url:'/pagesClient/official/apply'})">花店注册</view>
+        <view class="login-entry-title login-entry-title--supply">花店进货</view>
+        <view><button class="admin-button-com big blue login-entry-btn" @click="pageTo({url:'/admin/home/login'})">去登录</button></view>
+        <view class="login-entry-register" @click="pageTo({url:'/pagesClient/official/apply'})">花店注册</view>
       </view>
     </block>
     <block v-else>
@@ -26,24 +26,24 @@
               </view>
             </view>
   
-            <view class="function-grid function-grid--overlay" style="padding: 25upx 0upx 30upx 0upx; display: flex; justify-content: space-around; gap: 12upx;">
-              <view class="function-item function-item--overlay" style="flex: 1; text-align: center; border: 1upx solid rgba(255,255,255,0.5); border-radius: 16upx; padding: 15upx 0;" @click="pageTo({url:'/admin/shop/add?id='+loginInfo.shopId})">
-                <text class="function-text function-text--overlay" style="font-size: 26upx;">我的地址</text>
+            <view class="function-grid function-grid--overlay">
+              <view class="function-item function-item--overlay" @click="pageTo({url:'/admin/shop/add?id='+loginInfo.shopId})">
+                <text class="function-text function-text--overlay function-text--sm">我的地址</text>
               </view>
-              <view class="function-item function-item--overlay" style="flex: 1; text-align: center; border: 1upx solid rgba(255,255,255,0.5); border-radius: 16upx; padding: 15upx 0;" @click="pageTo({url:'/admin/stat/cgItem'})">
-                <text class="function-text function-text--overlay" style="font-size: 26upx;">采购统计</text>
+              <view class="function-item function-item--overlay" @click="pageTo({url:'/admin/stat/cgItem'})">
+                <text class="function-text function-text--overlay function-text--sm">采购统计</text>
               </view>
-              <view class="function-item function-item--overlay" style="flex: 1; text-align: center; border: 1upx solid rgba(255,255,255,0.5); border-radius: 16upx; padding: 15upx 0;" @click="goMore()">
-                <text class="function-text function-text--overlay" style="font-size: 26upx;">已删批发店</text>
+              <view class="function-item function-item--overlay" @click="goMore()">
+                <text class="function-text function-text--overlay function-text--sm">已删批发店</text>
               </view>
             </view>
   
             </view>
-            <view style="text-align:center;font-size:28upx;color:#666;padding:16upx 30upx;margin:0 20upx;background:white;border-radius:30upx;">
-              <view style="display:inline-flex;align-items:center;background:#fff;padding:10upx 25upx;border-radius:20upx;box-shadow:0 2upx 8upx rgba(0,0,0,0.05);">
-                <text style="color:#333;font-weight:500;font-size:28upx;">{{ loginInfo.admin && loginInfo.admin.name ? loginInfo.admin.name : '' }}</text>
-                <text style="margin:0 15upx;color:#eee;">|</text>
-                <text style="color:#666;font-size:28upx;">{{ loginInfo.admin && loginInfo.admin.mobile ? loginInfo.admin.mobile : '' }}</text>
+            <view class="admin-contact-wrap">
+              <view class="admin-contact-inner">
+                <text class="admin-contact-name">{{ loginInfo.admin && loginInfo.admin.name ? loginInfo.admin.name : '' }}</text>
+                <text class="admin-contact-divider">|</text>
+                <text class="admin-contact-mobile">{{ loginInfo.admin && loginInfo.admin.mobile ? loginInfo.admin.mobile : '' }}</text>
               </view>
             </view>
   
@@ -51,8 +51,8 @@
   
             <template v-if="!$util.isEmpty(ad)">
               <block v-for="(adInfo, adIndex) in ad" :key="adIndex">
-                <view style="text-align:center;" @click.stop="pageTo({url:adInfo.url})">
-                  <image :src="adInfo.banner" mode="widthFix" style="width:97%;margin:0 auto;"></image>
+                <view class="ad-wrap" @click.stop="pageTo({url:adInfo.url})">
+                  <image :src="adInfo.banner" mode="widthFix" class="ad-image"></image>
                 </view>
               </block>
             </template>
@@ -64,13 +64,13 @@
                       <view class="section_1 flex-col">
                         <image class="logo" :src="ghsInfo.smallAvatar" @click="enterShop(ghsInfo)" />
                       </view>
-                      <view class="text-group_7 flex-col justify-between" @click="enterShop(ghsInfo)">
+                      <view class="text-group_7 flex-col justify-center" @click="enterShop(ghsInfo)">
                         <text class="text_8">{{ghsInfo.name}}</text>
                         <text class="text_9">
     
                           <block v-if="ghsInfo.cutStyle && ghsInfo.cutStyle == 1">
                             <block v-if="ghsInfo.meetNum>0 || ghsInfo.meetAmount>0">
-                              <text style="color:red;font-weight:bold;" v-if="ghsInfo.cutAmount>0">
+                              <text class="discount-highlight" v-if="ghsInfo.cutAmount>0">
                                 满<text v-if="ghsInfo.meetNum>0">{{ghsInfo.meetNum?ghsInfo.meetNum:0}}扎</text>
                                 <text v-if="ghsInfo.meetAmount>0"><text v-if="ghsInfo.meetNum>0">和</text>{{ghsInfo.meetAmount?ghsInfo.meetAmount:0}}元</text>{{ghsInfo.cutAmount?parseFloat(ghsInfo.cutAmount*100).toString().replace(/0/g,''):0}}折
                               </text>
@@ -78,7 +78,7 @@
                           </block>
                           <block v-else>
                             <block v-if="ghsInfo.meetNum>0 || ghsInfo.meetAmount>0">
-                              <text style="color:red;font-weight:bold;" v-if="ghsInfo.cutAmount>0">
+                              <text class="discount-highlight" v-if="ghsInfo.cutAmount>0">
                                 满<text v-if="ghsInfo.meetNum>0">{{ghsInfo.meetNum?ghsInfo.meetNum:0}}扎</text>
                                 <text v-if="ghsInfo.meetAmount>0"><text v-if="ghsInfo.meetNum>0">和</text>{{ghsInfo.meetAmount?ghsInfo.meetAmount:0}}元</text>优惠{{ghsInfo.cutAmount?parseFloat(ghsInfo.cutAmount):0}}元
                               </text>
@@ -86,6 +86,7 @@
                           </block>
     
                         </text>
+                        <text class="text_distance" v-if="ghsInfo.distance && ghsInfo.distance > 0">{{ Math.round(Number(ghsInfo.distance) / 1000) }}km</text>
                       </view>
                     </view>
                     <view class="box_4 flex-col"></view>
@@ -95,10 +96,10 @@
                       <view class="tag_2 tag_2--bought" @click.stop="pageTo({url:'/pagesPurchase/shopping?ghsId='+ghsInfo.id+'&ghsName='+ghsInfo.name})">
                         <text>购买记录</text> 
                       </view>
-                      <view class="tag_2" @click.stop="callUp(ghsInfo)" style="color:#09C567;border-color:#09C567;font-weight:bold;"> <text>联系本店</text> </view>
-                      <view class="tag_2 tag_2--share" style="color:#09C567;border-color:#09C567;font-weight:bold;position:relative;">
-                        <button open-type="share" :data-ghs="ghsInfo" style="position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:10;"></button>
-                        <text>分享店</text>
+                      <view class="tag_2 tag_2--highlight" @click.stop="callUp(ghsInfo)"> <text>联系本店</text> </view>
+                      <view class="tag_2 tag_2--share tag_2--highlight">
+                        <button open-type="share" :data-ghs="ghsInfo" class="share-button-mask"></button>
+                        <text>分享店</text>
                       </view>
 
                       <!-- 买花记录提示 -->
@@ -114,7 +115,7 @@
                       <view class="show_clear_area flex-row justify-between">
                         <text class="waite_clear_order">
                           待结订单 {{ghsInfo.debtNum}}笔 合计¥{{ghsInfo.debtAmount?parseFloat(ghsInfo.debtAmount):0}}
-                          <text style="margin-left:30upx;" v-if="ghsInfo.remainDebtAmount>0">选订单结 》</text>
+                          <text class="ml-30" v-if="ghsInfo.remainDebtAmount>0">选订单结 》</text>
                         </text>
                       </view>
                     </view>
@@ -122,19 +123,19 @@
                     <block v-if="Number(ghsInfo.balance)>0">
                       <view class="box_6 flex-row" v-if="ghsInfo.remainDebtAmount>0" @click.stop="recharge(ghsInfo)">
                         <view class="show_clear_area flex-row justify-between">
-                          <text class="waite_clear_order" style="color:#3385ff;">
+                          <text class="waite_clear_order waite_clear_order--blue">
                               <text v-if="Number(ghsInfo.balance)>0">减去余额¥{{ ghsInfo.balance ? parseFloat(ghsInfo.balance) : 0 }}</text>
-                              <text v-if="ghsInfo.remainDebtAmount>0" style="margin-left:15upx;">实欠¥{{ ghsInfo.remainDebtAmount }}</text>
-                              <text style="margin-left:30upx;">按金额结 》</text>
+                              <text v-if="ghsInfo.remainDebtAmount>0" class="ml-15">实欠¥{{ ghsInfo.remainDebtAmount }}</text>
+                              <text class="ml-30">按金额结 》</text>
                           </text>
                         </view>
                       </view>
     
                       <view class="box_6 flex-row" v-if="ghsInfo.remainDebtAmount<0" @click.stop="recharge(ghsInfo)">
                         <view class="show_clear_area flex-row justify-between">
-                          <text class="waite_clear_order" style="color:#3385ff;">
+                          <text class="waite_clear_order waite_clear_order--blue">
                               <text>账户余额¥{{ Math.abs(ghsInfo.remainDebtAmount) }}</text>
-                              <text style="margin-left:30upx;">已结清</text>
+                              <text class="ml-30">已结清</text>
                           </text>
                         </view>
                       </view>
@@ -156,11 +157,23 @@
             </template>
 
             <block v-else>
-              <view style="margin:60upx auto 40upx auto;font-weight:bold;font-size:36upx;text-align: center;">暂无批发店</view>
+              <view v-if="isWithinTwoDays" class="no-supplier-tip">附近暂无批发店</view>
+              <block v-else>
+                <view v-if="!shopInfo.lat || !shopInfo.long" class="location-empty-box">
+                  <zui-svg-icon icon="general-location" :width="40" :height="40" color="#09C567"/>
+                  <view class="location-empty-title">开启定位,查看附近批发店</view>
+                  <button class="location-empty-btn" @click="pageTo({url:'/admin/shop/add?id='+loginInfo.shopId+'&openLocation=1'})">开启</button>
+                </view>
+                <view v-else class="location-empty-box">
+                  <zui-svg-icon icon="general-location" :width="40" :height="40" color="#09C567"/>
+                  <view class="location-empty-title">寻找附近批发店</view>
+                  <button class="location-empty-btn" @click="searchGhs()">寻找</button>
+                </view>
+              </block>
             </block>
   
-            <view style="text-align:center;margin-top:50upx;margin-bottom:50upx;color:#827171;font-size:32upx;" @click="toPhone()">
-              <text>厦门中花汇技术支持 <text style="margin:0 20upx 0 20upx;">|</text> 联系厦门中花汇</text>
+            <view class="support-entry" @click="toPhone()">
+              <text>厦门中花汇技术支持 <text class="support-divider">|</text> 联系厦门中花汇</text>
             </view>
   
         </view>
@@ -168,11 +181,11 @@
     </block>
 
     <uni-popup ref="toShowMore" background-color="#fff" type="center" :animation="true" class="class-popup-style">
-      <view style="display:flex;width:100vw;padding:20upx 20upx 40upx 20upx;height:auto;justify-content: space-between;align-items:center;flex-wrap:wrap;max-height:100vh;overflow:auto;">
-        <view style="width:100vw;margin-top:8upx;"><button @click="rechargeChange()">充值记录</button></view>
-        <view style="width:100vw;margin-top:8upx;"><button @click="balanceChange()">余额变动</button></view>
-        <view style="width:100vw;margin-top:8upx;"><button @click="bpSj()">删除</button></view>
-        <view style="width:100vw;margin-top:30upx;"><button @click="closeToShow()">取消</button></view>
+      <view class="more-popup-list">
+        <view class="more-popup-item"><button @click="rechargeChange()">充值记录</button></view>
+        <view class="more-popup-item"><button @click="balanceChange()">余额变动</button></view>
+        <view class="more-popup-item"><button @click="bpSj()">删除</button></view>
+        <view class="more-popup-item more-popup-item--cancel"><button @click="closeToShow()">取消</button></view>
       </view>
     </uni-popup>
   
@@ -211,25 +224,19 @@
   <script>
   import { mapGetters } from "vuex";
   import { getWeixinId } from "@/api/invite";
-  import { getShortUrl } from "@/api/main";
-  import { getStat } from '@/api/console' //getStrokeCount 已弃用
   import { consoleIndex } from "@/api/workbench";
   import autoUpdateMixins from "@/mixins/autoUpdate";
   import { ghsList } from "@/api/purchase";
-  import { changeDelStatus,hasMoreGhs } from "@/api/ghs";
+  import { changeDelStatus,hasMoreGhs,searchNearbyGhs } from "@/api/ghs";
   import {currentShop, uploadShopAvatar} from "@/api/shop";
-  import { clearLogin,hasNotice } from "@/api/admin";
-  import { unReadMsgCount } from "@/api/chat";
+  import { hasNotice } from "@/api/admin";
   import { APIHOST } from "@/config";
   export default {
     name: "workbench",
     mixins: [autoUpdateMixins],
     data () {
       return {
-        overview:[],
         ad:[],
-        showAd:1,
-        constant: this.$constant,
         getappIdList: {},
         data: {
           admin: {},
@@ -238,23 +245,23 @@
           todayData: { income:0.00, order:0, custom:0, expend:0.00, visit:0 },
           isMini:0
         },
-        yesterdayIncome: 0,
         supplierList: [],
         //登录状态 0未登录 1登录仅用到了采购 2登录用到完整功能
         loginStyle :0,
-        backAction:'',
-        lookMoney:1,
         currentGhs:{},
         displayGhsList: [],// 用于显示在弹框中的供货商列表
         shopInfo:[],
-        urlNo:1,
-        shortUrlList:[],
-        unReadMsgNum:0, //未读消息数
         showBoughtTooltip: false, // 是否显示买花记录提示
+        supplierSearchTime: 0, // 查找附近批发店时间
       };
     },
     computed: {
-      ...mapGetters({ loginInfo: "getLoginInfo",dictInfo:"getDictionariesInfo",myShopInfo:"getMyShopInfo" })
+      ...mapGetters({ loginInfo: "getLoginInfo" }),
+      isWithinTwoDays() {
+        if (!this.supplierSearchTime) return false;
+        const twoDays = 2 * 24 * 60 * 60 * 1000;
+        return (Date.now() - this.supplierSearchTime) < twoDays;
+      }
     },
     watch: {
       //只需要采购花材的花店不显示底部菜单
@@ -274,19 +281,18 @@
       })
     },
     onShow () {
-        this.unReadMsgNum = 0; // 重置未读消息数
-        
         const isClosed = uni.getStorageSync('boughtTooltipClosed');
         this.showBoughtTooltip = (isClosed !== true && isClosed !== 'true' && isClosed !== '1');
       
+        this.supplierSearchTime = uni.getStorageSync('supplier_search_time') || 0;
+
         this.init();
     
         // 判断是否登录
         if(!this.$util.isEmpty(this.loginInfo.admin) && this.loginInfo.admin.currentShopId > 0){
             this.handleLoginStyle()  
-            this.showShopName()
+            //this.showShopName()
         }
-
     },
     onShareAppMessage(res) {
       if (res.from === 'button') {
@@ -313,7 +319,7 @@
         this.showBoughtTooltip = false;
         uni.setStorageSync('boughtTooltipClosed', '1');
       },
-    onChooseAvatar(e){
+      onChooseAvatar(e){
         if(this.loginInfo && this.loginInfo.staff && this.loginInfo.staff.founder != 2){
           this.$msg('门店LOGO请老板修改')
           return
@@ -400,13 +406,6 @@
         
         consoleIndex({isMini:this.isMini}).then(res => {
           this.data = res.data
-          this.lookMoney = res.data.lookMoney
-        })
-  
-        getStat().then(res=>{
-          if(res.code == 1){
-            this.overview = res.data.overview
-          }
         })
         this.showShopName()
       },
@@ -414,47 +413,13 @@
           this.loginStyle  = 1
           this.toRemindCustom()
       },
-      getMallData(){
-        getShortUrl().then(res=>{
-          if(res.code == 1){
-            this.shortUrlList = res.data?res.data:[]
-          }
-        })
-      },
-      goItemKjKd(){
-        if(this.myShopInfo && Number(this.myShopInfo.defaultCustomId)>0){
-          this.$util.pageTo({url:'/admin/billing/index2?customId='+this.myShopInfo.defaultCustomId})
-        }else{
-          this.$msg('请设置快捷开单的对应客户')
-        }
-      },
-      goItemKd(){
-        this.$util.pageTo({url:'/admin/custom/selectCustom'})
-      },
-      goHsKjKd(){
-        if(this.myShopInfo && Number(this.myShopInfo.defaultCustomId)>0){
-          this.$util.pageTo({url:'/admin/billing/hs?customId='+this.myShopInfo.defaultCustomId})
-        }else{
-          this.$msg('请设置快捷开单的对应客户')
-        }
-      },
-      goHsKd(){
-        this.$util.pageTo({url:'/admin/custom/selectCustom?style=3'})
-      },
-      setRecharge(){
-        this.$util.pageTo({url:'/admin/recharge/discount'})
-      },
-      setMemberLevel(){
-        this.$util.pageTo({url:'/admin/member/level'})
-      },
       closeToShow(){
         this.$refs.toShowMore.close()
       },
       // 显示供货商提示弹框
       showSupplierNotice() {
         // 设置要显示的供货商列表,最多显示5个
-        const supplierList = Array.isArray(this.supplierList) ? this.supplierList : []
-        this.displayGhsList = supplierList.filter(item => item && item.name).slice(0, 5)
+        this.displayGhsList = this.supplierList.filter(item => item.name).slice(0, 5)
         this.$refs.supplierNoticePopup.open('center')
       },
       // 关闭供货商提示弹框
@@ -511,20 +476,6 @@
       goMore(){
         this.$util.pageTo({url: '/pagesPurchase/pb'})
       },
-      openPfShop(){
-        this.pageTo({url: '/pagesPurchase/contact'})
-      },
-      suggest(){
-        this.pageTo({url: '/pagesPurchase/contact'})
-      },
-      bookItem(item){
-        const { id } = item
-        this.pageTo({url: '/pagesPurchase/bookProduct?id='+id})
-      },
-      goBalanceChange(info){
-        this.closeToShow()
-        this.pageTo({url: '/admin/ghs/balanceChange?ghsId='+info.id})
-      },
       rechargeChange(){
         this.closeToShow()
         this.pageTo({url: '/admin/ghs/rechargeChange?ghsId='+this.currentGhs.id})
@@ -578,39 +529,15 @@
         }
         that.pageTo({url: '/pagesPurchase/ghsProduct?id='+item.id})
       },
-      enterShop2(item) {
-        let that = this
-        if(item.isOpen == 0){
-          this.$msg('已休店,请选择其它门店')
-          return false
-        }
-        that.pageTo({url: '/pagesPurchase/ghsProduct2?id='+item.id})
-      },
-      whyHave(){
-        this.$util.confirmModal({content:'付款金额不足消欠款单时,存为余额下次使用'},() => {})
-      },
       settleAccounts (item) {
         this.pageTo({ url: '/pagesPurchase/gathering?id='+item.id})
       },
-      gotoDetails (val) {
-        this.pageTo({ url: '/pagesPurchase/purDetails?status=' + val.status + '&id=' + val.id, type:2 })
-      },
       getGHSList () {
         return ghsList().then(res => {
-          this.supplierList = res && res.data && Array.isArray(res.data.list) ? res.data.list : []
+          this.supplierList = res.data.list
           this.ad = res.data.ad ? res.data.ad : []
-          this.showAd = res.data.showAd ? res.data.showAd : 0
         })
       },
-      goPage (item) {
-        if(this.getLoginInfo.pfShopId && Number(this.getLoginInfo.pfShopId)>0){
-          if(item.pf == 0){
-            this.$msg('开发中')
-            return false
-          }
-        }
-        this.$util.pageTo(item)
-      },
       toRemindCustom(){
           if(this.loginStyle==1){
             hasMoreGhs().then(ret=>{
@@ -620,120 +547,52 @@
             })
           }
       },
-      noticeFn (item) {
-        this.$util.pageTo({ url: item.page })
-      },
-      goToWastage () {
-        this.$util.pageTo({url:'/admin/breakage/list'})
-      },
-      goToKindStat(){
-        this.$util.pageTo({url:'/admin/stat/kind'})
-      },
-      goToProfit () {
-        this.$util.pageTo({url:'/admin/stat/profit'})
-      },
-      // 直接打开商城
-      openMallDirect() {
-        this.closeMallOptions()
-        let url = ''
-        //花束商城
-        if(this.urlNo == 1){
-          url = 'pages/home/category'
-        }
-        //相册
-        if(this.urlNo == 2){
-          url = 'pages/home/mall'
-        }
-        //绿植花材商城
-        if(this.urlNo == 3){
-          url = 'pages/item/item'
-        }
-        this.goToMallPt(url)
-      },
-      // 复制商城链接
-      copyMallLink() {
-        this.closeMallOptions()
-        let currentShortUrl = ''
-        let text = ""
-        //花束商城
-        if(this.urlNo == 1){
-          currentShortUrl = this.shortUrlList['goodsUrl']
-          text = "点击下面链接,打开商城\n\n"+currentShortUrl+"\n\n链接是我们小程序,放心点击"
-        }
-        //相册
-        if(this.urlNo == 2){
-          currentShortUrl = this.shortUrlList['imgUrl']
-          text = "点击下面链接,打开相册\n\n"+currentShortUrl+"\n\n链接是我们小程序,放心点击"
-        }
-        //绿植花材商城
-        if(this.urlNo == 3){
-          currentShortUrl = this.shortUrlList['itemUrl']
-          text = "点击下面链接,打开商城\n\n"+currentShortUrl+"\n\n链接是我们小程序,放心点击"
-        }
-        uni.setClipboardData({
-          data: text,
-          success: () => {
-            this.$msg('已复制')
-          },
-          fail: () => {
-            this.$msg('复制失败')
+      searchGhs(){
+        searchNearbyGhs().then(res=>{
+          if(res.code == 1){
+            uni.setStorageSync('supplier_search_time', Date.now()) //设置缓存时间--记录当前查找附近批发店的时间
+            //重新刷新列表
+            this.getGHSList()
+            this.$msg('查找成功')
+          }else{
+            this.$msg(res.msg)
           }
         })
-      },
-      goToMallPt (url) {
-        // #ifdef MP-WEIXIN
-        let self = this
-        uni.navigateToMiniProgram({
-          appId: this.getappIdList.mall.miniAppId,
-          path: url + '?account=' + self.loginInfo.shopId,
-          //develop 开发版 trial 体验版 release 正式版
-          envVersion: process.env.NODE_ENV === 'development' ? 'develop' : 'release',
-          extraData: {
-            'hdShopAdminId': self.loginInfo.shopAdminId
-          },
-          success (res) {}
-        })
-        // #endif
-        // #ifdef APP-PLUS
-        let that = this
-  
-        if(plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})){
-          plus.share.getServices(function(s){
-            var sweixin
-            for (var i = 0; i < s.length; i++) {
-              var t = s[i];
-              if (t.id == 'weixin') {
-                  sweixin = t;
-              }
-            }
-            if (sweixin && sweixin.nativeClient) {
-              let miniOriginalId = that.dictInfo.miniOriginalId && that.dictInfo.miniOriginalId.current && that.dictInfo.miniOriginalId.current.mall ? that.dictInfo.miniOriginalId.current.mall : ''
-              console.log(miniOriginalId)
-              sweixin.launchMiniProgram({
-                id: miniOriginalId,
-                path: '/'+url+'?account='+that.loginInfo.shopId,
-                type: 0
-              });
-            } else {
-              that.$msg("没有找到微信服务")
-              //that.$msg("获取微信失败:" + e.message)
-              console.log(JSON.stringify(e));
-            }
-          }, function(e){
-              that.$msg("没有找到微信服务哦")
-              //that.$msg("获取微信失败:" + e.message)
-              console.log(JSON.stringify(e));
-          });
-        } else {
-          this.$msg("即将跳转小程序,请安装微信")
-          return false
-        }
-        // #endif
       }
     }
   };
   </script>
   <style lang="scss" scoped>
+  .login-entry {
+    width: 100vw;
+    text-align: center;
+  }
+
+  .login-entry-title {
+    font-size: 34upx;
+  }
+
+  .login-entry-title--buy {
+    margin-top: 10upx;
+    margin-bottom: 30upx;
+  }
+
+  .login-entry-title--supply {
+    margin-top: 70upx;
+    margin-bottom: 20upx;
+  }
+
+  .login-entry-btn {
+    width: 240upx;
+  }
+
+  .login-entry-register {
+    margin-top: 40upx;
+    font-size: 44upx;
+    color: green;
+    text-decoration: underline;
+  }
+
   .order-page {
   .ghs_list_page {
     background-color: rgba(255, 255, 255, 1);
@@ -810,14 +669,27 @@
       }
       .function-grid--overlay {
         background: transparent;
+        padding: 25upx 0 30upx 0;
+        display: flex;
+        justify-content: space-around;
       }
       .function-item--overlay {
+        flex: 1;
+        text-align: center;
+        border-radius: 16upx;
+        padding: 15upx 0;
         border-color: rgba(255,255,255,0.5);
         background: rgba(255,255,255,0.12);
       }
+      .function-item--overlay + .function-item--overlay {
+        margin-left: 12upx;
+      }
       .function-text--overlay {
         color: #ffffff;
       }
+      .function-text--sm {
+        font-size: 26upx;
+      }
     }
     .flex-col {
       display: flex;
@@ -879,8 +751,10 @@
           }
           .text-group_7 {
             width: 533upx;
-            height: 99upx;
+            min-height: 99upx;
+            height: auto;
             margin-top: 5upx;
+            justify-content: center;
             .text_8 {
               display:inline-block;
               width: 550upx;
@@ -892,6 +766,7 @@
               white-space: nowrap;
               line-height:38upx;
               overflow:hidden;
+              margin-bottom: 12upx;
             }
             .text_9 {
               width: 533upx;
@@ -902,7 +777,12 @@
               text-align: left;
               white-space: nowrap;
               line-height: 24upx;
-              margin-top: 10upx;
+              margin-bottom: 10upx;
+            }
+            .text_distance {
+              font-size: 26upx;
+              color: #666;
+              line-height: 24upx;
             }
           }
         }
@@ -955,6 +835,23 @@
           .tag_2--share {
             padding-left: 2upx;
             padding-right: 2upx;
+            position: relative;
+          }
+
+          .tag_2--highlight {
+            color: #09C567;
+            border-color: #09C567;
+            font-weight: bold;
+          }
+
+          .share-button-mask {
+            position: absolute;
+            top: 0;
+            left: 0;
+            width: 100%;
+            height: 100%;
+            opacity: 0;
+            z-index: 10;
           }
         }
           .box_6 {
@@ -976,6 +873,15 @@
               white-space: nowrap;
               line-height: 29upx;
             }
+            .waite_clear_order--blue {
+              color: #3385ff;
+            }
+            .ml-15 {
+              margin-left: 15upx;
+            }
+            .ml-30 {
+              margin-left: 30upx;
+            }
           }
           }
           .button_4 {
@@ -1051,6 +957,118 @@
   }
   }
   
+  .admin-contact-wrap {
+    text-align: center;
+    font-size: 28upx;
+    color: #666;
+    padding: 16upx 30upx;
+    margin: 0 20upx;
+    background: #fff;
+    border-radius: 30upx;
+  }
+
+  .admin-contact-inner {
+    display: inline-flex;
+    align-items: center;
+    background: #fff;
+    padding: 10upx 25upx;
+    border-radius: 20upx;
+    box-shadow: 0 2upx 8upx rgba(0, 0, 0, 0.05);
+  }
+
+  .admin-contact-name {
+    color: #333;
+    font-weight: 500;
+    font-size: 28upx;
+  }
+
+  .admin-contact-divider {
+    margin: 0 15upx;
+    color: #eee;
+  }
+
+  .admin-contact-mobile {
+    color: #666;
+    font-size: 28upx;
+  }
+
+  .ad-wrap {
+    text-align: center;
+  }
+
+  .ad-image {
+    width: 97%;
+    margin: 0 auto;
+  }
+
+  .discount-highlight {
+    color: red;
+    font-weight: bold;
+  }
+
+  .no-supplier-tip {
+    margin: 60upx auto 40upx auto;
+    font-weight: bold;
+    font-size: 36upx;
+    text-align: center;
+    color: #999;
+  }
+
+  .location-empty-box {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-top: 100upx;
+    margin-bottom: 100upx;
+  }
+
+  .location-empty-title {
+    font-size: 36upx;
+    color: #999;
+    font-weight: bold;
+    margin-bottom: 40upx;
+  }
+
+  .location-empty-btn {
+    background-color: #09C567;
+    color: #fff;
+    width: 240upx;
+    border-radius: 10upx;
+  }
+
+  .support-entry {
+    text-align: center;
+    margin-top: 50upx;
+    margin-bottom: 50upx;
+    color: #827171;
+    font-size: 32upx;
+  }
+
+  .support-divider {
+    margin: 0 20upx 0 20upx;
+  }
+
+  .more-popup-list {
+    display: flex;
+    width: 100vw;
+    padding: 20upx 20upx 40upx 20upx;
+    height: auto;
+    justify-content: space-between;
+    align-items: center;
+    flex-wrap: wrap;
+    max-height: 100vh;
+    overflow: auto;
+  }
+
+  .more-popup-item {
+    width: 100vw;
+    margin-top: 8upx;
+  }
+
+  .more-popup-item--cancel {
+    margin-top: 30upx;
+  }
+
   /* 供货商提示弹框样式 */
   .supplier-notice-popup {
     .supplier-notice-container {
@@ -1128,7 +1146,10 @@
         .supplier-notice-buttons {
           display: flex;
           justify-content: space-between;
-          gap: 20upx;
+          
+          .admin-button-com + .admin-button-com {
+            margin-left: 20upx;
+          }
           
           .admin-button-com {
             flex: 1;
@@ -1160,7 +1181,7 @@
   top: 86upx;
   left: 50%;
   transform: translateX(-50%);
-  z-index: 1;
+  z-index: 10000;
   display: flex;
   flex-direction: column;
   align-items: center;

+ 16 - 9
hdApp/src/admin/shop/add.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="app-content">
-		<form @submit="formSubmit" @reset="formReset">
+		<form @submit="formSubmit">
 			<view class="module-com input-line-wrap">
 				<tui-list-cell class="line-cell" :hover="false" v-if="merchantName!=''">
 					<view class="tui-title">门店名称</view>
@@ -178,7 +178,8 @@ export default {
 				img: [],
 				default:0,
 				superWx:[],
-				rechargeWeal: 0
+				rechargeWeal: 0,
+				openLocation:0 // 是否开启定位 0不开启 1开启
 			},
 			hasMap:0, // 是否具备地址功能 0不具备 1具备
 			showRegion: false,
@@ -212,13 +213,13 @@ export default {
 		init() {
 
 		},
-	defaultChange(e){
-		this.form.default = e.target.value ? 1 : 0
-	},
-	updateRechargeWeal(value){
-		this.form.rechargeWeal = value
-	},
-	imgUploadSuccess(res) {
+		defaultChange(e){
+			this.form.default = e.target.value ? 1 : 0
+		},
+		updateRechargeWeal(value){
+			this.form.rechargeWeal = value
+		},
+		imgUploadSuccess(res) {
 			var imgReturn = JSON.parse(res.data)
 			if(imgReturn.code == 1){
 				this.currentImgData.push(imgReturn.data.smallUrl)
@@ -333,6 +334,7 @@ export default {
 			if(Array.isArray(this.form.superWx) && !this.$util.isEmpty(this.form.superWx)){
 				superWx = this.form.superWx[0]
 			}
+			this.form.openLocation = this.option.openLocation ? 1 : 0
 			this.form = {...this.form,...this.region,superWx:superWx}
 			uni.showLoading({mask:true})
 			hostFn(this.form).then(res => {
@@ -340,6 +342,11 @@ export default {
 				let promptText = this.option.id ? '修改成功!' : '添加成功!'
 				this.$msg(promptText)
 				uni.removeStorageSync('currentShopInfo')
+				
+				// 设置缓存时间--记录当前查找附近批发店的时间
+				if (this.option.openLocation) {
+					uni.setStorageSync('supplier_search_time', Date.now())
+				}
 
 				uni.navigateBack({})
 

+ 4 - 0
hdApp/src/api/ghs/index.js

@@ -68,4 +68,8 @@ export const balanceChangeList = data => {
 
 export const getRechargeList = data => {
 	return https.get('/ghs-recharge/list', data)
+}
+
+export const searchNearbyGhs = data => {
+	return https.get('/ghs/search-nearby-ghs', data)
 }

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
hdApp/src/assets/svg-icons/general/location.svg


Dosya farkı çok büyük olduğundan ihmal edildi
+ 5 - 1
hdApp/src/static/svg-icons-lib.js


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor