ソースを参照

Merge branch 'main' of https://github.com/omnia96/designer-hub into main

EvilDragon 5 ヶ月 前
コミット
794e17b80a

+ 2 - 1
packages/merchant/package.json

@@ -89,12 +89,13 @@
     "@dcloudio/uni-components": "3.0.0-alpha-4010520240507001",
     "@dcloudio/uni-h5": "3.0.0-alpha-4010520240507001",
     "@dcloudio/uni-mp-weixin": "3.0.0-alpha-4010520240507001",
-    "@designer-hub/assets": "workspace:*",
     "@designer-hub/app": "workspace:*",
+    "@designer-hub/assets": "workspace:*",
     "czg": "^1.9.3",
     "dayjs": "1.11.10",
     "pinia": "2.0.36",
     "pinia-plugin-persistedstate": "3.2.1",
+    "qrcode": "^1.5.4",
     "qs": "6.5.3",
     "radash": "^12.1.0",
     "vue": "3.4.21",

+ 12 - 21
packages/merchant/src/pages.json

@@ -101,52 +101,43 @@
       }
     },
     {
-      "path": "pages/scan_code/index",
+      "path": "pages/home/merchant/mine",
       "type": "page",
+      "layout": "tabbar",
       "style": {
-        "navigationBarTitleText": "扫码",
+        "navigationBarTitleText": "我的",
         "navigationBarBackgroundColor": "#fff"
       }
     },
     {
-      "path": "pages/scan_code/merchant_settings",
+      "path": "pages/home/merchant/settlement",
       "type": "page",
       "style": {
-        "navigationBarTitleText": "商家设置",
+        "navigationBarTitleText": "积分结账",
         "navigationBarBackgroundColor": "#fff"
       }
     },
     {
-      "path": "pages/scan_code/mine",
+      "path": "pages/home/tasks/index",
       "type": "page",
-      "layout": "tabbar",
       "style": {
-        "navigationBarTitleText": "我的",
-        "navigationBarBackgroundColor": "#fff"
-      }
-    },
-    {
-      "path": "pages/scan_code/order_detail",
-      "type": "page",
-      "sstyle": {
-        "navigationBarTitleText": "订单详情",
+        "navigationBarTitleText": "全部任务",
         "navigationBarBackgroundColor": "#fff"
       }
     },
     {
-      "path": "pages/scan_code/settlement",
+      "path": "pages/mine/merchant/merchant_settings",
       "type": "page",
-      "layout": "tabbar",
       "style": {
-        "navigationBarTitleText": "积分结账",
+        "navigationBarTitleText": "商家设置",
         "navigationBarBackgroundColor": "#fff"
       }
     },
     {
-      "path": "pages/home/tasks/index",
+      "path": "pages/mine/merchant/order_detail",
       "type": "page",
-      "style": {
-        "navigationBarTitleText": "全部任务",
+      "sstyle": {
+        "navigationBarTitleText": "订单详情",
         "navigationBarBackgroundColor": "#fff"
       }
     },

+ 69 - 29
packages/merchant/src/pages/home/index.vue

@@ -14,7 +14,7 @@ import dayjs from 'dayjs'
 import { getCircles } from '../../core/libs/requests'
 import SectionHeading from '@designer-hub/app/src/components/section-heading.vue'
 import Card from '@designer-hub/app/src/components/card.vue'
-import { merchantPageHeaderBg } from '@designer-hub/assets/src/svgs'
+import { merchantPageHeaderBg, scanIcon, bookIcon } from '@designer-hub/assets/src/svgs'
 import { useUserStore } from '../../store'
 import { storeToRefs } from 'pinia'
 
@@ -99,6 +99,11 @@ console.log(data.value)
 const toDesigner = () => {
   uni.navigateTo({ url: '/pages/designer/index' })
 }
+const toSettlement = async () => {
+  console.log('11')
+
+  await uni.navigateTo({ url: '/pages/home/merchant/settlement' })
+}
 onShow(async () => {
   // await run()
   console.log(circlesData.value)
@@ -204,38 +209,73 @@ onShareAppMessage(() => ({}))
       </div>
     </template>
     <template v-if="userInfo.appLoginType === 2">
-      <!-- <view class="bg-black w-full pos-relative aspect-[1.26/1]">
-        <wd-img custom-class="w-[375px] h-[297px]" src="https://via.placeholder.com/375x297" />
+      <div
+        class="bg-white backdrop-blur-[60px] my-[16px] flex flex-col justify-center items-center p-[16px] mt-[20px]"
+      >
+        <div
+          class="w-[68px] h-[68px] bg-[#2357e9] rounded-full mt-[37px] flex items-center justify-center"
+        >
+          <wd-img width="36px" height="36px" :src="scanIcon"></wd-img>
+        </div>
+        <div class="w-full mt-[45px]">
+          <wd-button block :round="false">
+            <div
+              class="text-center text-white text-base font-normal font-['PingFang SC'] leading-normal"
+            >
+              扫码验券
+            </div>
+          </wd-button>
+        </div>
+      </div>
+      <div
+        class="bg-white backdrop-blur-[60px] flex flex-col justify-center items-center p-[16px] mt-[20px]"
+      >
         <div
-          class="w-[375px] h-[90px] bg-gradient-to-t from-black to-black/0 absolute left-0 bottom-0 w-full flex items-center"
+          class="w-[68px] h-[68px] bg-[#2357e9] rounded-full mt-[34px] flex items-center justify-center"
         >
-          <view class="mx-7">
-            <wd-button plain custom-class="bg-transparent! border-white! text-white!">
-              02:30
-            </wd-button>
-          </view>
+          <wd-img width="36px" height="36px" :src="bookIcon"></wd-img>
         </div>
-      </view>
-      <view class="bg-[#f6f6f6] relative bottom-4 rounded-t-2xl py-1">
-        <ScheduleCard custom-class="my-6 mx-3.5"></ScheduleCard>
-        <menus></menus>
-        <view class="my-6 mx-3.5">
-          <HotActivity></HotActivity>
-        </view>
-        <view class="my-6 mx-3.5">
-          <Card>一分钟快速了解筑巢荟</Card>
-        </view>
-        <view class="mx-3.5 text-5 font-400">设计圈</view>
-        <view class="mx-3.5">
-          <template v-for="it of circlesData.list" :key="it.id">
-            <view class="my-6">
-              <MomentItem :options="it"></MomentItem>
-            </view>
-          </template>
-        </view>
-      </view> -->
+        <div class="w-full flex items-center mt-[40px]">
+          <div
+            class="text-black/90 text-base font-normal font-['PingFang SC'] leading-relaxed width-[96px]"
+          >
+            输入订单金额
+          </div>
+          <div class="bg-[#f5f7f9] rounded-lg flex items-center flex-1 ml-[16px]">
+            <wd-input type="number" no-border placeholder="请输金额" />
+          </div>
+        </div>
+        <div class="w-full flex items-center mt-[20px]">
+          <div
+            class="text-black/90 text-base font-normal font-['PingFang SC'] leading-relaxed width-[96px]"
+          >
+            需支付积分
+          </div>
+          <div
+            class="text-[#ff2d2d] text-base font-normal font-['PingFang SC'] leading-relaxed ml-[20px]"
+          >
+            3400 积分
+          </div>
+        </div>
+        <div class="w-full mt-[45px]">
+          <wd-button block :round="false" @click="toSettlement">
+            <div
+              class="text-center text-white text-base font-normal font-['PingFang SC'] leading-normal"
+            >
+              积分结账
+            </div>
+          </wd-button>
+        </div>
+      </div>
     </template>
   </view>
 </template>
 
-<style></style>
+<style>
+/* :deep(.wd-input) {
+  background: transparent;
+  height: 100%;
+  border: none;
+  width: 100%;
+} */
+</style>

+ 0 - 0
packages/merchant/src/pages/scan_code/mine.vue → packages/merchant/src/pages/home/merchant/mine.vue


+ 15 - 3
packages/merchant/src/pages/scan_code/settlement.vue → packages/merchant/src/pages/home/merchant/settlement.vue

@@ -1,16 +1,28 @@
 <route lang="yaml">
-layout: tabbar
 style:
   navigationBarTitleText: 积分结账
   navigationBarBackgroundColor: '#fff'
 </route>
-<script lang="ts" setup></script>
+<script lang="ts" setup>
+import QRCode from 'qrcode'
+import { ref } from 'vue'
+const codeImageSrc = ref('')
+
+const generateQR = async (text) => {
+  try {
+    codeImageSrc.value = await QRCode.toDataURL(text)
+  } catch (err) {
+    console.error(err)
+  }
+}
+generateQR('121')
+</script>
 
 <template>
   <view>
     <div class="bg-white pb-[17px]">
       <div class="flex items-center justify-center py-[30px]">
-        <img class="w-[199px] h-[199px]" src="https://via.placeholder.com/199x199" />
+        <img class="w-[199px] h-[199px]" :src="codeImageSrc" />
       </div>
       <div class="flex items-center justify-between px-[16px] mb-[15px]">
         <div class="text-black/60 text-base font-normal font-['PingFang SC'] leading-normal">

+ 207 - 138
packages/merchant/src/pages/mine/index.vue

@@ -10,7 +10,7 @@ import { storeToRefs } from 'pinia'
 import { isEmpty } from 'radash'
 import Card from '@designer-hub/app/src/components/card.vue'
 import SectionHeading from '@designer-hub/app/src/components/section-heading.vue'
-import { merchantPageHeaderBg } from '@designer-hub/assets/src/svgs'
+import { merchantPageHeaderBg, desinTopBg, rightArrowIcon } from '@designer-hub/assets/src/svgs'
 
 const userStore = useUserStore()
 const { isLogined, userInfo } = storeToRefs(userStore)
@@ -23,13 +23,16 @@ const nickNameClickHandle = async () => {
   if (isLogined.value) return
   uni.navigateTo({ url: '/pages/login/index' })
 }
+const toInfoSeting = () => {
+  uni.navigateTo({ url: '/pages/mine/merchant/merchant_settings' })
+}
 onShow(async () => {
   if (isLogined.value) {
-    await run()
-    setUserInfo({
-      ...userInfo.value,
-      ...data.value,
-    })
+    // await run()
+    // setUserInfo({
+    //   ...userInfo.value,
+    //   ...data.value,
+    // })
   }
 })
 const handleToAuthentication = () => {
@@ -39,6 +42,9 @@ const handleToAuthentication = () => {
 const handleToHomepage = () => {
   uni.navigateTo({ url: '/pages/mine/homepage/index' })
 }
+const toorderDetail = async () => {
+  uni.navigateTo({ url: '/pages/mine/merchant/order_detail' })
+}
 onMounted(async () => {
   // await run()
   // console.log(data.value)
@@ -53,165 +59,228 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
 
 <template>
   <view>
-    <div class="aspect-[0.96/1] absolute left-0 right-0 top--1">
-      <wd-img
-        width="100%"
-        height="100%"
-        :src="merchantPageHeaderBg"
-        custom-class="vertical-bottom"
-      ></wd-img>
-    </div>
-    <wd-navbar
-      fixed
-      safeAreaInsetTop
-      custom-class="bg-transparent!"
-      :bordered="false"
-      placeholder
-      v-bind="navBarProps"
-    ></wd-navbar>
-    <div class="p-4 flex flex-col gap-4 relative">
-      <div class="flex items-center px-4 mb-4">
-        <img
-          class="w-14 h-14 rounded-full border border-white"
-          src="https://via.placeholder.com/56x56"
-        />
-        <div class="mx-4 flex-1">
-          <div class="text-white text-lg font-normal font-['PingFang SC'] leading-normal">
-            李晓东
-          </div>
-          <div class="text-white text-xs font-normal font-['PingFang SC'] leading-relaxed">
-            ID:1023621
+    <template v-if="userInfo.appLoginType === 1">
+      <div class="aspect-[0.96/1] absolute left-0 right-0 top--1">
+        <wd-img
+          width="100%"
+          height="100%"
+          :src="merchantPageHeaderBg"
+          custom-class="vertical-bottom"
+        ></wd-img>
+      </div>
+      <wd-navbar
+        fixed
+        safeAreaInsetTop
+        custom-class="bg-transparent!"
+        :bordered="false"
+        placeholder
+        v-bind="navBarProps"
+      ></wd-navbar>
+      <div class="p-4 flex flex-col gap-4 relative">
+        <div class="flex items-center px-4 mb-4">
+          <img
+            class="w-14 h-14 rounded-full border border-white"
+            src="https://via.placeholder.com/56x56"
+          />
+          <div class="mx-4 flex-1">
+            <div class="text-white text-lg font-normal font-['PingFang SC'] leading-normal">
+              李晓东
+            </div>
+            <div class="text-white text-xs font-normal font-['PingFang SC'] leading-relaxed">
+              ID:1023621
+            </div>
           </div>
-        </div>
-        <div>
-          <div class="w-[29px] h-[29px] relative bg-[#ff523f]"></div>
-          <div class="text-white text-[10px] font-normal font-['PingFang SC'] leading-relaxed">
-            邀请码
+          <div>
+            <div class="w-[29px] h-[29px] relative bg-[#ff523f]"></div>
+            <div class="text-white text-[10px] font-normal font-['PingFang SC'] leading-relaxed">
+              邀请码
+            </div>
           </div>
         </div>
-      </div>
-      <Card>
-        <SectionHeading title="本年目标" size="base"></SectionHeading>
-        <div class="flex flex-col gap-2.5 mt-3">
-          <template
-            v-for="{ name } of [
-              { name: 'Imola订单金额目标' },
-              { name: '平台订单金额目标' },
-              { name: '拜访次数' },
-              { name: '到店次数' },
-            ]"
-            :key="name"
-          >
-            <div
-              class="bg-gradient-to-r from-[#fef3ee] to-[#f0f4f9] rounded-lg flex items-center p-4 gap-6"
+        <Card>
+          <SectionHeading title="本年目标" size="base"></SectionHeading>
+          <div class="flex flex-col gap-2.5 mt-3">
+            <template
+              v-for="{ name } of [
+                { name: 'Imola订单金额目标' },
+                { name: '平台订单金额目标' },
+                { name: '拜访次数' },
+                { name: '到店次数' },
+              ]"
+              :key="name"
             >
-              <div>
-                <div class="w-[45px] h-[45px] rounded-full border-4 border-[#ffe2d0] bg-red"></div>
-              </div>
-              <div class="flex-1">
-                <div class="text-black/60 text-xs font-normal font-['PingFang SC']">{{ name }}</div>
-                <div class="flex items-center gap-1">
-                  <div class="text-black/90 text-lg font-medium font-['DIN'] leading-normal">
-                    6000
+              <div
+                class="bg-gradient-to-r from-[#fef3ee] to-[#f0f4f9] rounded-lg flex items-center p-4 gap-6"
+              >
+                <div>
+                  <div
+                    class="w-[45px] h-[45px] rounded-full border-4 border-[#ffe2d0] bg-red"
+                  ></div>
+                </div>
+                <div class="flex-1">
+                  <div class="text-black/60 text-xs font-normal font-['PingFang SC']">
+                    {{ name }}
+                  </div>
+                  <div class="flex items-center gap-1">
+                    <div class="text-black/90 text-lg font-medium font-['DIN'] leading-normal">
+                      6000
+                    </div>
+                    <div class="text-black text-xs font-normal font-['PingFang SC']">万</div>
+                  </div>
+                  <div class="flex items-center gap-1">
+                    <div class="text-black/60 text-xs font-normal font-['PingFang SC']">差值</div>
+                    <div class="text-[#ff2d2d] text-xs font-medium font-['DIN'] leading-normal">
+                      3000
+                    </div>
+                    <div class="text-[#ff2d2d] text-[10px] font-medium font-['DIN'] leading-normal">
+                      万
+                    </div>
                   </div>
-                  <div class="text-black text-xs font-normal font-['PingFang SC']">万</div>
                 </div>
-                <div class="flex items-center gap-1">
-                  <div class="text-black/60 text-xs font-normal font-['PingFang SC']">差值</div>
-                  <div class="text-[#ff2d2d] text-xs font-medium font-['DIN'] leading-normal">
-                    3000
+                <div class="">
+                  <div class="text-black/60 text-xs font-normal font-['PingFang SC']">当年完成</div>
+                  <div class="flex items-center gap-1">
+                    <div class="text-black/90 text-lg font-medium font-['DIN'] leading-normal">
+                      6000
+                    </div>
+                    <div class="text-black text-xs font-normal font-['PingFang SC']">万</div>
                   </div>
-                  <div class="text-[#ff2d2d] text-[10px] font-medium font-['DIN'] leading-normal">
-                    万
+                  <div class="flex items-center gap-1">
+                    <div class="text-black/60 text-xs font-normal font-['PingFang SC']">本月</div>
+                    <div class="text-[#0FC187] text-xs font-medium font-['DIN'] leading-normal">
+                      3000
+                    </div>
+                    <div class="text-[#0FC187] text-[10px] font-medium font-['DIN'] leading-normal">
+                      万
+                    </div>
                   </div>
                 </div>
               </div>
-              <div class="">
-                <div class="text-black/60 text-xs font-normal font-['PingFang SC']">当年完成</div>
+            </template>
+          </div>
+        </Card>
+        <Card>
+          <SectionHeading title="设计师数据" size="base"></SectionHeading>
+          <div class="mt-3 grid grid-cols-3 gap-2.5">
+            <template
+              v-for="{ name, value } of [
+                { name: '设计师总数', value: 220 },
+                { name: '成交过', value: 220 },
+                { name: '未成交过', value: 220 },
+                { name: '消耗积分', value: 220 },
+                { name: '参加游学', value: 220 },
+                { name: '参与活动', value: 220 },
+              ]"
+              :key="name"
+            >
+              <div class="bg-[#f6f7ff] rounded-lg aspect-[1/1] flex flex-col justify-around p-2.5">
+                <div class="text-black/60 text-xs font-normal font-['PingFang SC'] leading-none">
+                  {{ name }}
+                </div>
+                <div class="text-black/90 text-lg font-bold font-['D-DIN Exp'] leading-normal">
+                  {{ value }}
+                </div>
                 <div class="flex items-center gap-1">
-                  <div class="text-black/90 text-lg font-medium font-['DIN'] leading-normal">
-                    6000
+                  <div class="text-black/40 text-xs font-normal font-['PingFang SC'] leading-none">
+                    年新增
+                  </div>
+                  <div class="text-[#ff2d2d] text-xs font-normal font-['D-DIN Exp'] leading-normal">
+                    20
                   </div>
-                  <div class="text-black text-xs font-normal font-['PingFang SC']">万</div>
+                </div>
+              </div>
+            </template>
+          </div>
+        </Card>
+        <Card>
+          <SectionHeading title="跟进数据" size="base"></SectionHeading>
+          <div class="mt-3 grid grid-cols-3 gap-2.5">
+            <template
+              v-for="{ name, value } of [
+                { name: '累计跟进', value: 220 },
+                { name: '线下拜访', value: 220 },
+                { name: '线上跟进', value: 220 },
+              ]"
+              :key="name"
+            >
+              <div class="bg-[#f6f7ff] rounded-lg aspect-[1/1] flex flex-col justify-around p-2.5">
+                <div class="text-black/60 text-xs font-normal font-['PingFang SC'] leading-none">
+                  {{ name }}
+                </div>
+                <div class="text-black/90 text-lg font-bold font-['D-DIN Exp'] leading-normal">
+                  {{ value }}
                 </div>
                 <div class="flex items-center gap-1">
-                  <div class="text-black/60 text-xs font-normal font-['PingFang SC']">本月</div>
-                  <div class="text-[#0FC187] text-xs font-medium font-['DIN'] leading-normal">
-                    3000
+                  <div class="text-black/40 text-xs font-normal font-['PingFang SC'] leading-none">
+                    年新增
                   </div>
-                  <div class="text-[#0FC187] text-[10px] font-medium font-['DIN'] leading-normal">
-                    万
+                  <div class="text-[#ff2d2d] text-xs font-normal font-['D-DIN Exp'] leading-normal">
+                    20
                   </div>
                 </div>
               </div>
-            </div>
-          </template>
+            </template>
+          </div>
+        </Card>
+      </div>
+    </template>
+    <template v-if="userInfo.appLoginType === 2">
+      <view class="p-[16px]">
+        <div class="aspect-[1.575/1] absolute left-0 right-0 top-0">
+          <wd-img width="100%" height="100%" :src="desinTopBg" custom-class="vertical-top"></wd-img>
         </div>
-      </Card>
-      <Card>
-        <SectionHeading title="设计师数据" size="base"></SectionHeading>
-        <div class="mt-3 grid grid-cols-3 gap-2.5">
-          <template
-            v-for="{ name, value } of [
-              { name: '设计师总数', value: 220 },
-              { name: '成交过', value: 220 },
-              { name: '未成交过', value: 220 },
-              { name: '消耗积分', value: 220 },
-              { name: '参加游学', value: 220 },
-              { name: '参与活动', value: 220 },
-            ]"
-            :key="name"
-          >
-            <div class="bg-[#f6f7ff] rounded-lg aspect-[1/1] flex flex-col justify-around p-2.5">
-              <div class="text-black/60 text-xs font-normal font-['PingFang SC'] leading-none">
-                {{ name }}
-              </div>
-              <div class="text-black/90 text-lg font-bold font-['D-DIN Exp'] leading-normal">
-                {{ value }}
-              </div>
-              <div class="flex items-center gap-1">
-                <div class="text-black/40 text-xs font-normal font-['PingFang SC'] leading-none">
-                  年新增
-                </div>
-                <div class="text-[#ff2d2d] text-xs font-normal font-['D-DIN Exp'] leading-normal">
-                  20
-                </div>
+        <div
+          @click="toInfoSeting"
+          class="bg-white rounded-2xl shadow relative mt-[28px] py-[29px] px-[14px] flex items-center"
+        >
+          <div><img class="w-16 h-16 rounded-full" src="https://via.placeholder.com/64x64" /></div>
+          <div class="ml-[10px]">
+            <div class="text-black/90 text-lg font-normal font-['PingFang SC'] leading-[10.18px]">
+              商家:GELATO
+            </div>
+            <div
+              class="h-6 px-1.5 py-1 bg-[#f5f6fa] rounded justify-center items-center gap-2.5 inline-flex mt-[17px]"
+            >
+              <div class="text-[#8b8b8b] text-xs font-normal font-['PingFang SC'] leading-none">
+                ID:1201451200
               </div>
             </div>
-          </template>
+          </div>
         </div>
-      </Card>
-      <Card>
-        <SectionHeading title="跟进数据" size="base"></SectionHeading>
-        <div class="mt-3 grid grid-cols-3 gap-2.5">
-          <template
-            v-for="{ name, value } of [
-              { name: '累计跟进', value: 220 },
-              { name: '线下拜访', value: 220 },
-              { name: '线上跟进', value: 220 },
-            ]"
-            :key="name"
-          >
-            <div class="bg-[#f6f7ff] rounded-lg aspect-[1/1] flex flex-col justify-around p-2.5">
-              <div class="text-black/60 text-xs font-normal font-['PingFang SC'] leading-none">
-                {{ name }}
-              </div>
-              <div class="text-black/90 text-lg font-bold font-['D-DIN Exp'] leading-normal">
-                {{ value }}
-              </div>
-              <div class="flex items-center gap-1">
-                <div class="text-black/40 text-xs font-normal font-['PingFang SC'] leading-none">
-                  年新增
+        <div class="flex items-center mt-[20px]">
+          <div class="w-1 h-[19px] bg-[#2357e9] rounded-md"></div>
+          <div class="text-black text-lg font-normal font-['PingFang SC'] leading-normal ml-[8px]">
+            记录
+          </div>
+        </div>
+        <div class="mt-[16px]">
+          <div class="bg-white rounded-2xl p-[16px] flex flex-col" @click="toorderDetail">
+            <div class="text-black/90 text-sm font-normal font-['PingFang SC'] leading-normal">
+              完成时间:2024-10-20 10:00
+            </div>
+
+            <div class="flex mt-[19px] items-center">
+              <div class="w-[86px] h-[86px] bg-[#f6f6f6] rounded-[10px]"></div>
+              <div class="ml-[16px]">
+                <div class="text-black text-base font-normal font-['PingFang SC'] leading-normal">
+                  阿芙佳朵
                 </div>
-                <div class="text-[#ff2d2d] text-xs font-normal font-['D-DIN Exp'] leading-normal">
-                  20
+                <div
+                  class="text-left text-black/30 text-sm font-normal font-['PingFang SC'] leading-normal"
+                >
+                  数量x2
+                </div>
+                <div
+                  class="text-left text-black/30 text-sm font-normal font-['PingFang SC'] leading-normal"
+                >
+                  600积分
                 </div>
               </div>
             </div>
-          </template>
+          </div>
         </div>
-      </Card>
-    </div>
+      </view>
+    </template>
   </view>
 </template>
 

+ 12 - 1
packages/merchant/src/pages/scan_code/merchant_settings.vue → packages/merchant/src/pages/mine/merchant/merchant_settings.vue

@@ -4,8 +4,19 @@ style:
   navigationBarBackgroundColor: '#fff'
 </route>
 <script lang="ts" setup>
+import { useUserStore } from '../../../store'
+import { storeToRefs } from 'pinia'
+
 import { desinTopBg, rightArrowIcon } from '@designer-hub/assets/src/svgs'
+import { log } from 'console'
 const collapseValue = ref<string[]>(['item1'])
+const userStore = useUserStore()
+const { isLogined, userInfo } = storeToRefs(userStore)
+const logout = () => {
+  console.log('logout')
+  userStore.userInfo = {}
+  uni.reLaunch({ url: '/pages/login/index' })
+}
 </script>
 
 <template>
@@ -59,7 +70,7 @@ const collapseValue = ref<string[]>(['item1'])
       </div>
     </div>
     <div class="w-full mt-[50px]">
-      <wd-button block :round="false">
+      <wd-button block :round="false" @click="logout">
         <div
           class="text-center text-white text-base font-normal font-['PingFang SC'] leading-normal"
         >

+ 0 - 0
packages/merchant/src/pages/scan_code/order_detail.vue → packages/merchant/src/pages/mine/merchant/order_detail.vue


+ 0 - 80
packages/merchant/src/pages/scan_code/index.vue

@@ -1,80 +0,0 @@
-<route lang="yaml">
-style:
-  navigationBarTitleText: 扫码
-  navigationBarBackgroundColor: '#fff'
-</route>
-<script lang="ts" setup>
-import { bookIcon, scanIcon } from '@designer-hub/assets/src/svgs'
-</script>
-
-<template>
-  <view>
-    <div
-      class="bg-white backdrop-blur-[60px] my-[16px] flex flex-col justify-center items-center p-[16px] mt-[20px]"
-    >
-      <div
-        class="w-[68px] h-[68px] bg-[#2357e9] rounded-full mt-[37px] flex items-center justify-center"
-      >
-        <wd-img width="36px" height="36px" :src="scanIcon"></wd-img>
-      </div>
-      <div class="w-full mt-[45px]">
-        <wd-button block :round="false">
-          <div
-            class="text-center text-white text-base font-normal font-['PingFang SC'] leading-normal"
-          >
-            扫码验券
-          </div>
-        </wd-button>
-      </div>
-    </div>
-    <div
-      class="bg-white backdrop-blur-[60px] flex flex-col justify-center items-center p-[16px] mt-[20px]"
-    >
-      <div
-        class="w-[68px] h-[68px] bg-[#2357e9] rounded-full mt-[34px] flex items-center justify-center"
-      >
-        <wd-img width="36px" height="36px" :src="bookIcon"></wd-img>
-      </div>
-      <div class="w-full flex items-center mt-[40px]">
-        <div
-          class="text-black/90 text-base font-normal font-['PingFang SC'] leading-relaxed width-[96px]"
-        >
-          输入订单金额
-        </div>
-        <div class="bg-[#f5f7f9] rounded-lg flex items-center flex-1 ml-[16px]">
-          <wd-input type="number" placeholder="请输金额" />
-        </div>
-      </div>
-      <div class="w-full flex items-center mt-[20px]">
-        <div
-          class="text-black/90 text-base font-normal font-['PingFang SC'] leading-relaxed width-[96px]"
-        >
-          需支付积分
-        </div>
-        <div
-          class="text-[#ff2d2d] text-base font-normal font-['PingFang SC'] leading-relaxed ml-[20px]"
-        >
-          3400 积分
-        </div>
-      </div>
-      <div class="w-full mt-[45px]">
-        <wd-button block :round="false">
-          <div
-            class="text-center text-white text-base font-normal font-['PingFang SC'] leading-normal"
-          >
-            积分结账
-          </div>
-        </wd-button>
-      </div>
-    </div>
-  </view>
-</template>
-
-<style lang="scss" scoped>
-:deep(.wd-input) {
-  background: transparent;
-  height: 100%;
-  border: none;
-  width: 100%;
-}
-</style>

+ 1 - 1
packages/merchant/src/types/auto-import.d.ts

@@ -93,7 +93,7 @@ declare global {
 // for type re-export
 declare global {
   // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
+  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
 }
 // for vue template auto import

+ 4 - 5
packages/merchant/src/types/uni-pages.d.ts

@@ -10,12 +10,11 @@ interface NavigateToOptions {
        "/pages/designer/index" |
        "/pages/home/index" |
        "/pages/mine/index" |
-       "/pages/scan_code/index" |
-       "/pages/scan_code/merchant_settings" |
-       "/pages/scan_code/mine" |
-       "/pages/scan_code/order_detail" |
-       "/pages/scan_code/settlement" |
+       "/pages/home/merchant/mine" |
+       "/pages/home/merchant/settlement" |
        "/pages/home/tasks/index" |
+       "/pages/mine/merchant/merchant_settings" |
+       "/pages/mine/merchant/order_detail" |
        "/pages/home/tasks/detail/index";
 }
 interface RedirectToOptions extends NavigateToOptions {}

+ 4 - 29
pnpm-lock.yaml

@@ -299,6 +299,9 @@ importers:
       pinia-plugin-persistedstate:
         specifier: 3.2.1
         version: 3.2.1(pinia@2.0.36)
+      qrcode:
+        specifier: ^1.5.4
+        version: 1.5.4
       qs:
         specifier: 6.5.3
         version: 6.5.3
@@ -7477,7 +7480,6 @@ packages:
   /ansi-regex@5.0.1:
     resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
     engines: {node: '>=8'}
-    dev: true
 
   /ansi-regex@6.1.0:
     resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
@@ -7500,7 +7502,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       color-convert: 2.0.1
-    dev: true
 
   /ansi-styles@5.2.0:
     resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
@@ -8891,7 +8892,6 @@ packages:
   /camelcase@5.3.1:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
-    dev: true
 
   /camelcase@6.3.0:
     resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
@@ -9026,7 +9026,6 @@ packages:
       string-width: 4.2.3
       strip-ansi: 6.0.1
       wrap-ansi: 6.2.0
-    dev: true
 
   /cliui@7.0.4:
     resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
@@ -9076,14 +9075,12 @@ packages:
     engines: {node: '>=7.0.0'}
     dependencies:
       color-name: 1.1.4
-    dev: true
 
   /color-name@1.1.3:
     resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
 
   /color-name@1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-    dev: true
 
   /color-string@1.9.1:
     resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
@@ -9706,7 +9703,6 @@ packages:
   /decamelize@1.2.0:
     resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
   /decimal.js@10.4.3:
     resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
@@ -9903,7 +9899,6 @@ packages:
 
   /dijkstrajs@1.0.3:
     resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
-    dev: true
 
   /dingtalk-miniapp-opensdk@1.0.8:
     resolution: {integrity: sha512-dT8ReM7LXariWkp5hIdyGe1xfkgb8ny/8//4ieT7m0toxR3CwFVxwXseyiIpvgmfc1mcKcOkf81kc7uFqhmIqQ==}
@@ -10082,7 +10077,6 @@ packages:
 
   /emoji-regex@8.0.0:
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-    dev: true
 
   /enabled@2.0.0:
     resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==}
@@ -11016,7 +11010,6 @@ packages:
     dependencies:
       locate-path: 5.0.0
       path-exists: 4.0.0
-    dev: true
 
   /find-up@5.0.0:
     resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
@@ -11221,7 +11214,6 @@ packages:
   /get-caller-file@2.0.5:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
-    dev: true
 
   /get-east-asian-width@1.2.0:
     resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
@@ -11991,7 +11983,6 @@ packages:
   /is-fullwidth-code-point@3.0.0:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
-    dev: true
 
   /is-fullwidth-code-point@4.0.0:
     resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
@@ -13129,7 +13120,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       p-locate: 4.1.0
-    dev: true
 
   /locate-path@6.0.0:
     resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
@@ -14180,7 +14170,6 @@ packages:
     engines: {node: '>=6'}
     dependencies:
       p-try: 2.2.0
-    dev: true
 
   /p-limit@3.1.0:
     resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
@@ -14201,7 +14190,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       p-limit: 2.3.0
-    dev: true
 
   /p-locate@5.0.0:
     resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
@@ -14220,7 +14208,6 @@ packages:
   /p-try@2.2.0:
     resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
     engines: {node: '>=6'}
-    dev: true
 
   /pac-proxy-agent@5.0.0:
     resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==}
@@ -14331,7 +14318,6 @@ packages:
   /path-exists@4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
-    dev: true
 
   /path-is-absolute@1.0.1:
     resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
@@ -14505,7 +14491,6 @@ packages:
   /pngjs@5.0.0:
     resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
     engines: {node: '>=10.13.0'}
-    dev: true
 
   /possible-typed-array-names@1.0.0:
     resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
@@ -15041,6 +15026,7 @@ packages:
 
   /prr@1.0.1:
     resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+    requiresBuild: true
     dev: true
 
   /psl@1.9.0:
@@ -15078,7 +15064,6 @@ packages:
       dijkstrajs: 1.0.3
       pngjs: 5.0.0
       yargs: 15.4.1
-    dev: true
 
   /qs@6.13.0:
     resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
@@ -15443,7 +15428,6 @@ packages:
   /require-directory@2.1.1:
     resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
   /require-from-string@2.0.2:
     resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
@@ -15452,7 +15436,6 @@ packages:
 
   /require-main-filename@2.0.0:
     resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
-    dev: true
 
   /requires-port@1.0.0:
     resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
@@ -15718,7 +15701,6 @@ packages:
 
   /set-blocking@2.0.0:
     resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
-    dev: true
 
   /set-function-length@1.2.2:
     resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
@@ -16054,7 +16036,6 @@ packages:
       emoji-regex: 8.0.0
       is-fullwidth-code-point: 3.0.0
       strip-ansi: 6.0.1
-    dev: true
 
   /string-width@7.2.0:
     resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
@@ -16120,7 +16101,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       ansi-regex: 5.0.1
-    dev: true
 
   /strip-ansi@7.1.0:
     resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
@@ -17451,7 +17431,6 @@ packages:
 
   /which-module@2.0.1:
     resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
-    dev: true
 
   /which-typed-array@1.1.15:
     resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
@@ -17533,7 +17512,6 @@ packages:
       ansi-styles: 4.3.0
       string-width: 4.2.3
       strip-ansi: 6.0.1
-    dev: true
 
   /wrap-ansi@7.0.0:
     resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
@@ -17668,7 +17646,6 @@ packages:
 
   /y18n@4.0.3:
     resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
-    dev: true
 
   /y18n@5.0.8:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
@@ -17698,7 +17675,6 @@ packages:
     dependencies:
       camelcase: 5.3.1
       decamelize: 1.2.0
-    dev: true
 
   /yargs-parser@20.2.9:
     resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
@@ -17725,7 +17701,6 @@ packages:
       which-module: 2.0.1
       y18n: 4.0.3
       yargs-parser: 18.1.3
-    dev: true
 
   /yargs@16.2.0:
     resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}