purui 3 주 전
부모
커밋
d1e6ca9729

BIN
packages/app/src/assets/pngs/eyes.png


BIN
packages/app/src/assets/pngs/no-eyes.png


+ 4 - 0
packages/app/src/core/libs/pngs.ts

@@ -9,6 +9,8 @@ import taskCenterBg from '@/assets/pngs/task-center-bg.png'
 import iconCamera from '@/assets/pngs/icon-camera.png'
 import iconWallet from '@/assets/pngs/icon-wallet.png'
 import abc from '@/assets/pngs/abc.png'
+import eyes from '@/assets/pngs/eyes.png'
+import noEyes from '@/assets/pngs/no-eyes.png'
 import calculator from '@/assets/pngs/calculator.png'
 import linkBuckle from '@/assets/pngs/link-buckle.png'
 import memberTextV1 from '@/assets/pngs/member-text-v1.png'
@@ -25,6 +27,8 @@ export {
   iconCamera,
   iconWallet,
   abc,
+  eyes,
+  noEyes,
   calculator,
   linkBuckle,
   memberTextV1,

+ 7 - 1
packages/app/src/pages-sub/home/about/index.vue

@@ -8,11 +8,17 @@
 </route>
 <script setup lang="ts">
 import NavbarEvo from '@/components/navbar-evo.vue'
+// const imgs = ref([
+//   'https://image.zhuchaohui.com/zhucaohui/498f4e8c68e554890c7ac23e684044d238fcb46568cf15b652da8827279d24a3.png',
+//   'https://image.zhuchaohui.com/zhucaohui/1e818f8ea7ede66cee4b31cd114c054b950e5992407e8c145f6d823770b204b2.png',
+//   'https://image.zhuchaohui.com/zhucaohui/45bb68f12d3eb9b4f70eb46769a0ab1adeb55d8242a23c45001fe56986b30a36.png',
+//   'https://image.zhuchaohui.com/zhucaohui/9d6713cc39aeb20faae4f374bf92764252ee28f38de2540ab02e1a9d7496bdcb.png',
+// ])
 const imgs = ref([
   'https://image.zhuchaohui.com/zhucaohui/498f4e8c68e554890c7ac23e684044d238fcb46568cf15b652da8827279d24a3.png',
   'https://image.zhuchaohui.com/zhucaohui/1e818f8ea7ede66cee4b31cd114c054b950e5992407e8c145f6d823770b204b2.png',
   'https://image.zhuchaohui.com/zhucaohui/45bb68f12d3eb9b4f70eb46769a0ab1adeb55d8242a23c45001fe56986b30a36.png',
-  'https://image.zhuchaohui.com/zhucaohui/9d6713cc39aeb20faae4f374bf92764252ee28f38de2540ab02e1a9d7496bdcb.png',
+  'https://image.zhuchaohui.com/zhucaohui/1314a6e918fa9c65327b478e4422cd00a847e8234e376d50f05d512f78cd639c.jpg',
 ])
 onShareAppMessage(() => ({
   title: '1分钟快速了解筑巢荟',

+ 32 - 7
packages/app/src/pages-sub/home/content/index.vue

@@ -88,8 +88,9 @@ onLoad(async (query: { id: string; type?: 'banner'; data?: string }) => {
         }
       })
   } else if (type.value === 'home-banner') {
-    console.log('home-banner', query.data)
+    // console.log('home-banner', query.data)
     bannerHome.value = JSON.parse(decodeURIComponent(query.data))
+	console.log('home-banner', bannerHome.value)
     uni.setNavigationBarTitle({
       title: bannerHome.value.name,
     })
@@ -98,12 +99,36 @@ onLoad(async (query: { id: string; type?: 'banner'; data?: string }) => {
   }
   await run()
 })
-onShareAppMessage(() => ({
-  title: data.value?.title,
-}))
-onShareTimeline(() => ({
-  title: data.value?.title,
-}))
+onShareAppMessage(() => {
+	if(type.value === 'home-banner'){
+		return {
+		  title: bannerHome.value.name,
+		  path:"/pages-sub/home/content/index?type=home-banner&id=" + id.value +"&data=" + encodeURIComponent(JSON.stringify(bannerHome.value)),
+		  imageUrl:bannerHome.value.coverVideoImage
+		}
+	}else{
+		return {
+			title: data.value?.title,
+		}
+	}
+})
+onShareTimeline(() =>{
+	if(type.value === 'home-banner'){
+		return {
+		  title: bannerHome.value.name,
+		  path:"/pages-sub/home/content/index?type=home-banner&id=" + id.value +"&data=" + encodeURIComponent(JSON.stringify(bannerHome.value)),
+		  imageUrl:bannerHome.value.coverVideoImage
+		}
+	}else{
+		return {
+			title: data.value?.title,
+		}
+	}
+})
+// onShareTimeline(() => ({
+//   title: data.value.title?data.value.title:bannerHome.value.name,
+//   path:"/pages-sub/home/content/index?type=home-banner&id=" + id.value +"&data=" + encodeURIComponent(JSON.stringify(bannerHome.value))
+// }))
 </script>
 <template>
   <div class="flex-grow bg-white">

+ 5 - 1
packages/app/src/pages-sub/mine/homepage/edit/index.vue

@@ -153,7 +153,11 @@ onMounted(async () => {
         <div>
           <SectionHeading title="从业年限">
             <template #start>
-              <wd-input placeholder="请输入年限" no-border v-model="form.serviceYears"></wd-input>
+              <wd-input type="number" placeholder="请输入年限" no-border v-model="form.serviceYears">
+				  <template #suffix>
+					  <text>年</text>
+				  </template>
+			  </wd-input>
             </template>
           </SectionHeading>
         </div>

+ 20 - 20
packages/app/src/pages-sub/mine/invite/index.vue

@@ -62,18 +62,18 @@ const createPoster = () => {
           ctx.drawImage(path, 0, 0, w, w / 1.56)
           canvas.CircleImage(avatarPath, 17, 21, 14)
           canvas.Image(logoPath, 17, 230, 24, 24)
-          canvas.Image(qrcode, 200, 350, 100, 100)
+          canvas.Image(qrcode, 120, 350, 90, 90)
           canvas.FillText(userInfo.value?.nickname, '#ffffff', 14, 53, 40)
           canvas.FillText('筑巢荟—助力设计师成长平台', '#ffffff', 18, 53, 248)
-          canvas.FillText('国内外设计游学', '#ffffff', 12, 62, 303)
-          canvas.FillText('设计赋能项目', '#ffffff', 12, 207, 303)
-          canvas.FillText('线上获客工具', '#ffffff', 12, 62, 339)
-          canvas.FillText('丰富线下活动', '#ffffff', 12, 207, 339)
+          canvas.FillText('国内外设计游学', '#ffffff', 12, 62, 283)
+          canvas.FillText('设计赋能项目', '#ffffff', 12, 207, 283)
+          canvas.FillText('线上获客工具', '#ffffff', 12, 62, 319)
+          canvas.FillText('丰富线下活动', '#ffffff', 12, 207, 319)
 
-          canvas.Image(icon1, 41, 290, 18, 18)
-          canvas.Image(icon2, 189, 290, 18, 18)
-          canvas.Image(icon3, 41, 325, 18, 18)
-          canvas.Image(icon4, 189, 325, 18, 18)
+          canvas.Image(icon1, 41, 270, 18, 18)
+          canvas.Image(icon2, 189, 270, 18, 18)
+          canvas.Image(icon3, 41, 305, 18, 18)
+          canvas.Image(icon4, 189, 305, 18, 18)
 
           ctx.draw(true, () => {
             uni.canvasToTempFilePath({
@@ -145,18 +145,18 @@ onMounted(async () => {
           class="w-full h-full"
           :src="posterUrl"
           @displayed="canvasHidden = true"
-        ></ImageEvo>
-        <div class="absolute bottom-5.5 left-5.5 flex justify-between" v-if="canvasHidden">
-          <!-- <cover-view> -->
-          <wd-button custom-class="bg-white/10!" @click="save">保存到相册</wd-button>
-          <!-- <div style="margin-left: 100rpx;">
-			  <wd-img :width="50" :height="50" :src="data.qrcodeUrl"></wd-img>
-		  </div> -->
-          <!-- </cover-view> -->
-          <!-- <wd-button @click="share">微信</wd-button>
-        <wd-button @click="share">朋友圈</wd-button> -->
-        </div>
+        ></ImageEvo>      
       </div>
+	  <div class="absolute bottom-20 left-[50%] translate-x-[-50%] flex justify-between" v-if="canvasHidden">
+	    <!-- <cover-view> -->
+	    <wd-button custom-class="bg-white/10!" @click="save">保存到相册</wd-button>
+	    <!-- <div style="margin-left: 100rpx;">
+	  	  <wd-img :width="50" :height="50" :src="data.qrcodeUrl"></wd-img>
+	    </div> -->
+	    <!-- </cover-view> -->
+	    <!-- <wd-button @click="share">微信</wd-button>
+	  <wd-button @click="share">朋友圈</wd-button> -->
+	  </div>
     </div>
     <!-- <SectionHeading title="如何关联视频号?" size="sm"></SectionHeading>
     <img class="w-[347px] h-[186px] rounded-2xl" src="https://via.placeholder.com/347x186" />

+ 1 - 1
packages/app/src/pages/mine/index.vue

@@ -6,7 +6,7 @@
 import { onMounted, ref } from 'vue'
 import CardMenu from '@/components/card-menu.vue'
 import SectionHeading from '@/components/section-heading.vue'
-import { designer, settled, treaty, vipBg } from '../../core/libs/pngs'
+import { designer, settled, treaty, vipBg, noEyes, eyes } from '../../core/libs/pngs'
 import { BannerMode } from '@/core/libs/models'
 import { integral, coupon, order, agent, setting, vip, scan, close } from '../../core/libs/svgs'
 import {

+ 1 - 1
packages/merchant/env/.env

@@ -1,7 +1,7 @@
 VITE_APP_TITLE = '筑巢荟商家端'
 VITE_APP_PORT = 9001
 
-VITE_UNI_APPID = 'H57F2ACE4'
+VITE_UNI_APPID = '__UNI__5950D25'
 VITE_WX_APPID = 'wxfbe1df95a05d1912'
 
 # h5部署网站的base,配置到 manifest.config.ts 里的 h5.router.base

+ 12 - 0
packages/merchant/manifest.config.ts

@@ -116,6 +116,18 @@ export default defineManifestConfig({
     },
     usingComponents: true,
     // __usePrivacyCheck__: true,
+	requiredPrivateInfos:["getLocation", "chooseLocation", "chooseAddress"],
+	permission:{
+		"scope.userLocation": {
+			desc: "你的位置信息将用于小程序位置接口的效果展示"
+		},
+		'scope.userLocationBackground': {
+			desc: ''
+		},
+		'scope.userFuzzyLocation': {
+			desc: ''
+		}
+	}
   },
   'mp-alipay': {
     usingComponents: true,

+ 18 - 2
packages/merchant/src/manifest.json

@@ -1,6 +1,6 @@
 {
   "name": "筑巢荟商家端",
-  "appid": "H57F2ACE4",
+  "appid": "__UNI__5950D25",
   "description": "",
   "versionName": "1.0.0",
   "versionCode": "100",
@@ -87,7 +87,23 @@
     "setting": {
       "urlCheck": false
     },
-    "usingComponents": true
+    "usingComponents": true,
+    "requiredPrivateInfos": [
+      "getLocation",
+      "chooseLocation",
+      "chooseAddress"
+    ],
+    "permission": {
+      "scope.userLocation": {
+        "desc": "你的位置信息将用于小程序位置接口的效果展示"
+      },
+      "scope.userLocationBackground": {
+        "desc": ""
+      },
+      "scope.userFuzzyLocation": {
+        "desc": ""
+      }
+    }
   },
   "mp-alipay": {
     "usingComponents": true,

+ 3 - 1
packages/merchant/src/pages/home/merchant/add-reporting-information.vue

@@ -81,7 +81,7 @@ const customerSchema = ref<DataFormSchema>({
     type: 'TextField',
     label: '客户姓名:',
     labelWidth: 84,
-    // required: true,
+    required: true,
     props: {
       placeholder: '请输入客户姓名',
     },
@@ -90,6 +90,7 @@ const customerSchema = ref<DataFormSchema>({
     type: 'TextField',
     label: '客户电话:',
     labelWidth: 84,
+	required: true,
     props: {
       placeholder: '请输入客户电话',
     },
@@ -97,6 +98,7 @@ const customerSchema = ref<DataFormSchema>({
   customerAddress: {
     type: 'TextField',
     label: '客户地址:',
+	required: true,
     labelWidth: 84,
     props: {
       placeholder: '请输入客户地址',

+ 3 - 3
packages/merchant/src/store/dict.ts

@@ -2,10 +2,10 @@ import { zipToObject } from 'radash'
 import { getByDictType } from '@/core/libs/requests'
 import { defineStore } from 'pinia'
 
-const initData = ['member_channel_type']
+let initData = ['member_channel_type']
 export const useDictStore = defineStore('dict', () => {
   //   const options = ref({})
-  const { data: options, run: fetchOptions } = useRequest(async () => ({
+  let { data: options, run: fetchOptions } = useRequest(async () => ({
     data: zipToObject(
       initData,
       await Promise.all(initData.map((it) => getByDictType(it).then((it) => it.data))),
@@ -13,7 +13,7 @@ export const useDictStore = defineStore('dict', () => {
     msg: '',
     code: 0,
   }))
-  const getOptionLabel = (type: string, value: string | number) =>
+  let getOptionLabel = (type: string, value: string | number) =>
     options.value[type]?.find((it) => it.value === value)?.label
   //   const fetchOptions = async () => {
   //     options.value = await zipToObject(