Quellcode durchsuchen

fix: APP背景页面变更、小程序分包、工作台页面布局完成

lirenjie vor 4 Monaten
Ursprung
Commit
0af3cc8293
38 geänderte Dateien mit 544 neuen und 74 gelöschten Zeilen
  1. 3 0
      src/App.vue
  2. 1 1
      src/pages-home/push-manage/index.vue
  3. 12 0
      src/pages-home/user-log/index.vue
  4. 12 0
      src/pages-workbench/customer-manage/index.vue
  5. 12 0
      src/pages-workbench/project-manage/index.vue
  6. 64 19
      src/pages.json
  7. 0 0
      src/pages/tab-bar/home/components/banner.vue
  8. 0 0
      src/pages/tab-bar/home/components/goods.vue
  9. 0 0
      src/pages/tab-bar/home/components/menu.vue
  10. 0 0
      src/pages/tab-bar/home/components/notice.vue
  11. 0 0
      src/pages/tab-bar/home/components/statistics.vue
  12. 0 0
      src/pages/tab-bar/home/index.vue
  13. 0 0
      src/pages/tab-bar/mine/components/mine-menu.vue
  14. 0 0
      src/pages/tab-bar/mine/components/mine-user-blue.vue
  15. 0 0
      src/pages/tab-bar/mine/components/mine-user-white.vue
  16. 0 0
      src/pages/tab-bar/mine/index.vue
  17. 12 0
      src/pages/tab-bar/support/index.vue
  18. 349 0
      src/pages/tab-bar/workbench/customer-manage/index.vue
  19. 55 0
      src/pages/tab-bar/workbench/index.vue
  20. 12 0
      src/pages/tab-bar/workbench/project-manage/index.vue
  21. 12 0
      src/pages/tab-bar/workbench/service-provider-manage/index.vue
  22. 0 54
      src/pages/workbench/index.vue
  23. BIN
      src/static/images/tabbar/audit.png
  24. BIN
      src/static/images/tabbar/home-icon-h.png
  25. BIN
      src/static/images/tabbar/home-icon.png
  26. BIN
      src/static/images/tabbar/icon-home-h.png
  27. BIN
      src/static/images/tabbar/icon-home.png
  28. BIN
      src/static/images/tabbar/list-icon-h.png
  29. BIN
      src/static/images/tabbar/list-icon.png
  30. BIN
      src/static/images/tabbar/message-icon-h.png
  31. BIN
      src/static/images/tabbar/message-icon.png
  32. BIN
      src/static/images/tabbar/mine-h.png
  33. BIN
      src/static/images/tabbar/mine-icon-h.png
  34. BIN
      src/static/images/tabbar/mine-icon.png
  35. BIN
      src/static/images/tabbar/mine.png
  36. BIN
      src/static/images/tabbar/surpport.png
  37. BIN
      src/static/images/tabbar/workbench-h.png
  38. BIN
      src/static/images/tabbar/workbench.png

+ 3 - 0
src/App.vue

@@ -20,4 +20,7 @@ export default {
 body {
   font-size: 16px;
 }
+page {
+    background-color: #F4F5F9;
+}
 </style>

+ 1 - 1
src/pages/marketKit/index.vue → src/pages-home/push-manage/index.vue

@@ -7,6 +7,6 @@
 import { ref } from 'vue'
 
 </script>
-<style scoped>
+<style lang='scss' scoped>
 
 </style>

+ 12 - 0
src/pages-home/user-log/index.vue

@@ -0,0 +1,12 @@
+<template>
+<view>
+
+</view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 12 - 0
src/pages-workbench/customer-manage/index.vue

@@ -0,0 +1,12 @@
+<template>
+<view>
+
+</view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 12 - 0
src/pages-workbench/project-manage/index.vue

@@ -0,0 +1,12 @@
+<template>
+<view>
+
+</view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 64 - 19
src/pages.json

@@ -4,29 +4,31 @@
     "custom": {
       "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",
       "^y-(.*)": "@/uni_modules/y-$1/components/y-$1.vue",
-	    "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"
+	    "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue",
+      "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",
+      "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue"
     }
   },
   "pages": [
     {
-      "path": "pages/home/index",
+      "path": "pages/tab-bar/home/index",
       "style": {
         "navigationStyle": "custom",
         "navigationBarTitleText": "首页"
       }
     },
     {
-      "path": "pages/workbench/index",
+      "path": "pages/tab-bar/workbench/index",
       "style": {
         "navigationStyle": "custom",
         "navigationBarTitleText": "工作台"
       }
     },
     {
-      "path": "pages/marketKit/index",
+      "path": "pages/tab-bar/support/index",
       "style": {
         "navigationStyle": "custom",
-        "navigationBarTitleText": "营销套件"
+        "navigationBarTitleText": "支持中心"
       }
     },
     {
@@ -38,13 +40,20 @@
       }
     },
     {
-      "path": "pages/mine/mine",
+      "path": "pages/tab-bar/mine/index",
       "style": {
         "navigationBarTitleText": "我的",
         "enablePullDownRefresh": false,
         "navigationStyle": "custom"
       }
     },
+    {
+      "path": "pages/common-search/index",
+      "style": {
+        "navigationBarTitleText": "公共搜索",
+        "navigationStyle": "custom"
+      }
+    },
     {
       "path": "pages/enterprise/enterprise-list",
       "style": {
@@ -166,6 +175,42 @@
       }
     }
   ],
+  "subPackages": [
+    {
+      "root": "pages-home",
+      "pages": [
+        {
+          "path": "push-manage/index",
+          "style": {
+            "navigationBarTitleText": "推送管理"
+          }
+        },
+        {
+          "path": "user-log/index",
+          "style": {
+            "navigationBarTitleText": "用户日志"
+          }
+        }
+      ]
+    },
+    {
+      "root": "pages-workbench",
+      "pages": [
+        {
+          "path": "customer-manage/index",
+          "style": {
+            "navigationBarTitleText": "客户管理"
+          }
+        },
+        {
+          "path": "project-manage/index",
+          "style": {
+            "navigationBarTitleText": "项目管理"
+          }
+        }
+      ]
+    }
+  ],
   "globalStyle": {
     "navigationBarTextStyle": "black",
     "navigationBarTitleText": "uni-app",
@@ -179,22 +224,22 @@
     "backgroundColor": "#ffffff",
     "list": [
       {
-        "pagePath": "pages/home/index",
-        "iconPath": "static/images/tabbar/home-icon.png",
-        "selectedIconPath": "static/images/tabbar/home-icon-h.png",
+        "pagePath": "pages/tab-bar/home/index",
+        "iconPath": "static/images/tabbar/icon-home.png",
+        "selectedIconPath": "static/images/tabbar/icon-home-h.png",
         "text": "首页"
       },
       {
-        "pagePath": "pages/workbench/index",
-        "iconPath": "static/images/tabbar/home-icon.png",
-        "selectedIconPath": "static/images/tabbar/home-icon-h.png",
+        "pagePath": "pages/tab-bar/workbench/index",
+        "iconPath": "static/images/tabbar/workbench.png",
+        "selectedIconPath": "static/images/tabbar/workbench-h.png",
         "text": "工作台"
       },
       {
-        "pagePath": "pages/marketKit/index",
-        "iconPath": "static/images/tabbar/home-icon.png",
-        "selectedIconPath": "static/images/tabbar/home-icon-h.png",
-        "text": "营销套件"
+        "pagePath": "pages/tab-bar/support/index",
+        "iconPath": "static/images/tabbar/surpport.png",
+        "selectedIconPath": "static/images/tabbar/surpport.png",
+        "text": "支持中心"
       },
       // {
       //   "pagePath": "pages/list/list",
@@ -215,9 +260,9 @@
       //   "text": "消息"
       // },
       {
-        "pagePath": "pages/mine/mine",
-        "iconPath": "static/images/tabbar/mine-icon.png",
-        "selectedIconPath": "static/images/tabbar/mine-icon-h.png",
+        "pagePath": "pages/tab-bar/mine/index",
+        "iconPath": "static/images/tabbar/mine.png",
+        "selectedIconPath": "static/images/tabbar/mine-h.png",
         "text": "我的"
       }
     ]

+ 0 - 0
src/pages/home/components/banner.vue → src/pages/tab-bar/home/components/banner.vue


+ 0 - 0
src/pages/home/components/goods.vue → src/pages/tab-bar/home/components/goods.vue


+ 0 - 0
src/pages/home/components/menu.vue → src/pages/tab-bar/home/components/menu.vue


+ 0 - 0
src/pages/home/components/notice.vue → src/pages/tab-bar/home/components/notice.vue


+ 0 - 0
src/pages/home/components/statistics.vue → src/pages/tab-bar/home/components/statistics.vue


+ 0 - 0
src/pages/home/index.vue → src/pages/tab-bar/home/index.vue


+ 0 - 0
src/pages/mine/components/mine-menu.vue → src/pages/tab-bar/mine/components/mine-menu.vue


+ 0 - 0
src/pages/mine/components/mine-user-blue.vue → src/pages/tab-bar/mine/components/mine-user-blue.vue


+ 0 - 0
src/pages/mine/components/mine-user-white.vue → src/pages/tab-bar/mine/components/mine-user-white.vue


+ 0 - 0
src/pages/mine/mine.vue → src/pages/tab-bar/mine/index.vue


+ 12 - 0
src/pages/tab-bar/support/index.vue

@@ -0,0 +1,12 @@
+<template>
+<div>
+
+</div>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 349 - 0
src/pages/tab-bar/workbench/customer-manage/index.vue

@@ -0,0 +1,349 @@
+<template>
+    <view class="customer-manage">
+        <up-sticky>
+            <view class="customer-search">
+                <u-search placeholder="请输入客户名称" shape="square" color="#676767" bgColor="rgba(241, 242, 246, 0.2)"
+                    borderColor="#F1F2F6" :showAction="false" v-model="keyword" :disabled="true" @click="openSearch"></u-search>
+            </view>
+            <view class="customer-dropdown">
+                <u-dropdown>
+                    <u-dropdown-item v-model="attach" title="归属" :options="attachList"></u-dropdown-item>
+                    <u-dropdown-item v-model="cycle" title="周期" :options="cycleList"></u-dropdown-item>
+                    <u-dropdown-item v-model="level" title="等级" :options="levelList"></u-dropdown-item>
+                    <u-dropdown-item v-model="source" title="来源" :options="sourceList"></u-dropdown-item>
+                </u-dropdown>
+            </view>
+        </up-sticky>
+        <u-list height="440" style="padding-bottom: 16rpx;" scrollable enableBackToTop>
+            <u-list-item v-for="item in 6" :key="item">
+                <view class="u-list-item-content">
+                    <view class="u-list-item-header">
+                        <view class="u-list-item-title">华东电力集团公司超萨德勒环境</view>
+                        <view class="u-list-item-tag">
+                            <up-tag text="S级客户" height="36rpx" padding="4rpx 16rpx" plain plainFill
+                                borderColor="transparent" color="#FF991B" :autoBgColor="80"></up-tag>
+                            <up-tag text="业主单位" height="36rpx" padding="4rpx 16rpx" plain plainFill
+                                borderColor="transparent" color="#2B69F8" :autoBgColor="80"></up-tag>
+                        </view>
+                    </view>
+                    <view class="u-list-item-desc">
+                        <view class="text">项目编号信息占位</view>
+                        <view class="line"></view>
+                        <view class="text">服务商提供</view>
+                        <view class="line"></view>
+                        <view class="text">王延亮</view>
+                    </view>
+                    <view class="u-list-item-info">
+                        <view class="u-list-item-info-text">
+                            <view class="company">股份有限公司</view>
+                            <view class="evaluate">回款快、配合度高、回款dddddd</view>
+                        </view>
+                        <view class="u-list-item-info-address">
+                            山东省青岛市市南区延安一路102号
+                        </view>
+                    </view>
+                    <view class="u-list-item-extra">
+                        <image class="img" src="@/static/images/tabbar/audit.png"></image>
+                    </view>
+                </view>
+
+            </u-list-item>
+        </u-list>
+    </view>
+    <view class="customer-float">
+        创建客户
+    </view>
+    <view class="customer-footer">
+        合作共赢 品质第一
+    </view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+/* 搜索 */
+const keyword = ref('')
+const url = '/api/customer/list'
+function openSearch() {
+    uni.navigateTo({
+        url: '/pages/common-search/index?url='+url
+    })
+}
+/* 下拉菜单条件 */
+const attachList = ref([
+    {
+        label: '仅本人',
+        value: 1,
+    },
+    {
+        label: '仅本人及下属',
+        value: 2,
+    },
+    {
+        label: '仅本部门',
+        value: 3,
+    },
+    {
+        label: '仅本部门',
+        value: 3,
+    }
+])
+const cycleList = ref([
+    {
+        label: '全部',
+        value: 1,
+    },
+    {
+        label: '本周',
+        value: 1,
+    },
+    {
+        label: '本月',
+        value: 2,
+    },
+    {
+        label: '本季度',
+        value: 3,
+    },
+    {
+        label: '本年',
+        value: 3,
+    }
+])
+const levelList = ref([
+    {
+        label: '全部',
+        value: 1,
+    },
+    {
+        label: 'S级',
+        value: 1,
+    },
+    {
+        label: 'A级',
+        value: 2,
+    },
+    {
+        label: 'B级',
+        value: 2,
+    },
+    {
+        label: 'C级',
+        value: 2,
+    }
+])
+const sourceList = ref([
+    {
+        label: '全部',
+        value: 1,
+    },
+    {
+        label: '自主开发',
+        value: 1,
+    },
+    {
+        label: '转介绍',
+        value: 2,
+    },
+    {
+        label: '服务商提供',
+        value: 2,
+    },
+    {
+        label: '商场活动',
+        value: 2,
+    }
+])
+const attach = ref(1)
+const cycle = ref(1)
+const level = ref(1)
+const source = ref(1)
+/* tag 样式 */
+const levelTagStyle = ref([
+    {
+        color: '#FF991B',
+        text: 'S级客户'
+    },
+    {
+        color: '#2B69F8',
+        text: 'A级客户'
+    },
+    {
+        color: '#1ABEF1',
+        text: 'B级客户'
+    },
+    {
+        color: '#B7B7B7',
+        text: 'C级客户'
+    },
+    {
+        color: '#F23947',
+        text: '禁止客户'
+    },
+])
+const typeTagStyle = ref([
+    {
+        color: '#4FBF67',
+        text: '投资单位'
+    },
+    {
+        color: '#378EFF',
+        text: '业主单位'
+    },
+    {
+        color: '#FF9019',
+        text: '总承包单位'
+    },
+    {
+        color: '#FC5A5A',
+        text: '设计单位'
+    },
+    {
+        color: '#169EE8',
+        text: '招标代理单位'
+    },
+])
+</script>
+<style lang='scss' scoped>
+.customer-manage {
+        background-color: #FFFFFF;
+        border-radius: 16rpx;
+        margin-bottom: 8rpx;
+        z-index: 1;
+
+        .customer-search {
+            padding: 20rpx;
+        }
+
+        .u-list-item-content {
+            display: flex;
+            flex-direction: column;
+            margin: 16rpx;
+            gap: 16rpx;
+            border-radius: 16rpx;
+            box-shadow: 0px 0px 4px 0px rgba(163, 163, 163, 0.6);
+
+            .u-list-item-header {
+                display: flex;
+                flex-direction: row;
+                padding: 16rpx 16rpx 0 16rpx;
+
+                .u-list-item-title {
+                    flex: 1;
+                    overflow: hidden;
+                    text-overflow: ellipsis;
+                    white-space: nowrap;
+                    font-size: 32rpx;
+                    font-family: 'PingFang SC';
+                    font-weight: 500;
+                }
+
+                .u-list-item-tag {
+                    flex: 1;
+                    display: flex;
+                    flex-direction: row;
+                    gap: 16rpx;
+                }
+            }
+
+            .u-list-item-desc {
+                color: #797979;
+                display: flex;
+                flex-direction: row;
+                align-items: center;
+                padding: 0 16rpx;
+                gap: 8rpx;
+
+                .text {
+                    font-size: 24rpx;
+                    font-family: 'PingFang SC';
+                    overflow: hidden;
+                    text-overflow: ellipsis;
+                    white-space: nowrap;
+                }
+
+                .line {
+                    width: 1px;
+                    height: 16rpx;
+                    background-color: #797979;
+                }
+            }
+
+            .u-list-item-info {
+                display: flex;
+                flex-direction: column;
+                padding: 0 16rpx 16rpx 16rpx;
+
+                .u-list-item-info-text {
+                    display: flex;
+                    flex-direction: row;
+                    justify-content: space-between;
+                    font-size: 28rpx;
+                    font-family: 'PingFang SC';
+                    color: #797979;
+
+                    .company {
+                        width: 40%;
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                        white-space: nowrap;
+                    }
+
+                    .evaluate {
+                        width: 60%;
+                        overflow: hidden;
+                        text-overflow: ellipsis;
+                        white-space: nowrap;
+                    }
+                }
+
+                .u-list-item-info-address {
+                    font-size: 28rpx;
+                    font-family: 'PingFang SC';
+                    color: #797979;
+                    width: 100%;
+                    text-overflow: ellipsis;
+                    white-space: nowrap;
+                    overflow: hidden;
+                }
+
+            }
+
+            .u-list-item-extra {
+                position: absolute;
+                right: 16rpx;
+                z-index: 2;
+
+                .img {
+                    width: 100rpx;
+                    height: 100rpx;
+                }
+            }
+        }
+
+    }
+
+    .customer-float {
+        position: fixed;
+        bottom: 90rpx;
+        right: 0;
+        z-index: 999;
+        background-color: #2b69f8;
+        color: #fff;
+        display: flex;
+        align-items: center;
+        cursor: pointer;
+        padding: 20rpx 40rpx;
+        box-shadow: 0px 0px 4px 0px rgba(186, 186, 186, 0.25);
+        border-radius: 40rpx 0 0 40rpx;
+    }
+
+    .customer-footer {
+        position: absolute;
+        bottom: 8rpx;
+        display: flex;
+        justify-content: center;
+        color: #B8B8B8;
+        font-size: 24rpx;
+        width: 100%;
+    }
+</style>

+ 55 - 0
src/pages/tab-bar/workbench/index.vue

@@ -0,0 +1,55 @@
+<template>
+    <view class="workbench">
+        <!-- 123456 -->
+        <up-sticky>
+            <u-tabs :list="tabsList" :activeStyle="{ color: '#2B69F8' }" lineWidth="30" :current="current" @click="switchTab"></u-tabs>
+        </up-sticky>
+        <CustomerManage v-if="current === 0"/>
+        <ProjectManage v-if="current === 1"/>
+        <ServiceProviderManage v-if="current === 2"/>
+    </view>
+</template>
+<script setup>
+import { ref } from 'vue'
+import { onLoad } from '@dcloudio/uni-app'
+import CustomerManage from './customer-manage/index.vue'
+import ProjectManage from './project-manage/index.vue'
+import ServiceProviderManage from './service-provider-manage/index.vue'
+/* tab */
+const current = ref(0);
+
+const tabsList = [
+    {
+        name: '客户管理',
+        value: 0,
+    },
+    {
+        name: '项目管理',
+        value: 1,
+    },
+    {
+        name: '服务商管理',
+        value: 2,
+    },
+];
+function switchTab(item) {
+    const {index,name,value} =item
+    current.value = index
+}
+/* 状态栏高度 */
+const statusBarHeight = ref(0)
+
+onLoad(() => {
+    statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight + 'px'
+    console.log(statusBarHeight.value);
+})
+
+</script>
+<style lang="scss" scoped>
+.workbench {
+    background-color: #F4F5F9;
+    margin-top: v-bind(statusBarHeight);
+    padding: 0 16rpx;
+
+}
+</style>

+ 12 - 0
src/pages/tab-bar/workbench/project-manage/index.vue

@@ -0,0 +1,12 @@
+<template>
+<view>
+
+</view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 12 - 0
src/pages/tab-bar/workbench/service-provider-manage/index.vue

@@ -0,0 +1,12 @@
+<template>
+<view>
+
+</view>
+</template>
+<script setup>
+import { ref } from 'vue'
+
+</script>
+<style lang='scss' scoped>
+
+</style>

+ 0 - 54
src/pages/workbench/index.vue

@@ -1,54 +0,0 @@
-<template>
-  <view class="workbench">
-    <!-- 123456 -->
-    <y-tabs v-model="active" sticky :offsetTop="43" color="#007aff">
-      <y-tab v-for="item in tabsList" :key="item.value" :title="item.title"> </y-tab>
-    </y-tabs>
-    <view class="workbench-content">
-           
-    </view>
-    <view class="workbench-footer">
-      合作共赢      品质第一
-    </view>
-  </view>
-</template>
-<script setup>
-import { ref } from 'vue'
-import { onLoad } from '@dcloudio/uni-app'
-
-const statusBarHeight = ref(0)
-onLoad(() => {
-  statusBarHeight.value = uni.getSystemInfoSync().statusBarHeight+'px'
-  console.log(statusBarHeight.value);
-})
-const active = ref(0);
-
-const tabsList = [
-  {
-    title: '客户管理',
-    value: 0,
-  },
-  {
-    title: '项目管理',
-    value: 1,
-  },
-  {
-    title: '服务商管理',
-    value: 2,
-  },
-];
-</script>
-<style lang="scss" scoped>
-.workbench{
-  margin-top: v-bind(statusBarHeight);
-  .workbench-content{
-    border-radius: 16rpx;
-  }
-  .workbench-footer{
-    position: absolute;
-    bottom: 0;
-    display: flex;
-    justify-content: center;
-  }
-}
-</style>

BIN
src/static/images/tabbar/audit.png


BIN
src/static/images/tabbar/home-icon-h.png


BIN
src/static/images/tabbar/home-icon.png


BIN
src/static/images/tabbar/icon-home-h.png


BIN
src/static/images/tabbar/icon-home.png


BIN
src/static/images/tabbar/list-icon-h.png


BIN
src/static/images/tabbar/list-icon.png


BIN
src/static/images/tabbar/message-icon-h.png


BIN
src/static/images/tabbar/message-icon.png


BIN
src/static/images/tabbar/mine-h.png


BIN
src/static/images/tabbar/mine-icon-h.png


BIN
src/static/images/tabbar/mine-icon.png


BIN
src/static/images/tabbar/mine.png


BIN
src/static/images/tabbar/surpport.png


BIN
src/static/images/tabbar/workbench-h.png


BIN
src/static/images/tabbar/workbench.png