Jelajahi Sumber

拆包完成提交

743180155@qq.com 11 bulan lalu
induk
melakukan
39823ae18c

+ 28 - 31
README.md

@@ -21,7 +21,6 @@ git push
 ##### Customize configuration
 See [Configuration Reference](https://cli.vuejs.org/config/).
 
-
 ### 地址
 http://apidoc.chelvc.com/admin/
 http://apidoc.chelvc.com/
@@ -31,23 +30,6 @@ wangzhongqing 564342
 http://gogs.chelvc.com/  git
 https://js.design/ti?c=fMpU7uE9B48CA8a/ // ui图
 
-{
-	id:xxx, // 商家id
-	goodsid:[xxx,xxx] // 商品id
-	
-}
-
-{
-	id:xxx, // 商家id
-	goodsid:[xxx,xxx] // 商品id
-	
-}
-
-购物车修改 
-二维码添加
-优惠卷跳转
-
-
 ### 结构
 ```javascript
 
@@ -63,37 +45,52 @@ https://js.design/ti?c=fMpU7uE9B48CA8a/ // ui图
 | |		|		|----mine(我的)
 | |		|----webview(外部链接)
 | |		|		|----index(隐私等)
+| |		|		|
+| |		|		|
 | |----pagesHome(首页分包-->二级页面)
+| |		|----homeSearch(首页搜索)
 | |		|----home(热门&附近商家更多列表)
 | |		|		|----nearbyBusiness(附近商家)
 | |		|		|----popularRecommend(热门推荐)
-| |		|----marketer(商家商品)
+| |		|----marketer(商家商品->商品详情->下单)
 | |		|		|----index(商家详情)
 | |		|		|----productDetail(商品详情)
 | |		|		|----settleOrder(确认订单)
 | |		|		|----settleStatus(支付状态)
+| |		|----category(商品类别)
+| |		|		|----index(选择商品类别)
+| |		|		|----categoryStoreList(选择类别后的商家列表)
+| |		|		|
+| |		|		|
 | |----pagesCustomer(社区分包-->二级页面)
 | |		|		|----communityPostReview(发布评论)
+| |		|		|
+| |		|		|
 | |----pagesMessage(消息分包-->二级页面)
 | |		|		|----orderNotify(订单通知)
-| |		|		|----commentNotify(评论通知)
+| |		|		|----commentNotify(评论通知<-商品评论)
 | |		|		|----kudosNotify(点赞通知)
 | |		|		|----benefitsNotify(优惠福利)
+| |		|		|
+| |		|		|
 | |----PageMine(我的分包-->二级页面)
+| |		|		|		|----aboutUs(关于我们)
+| |		|		|		|----coupon(优惠券列表)
+| |		|		|		|----favourite(我的收藏)
+| |		|		|		|----feedback(反馈)
+| |		|		|		|----goodsReserve(商品预约)
+| |		|		|		|----myTeam(我的团队)
+| |		|		|		|----shopCar(购物车)
 | |		|		|----orderModules(我的订单)
 | |		|		|		|----index(我的订单)
 | |		|		|		|----orderDetail(订单详情)
 | |		|		|		|----orderComment(订单评论)
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
-| |		|
+| |		|		|----serviceCenter(客服中心)
+| |		|		|		|----index(客服中心列表)
+| |		|		|		|----serviceDetail(服务详情 问题详情)
+| |		|		|----setting(设置)
+| |		|		|		|----index(设置首页)
+| |		|		|		|----aboutUs(关于我们)
+| |		|		|		|----personInformation(个人信息)
 | |		|
 ```

+ 21 - 13
package-lock.json

@@ -4169,6 +4169,27 @@
         "whatwg-fetch": "^3.6.2"
       },
       "dependencies": {
+        "@vue/vue-loader-v15": {
+          "version": "npm:vue-loader@15.11.1",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.11.1.tgz",
+          "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
+          "dev": true,
+          "requires": {
+            "@vue/component-compiler-utils": "^3.1.0",
+            "hash-sum": "^1.0.2",
+            "loader-utils": "^1.1.0",
+            "vue-hot-reload-api": "^2.3.0",
+            "vue-style-loader": "^4.1.0"
+          },
+          "dependencies": {
+            "hash-sum": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
+              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+              "dev": true
+            }
+          }
+        },
         "acorn": {
           "version": "8.8.2",
           "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz",
@@ -4304,19 +4325,6 @@
       "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.4.tgz",
       "integrity": "sha512-abSgiVRhfjfl3JALR/cSuBl74hGJ3SePgf1mKzodf1eMWLwHZbfEGxT2cNJSsNiw44jEgrO7bNkhchaWA7RwNw=="
     },
-    "@vue/vue-loader-v15": {
-      "version": "npm:vue-loader@15.11.1",
-      "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.11.1.tgz",
-      "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
-      "dev": true,
-      "requires": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      }
-    },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": false,

+ 13 - 13
src/App.vue

@@ -1,18 +1,18 @@
 <script>
-// import store from './store';
+import store from './store';
 export default {
-  // async onLaunch() {
-  //   store.dispatch('getAppSystemInfo');
-  //   if (store.getters.scope === 'CUSTOMER') {
-  //     uni.switchTab({
-  //       url: '/pages/client/tabBar/home/index',
-  //     });
-  //   } else {
-  //     uni.navigateTo({
-  //       url: '/pages/merchant/order/index',
-  //     });
-  //   }
-  // },
+  async onLaunch() {
+    store.dispatch('getAppSystemInfo');
+    // if (store.getters.scope === 'CUSTOMER') {
+    //   uni.switchTab({
+    //     url: '/pages/client/tabBar/home/index',
+    //   });
+    // } else {
+    //   uni.navigateTo({
+    //     url: '/pages/merchant/order/index',
+    //   });
+    // }
+  },
   mounted() {
 
   },

+ 0 - 70
src/components/Layout/PopupLayer.vue

@@ -1,70 +0,0 @@
-<template>
-  <u-popup :show="isShow" round="20" :safeAreaInsetBottom="false">
-    <view class="head-box">
-      <text>{{ title }}</text>
-      <view class="close-icon" @tap="handleClose">
-        <u-icon name="close" size="24"></u-icon>
-      </view>
-    </view>
-    <view class="content">
-      <slot></slot>
-    </view>
-  </u-popup>
-</template>
-
-<script>
-export default {
-  props: {
-    title: {
-      type: String,
-      default: '',
-    },
-    show: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {
-      isShow: false,
-    };
-  },
-  watch: {
-    show: {
-      immediate: true,
-      handler: function () {
-        this.isShow = this.show;
-      },
-    },
-  },
-  methods: {
-    handleClose() {
-      this.isShow = false;
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.head-box {
-  height: 80rpx;
-  width: 100%;
-  font-size: 32rpx;
-  font-weight: bold;
-  text-align: center;
-  line-height: 80rpx;
-  position: relative;
-  .close-icon {
-    position: absolute;
-    right: 20rpx;
-    top: 50%;
-    transform: translateY(-50%);
-  }
-}
-.content {
-  width: 100vw;
-  min-height: 50vh;
-  max-height: 80vh;
-  overflow: auto;
-}
-</style>

+ 0 - 35
src/components/RichTextWithCopy/RichTextWithCopy.vue

@@ -1,35 +0,0 @@
-<template>
-  <view>
-    <rich-text :nodes="content"></rich-text>
-    <button v-for="(line, index) in lines" :key="index" @click="copyText(line)">{{ line }}</button>
-  </view>
-</template>
-
-<script>
-export default {
-  props: {
-    content: {
-      type: String,
-      default: '',
-    },
-  },
-  computed: {
-    lines() {
-      return this.content.split('<br>');
-    },
-  },
-  methods: {
-    copyText(text) {
-      uni.setClipboardData({
-        data: text,
-        success: function () {
-          uni.showToast({
-            title: '已复制',
-            icon: 'success',
-          });
-        },
-      });
-    },
-  },
-};
-</script>

+ 0 - 45
src/components/SwitchIdentityDialog/SwitchIdentityDialog.vue

@@ -1,45 +0,0 @@
-<template>
-  <div class="switch-identity-dialog">
-    <div class="content">
-      <slot></slot>
-    </div>
-    <div class="buttons">
-      <button class="buttonsok" @click="confirm">确定</button>
-
-      <button class="buttonsno" @click="cancel">取消</button>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  methods: {
-    confirm() {
-      this.$emit('confirm');
-    },
-    cancel() {
-      this.$emit('cancel');
-    },
-  },
-};
-</script>
-
-<style scoped>
-.switch-identity-dialog {
-  /* 样式设置 */
-  width: 600rpx;
-  height: auto;
-  position: fixed; /* 固定在页面上 */
-  top: 50%; /* 顶部位置 */
-  left: 50%; /* 左侧位置 */
-  transform: translate(-50%, -50%); /* 居中显示 */
-  background-color: #fff;
-  border: 1px solid #ccc;
-  padding: 20px;
-  z-index: 999; /* 控制弹框在其它元素之上 */
-}
-.content {
-  /* p标签文字样式设置 */
-  font-size: 36rpx;
-}
-</style>

+ 0 - 72
src/components/commentList/index.vue

@@ -1,72 +0,0 @@
-<template>
-	<view>
-		<view v-if="list.length > 0">
-			<view class="item" v-for="item in list" :key="item.id"
-				@click="$Router.push('/pages/community/commDetail/index')">
-				<view class="item-avatar">
-					<u-avatar src="https://cdn.uviewui.com/uview/album/1.jpg" />
-				</view>
-				<view class="item-content">
-					<u--text text="uView UI" type="primary" bold size="17"></u--text>
-					<u--text margin="0 0 8px 0" :text="item.textContent"></u--text>
-					<u-album :urls="urls2"></u-album>
-					<view>
-						<text class="iconfont icon-thumb-up" style="font-size: 48rpx; padding: 20rpx 0"></text>
-						<text class="iconfont icon-heart"
-							style="font-size: 48rpx; padding: 20rpx 0; margin-left: 20rpx"></text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view v-else>
-			<u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png">
-			</u-empty>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			list: {
-				type: Array,
-				default: [],
-			},
-		},
-		data() {
-			return {
-				albumWidth: 0,
-				urls2: [
-					'https://cdn.uviewui.com/uview/album/1.jpg',
-					'https://cdn.uviewui.com/uview/album/2.jpg',
-					'https://cdn.uviewui.com/uview/album/3.jpg',
-					'https://cdn.uviewui.com/uview/album/4.jpg',
-					'https://cdn.uviewui.com/uview/album/5.jpg',
-					'https://cdn.uviewui.com/uview/album/6.jpg',
-					'https://cdn.uviewui.com/uview/album/7.jpg',
-					'https://cdn.uviewui.com/uview/album/8.jpg',
-					'https://cdn.uviewui.com/uview/album/9.jpg',
-					'https://cdn.uviewui.com/uview/album/10.jpg',
-					'https://cdn.uviewui.com/uview/album/10.jpg',
-				],
-			};
-		},
-	};
-</script>
-
-<style lang="scss" scoped>
-	.item {
-		padding: 10rpx 0;
-		display: flex;
-
-		.item-avatar {}
-
-		.item-content {
-			margin-left: 10rpx;
-
-			::v-deep .u-cell__body {
-				padding: 0;
-			}
-		}
-	}
-</style>

+ 0 - 269
src/components/communityPop/index.vue

@@ -1,269 +0,0 @@
-<template>
-  <view class="container">
-    <u-sticky>
-      <view class="pop-top">
-        <view class="top-box">
-          <view class="top-black-box"></view>
-        </view>
-        <view class="top-title"> {{ total }}条回复 </view>
-      </view>
-    </u-sticky>
-
-    <view class="center-box">
-      <view class="center-item" v-for="(item, index) of init_list" :key="index">
-        <view class="item-top">
-          <view class="top-left">
-            <view class="top-img">
-              <image :src="item.userDTO.avatar" class="img" mode=""></image>
-            </view>
-            <view class="top-text">
-              <view class="text-title">{{ item.userDTO.nickname }}</view>
-              <view class="text-address"> {{ item.distanceTime }} </view>
-            </view>
-          </view>
-          <view class="top-right">
-            <u-icon
-              :name="item.clickStatus == 0 ? 'heart' : 'heart-fill'"
-              size="22"
-              @click="handlerFocus(item)"
-            ></u-icon>
-          </view>
-        </view>
-
-        <view class="item-text"> {{ item.content }} </view>
-      </view>
-    </view>
-
-    <!-- <empty v-if="total == 0" /> -->
-
-    <view class="bottom-box">
-      <view class="bottom-item">
-        <view class="item-left">
-          <u--input
-            placeholder="写回复"
-            border="surround"
-            v-model="content"
-            shape="circle"
-            customStyle="background-color:#F2F2F2"
-          ></u--input>
-        </view>
-        <view class="item-right">
-          <button @click="handlerPopPublishBtn" class="btn">发布</button>
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-import { addClientComment, clientCommentList } from '@/api/client/message.js';
-import { addEvaulateRecords } from '@/api/client/community.js';
-// import empty from '@/components/empty/index.vue';
-import { GetDateToNewData } from "@/utils/tools.js"
-export default {
-  // components: { empty },
-  data() {
-    return {
-      content: '',
-      init_list: [],
-      total: 0,
-    };
-  },
-  props: ['dynamicId', 'dynamicUserId'],
-  watch: {
-    dynamicId(newValue) {
-      if (newValue != null) {
-        this.handlerInitList();
-      }
-    },
-  },
-  methods: {
-    // 初始化评论列表
-    handlerInitList() {
-      let params = {
-        dynamicId: this.dynamicId,
-        parentId: 0,
-        userId: this.dynamicUserId,
-      };
-      clientCommentList(params).then(res => {
-		  res.data.records.map(rs=>{
-			  let time = GetDateToNewData(rs.createTime)
-			  this.$set(rs,'distanceTime',time)
-		  })
-        this.init_list = res.data.records;
-        this.total = res.data.total;
-      });
-    },
-    // 发布评论
-    handlerPopPublishBtn() {
-      let params = {
-        dynamicId: this.dynamicId,
-		targetUserId:this.dynamicUserId,
-        parentId: 0,
-        content: this.content,
-        status: 0,
-      };
-      addClientComment(params).then(res => {
-        if (res.code === 'OK') {
-          uni.showToast({
-            title: '发布成功',
-            icon: 'none',
-          });
-          this.content = '';
-          this.handlerInitList();
-          this.$emit('uploadComment');
-        }
-      });
-    },
-    // 关注按钮
-    handlerFocus(item) {
-      let params = {
-        dynamicStatusType: 'GOOD', // 操作类型:1-点赞;2-踩 允许值: GOOD, BAD
-        recordType: 'COMMENT', // 内容类型:1-动态;2-评论/回复 允许值: DYNAMIC, COMMENT, USER
-        actionType: item.clickStatus == 0 ? 'ADD' : 'CANCEL', // 点击类型:1-点赞/踩;2-取消赞/取消踩   允许值: ADD, CANCEL
-        contentId: item.id,
-        targetUserId: item.userId,
-      };
-      addEvaulateRecords(params).then(res => {
-        if (res.code === 'OK') {
-          uni.showToast({
-            title: '关注成功',
-            icon: 'none',
-          });
-          this.handlerInitList();
-        } else {
-          uni.showToast({
-            title: res.msg,
-            icon: 'none',
-          });
-          return;
-        }
-      });
-    },
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-.container {
-  height: 70vh;
-  overflow-y: auto;
-  box-sizing: border-box;
-  padding-bottom: 120rpx;
-
-  .pop-top {
-    background-color: #fff;
-    border-radius: 40rpx;
-    padding: 20rpx 0;
-  }
-
-  .top-box {
-    display: flex;
-    justify-content: center;
-
-    .top-black-box {
-      width: 10%;
-      height: 10rpx;
-      background-color: #000;
-      border-radius: 10%;
-    }
-  }
-
-  .top-title {
-    font-size: 32rpx;
-    font-weight: bold;
-    color: #000;
-    text-align: center;
-    margin-top: 20rpx;
-    letter-spacing: 2rpx;
-  }
-
-  .center-box {
-    margin-bottom: 20rpx;
-    padding: 0 20rpx;
-
-    .center-item {
-      margin-bottom: 40rpx;
-      border-radius: 20rpx;
-
-      .item-top {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-
-        .top-left {
-          display: flex;
-          align-items: center;
-
-          .top-img {
-            .img {
-              width: 80rpx;
-              height: 80rpx;
-              border-radius: 50%;
-            }
-          }
-
-          .top-text {
-            display: flex;
-            flex-direction: column;
-            justify-content: space-around;
-            margin-left: 10rpx;
-
-            .text-title {
-              font-weight: bold;
-              font-size: 32rpx;
-              color: #000;
-            }
-
-            .text-address {
-              color: #8f8f8f;
-              font-size: 24rpx;
-            }
-          }
-        }
-      }
-
-      .item-text {
-        margin-top: 20rpx;
-        padding: 0 40rpx;
-      }
-    }
-  }
-
-  .bottom-box {
-    position: absolute;
-    bottom: 0;
-    background-color: #fff;
-    width: 100%;
-    height: 150rpx;
-
-    .bottom-item {
-      display: flex;
-      justify-content: space-around;
-      padding: 10rpx 20rpx 0;
-      box-sizing: border-box;
-      align-items: center;
-
-      .item-left {
-        width: 60%;
-        height: 70rpx;
-      }
-
-      .item-right {
-        width: 30%;
-        padding: 20rpx;
-
-        .btn {
-          border-radius: 20rpx;
-          text-align: center;
-          color: #fff;
-          background: linear-gradient(to right, #e8cbc0, #636fa4);
-          height: 70rpx;
-          font-size: 28rpx;
-          line-height: 70rpx;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 141
src/components/drag/drag-button.vue

@@ -1,141 +0,0 @@
-<template>
-  <view>
-    <view
-      id="_drag_button"
-      class="drag"
-      :style="'left: ' + left + 'px; top:' + top + 'px;'"
-      @touchstart="touchstart"
-      @touchmove.stop.prevent="touchmove"
-      @touchend.stop="touchend"
-      @click.stop.prevent="click"
-      :class="{ transition: isDock && !isMove }"
-    >
-      <text>{{ text }}</text>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'drag-button',
-  props: {
-    isDock: {
-      type: Boolean,
-      default: false,
-    },
-    existTabBar: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {
-      top: 0,
-      left: 0,
-      width: 0,
-      height: 0,
-      offsetWidth: 0,
-      offsetHeight: 0,
-      windowWidth: 0,
-      windowHeight: 0,
-      isMove: true,
-      edge: 10,
-      text: '询价',
-    };
-  },
-  mounted() {
-    const sys = uni.getSystemInfoSync();
-
-    this.windowWidth = sys.windowWidth;
-    this.windowHeight = sys.windowHeight;
-
-    // #ifdef APP-PLUS
-    this.existTabBar && (this.windowHeight -= 50);
-    // #endif
-    if (sys.windowTop) {
-      this.windowHeight += sys.windowTop;
-    }
-    const query = uni.createSelectorQuery().in(this);
-    query
-      .select('#_drag_button')
-      .boundingClientRect(data => {
-        this.width = data.width;
-        this.height = data.height;
-        this.offsetWidth = data.width / 2;
-        this.offsetHeight = data.height / 2;
-        this.left = this.windowWidth - this.width - this.edge;
-        this.top = ((this.windowHeight - this.height - this.edge) * 3) / 4;
-      })
-      .exec();
-  },
-  methods: {
-    click() {
-      this.$emit('btnClick');
-    },
-    touchstart(e) {
-      this.$emit('btnTouchstart');
-    },
-    touchmove(e) {
-      // 单指触摸
-      if (e.touches.length !== 1) {
-        return false;
-      }
-
-      this.isMove = true;
-
-      this.left = e.touches[0].clientX - this.offsetWidth;
-
-      let clientY = e.touches[0].clientY - this.offsetHeight;
-      // #ifdef H5
-      clientY += this.height;
-      // #endif
-      let edgeBottom = this.windowHeight - this.height - this.edge;
-
-      // 上下触及边界
-      if (clientY < this.edge) {
-        this.top = this.edge;
-      } else if (clientY > edgeBottom) {
-        this.top = edgeBottom;
-      } else {
-        this.top = clientY;
-      }
-    },
-    touchend(e) {
-      if (this.isDock) {
-        let edgeRigth = this.windowWidth - this.width - this.edge;
-
-        if (this.left < this.windowWidth / 2 - this.offsetWidth) {
-          this.left = this.edge;
-        } else {
-          this.left = edgeRigth;
-        }
-      }
-
-      this.isMove = false;
-
-      this.$emit('btnTouchend');
-    },
-  },
-};
-</script>
-
-<style lang="scss">
-.drag {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  background-color: rgba(0, 0, 0, 0.5);
-  box-shadow: 0 0 6upx rgba(0, 0, 0, 0.4);
-  color: $uni-text-color-inverse;
-  width: 80upx;
-  height: 80upx;
-  border-radius: 50%;
-  font-size: $uni-font-size-sm;
-  position: fixed;
-  z-index: 99;
-
-  &.transition {
-    transition: left 0.3s ease, top 0.3s ease;
-  }
-}
-</style>

+ 0 - 41
src/components/personInfoEdit/personInfoEdit.vue

@@ -1,41 +0,0 @@
-<template>
-  <view>
-    <u-modal
-      showConfirmButton
-      @confirm="confirm"
-      @cancel="cancel"
-      showCancelButton
-      confirmText="修改"
-      :show="show"
-      :title="title"
-    >
-      <slot></slot>
-    </u-modal>
-  </view>
-</template>
-
-<script>
-export default {
-  props: {
-    show: {
-      type: Boolean,
-      default: false,
-    },
-    title: {
-      type: String,
-      default: '',
-    },
-  },
-  methods: {
-    //点击修改
-    confirm() {
-      this.$emit('confirm');
-    },
-
-    //点击修改
-    cancel() {
-      this.$emit('cancel');
-    },
-  },
-};
-</script>

+ 0 - 97
src/components/shopCarItem/shopCarItem.vue

@@ -1,97 +0,0 @@
-<template>
-  <view>
-
-
-  </view>
-</template>
-
-<script>
-  export default {
-    name: "shopCarItem",
-    data() {
-      return {
-
-      };
-    },
-    props: ['initList']
-  }
-</script>
-
-<style lang="scss" scoped>
-  .item-box {
-    background-color: #FFFFFF;
-    padding: 4rpx 20rpx;
-    border-radius: 10rpx;
-    margin-bottom: 20rpx;
-
-    .item-top {
-      padding: 20rpx;
-      box-sizing: border-box;
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      .top-title {
-        font-weight: bold;
-        font-size: 32rpx;
-      }
-    }
-
-  }
-
-  .item {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    margin-bottom: 20rpx;
-
-    .item-l {
-      width: 70%;
-      display: flex;
-      align-items: center;
-
-      .l-r {
-        display: flex;
-
-        .r-img {
-          width: 200rpx;
-          height: 200rpx;
-          border-radius: 10rpx;
-        }
-
-        .r-box {
-          display: flex;
-          flex-direction: column;
-          justify-content: space-around;
-          width: 50%;
-
-          .r-name {
-            font-size: 34rpx;
-            font-weight: bold;
-          }
-
-          .r-discript {
-            max-width: 200rpx;
-            background-color: #F7F8FA;
-            padding: 5rpx 10rpx;
-            border-radius: 10rpx;
-            display: -webkit-box;
-            -webkit-line-clamp: 2;
-            -webkit-box-orient: vertical;
-            overflow: hidden;
-            text-overflow: ellipsis;
-          }
-
-          .r-price {
-            color: #FF4D60;
-            font-weight: bold;
-            font-size: 28rpx;
-          }
-        }
-      }
-    }
-
-    .item-r {
-      width: 30%;
-    }
-  }
-</style>

+ 19 - 1
src/pages.json

@@ -61,7 +61,13 @@
 	"subPackages": [{
 			// pagesHome 首页及二级页面
 			"root": "pagesHome",
-			"pages": [{
+			"pages": [
+				{
+					"path": "homeSearch",
+					"style": {
+						"navigationBarTitleText": "商品搜索"
+					}
+				},{
 					"path": "home/popularRecommend",
 					"style": {
 						"navigationBarTitleText": "热门推荐"
@@ -95,6 +101,18 @@
 					"style": {
 						"navigationBarTitleText": "结算状态"
 					}
+				},
+				{
+					"path": "category/index",
+					"style": {
+						"navigationBarTitleText": "商品类型"
+					}
+				},
+				{
+					"path": "category/categoryStoreList",
+					"style": {
+						"navigationBarTitleText": "商品列表"
+					}
 				}
 			]
 		},

+ 1 - 1
src/pages/tabbar/community.vue

@@ -88,7 +88,7 @@
     clientContentList,
     addEvaulateRecords
   } from '@/api/client/community.js';
-  import communityPop from "@/components/communityPop/index.vue"
+  import communityPop from "./components/communityPop.vue"
   // import empty from "@/components/empty/index.vue"
   import {
     GetDateToNewData

+ 3 - 5
src/pages/tabbar/home.vue

@@ -10,7 +10,7 @@
 					</view>
 					<view slot="center">
 						<u-search placeholder="请输入搜索内容" :showAction="false" v-model="keyword"
-							@click="$Router.push('/pages/client/clientPackage/search')" :disabled="true" />
+							@click="$Router.push('/pagesHome/homeSearch')" :disabled="true" />
 					</view>
 				</u-navbar>
 			</view>
@@ -85,12 +85,10 @@
 	import HotItem from './components/HotItem.vue';
 	import { getMapLocation } from "@/utils/mapUtil.js"
 	import { mapGetters } from 'vuex';
-	// import dragButton from '@/components/drag/drag-button.vue';
 	export default {
 		components: {
 			RecommendItem,
 			HotItem,
-			// dragButton,
 		},
 		data() {
 			return {
@@ -229,10 +227,10 @@
 			// 点击菜单
 			handleMenuClick(item) {
 				if (item.id === 'all') {
-					this.$Router.push('/pages/client/clientPackage/category');
+					this.$Router.push('/pagesHome/category/categoryStoreList');
 				} else {
 					uni.navigateTo({
-						url: `/pages/client/clientPackage/storeList?id=${item.id}`,
+						url: `/pagesHome/category/index?id=${item.id}`,
 					});
 				}
 			},

+ 119 - 5
src/pagesMessage/benefitsNotify.vue

@@ -1,11 +1,125 @@
 <template>
-	<view class="">
-		福利通知
-	</view>
+  <view class="benefits">
+    <view class="list fl-flex" v-for="(item, index) in 10" :key="index">
+      <view class="img">
+        <image src="/static/logo.png" mode="scaleToFill" />
+      </view>
+      <view class="content">
+        <view class="f-s-28">车旅程</view>
+        <view class="title">恭喜您获得8元优惠券</view>
+        <view class="fl-flex main">
+          <view class="image">
+            <image src="/static/logo.png" mode="scaleToFill" />
+          </view>
+          <view class="text apostrophe">
+            @双鱼女孩儿ni,您的账户于8:50已入账50个美 团币奖励,即刻进入美团币完成领取,避免失效
+          </view>
+        </view>
+        <view class="fl-flex-item time">
+          <view class="fl-flex">
+            <view class="dot"></view>
+            <view class="f-s-20 text-gray">2024/02/05</view>
+          </view>
+          <u-icon name="more-dot-fill" color="#cbcbcb" size="20" />
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
+import { getCouponInform } from '@/api/client/message.js';
+export default {
+  data() {
+    return {
+      queryParams:{
+        paging:'1,10',
+        counting:true
+      }
+    };
+  },
+  mounted(){
+    this.handlerInitList()
+  },
+  methods: {
+    handlerInitList(){
+      getCouponInform(this.queryParams).then(res=>{
+        console.log("@@@@res",res)
+      })
+    }
+  },
+};
 </script>
 
-<style>
-</style>
+<style lang="scss" scoped>
+.benefits {
+  min-height: 100vh;
+  padding: 20rpx;
+  .list {
+    height: 280rpx;
+    background-color: #fff;
+    border-radius: 20rpx;
+    padding: 20rpx;
+    margin-bottom: 20rpx;
+    .img {
+      height: 40rpx;
+      width: 40rpx;
+      margin-right: 20rpx;
+      image {
+        height: 40rpx;
+        width: 40rpx;
+        display: block;
+      }
+    }
+    .content {
+      .main {
+        height: 140rpx;
+        background-color: #f8f8f8;
+        border-radius: 20rpx;
+        .image {
+          height: 140rpx;
+          width: 140rpx;
+          margin-right: 20rpx;
+          image {
+            height: 140rpx;
+            width: 140rpx;
+            display: block;
+            border-radius: 20rpx;
+          }
+        }
+        .text {
+          color: #949494;
+          font-size: 28rpx;
+          height: 80rpx;
+          margin: 30rpx 40rpx 20rpx 0;
+        }
+      }
+
+      .title {
+        font-weight: 600;
+        font-size: 30rpx;
+        color: #555;
+        margin: 10rpx 0 20rpx 0;
+      }
+      .time {
+        margin-top: 10rpx;
+        .dot {
+          width: 16rpx;
+          height: 16rpx;
+          background-color: red;
+          border-radius: 8rpx;
+          margin-right: 10rpx;
+          margin-top: 5rpx;
+        }
+      }
+    }
+  }
+}
+
+.apostrophe {
+  display: -webkit-box;
+  overflow: hidden;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+}
+</style>

+ 86 - 5
src/pagesMessage/commentNotify.vue

@@ -1,11 +1,92 @@
 <template>
-	<view class="">
-		社区通知
-	</view>
+  <view class="evaluateNotice">
+    <view class="list" v-for="(item, index) in 6" :key="index">
+      <view class="fl-flex-item">
+        <view class="fl-flex">
+          <image
+            src="/static/icon/QR57a.jpg"
+            mode="scaleToFill"
+            style="width: 80rpx; height: 40px; border-radius: 40px"
+          />
+          <view>
+            <view class="text-bold f-s-28" style="margin-bottom: 10rpx">易只烊</view>
+            <view class="f-s-22 text-black">2024年2月5日</view>
+          </view>
+        </view>
+        <u-icon name="arrow-right" color="#efefef" size="15" />
+      </view>
+      <view class="text">
+        很好的购物体验,包装很严实,发货也很的购物发货也很的购物体验,包装很严实,发货也很的购物体验,包装很严实,发货也很快。
+      </view>
+      <view class="fl-flex img">
+        <image
+          src="https://cdn.uviewui.com/uview/album/1.jpg"
+          mode="scaleToFill"
+          style="height: 120rpx; width: 120rpx"
+        />
+        <image
+          src="https://cdn.uviewui.com/uview/album/1.jpg"
+          mode="scaleToFill"
+          style="height: 120rpx; width: 120rpx"
+        />
+        <image
+          src="https://cdn.uviewui.com/uview/album/1.jpg"
+          mode="scaleToFill"
+          style="height: 120rpx; width: 120rpx"
+        />
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
+  import { getOrderCommentInform , clearInformFlag } from '@/api/client/message.js';
+export default {
+  data(){
+    return{
+      queryParams:{
+        paging:'1,10',
+        counting:true
+      }
+    }
+  },
+  mounted(){
+    this.handlerInitList()
+  },
+  
+  onShow(){
+  	clearInformFlag({type:'COMMENT'}).then(res=>{
+  		console.log("@@@res",res)
+  	})
+  },
+  methods: {
+    handlerInitList(){
+      getOrderCommentInform(this.queryParams).then(res=>{
+        console.log("@@@@res",res)
+      })
+    }
+  },
+};
 </script>
 
-<style>
-</style>
+<style lang="scss" scoped>
+.evaluateNotice {
+  min-height: 100vh;
+  padding: 20rpx;
+  .list {
+    background-color: #fff;
+    border-radius: 20rpx;
+    padding: 20rpx;
+    margin-bottom: 20rpx;
+  }
+  .text {
+    margin: 20rpx 0;
+    color: black;
+  }
+  .img {
+    image {
+      margin-right: 10rpx;
+    }
+  }
+}
+</style>

+ 69 - 5
src/pagesMessage/kudosNotify.vue

@@ -1,11 +1,75 @@
 <template>
-	<view class="">
-		点赞通知
-	</view>
+  <view class="LikeReply">
+    <view class="list fl-flex" v-for="item,index in 10" :key="index">
+      <image
+        src="/static/icon/QR57a.jpg"
+        mode="scaleToFill"
+        style="width: 100rpx; height: 100rpx"
+      />
+      <view class="line chelvc-flex-sub fl-flex-item">
+        <view style="font-size: 30rpx; color: #333">
+          <view class="fl-flex">
+            <text>yizhiyang</text>
+            <u-icon name="heart-fill" color="#fd746a" size="20" />
+            <text>了我的动态</text>
+          </view>
+          <view class="f-s-20 text-gray" style="margin-top: 20rpx">2024/02/05</view>
+        </view>
+        <image src="/static/logo.png" mode="scaleToFill" />
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
+import { getEvaluateInform , clearInformFlag } from '@/api/client/message.js';
+export default {
+  data() {
+    return {
+      queryParams:{
+        // number:1,
+        // size:10,
+		paging:'1,10',
+        counting:true
+      }
+    };
+  },
+  mounted(){
+    this.handlerInitList()
+  },
+  
+  onShow(){
+  	clearInformFlag({type:'EVALUATE'}).then(res=>{
+  		console.log("@@@res",res)
+  	})
+  },
+  methods: {
+    handlerInitList(){
+      getEvaluateInform(this.queryParams).then(res=>{
+        console.log("@@@@res",res)
+      })
+    }
+  },
+};
 </script>
 
-<style>
-</style>
+<style lang="scss" scoped>
+.LikeReply {
+  min-height: 100vh;
+  padding: 10rpx 20rpx;
+  background-color: #fff;
+  .list {
+    height: 130rpx;
+    margin-bottom: 20rpx;
+    padding: 0 30rpx;
+    .line {
+      padding-bottom: 20rpx;
+      border-bottom: 2rpx solid #f2f2f2;
+      > image {
+        width: 140rpx;
+        height: 100%;
+      }
+    }
+  }
+}
+</style>

+ 127 - 6
src/pagesMessage/orderNotify.vue

@@ -1,11 +1,132 @@
 <template>
-	<view class="">
-		订单通知
-	</view>
+  <view class="orderNotice">
+    <view class="order-list" v-for="(item,index) in init_list" :key="index">
+     <view class="fl-flex-item order-top">
+        <view class="fl-flex chelvc-chelvc-align-center">
+          <image :src="item.orderDetailDTO.orderItemList[0].goodsPic" mode="scaleToFill" />
+          <view class="f-s-28 margin-left-xs">{{ item.orderDetailDTO.orderItemList[0].goodsName }}</view>
+        </view>
+        <u-icon name="arrow-right" color="#cbcbcb" size="15" />
+      </view>
+      <view>
+        <view class="fl-flex-item title">
+          <view class="text-bold text-black">订单{{ item.orderType }}</view>
+          <view class="f-s-20 text-gray">{{ item.createTimeText }}</view>
+        </view>
+        <view class="fl-flex content">
+          <view class="img">
+            <image :src="item.orderDetailDTO.merchantInfo.logo" mode="scaleToFill" />
+          </view>
+          <view class="text apostrophe">
+            <span> 订单号:{{ item.orderId }} </span>
+          </view>
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
-
+			<!-- 0->待付款;1-已付款;2->待发货;3->已发货;4->已完成;5->已关闭;6->无效订单 -->
 <script>
+  import { getOrderInform , clearInformFlag } from '@/api/client/message.js';
+export default {
+  data() {
+    return {
+      queryParams:{
+		paging:'1,10',
+        counting:true
+      },
+	  current:1,
+	  size:10,
+	  init_list:[],
+	  typeEnum:[
+		  { type:0 , name:'待付款' },
+		  { type:1 , name:'已付款' },
+		  { type:2 , name:'待发货' },
+		  { type:3 , name:'已发货' },
+		  { type:4 , name:'已完成' },
+		  { type:5 , name:'已关闭' },
+		  { type:6 , name:'无效订单' },
+	  ]
+    };
+  },
+  mounted(){
+    this.handlerInitList()
+  },
+  onShow(){
+	  // 已读消息
+	clearInformFlag({type:'ORDER'}).then(res=>{
+	})
+  },
+  methods: {
+    handlerInitList(){
+      getOrderInform(this.queryParams).then(res=>{
+		this.init_list = res.data.records
+		this.init_list.map(rs=>{
+			 this.typeEnum.map(rc=>{
+				 if(rs.orderStatus == rc.type){
+					 rs.orderType = rc.name
+				 }
+			 })
+		})
+		this.init_list.map(rs=>{
+			rs.createTimeText = uni.$u.timeFormat(rs.createTime, 'yyyy-mm-dd');
+		})
+      })
+    }
+  },
+};
 </script>
 
-<style>
-</style>
+<style lang="scss" scoped>
+
+.apostrophe {
+  display: -webkit-box;
+  overflow: hidden;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+}
+
+.orderNotice {
+  min-height: 100vh;
+  padding: 20rpx;
+  box-sizing: border-box;
+  .order-list {
+    height: 280rpx;
+    background-color: #fff;
+    border-radius: 20rpx;
+    padding: 20rpx;
+    margin-bottom: 20rpx;
+	box-shadow: 0 0 15rpx 0 rgba(0,0,0,0.2);
+    .order-top {
+      height: 50rpx;
+      border-bottom: 2rpx solid #fbfbfb;
+      padding-bottom: 10rpx;
+      image {
+        height: 40rpx;
+        width: 40rpx;
+      }
+    }
+    .title {
+      margin: 20rpx 0;
+    }
+    .content {
+      height: 140rpx;
+      background-color: #f8f8f8;
+      .img {
+        height: 140rpx;
+        width: 140rpx;
+        image {
+          height: 140rpx;
+          width: 140rpx;
+        }
+      }
+      .text {
+        color: #949494;
+        font-size: 30rpx;
+        height: 80rpx;
+        margin: 30rpx 40rpx 20rpx 20rpx;
+      }
+    }
+  }
+}
+</style>