Bläddra i källkod

Merge branch 'master' of http://124.70.211.186:3000/zxh/YXGJ

codeMan 1 år sedan
förälder
incheckning
f511b00cb0

+ 24 - 19
cloud/contacts/index.vue

@@ -6,19 +6,19 @@
         <view class="content">
             <view class="type-list">
                 <u-list>
-                    <u-list-item v-for="(item,index) in groupList" :key="item.sys_phonebookgroupid">
-                        <view :class="['type-item',act == index ? 'active' : '']" @click="typeClick(index,item)">
+                    <u-list-item v-for="(item, index) in groupList" :key="item.sys_phonebookgroupid">
+                        <view :class="['type-item', act == index ? 'active' : '']" @click="typeClick(index, item)">
                             {{ item.groupname }}
                         </view>
                     </u-list-item>
                 </u-list>
             </view>
-            
+
             <view class="list">
                 <My_listbox ref="List" @getlist="getList" :bottomHeight="70" :isShowEmpty="false">
                     <List :list="list" v-if="list.length"></List>
-                    <view v-else :style="{marginTop:tovw(150)}">
-                        <u-empty mode="data" size="small"/>
+                    <view v-else :style="{ marginTop: tovw(150) }">
+                        <u-empty mode="data" size="small" />
                     </view>
                 </My_listbox>
             </view>
@@ -29,10 +29,10 @@
 <script>
 import List from './list.vue'
 export default {
-    components:{List},
-    data () {
+    components: { List },
+    data() {
         return {
-            list:[],
+            list: [],
             content: {
                 "pageNumber": 1,
                 "pageSize": 20,
@@ -51,16 +51,16 @@ export default {
                     }
                 },
             },
-            groupList:[],
-            act:0
+            groupList: [],
+            act: 0
         }
     },
     methods: {
-        onSearch (condition) {
+        onSearch(condition) {
             this.content.where.condition = condition
             this.getList(true)
         },
-        typeClick (index,item) {
+        typeClick(index, item) {
             this.act = index
             this.content.where.groupname = item.groupname
             this.getList(true)
@@ -82,16 +82,16 @@ export default {
                 })
             })
         },
-        async getGroup () {
+        async getGroup() {
             let res = await this.$Http.basic(this.groupParam)
             this.groupList = res.data
             if (this.groupList.length) this.content.where.groupname = this.groupList[0].groupname
             this.getList()
-            console.log(this.groupList,'分组列表');
+            console.log(this.groupList, '分组列表');
         },
-        onLoad () {
+        onLoad() {
             uni.setNavigationBarTitle({
-                title:'通讯录',
+                title: '通讯录',
             })
             this.getGroup()
         }
@@ -103,16 +103,20 @@ export default {
 /deep/.u-list {
     height: calc(100vh - 55px) !important;
 }
+
 .cantacts {
     box-sizing: border-box;
     background: #ffffff;
+
     .content {
         font-family: Source Han Sans SC, Source Han Sans SC;
         display: flex;
+
         .type-list {
             background: #F7F7F7;
             width: 90px;
             flex-basis: 90px;
+
             .type-item {
                 font-weight: 400;
                 font-size: 14px;
@@ -124,12 +128,13 @@ export default {
                 padding: 12px 16px;
             }
         }
+
         .active {
             background: #ffffff !important;
         }
-        .list { 
+
+        .list {
             flex: 1;
         }
     }
-}
-</style>
+}</style>

+ 7 - 0
packageA/dailyYttendance/index.vue

@@ -70,6 +70,13 @@ export default {
         this.content.where.year = time[0];
         this.content.where.month = time[1];
         this.getList(true)
+        
+        this.$Http.basic({
+            "id": 2024060710172602,
+            "content": {},
+        }).then(res => {
+            console.log("签到", res)
+        })
     },
     onShow() {
         if (this.content.pageNumber && this.content.pageNumber >= 2) this.getList(true)

+ 370 - 323
pages/index/index/index.vue

@@ -1,375 +1,422 @@
 <template>
-    <view>
-        <view @click="showShopOtions = true" class="head-shop" v-if="shopDetail.storename" hover-class="navigator-hover">
-            <view class="head-shop-name">
-                {{ shopDetail.storename }} <text class="iconfont icon-a-wodetiaozhuan" />
-            </view>
-            <view class="head-shop-distance">
-                距您{{ shopDetail.distance }}
-            </view>
-        </view>
-
-        <slideshow ref="indexTop" />
-        <apps ref="apps" />
+  <view>
+    <view
+      @click="showShopOtions = true"
+      class="head-shop"
+      v-if="shopDetail.storename"
+      hover-class="navigator-hover"
+    >
+      <view class="head-shop-name">
+        {{ shopDetail.storename }}
+        <text class="iconfont icon-a-wodetiaozhuan" />
+      </view>
+      <view class="head-shop-distance"> 距您{{ shopDetail.distance }} </view>
+    </view>
 
-        <view class="shop" v-if="shopDetail.storename">
-            <u-image v-if="shopDetail.cover" :src="shopDetail.cover" @click="previewImg(shopDetail.cover)" :lazy-load="true"
-                :width="tovw(335)" :height="tovw(134)" radius="8" />
-            <view class="head" :style="{ marginTop: shopDetail.cover ? tovw(10) : '' }">
-                <view class="text">
-                    当前服务导购
-                </view>
-                <view class="icons">
-                    <view class="icon-box" hover-class="navigator-hover" @click="goAtOnce">
-                        <text class="iconfont icon-dizhi-hui" />
-                    </view>
-                    <view v-if="shopDetail.phonenumber" class="icon-box" hover-class="navigator-hover"
-                        @click="callPhone(shopDetail.phonenumber)">
-                        <text class="iconfont icon-dianhua" />
-                    </view>
-                </view>
-            </view>
-            <view class="user">
-                <view class="headpic">
-                    <image v-if="shopDetail.headpic" class="image" :src="shopDetail.headpic" mode="aspectFill" lazy-load />
-                    <image v-else class="image"
-                        src="https://yossys06593.obs.cn-east-3.myhuaweicloud.com:443/202406011717209838416B6150695f.webp"
-                        mode="aspectFill" lazy-load />
-                </view>
-                <view class="introduce">
-                    <view class="name u-line-1">
-                        {{ shopDetail.name || '--' }}
-                    </view>
-                    <view class="shop-name u-line-1">
-                        {{ shopDetail.storename || '--' }}
-                    </view>
-                </view>
-            </view>
-            <view class="bottom">
-                <text class="iconfont icon-dizhi-hui" /> {{ getCity(shopDetail) }}
-            </view>
+    <slideshow ref="indexTop" />
+    <apps ref="apps" />
+
+    <view class="shop" v-if="shopDetail.storename">
+      <u-image
+        v-if="shopDetail.cover"
+        :src="shopDetail.cover"
+        @click="previewImg(shopDetail.cover)"
+        :lazy-load="true"
+        :width="tovw(335)"
+        :height="tovw(134)"
+        radius="8"
+      />
+      <view
+        class="head"
+        :style="{ marginTop: shopDetail.cover ? tovw(10) : '' }"
+      >
+        <view class="text"> 当前服务导购 </view>
+        <view class="icons">
+          <view
+            class="icon-box"
+            hover-class="navigator-hover"
+            @click="goAtOnce"
+          >
+            <text class="iconfont icon-dizhi-hui" />
+          </view>
+          <view
+            v-if="shopDetail.phonenumber"
+            class="icon-box"
+            hover-class="navigator-hover"
+            @click="callPhone(shopDetail.phonenumber)"
+          >
+            <text class="iconfont icon-dianhua" />
+          </view>
         </view>
+      </view>
+      <view class="user">
+        <view class="headpic">
+          <image
+            v-if="shopDetail.headpic"
+            class="image"
+            :src="shopDetail.headpic"
+            mode="aspectFill"
+            lazy-load
+          />
+          <image
+            v-else
+            class="image"
+            src="https://yossys06593.obs.cn-east-3.myhuaweicloud.com:443/202406011717209838416B6150695f.webp"
+            mode="aspectFill"
+            lazy-load
+          />
+        </view>
+        <view class="introduce">
+          <view class="name u-line-1">
+            {{ shopDetail.name || "--" }}
+          </view>
+          <view class="shop-name u-line-1">
+            {{ shopDetail.storename || "--" }}
+          </view>
+        </view>
+      </view>
+      <view class="bottom">
+        <text class="iconfont icon-dizhi-hui" /> {{ getCity(shopDetail) }}
+      </view>
+    </view>
 
-        <slideshow ref="indexBottom" />
-        <floatBut isSlot>
-            <contact>
-                <view class="contact">
-                    <view class="iconfont icon-kefu" />
-                    <view class="text">
-                        客服
-                    </view>
-                </view>
-            </contact>
-        </floatBut>
-        <view style="height: 80px;" />
-        <u-popup :show="showShopOtions" :round="8" @close="showShopOtions = false">
-            <view class="popup-box">
-                <view class="popup-row" style="color: #666666;font-size: 14px;">
-                    门店定位
-                </view>
-
-                <scroll-view :style="{ maxHeight: tovw(200) }" class="scroll-view" scroll-y>
-                    <view class="popup-row" v-for="item in  storeList " :key="item.sa_storeid" hover-class="navigator-hover"
-                        :style="{
-                            color: item.sa_storeid == shopDetail.sa_storeid ? '#C30D23' : ''
-                        }" @click="changeStore(item)">
-                        {{ item.storename }}
-                    </view>
-                </scroll-view>
+    <slideshow ref="indexBottom" />
+    <floatBut isSlot>
+      <contact>
+        <view class="contact">
+          <view class="iconfont icon-kefu" />
+          <view class="text"> 客服 </view>
+        </view>
+      </contact>
+    </floatBut>
+    <view style="height: 80px" />
+    <u-popup :show="showShopOtions" :round="8" @close="showShopOtions = false">
+      <view class="popup-box">
+        <view class="popup-row" style="color: #666666; font-size: 14px">
+          门店定位
+        </view>
 
-                <navigator @click="showShopOtions = false" class="popup-row" url="/packageA/shop/history"
-                    hover-class="navigator-hover" open-type="navigate">
-                    历史足迹
-                </navigator>
-                <view class="popup-row" hover-class="navigator-hover" @click="getLocaT">
-                    <u-loading-icon v-if="getLocationLoading" />
-                    <text v-else>
-                        重新定位
-                    </text>
-                </view>
-            </view>
-        </u-popup>
-    </view>
+        <scroll-view
+          :style="{ maxHeight: tovw(200) }"
+          class="scroll-view"
+          scroll-y
+        >
+          <view
+            class="popup-row"
+            v-for="item in storeList"
+            :key="item.sa_storeid"
+            hover-class="navigator-hover"
+            :style="{
+              color: item.sa_storeid == shopDetail.sa_storeid ? '#C30D23' : '',
+            }"
+            @click="changeStore(item)"
+          >
+            {{ item.storename }}
+          </view>
+        </scroll-view>
+
+        <navigator
+          @click="showShopOtions = false"
+          class="popup-row"
+          url="/packageA/shop/history"
+          hover-class="navigator-hover"
+          open-type="navigate"
+        >
+          历史足迹
+        </navigator>
+        <view class="popup-row" hover-class="navigator-hover" @click="getLocaT">
+          <u-loading-icon v-if="getLocationLoading" />
+          <text v-else> 重新定位 </text>
+        </view>
+      </view>
+    </u-popup>
+  </view>
 </template>
 
 <script>
-import { viewImage } from "../../../utils/settleFiles"
-import contact from "../../../components/contact"
-import apps from "./modules/apps"
+import { viewImage } from "../../../utils/settleFiles";
+import contact from "../../../components/contact";
+import apps from "./modules/apps";
 export default {
-    components: { contact, apps },
-    props: {
-        sa_storeid: {
-            type: [Number, String],
-            default: 0
-        }
+  components: { contact, apps },
+  props: {
+    sa_storeid: {
+      type: [Number, String],
+      default: 0,
     },
-    data() {
-        return {
-            updatePage: true,
-            shopDetail: {
-                storename: "",
-                distance: ""
-            },
-            showShopOtions: false,
-            getLocationLoading: true,
-            storeList: [],
-            changeShop: false,
-        }
+  },
+  data() {
+    return {
+      updatePage: true,
+      shopDetail: {
+        storename: "",
+        distance: "",
+      },
+      showShopOtions: false,
+      getLocationLoading: true,
+      storeList: [],
+      changeShop: false,
+    };
+  },
+  watch: {
+    shopDetail: function (newVal) {
+      if (newVal) {
+        uni.removeStorageSync("shop");
+        uni.setStorageSync("shop", newVal);
+      } else {
+      }
     },
-    watch: {
-        shopDetail: function (newVal) {
-            if (newVal) {
-                uni.removeStorageSync('shop');
-                uni.setStorageSync('shop', newVal)
-            } else {
-
-            }
-        }
+  },
+  methods: {
+    init(callBack) {
+      this.$refs.apps.init();
+      Promise.all([
+        this.getLocaT(),
+        this.$refs.indexTop.getBanners(["indexTop"]),
+        this.$refs.indexBottom.getBanners(["indexBottom"]),
+      ]).then((res) => {
+        callBack();
+        this.updatePage = false;
+      });
+
+      this.$Http.changeShop = function (item) {
+        this.shopDetail = item;
+        this.changeShop = true;
+        uni.navigateBack();
+        uni.showToast({
+          title: "切换门店成功",
+          icon: "none",
+          duration: 2000,
+        });
+      }.bind(this);
+
+      setTimeout(() => {
+        callBack();
+      }, 5000);
+    },
+    previewImg(url) {
+      viewImage(url);
     },
-    methods: {
-        init(callBack) {
-            this.$refs.apps.init();
-            Promise.all([this.getLocaT(), this.$refs.indexTop.getBanners(['indexTop']), this.$refs.indexBottom.getBanners(['indexBottom'])]).then(res => {
-                callBack()
-                this.updatePage = false;
+    changeStore(item) {
+      this.shopDetail = item;
+      this.showShopOtions = false;
+    },
+    getLocaT() {
+      return new Promise((resolve, reject) => {
+        if (this.changeShop) return resolve();
+        this.getLocationLoading = true;
+        this.getLocation().then((s) => {
+          console.log("获取地理位置信息", s);
+          //"sa storeid":3
+          let content = {
+            longitude: s ? s.longitude : "",
+            latitude: s ? s.latitude : "",
+            date: Date.now(),
+          };
+          if (this.sa_storeid) content.sa_storeid = this.sa_storeid;
+          this.$Http
+            .basic({
+              id: 20240416153202,
+              content,
             })
-
-            this.$Http.changeShop = function (item) {
-                this.shopDetail = item;
-                this.changeShop = true;
-                uni.navigateBack()
-                uni.showToast({
-                    title: "切换门店成功",
-                    icon: "none",
-                    duration: 2000,
-                })
-            }.bind(this)
-
-
-            setTimeout(() => {
-                callBack()
-            }, 5000);
-        },
-        previewImg(url) {
-            viewImage(url)
-        },
-        changeStore(item) {
-            this.shopDetail = item;
-            this.showShopOtions = false;
+            .then((res) => {
+              resolve();
+              this.getLocationLoading = false;
+              this.showShopOtions = false;
+              this.changeShop = false;
+              console.log("获取最近门店信息", res);
+              if (this.cutoff(res.msg)) return;
+              if (res.data.length) {
+                let list = res.data.map((v) => {
+                  v.cover = v.attinfos.length
+                    ? this.getSpecifiedImage(v.attinfos[0])
+                    : uni.getStorageSync("site").logo || "";
+                  v.distance =
+                    v.distance > 1000
+                      ? (v.distance / 1000).toFixed(2) - 0 + "km"
+                      : v.distance.toFixed(2) - 0 + "m";
+                  return v;
+                });
+                this.shopDetail = list[0];
+                this.storeList = list;
+              }
+            });
+        });
+      });
+    },
+    goAtOnce() {
+      uni.openLocation({
+        latitude: this.shopDetail.latitude - 0,
+        longitude: this.shopDetail.longitude - 0,
+        address: this.shopDetail.address,
+        name: this.shopDetail.storename,
+        success: function () {
+          console.log("success");
         },
-        getLocaT() {
-            return new Promise((resolve, reject) => {
-                if (this.changeShop) return resolve();
-                this.getLocationLoading = true;
-                this.getLocation().then(s => {
-                    console.log("获取地理位置信息", s)
-                    //"sa storeid":3
-                    let content = {
-                        "longitude": s ? s.longitude : '',
-                        "latitude": s ? s.latitude : '',
-                        date: Date.now()
-                    };
-                    if (this.sa_storeid) content.sa_storeid = this.sa_storeid;
-                    this.$Http.basic({
-                        "id": 20240416153202,
-                        content
-                    }).then(res => {
-                        resolve()
-                        this.getLocationLoading = false;
-                        this.showShopOtions = false;
-                        this.changeShop = false;
-                        console.log("获取最近门店信息", res)
-                        if (this.cutoff(res.msg)) return;
-                        if (res.data.length) {
-                            let list = res.data.map(v => {
-                                v.cover = v.attinfos.length ? this.getSpecifiedImage(v.attinfos[0]) : uni.getStorageSync('site').logo || '';
-                                v.distance = v.distance > 1000 ? ((v.distance / 1000).toFixed(2) - 0) + 'km' : ((v.distance).toFixed(2) - 0) + 'm';
-                                return v
-                            })
-                            this.shopDetail = list[0];
-                            this.storeList = list;
-                        }
-                    })
-                })
-            })
+        fail: (fail) => {
+          console.log("fail", fail);
         },
-        goAtOnce() {
-            uni.openLocation({
-                latitude: this.shopDetail.latitude - 0,
-                longitude: this.shopDetail.longitude - 0,
-                address: this.shopDetail.address,
-                name: this.shopDetail.storename,
-                success: function () {
-                    console.log('success');
-                },
-                fail: (fail) => {
-                    console.log('fail', fail)
-                },
-            });
-        }
+      });
     },
-}
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .head-shop {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  width: 100vw;
+  height: 45px;
+  background: #f7f7f7;
+  padding: 0 10px;
+  box-sizing: border-box;
+
+  &-name {
+    font-family: PingFang SC, PingFang SC;
+    font-size: 14px;
+    color: #333333;
+  }
+
+  &-distance {
+    font-family: PingFang SC, PingFang SC;
+    font-size: 12px;
+    color: #666666;
+  }
+}
+
+.shop {
+  padding: 10px;
+  width: 355px;
+  background: #ffffff;
+  border-radius: 8px;
+  box-sizing: border-box;
+  margin: 0 auto 10px;
+
+  .head {
     display: flex;
-    align-items: center;
     justify-content: space-between;
-    width: 100vw;
-    height: 45px;
-    background: #F7F7F7;
-    padding: 0 10px;
-    box-sizing: border-box;
-
-    &-name {
-        font-family: PingFang SC, PingFang SC;
-        font-size: 14px;
-        color: #333333;
-    }
+    align-items: center;
+    height: 32px;
 
-    &-distance {
-        font-family: PingFang SC, PingFang SC;
-        font-size: 12px;
-        color: #666666;
+    .text {
+      font-family: Source Han Sans SC, Source Han Sans SC;
+      font-weight: bold;
+      font-size: 14px;
+      color: #333333;
     }
 
-}
+    .icons {
+      display: flex;
 
-.shop {
-    padding: 10px;
-    width: 355px;
-    background: #FFFFFF;
-    border-radius: 8px;
-    box-sizing: border-box;
-    margin: 0 auto 10px;
-
-    .head {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
+      .icon-box {
+        width: 32px;
         height: 32px;
+        background: #f2f2f2;
+        text-align: center;
+        line-height: 32px;
+        margin-left: 10px;
+        border-radius: 50%;
 
-        .text {
-            font-family: Source Han Sans SC, Source Han Sans SC;
-            font-weight: bold;
-            font-size: 14px;
-            color: #333333;
-        }
-
-        .icons {
-            display: flex;
-
-            .icon-box {
-                width: 32px;
-                height: 32px;
-                background: #F2F2F2;
-                text-align: center;
-                line-height: 32px;
-                margin-left: 10px;
-                border-radius: 50%;
-
-                .iconfont {
-                    font-size: 14px;
-                    color: #666666;
-                }
-            }
+        .iconfont {
+          font-size: 14px;
+          color: #666666;
         }
+      }
     }
+  }
 
+  .user {
+    display: flex;
+    margin-top: 8px;
 
-    .user {
-        display: flex;
-        margin-top: 8px;
-
-        .headpic {
-            width: 44px;
-            height: 44px;
+    .headpic {
+      width: 44px;
+      height: 44px;
 
-            .image {
-                width: 44px;
-                height: 44px;
-                border-radius: 50%;
-            }
-        }
-
-        .introduce {
-            margin-left: 10px;
+      .image {
+        width: 44px;
+        height: 44px;
+        border-radius: 50%;
+      }
+    }
 
-            .name {
-                line-height: 20px;
-                font-family: Source Han Sans SC, Source Han Sans SC;
-                font-weight: bold;
-                font-size: 14px;
-                color: #333333;
-            }
+    .introduce {
+      margin-left: 10px;
 
-            .shop-name {
-                line-height: 17px;
-                font-family: Source Han Sans SC, Source Han Sans SC;
-                font-size: 12px;
-                color: #999999;
-                margin-top: 4px;
-            }
-        }
-    }
+      .name {
+        line-height: 20px;
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+      }
 
-    .bottom {
-        width: 100%;
-        height: 24px;
-        box-sizing: border-box;
-        padding-top: 7px;
-        border-top: 1px solid #DDDDDD;
+      .shop-name {
+        line-height: 17px;
         font-family: Source Han Sans SC, Source Han Sans SC;
         font-size: 12px;
         color: #999999;
-        margin-top: 15px;
-
-        .iconfont {
-            margin-right: 5px;
-        }
+        margin-top: 4px;
+      }
     }
-}
+  }
 
-.contact {
-    background: #EDD27E;
-    width: 50px;
-    height: 50px;
-    border-radius: 50%;
-    padding-top: 6px;
+  .bottom {
+    width: 100%;
+    height: 24px;
     box-sizing: border-box;
+    padding-top: 7px;
+    border-top: 1px solid #dddddd;
+    font-family: Source Han Sans SC, Source Han Sans SC;
+    font-size: 12px;
+    color: #999999;
+    margin-top: 15px;
 
     .iconfont {
-        color: #433300;
-        font-size: 20px;
-        line-height: 20px;
-
+      margin-right: 5px;
     }
+  }
+}
 
-    .text {
-        font-family: PingFang SC, PingFang SC;
-        font-size: 12px;
-        color: #5D4808;
-        line-height: 17px;
-    }
+.contact {
+  background: #edd27e;
+  width: 50px;
+  height: 50px;
+  border-radius: 50%;
+  padding-top: 6px;
+  box-sizing: border-box;
+
+  .iconfont {
+    color: #433300;
+    font-size: 20px;
+    line-height: 20px;
+  }
+
+  .text {
+    font-family: PingFang SC, PingFang SC;
+    font-size: 12px;
+    color: #5d4808;
+    line-height: 17px;
+  }
 }
 
 .popup-box {
-    border-radius: 8px 8px 0 0;
-    overflow: hidden;
+  border-radius: 8px 8px 0 0;
+  overflow: hidden;
 
-    .popup-row {
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        width: 100vw;
-        height: 50px;
-        background: #FFFFFF;
-        border-bottom: 0.5px solid #ddd;
-        font-family: Source Han Sans SC, Source Han Sans SC;
-        font-size: 16px;
-        color: #333333;
-    }
+  .popup-row {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 100vw;
+    height: 50px;
+    background: #ffffff;
+    border-bottom: 0.5px solid #ddd;
+    font-family: Source Han Sans SC, Source Han Sans SC;
+    font-size: 16px;
+    color: #333333;
+  }
 }
 </style>

+ 51 - 45
pages/index/index/videos.vue

@@ -3,7 +3,7 @@
         <view style="padding: 10px;background: #ffffff;">
             <view class="search-box">
                 <view style="flex:1;margin-right: 20px;">
-                 <My_search placeholder="标题搜索" @onSearch="onSearch"></My_search>
+                    <My_search @onSearch="onSearch"></My_search>
                 </view>
                 <view class="filtration-but" @click="openFiltrate">
                     筛选
@@ -17,7 +17,8 @@
         <filtrate ref="Filtrate" @onInterrupt="onInterrupt" :filtrateList="filtrateList" @onFiltration="onFiltration" />
         <view class="list">
             <My_listbox ref="List" @getlist="getList" :bottomHeight="70">
-                <navigator :url="'/packageA/resourceLibrary/detail?id='+item.sat_sharematerialid" class="video-item" v-for="item in list" :key="item.sat_sharematerialid">   
+                <navigator :url="'/packageA/resourceLibrary/detail?id=' + item.sat_sharematerialid" class="video-item"
+                    v-for="item in list" :key="item.sat_sharematerialid">
                     <u-image :src="item.image" width="100%" radius="5"></u-image>
                     <text class="descript">{{ item.title }}</text>
                 </navigator>
@@ -33,10 +34,10 @@ export default {
             content: {
                 "pageNumber": 1,
                 "pageSize": 20,
-                "isDataAuth":true,//小程序默认传true
-                "where":{
+                "isDataAuth": true,//小程序默认传true
+                "where": {
                     "condition": "",
-                    "sat_sharematerial_classids":[],
+                    "sat_sharematerial_classids": [],
                     "type": "2",//1:图片,2:视频,3:图文
                     "status": "发布",
                     "begindate_create": "",//创建时间
@@ -45,14 +46,14 @@ export default {
                     "enddate": ""//发布时间
                 }
             },
-            filtrateList:[],
-            updatePage:true,
-            crumbs:[{classname:'视频'},{classname:'全部',parentid:''}],
-            list:[]
+            filtrateList: [],
+            updatePage: true,
+            crumbs: [{ classname: '视频' }, { classname: '全部', parentid: '' }],
+            list: []
         }
     },
     methods: {
-        onSearch (condition) {
+        onSearch(condition) {
             this.content.where.condition = condition
             this.getList(true)
         },
@@ -64,41 +65,41 @@ export default {
         },
         async openFiltrate() {
             if (this.filtrateList.length == 0) {
-                    // let list = res.map(v => [{ remarks: "全部", value: "" }].concat(v));
-                    let res = await this.$Http.basic({
-                        "id": "20221102143202",
-                        "content": {
-                            "parentid": 0,
-                            "where": {
-                                "isenable": 1
-                            }
+                // let list = res.map(v => [{ remarks: "全部", value: "" }].concat(v));
+                let res = await this.$Http.basic({
+                    "id": "20221102143202",
+                    "content": {
+                        "parentid": 0,
+                        "where": {
+                            "isenable": 1
                         }
-                    })
-                    this.filtrateList = [{
-                        title: "分类1",
-                        key: "分类1",
-                        showKey: "classname",
-                        selected: "sat_sharematerial_classid",
-                        interrupt:true,
-                        value: "",
-                        isAll: true,
-                        defaultVal: "",
-                        rang: [{ classname: "全部", sat_sharematerial_classid: "" }].concat(res.data),
-                    }]
-                    this.$refs.Filtrate.changeShow();
+                    }
+                })
+                this.filtrateList = [{
+                    title: "分类1",
+                    key: "分类1",
+                    showKey: "classname",
+                    selected: "sat_sharematerial_classid",
+                    interrupt: true,
+                    value: "",
+                    isAll: true,
+                    defaultVal: "",
+                    rang: [{ classname: "全部", sat_sharematerial_classid: "" }].concat(res.data),
+                }]
+                this.$refs.Filtrate.changeShow();
             } else {
                 this.$refs.Filtrate.changeShow();
             }
         },
-        onInterrupt ({item,index,option}) {
+        onInterrupt({ item, index, option }) {
             if (option.children && option.children.length) {
-                this.$refs.Filtrate.list.splice(option.level,this.$refs.Filtrate.list.length - 1)
+                this.$refs.Filtrate.list.splice(option.level, this.$refs.Filtrate.list.length - 1)
                 this.$refs.Filtrate.list.push({
-                    title: "分类"+(option.level+1),
-                    key: "下级分类"+(option.level+1),
+                    title: "分类" + (option.level + 1),
+                    key: "下级分类" + (option.level + 1),
                     showKey: "classname",
                     selected: "sat_sharematerial_classid",
-                    interrupt:true,
+                    interrupt: true,
                     value: "",
                     defaultVal: "",
                     isAll: true,
@@ -106,10 +107,10 @@ export default {
                 })
             }
             if (option.sat_sharematerial_classid === '') {
-                this.$refs.Filtrate.list.splice(index+1,this.$refs.Filtrate.list.length - 1)
+                this.$refs.Filtrate.list.splice(index + 1, this.$refs.Filtrate.list.length - 1)
             }
-            
-            console.log(item,index,option);
+
+            console.log(item, index, option);
         },
         onFiltration(e) {
             let crumbs = [this.crumbs[0]]
@@ -127,9 +128,9 @@ export default {
                 parentid: e.下级分类3.sat_sharematerial_classid
             })
             if (e.分类1 == '') {
-                crumbs.splice(1,crumbs.length - 1)
+                crumbs.splice(1, crumbs.length - 1)
                 crumbs.push({
-                    classname:'全部',
+                    classname: '全部',
                     parentid: ''
                 })
             }
@@ -175,20 +176,24 @@ export default {
     align-content: center;
     justify-content: space-between;
     margin-bottom: 10px;
+
     .filtration-but {
         font-family: PingFang SC, PingFang SC;
         font-weight: 400;
         font-size: 14px;
         color: #333333;
+
         text {
-            color:#DDDDDD !important;
+            color: #DDDDDD !important;
         }
     }
 }
+
 .crumbs {
     display: flex;
     align-items: center;
     align-content: center;
+
     .crumb {
         flex-shrink: 0;
         font-size: 12px;
@@ -213,15 +218,16 @@ export default {
     padding: 10px;
     margin-top: 10px;
     background: #ffffff;
+
     .video-item {
         display: flex;
         flex-direction: column;
         margin-bottom: 20px;
         border-radius: 5px;
-        .descript{
+
+        .descript {
             margin-top: 10px;
             text-align: center;
         }
     }
-}
-</style>
+}</style>

+ 185 - 131
pages/index/modules/bottomSuspensionFrame.vue

@@ -1,151 +1,205 @@
 <template>
-    <swiper class="box" :current-item-id="current" circular vertical disable-touch>
-        <swiper-item class="swiper-item" item-id="index">
-            <view class="item" v-for="item in index" :key="item.name"
-                @click="item.name == showPageName ? update() : onClick('index', item.name)">
-                <u-loading-icon v-if="item.loading" mode="circle" />
-                <text v-else :style="{ fontWeight: item.name == showPageName ? 'bold' : 'normal' }">
-                    {{ item.name }}
-                </text>
-            </view>
-            <image v-if="!sightseer" class="image" src="/static/c+selected.svg" mode="widthFix"
-                @click="onClick('cloud', '工作台')" />
-        </swiper-item>
+  <swiper
+    class="box"
+    :current-item-id="current"
+    circular
+    vertical
+    disable-touch
+  >
+    <swiper-item class="swiper-item" item-id="index">
+      <view
+        class="item"
+        v-for="item in index"
+        :key="item.name"
+        @click="
+          item.name == showPageName ? update() : onClick('index', item.name)
+        "
+      >
+        <u-loading-icon v-if="item.loading" mode="circle" />
+        <text
+          v-else
+          :style="{ fontWeight: item.name == showPageName ? 'bold' : 'normal' }"
+        >
+          {{ item.name }}
+        </text>
+      </view>
+      <image
+        v-if="!sightseer"
+        class="image"
+        src="/static/c+selected.svg"
+        mode="widthFix"
+        @click="onClick('cloud', '工作台')"
+      />
+    </swiper-item>
 
-        <swiper-item v-if="!sightseer" class="swiper-item" item-id="cloud">
-            <image class="image" :src="showPageName == '工作台' ? '/static/c+unselected.svg' : '/static/c+selected.svg'"
-                mode="widthFix" @click="onClick('cloud', '工作台')" />
-            <block v-for="item in cloud" :key="item.name">
-                <block v-if="item.name == '工作台'" />
-                <view v-else class="item" @click="item.name == showPageName ? update() : onClick('cloud', item.name)">
-                    <u-loading-icon v-if="item.loading" mode="circle" />
-                    <text v-else :style="{ fontWeight: item.name == showPageName ? 'bold' : 'normal' }">
-                        {{ item.name }}
-                    </text>
-                </view>
-            </block>
-        </swiper-item>
-    </swiper>
+    <swiper-item v-if="!sightseer" class="swiper-item" item-id="cloud">
+      <image
+        class="image"
+        :src="
+          showPageName == '工作台'
+            ? '/static/c+unselected.svg'
+            : '/static/c+selected.svg'
+        "
+        mode="widthFix"
+        @click="onClick('cloud', '工作台')"
+      />
+      <block v-for="item in cloud" :key="item.name">
+        <block v-if="item.name == '工作台'" />
+        <view
+          v-else
+          class="item"
+          @click="
+            item.name == showPageName ? update() : onClick('cloud', item.name)
+          "
+        >
+          <u-loading-icon v-if="item.loading" mode="circle" />
+          <text
+            v-else
+            :style="{
+              fontWeight: item.name == showPageName ? 'bold' : 'normal',
+            }"
+          >
+            {{ item.name }}
+          </text>
+        </view>
+      </block>
+    </swiper-item>
+  </swiper>
 </template>
 
 <script>
 export default {
-    data() {
-        return {
-            sightseer: true,
-            current: "index",
-            showPageName: "",
-            indexLastPage: '',
-            cloudLastPage: '',
-            index: [{
-                name: "首页"
-            }, {
-                name: "活动"
-            }, {
-                name: "案例"
-            }, {
-                name: "视频"
-            }],
-            cloud: [{
-                name: "工作台"
-            }, {
-                name: "资料库"
-            }, {
-                name: "商学院"
-            }, {
-                name: "单品"
-            }, {
-                name: "首页"
-            }],
-            countDown: null,
-        }
-    },
-    props: {
-        onChange: {
-            type: Function
-        }
-    },
-    mounted() {
-        this.init();
-        // #ifdef !MP-WEIXIN
-        this.onClick(this.$parent.$parent.swiperItemID, this.$parent.$parent.page)
-        // #endif
-    },
-    methods: {
-        init() {
-            this.isInitializeLogin(render.bind(this))
-            function render() {
-                let sightseer = uni.getStorageSync('userMsg').usertype == 99;
-                this.sightseer = sightseer;
-                console.log('是否游客', sightseer)
-                if (sightseer) this.index = this.index.concat({ name: "我的" })
-            }
+  data() {
+    return {
+      sightseer: true,
+      current: "index",
+      showPageName: "",
+      indexLastPage: "",
+      cloudLastPage: "",
+      index: [
+        {
+          name: "首页",
+        },
+        {
+          name: "活动",
+        },
+        {
+          name: "案例",
+        },
+        {
+          name: "视频",
+        },
+      ],
+      cloud: [
+        {
+          name: "工作台",
+        },
+        {
+          name: "资料库",
         },
-        onClick(current, name, update = false, params = null) {
-            if (name == '首页') current = 'index';
-            const item = this[current].find(v => v.name == name),
-                that = this;
-            if (typeof item.loading != 'boolean' || update) {
-                item.loading = true;
-                update = true;
-            }
-            this[current + 'LastPage'] = name;
-            this.current = current;
-            this.showPageName = name;
-            this.$emit("onChange", {
-                current, name, update, callBack, params
-            })
-            function callBack(loading = false) {
-                item.loading = loading;
-                that[current] = JSON.parse(JSON.stringify(that[current]));
-            }
+        {
+          name: "商学院",
         },
-        update() {
-            if (this.countDown) {
-                this.onClick(this.current, this.showPageName, true)
-            } else {
-                this.countDown = setTimeout(() => {
-                    clearTimeout(this.countDown)
-                    this.countDown = null;
-                }, 300)
-            }
+        {
+          name: "单品",
         },
+        {
+          name: "首页",
+        },
+      ],
+      countDown: null,
+    };
+  },
+  props: {
+    onChange: {
+      type: Function,
     },
-}
+  },
+  mounted() {
+    this.init();
+    // #ifdef !MP-WEIXIN
+    this.onClick(this.$parent.$parent.swiperItemID, this.$parent.$parent.page);
+    // #endif
+  },
+  methods: {
+    init() {
+      this.isInitializeLogin(render.bind(this));
+      function render() {
+        let sightseer = uni.getStorageSync("userMsg").usertype == 99;
+        this.sightseer = sightseer;
+        if (sightseer && !this.index.some((v) => v.name == "我的"))
+          this.index = this.index.concat({ name: "我的" });
+      }
+    },
+    onClick(current, name, update = false, params = null) {
+      if (name == "首页") current = "index";
+      const item = this[current].find((v) => v.name == name),
+        that = this;
+      if (typeof item.loading != "boolean" || update) {
+        item.loading = true;
+        update = true;
+      }
+      this[current + "LastPage"] = name;
+      this.current = current;
+      this.showPageName = name;
+      this.$emit("onChange", {
+        current,
+        name,
+        update,
+        callBack,
+        params,
+      });
+      function callBack(loading = false) {
+        item.loading = loading;
+        that[current] = JSON.parse(JSON.stringify(that[current]));
+      }
+    },
+    update() {
+      if (this.countDown) {
+        this.onClick(this.current, this.showPageName, true);
+      } else {
+        this.countDown = setTimeout(() => {
+          clearTimeout(this.countDown);
+          this.countDown = null;
+        }, 300);
+      }
+    },
+  },
+};
 </script>
 
 <style lang="scss">
 .box {
-    position: fixed;
+  position: fixed;
+  width: 355px;
+  height: 50px;
+  background: rgba(255, 255, 255, 0.95);
+  box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.16);
+  border-radius: 50px;
+  left: 10px;
+  bottom: 20px;
+  z-index: 3;
+
+  .swiper-item {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
     width: 355px;
     height: 50px;
-    background: rgba(255, 255, 255, 0.95);
-    box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.16);
-    border-radius: 50px;
-    left: 10px;
-    bottom: 20px;
-    z-index: 3;
+    padding: 0 30px;
+    box-sizing: border-box;
 
-    .swiper-item {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        width: 355px;
-        height: 50px;
-        padding: 0 30px;
-        box-sizing: border-box;
-
-        .item {
-            font-family: Source Han Sans SC, Source Han Sans SC;
-            font-size: 16px;
-            color: #666666;
-            padding: 10px;
-        }
+    .item {
+      font-family: Source Han Sans SC, Source Han Sans SC;
+      font-size: 16px;
+      color: #666666;
+      padding: 10px;
+    }
 
-        .image {
-            width: 40px;
-            padding: 4px;
-        }
+    .image {
+      width: 40px;
+      padding: 4px;
     }
+  }
 }
-</style>
+</style>

+ 1 - 1
store/product/detail.vue

@@ -12,7 +12,7 @@
         </swiper>
         <view class="head">
             <view class="name u-line-1">{{ detail.name || '--' }}</view>
-            <view class="tag u-line-1">
+            <view class="tag u-line-1" v-if="detail.tag">
                 {{ detail.tag }}
             </view>
             <view v-if="detail.pricetype == '一口价'" class="price-box">