root 2 kuukautta sitten
vanhempi
commit
2beeaddc16

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 245 - 184
package-lock.json


+ 128 - 93
src/App.vue

@@ -1,103 +1,138 @@
 <script setup lang="ts">
-import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
+	import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
 
-// onLaunch((options) => {
-//   console.log(decodeURIComponent(options?.query.scene));
-//   console.log("App Launch");
-// });
-onShow(() => {
-  console.log("App Show");
-  //调用  版本更新
-});
-onHide(() => {
-  console.log("App Hide");
-});
-const autoUpdate = () => {
-  if (uni.canIUse("getUpdateManager")) {
-    const updateManager = uni.getUpdateManager();
-    updateManager.onCheckForUpdate(function (res) {
-      if (res.hasUpdate) {
-        updateManager.onUpdateReady(function () {
-          uni.showModal({
-            title: "更新提示",
-            content: "新版本已经准备好,是否重启应用?",
-            showCancel: false,
-            success: function (res) {
-              if (res.confirm) {
-                updateManager.applyUpdate();
-              } else if (res.cancel) {
-                uni.showModal({
-                  title: "温馨提示~",
-                  content: "本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~",
-                  success: function (res) {
-                    // autoUpdate();
-                    // return;
-                    //第二次提示后,强制更新
-                    if (res.confirm) {
-                      // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
-                      updateManager.applyUpdate();
-                    } else if (res.cancel) {
-                      //重新回到版本更新提示
-                      autoUpdate();
-                    }
-                  },
-                });
-              }
-            },
-          });
-          updateManager.onUpdateFailed(function () {
-            // 新的版本下载失败
-            uni.showModal({
-              title: "已经有新版本了哟~",
-              content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~",
-            });
-          });
-        });
-      }
-    });
-  } else {
-    uni.showModal({
-      title: "提示",
-      content: "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。",
-    });
-  }
-};
+	// onLaunch((options) => {
+	//   console.log(decodeURIComponent(options?.query.scene));
+	//   console.log("App Launch");
+	// });
+	onShow(() => {
+		console.log("App Show");
+		//调用  版本更新
+	});
+	onHide(() => {
+		console.log("App Hide");
+	});
+	const autoUpdate = () => {
+		if (uni.canIUse("getUpdateManager")) {
+			const updateManager = uni.getUpdateManager();
+			updateManager.onCheckForUpdate(function (res) {
+				if (res.hasUpdate) {
+					updateManager.onUpdateReady(function () {
+						uni.showModal({
+							title: "更新提示",
+							content: "新版本已经准备好,是否重启应用?",
+							showCancel: false,
+							success: function (res) {
+								if (res.confirm) {
+									updateManager.applyUpdate();
+								} else if (res.cancel) {
+									uni.showModal({
+										title: "温馨提示~",
+										content: "本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~",
+										success: function (res) {
+											// autoUpdate();
+											// return;
+											//第二次提示后,强制更新
+											if (res.confirm) {
+												// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+												updateManager.applyUpdate();
+											} else if (res.cancel) {
+												//重新回到版本更新提示
+												autoUpdate();
+											}
+										},
+									});
+								}
+							},
+						});
+						updateManager.onUpdateFailed(function () {
+							// 新的版本下载失败
+							uni.showModal({
+								title: "已经有新版本了哟~",
+								content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~",
+							});
+						});
+					});
+				}
+			});
+		} else {
+			uni.showModal({
+				title: "提示",
+				content: "当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。",
+			});
+		}
+	};
 </script>
 
 <style lang="scss">
-// 字体图标
-@import "@/styles/fonts.scss";
+	page {
+		background: #F0F2F6 url('https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/index_bg.png') no-repeat top;
+		background-size: 100% auto;
+	}
 
-view,
-navigator,
-input,
-scroll-view {
-  box-sizing: border-box;
-}
+	// 字体图标
+	@import "@/styles/fonts.scss";
 
-button::after {
-  border: none;
-}
+	@font-face {
+		font-family: 'Alibaba PuHuiTi 2.0';
+		src: url('https://test.jue-ming.com:8849/api/show?filePath=./webo/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff2') format('woff2'),
+			url('https://test.jue-ming.com:8849/api/show?filePath=./webo/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.woff') format('woff'),
+			url('https://test.jue-ming.com:8849/api/show?filePath=./webo/font/AlibabaPuHuiTi-2-55-Regular/AlibabaPuHuiTi-2-55-Regular.ttf') format('truetype');
+		font-weight: normal;
+		font-style: normal;
+		font-display: swap;
+	}
 
-swiper,
-scroll-view {
-  flex: 1;
-  height: 100%;
-  overflow: hidden;
-}
+	@font-face {
+		font-family: 'ZhankuKuaiLeTi';
+		src: url('https://test.jue-ming.com:8849/api/show?filePath=./webo/font/ZhankuKuaiLeTi.ttf') format('truetype');
+		font-weight: normal;
+		font-style: normal;
+		font-display: swap;
+	}
 
-image {
-  width: 100%;
-  height: 100%;
-  vertical-align: middle;
-}
+	@font-face {
+		font-family: 'YanShiXieHeiTi';
+		src: url('https://test.jue-ming.com:8849/api/show?filePath=./webo/font/演示斜黑体.otf') format('truetype');
+		font-weight: normal;
+		font-style: normal;
+		font-display: swap;
+	}
 
-// 两行省略
-.ellipsis {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  display: -webkit-box;
-  -webkit-line-clamp: 2;
-  -webkit-box-orient: vertical;
-}
-</style>
+	// view,
+	// navigator,
+	// input,
+	// scroll-view {
+	// 	box-sizing: border-box;
+	// }
+
+	view {
+		box-sizing: border-box;
+	}
+
+	button::after {
+		border: none;
+	}
+
+	swiper,
+	scroll-view {
+		flex: 1;
+		height: 100%;
+		overflow: hidden;
+	}
+
+	image {
+		width: 100%;
+		height: 100%;
+		vertical-align: middle;
+	}
+
+	// 两行省略
+	.ellipsis {
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		-webkit-box-orient: vertical;
+	}
+</style>

+ 169 - 161
src/components/ShuiWuGetPhone.vue

@@ -1,171 +1,179 @@
 <script setup lang="ts">
-import { onMounted, ref, reactive } from "vue";
-import { userLoginApi, getUserPhoneApi } from "@/services/home";
-import { useMemberStore } from "@/stores/";
-import type { LoginParams, GetPhoneParams } from "@/types/home";
-import { login } from "@/hooks/useIsLogin";
-const useMember = useMemberStore();
-const popup = ref<any>();
-
-const userInfoMsg = reactive<LoginParams>({
-  code: "",
-});
-
-onMounted(() => {
-  console.log("登录");
-});
-//获取手机号
-const getPhoneNumber = (e: any) => {
-  console.log(e);
-  //获取到动态令牌后将动态令牌传输到后台方法
-  //同时需要将获取到的openId传输给后台
-  const params = {
-    openId: useMember.userInfo.openId,
-    code: e.detail.code,
-  };
-  getUserPhone(params);
-};
-const getUserPhone = async (val: GetPhoneParams) => {
-  const res = await getUserPhoneApi(val);
-
-  useMember.userInfo.phone = res.data;
-
-  login().then((res) => {
-    //这时可以查询是否授权
-
-    if (useMember.userInfo.isAuth == "0") {
-      uni.showToast({
-        title: "登录成功,手机未授权",
-        icon: "none",
-      });
-    }
-  });
-  close();
-  //获取到手机号后
-  //将缓存里的手机号替换为最新的
-};
-
-//拿到code 向后台请求openId   session_key
-
-const open = () => {
-  login().then((res: any) => {
-    userInfoMsg.code = res.code;
-  });
-  popup.value.open("bottom");
-};
-const close = () => {
-  popup.value.close();
-};
-
-const agree = ref<boolean>(false);
-const radioChange = () => {
-  agree.value = !agree.value;
-};
-
-const stipulate = ref<any>();
-
-const stipulateClose = () => {
-  stipulate.value.close();
-};
-
-const viewDetail = () => {
-  stipulateOpen();
-};
-const stipulateOpen = () => {
-  stipulate.value.open("bottom");
-};
-
-defineExpose({
-  open,
-});
+	import { onMounted, ref, reactive } from "vue";
+	import { userLoginApi, getUserPhoneApi } from "@/services/home";
+	import { useMemberStore } from "@/stores/";
+	import type { LoginParams, GetPhoneParams } from "@/types/home";
+	import { login } from "@/hooks/useIsLogin";
+	const useMember = useMemberStore();
+	const popup = ref<any>();
+
+	const userInfoMsg = reactive<LoginParams>({
+		code: "",
+	});
+
+	onMounted(() => {
+		console.log("登录");
+	});
+	//获取手机号
+	const getPhoneNumber = (e : any) => {
+		console.log(e);
+		//获取到动态令牌后将动态令牌传输到后台方法
+		//同时需要将获取到的openId传输给后台
+		const params = {
+			openId: useMember.userInfo.openId,
+			code: e.detail.code,
+		};
+		getUserPhone(params);
+	};
+	const getUserPhone = async (val : GetPhoneParams) => {
+		const res = await getUserPhoneApi(val);
+
+		useMember.userInfo.phone = res.data;
+
+		login().then((res) => {
+			//这时可以查询是否授权
+
+			if (res.userInfo.isAuth == "0") {
+				uni.showToast({
+					title: "登录成功,手机未授权",
+					icon: "none",
+				});
+			} else {
+				uni.showToast({
+					title: "登录成功",
+					icon: "none",
+				});
+			}
+		});
+		close();
+		//获取到手机号后
+		//将缓存里的手机号替换为最新的
+	};
+
+	//拿到code 向后台请求openId   session_key
+
+	const open = () => {
+		login().then((res : any) => {
+			userInfoMsg.code = res.code;
+		});
+		popup.value.open("bottom");
+	};
+	const close = () => {
+		popup.value.close();
+	};
+
+	const agree = ref<boolean>(false);
+	const radioChange = () => {
+		agree.value = !agree.value;
+	};
+
+	const stipulate = ref<any>();
+
+	const stipulateClose = () => {
+		stipulate.value.close();
+	};
+
+	const viewDetail = () => {
+		stipulateOpen();
+	};
+	const stipulateOpen = () => {
+		stipulate.value.open("bottom");
+	};
+
+	defineExpose({
+		open,
+	});
 </script>
 <template>
-  <view>
-    <uni-popup ref="popup" :mask-click="false">
-      <view class="get_phone_out">
-        <view
-          style="
+	<view>
+		<uni-popup ref="popup" type="bottom" :mask-click="false">
+			<view class="get_phone_out">
+				<view class="close_btn">
+					<image src="" mode="widthFix"></image>
+				</view>
+
+				<view class="welcome">欢迎登陆锦泓企业财税综合评估系统</view>
+				<view class="serve">登陆后可享受更好的服务体验</view>
+				<button :disabled="!agree" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
+					点击登录
+				</button>
+				<view class="clause">
+					<label class="radio">
+						<radio value="r1" :checked="agree" @click="radioChange" />点击即表示同意
+					</label>
+					<view class="agreement" @click="viewDetail">《授权协议及条款》</view>
+				</view>
+			</view>
+		</uni-popup>
+
+		<uni-popup ref="stipulate" :mask-click="false">
+			<view class="get_phone_out">
+				<view style="
             text-align: right;
             width: 100%;
             color: #000000;
             margin-right: 20rpx;
             font-size: 40rpx;
-          "
-          ><text @click="close">X</text></view
-        >
-
-        <view class="welcome">欢迎登录税务风险检测</view>
-        <view class="serve">登录后可享受更好的服务</view>
-        <button
-          :disabled="!agree"
-          open-type="getPhoneNumber"
-          @getphonenumber="getPhoneNumber"
-        >
-          点击登录
-        </button>
-        <view class="clause">
-          <label class="radio">
-            <radio value="r1" :checked="agree" @click="radioChange" />点击即表示同意
-          </label>
-          <view class="agreement" @click="viewDetail">《授权协议及条款》</view>
-        </view>
-      </view>
-    </uni-popup>
-
-    <uni-popup ref="stipulate" :mask-click="false">
-      <view class="get_phone_out">
-        <view
-          style="
-            text-align: right;
-            width: 100%;
-            color: #000000;
-            margin-right: 20rpx;
-            font-size: 40rpx;
-          "
-          ><text @click="stipulateClose">X</text></view
-        >
-        <view>
-          我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款
-        </view>
-      </view>
-    </uni-popup>
-  </view>
+          "><text @click="stipulateClose">X</text></view>
+				<view>
+					我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款我是长条款
+				</view>
+			</view>
+		</uni-popup>
+	</view>
 </template>
 <style lang="scss">
-.get_phone_out {
-  background: #ffffff;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-
-  .welcome {
-    font-size: 40rpx;
-    font-weight: 700;
-    padding-top: 40rpx;
-  }
-
-  .serve {
-    font-size: 30rpx;
-    font-weight: 100;
-    color: #000000;
-    padding-top: 20rpx;
-  }
-
-  button {
-    background: rgb(132, 132, 226);
-    color: #ffffff;
-    border-radius: 40rpx;
-    margin-top: 60rpx;
-    padding: 0rpx 60rpx;
-  }
-
-  .clause {
-    padding-bottom: 100rpx;
-    padding-top: 40rpx;
-    display: flex;
-    .agreement {
-      color: blue;
-    }
-  }
-}
-</style>
+	.get_phone_out {
+		width: 750rpx;
+		height: 507rpx;
+		padding-top: 69rpx;
+		background: #FFFFFF;
+		border-radius: 40rpx 40rpx 0rpx 0rpx;
+		text-align: center;
+		position: relative;
+
+		.close_btn {
+			position: absolute;
+			right: 20rpx;
+			top: 20rpx;
+		}
+
+		.welcome {
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: bold;
+			font-size: 36rpx;
+			color: #222222;
+		}
+
+		.serve {
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 24rpx;
+			color: #999999;
+			margin: 14rpx 0 100rpx;
+		}
+
+		button {
+			width: 263rpx;
+			height: 76rpx;
+			background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+			border-radius: 20rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 32rpx;
+			color: #FFFFFF !important;
+			text-align: center;
+		}
+
+		.clause {
+			padding-bottom: 100rpx;
+			padding-top: 40rpx;
+			display: flex;
+			justify-content: center;
+
+			.agreement {
+				color: blue;
+			}
+		}
+	}
+</style>

+ 55 - 0
src/components/ShuiWuNav.vue

@@ -0,0 +1,55 @@
+<template>
+	<view class="nav_bar">
+		<view class="nav_back" @click="goBack">
+			<image src="../static/images/left.png" mode="widthFix"></image>
+		</view>
+		<view class="nav_title">{{navTitle}}</view>
+		<view class="nav_right"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "ShuiWuNav",
+		props: [
+			'navTitle'
+		],
+		data() {
+			return {
+
+			};
+		},
+		methods: {
+			goBack() {
+				uni.navigateBack();
+			}
+		}
+	}
+</script>
+
+<style>
+	.nav_bar {
+		box-sizing: border-box;
+		width: 100%;
+		padding: 0 17rpx;
+		line-height: 58rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-top: 89rpx;
+	}
+
+	.nav_back {
+		font-size: 32rpx;
+		color: #ffffff;
+	}
+
+	.nav_back image {
+		width: 23rpx;
+	}
+
+	.nav_title {
+		font-size: 32rpx;
+		color: #ffffff;
+	}
+</style>

+ 94 - 99
src/components/ShuiWuSH.vue

@@ -1,109 +1,104 @@
 <script setup lang="ts">
-import { ref, reactive } from "vue";
+	import { ref, reactive } from "vue";
 
-const inputDialog = ref<any>(false);
+	const inputDialog = ref<any>(false);
 
-//表单所用到的数据绑定
-//公司名称
-const name = ref<string>("");
-//税务编号
-const swNum = ref<string>("");
-//测试类型--渠道测试的话值为1
-//--个人测试的话值为2
-const type = ref<string>("1");
-const dialogInputConfirm = () => {
-  //判断单位是否为空
-  if (name.value == "") {
-    uni.showToast({
-      title: "单位不能为空",
-      icon: "none",
-    });
-    return;
-  }
-  //判断单位税号是不是为空
-  if (swNum.value == "") {
-    uni.showToast({
-      title: "税号不能为空",
-      icon: "none",
-    });
-    return;
-  }
-  //如果都填写了则判断跳转到另一个页面
-  inputDialog.value.close();
-  //跳转到页面  输入信息去查询页面
-  //需要跳转到信息输入界面
-  uni.navigateTo({
-    url: `/pages/login/login?name=${name.value}&swNum=${swNum.value}&type=${type.value}`,
-  });
-};
+	//表单所用到的数据绑定
+	//公司名称
+	const name = ref<string>("");
+	//税务编号
+	const swNum = ref<string>("");
+	//联系方式
+	const phone = ref<string>("");
+	//测试类型--渠道测试的话值为1
+	//--个人测试的话值为2
+	const type = ref<string>("1");
+	const dialogInputConfirm = () => {
+		//判断单位是否为空
+		if (name.value == "") {
+			uni.showToast({
+				title: "单位不能为空",
+				icon: "none",
+			});
+			return;
+		}
+		//判断单位税号是不是为空
+		if (swNum.value == "") {
+			uni.showToast({
+				title: "税号不能为空",
+				icon: "none",
+			});
+			return;
+		}
+		//如果都填写了则判断跳转到另一个页面
+		inputDialog.value.close();
+		//跳转到页面  输入信息去查询页面
+		//需要跳转到信息输入界面
+		// uni.navigateTo({
+		// 	url: `/pages/login/login?name=${name.value}&swNum=${swNum.value}&type=${type.value}`,
+		// });
 
-//打开输入税号的弹出框
-const openSH = () => {
-  name.value = "";
-  swNum.value = "";
-  inputDialog.value.open("center");
-};
+		// 刷新查询任务列表
+	};
 
-//关闭税务弹出框
-const closeSW = () => {
-  inputDialog.value.close();
-};
+	//打开输入税号的弹出框
+	const openSH = () => {
+		name.value = "";
+		swNum.value = "";
+		inputDialog.value.open("center");
+	};
 
-//导出方法专供父组件调用
-defineExpose({ openSH });
+	//关闭税务弹出框
+	const closeSW = () => {
+		inputDialog.value.close();
+	};
+
+	//导出方法专供父组件调用
+	defineExpose({ openSH });
 </script>
 <template>
-  <view>
-    <view>
-      <!-- 输入框示例 -->
-      <uni-popup ref="inputDialog" type="dialog" :mask-click="false">
-        <uni-popup-dialog
-          :before-close="false"
-          ref="inputClose"
-          mode="input"
-          title="输入内容"
-          value="对话框预置提示内容!"
-          placeholder="请输入内容"
-          @close="closeSW"
-          @confirm="dialogInputConfirm"
-        >
-          <view class="form_out">
-            <view class="form_out_name">
-              <uni-easyinput
-                v-model="name"
-                :clearable="false"
-                type="text"
-                style="margin-bottom: 30rpx"
-                placeholder="请输入检测单位名称"
-            /></view>
-            <view>
-              <uni-easyinput
-                v-model="swNum"
-                :clearable="false"
-                type="text"
-                placeholder="请输入检测单位的税号"
-              />
-            </view>
-            <view class="form_tip"
-              >请检查税号是否正确,输入错误无法获取报告请联系客服</view
-            >
-          </view>
-        </uni-popup-dialog>
-      </uni-popup>
-    </view>
-  </view>
+	<view>
+		<view>
+			<!-- 输入框示例 -->
+			<uni-popup ref="inputDialog" type="dialog" :mask-click="false">
+				<uni-popup-dialog :before-close="false" ref="inputClose" mode="input" title="提示" value="对话框预置提示内容!"
+					placeholder="请输入内容" @close="closeSW" @confirm="dialogInputConfirm">
+					<view class="form_out">
+						<view class="form_out_name">
+							<uni-easyinput v-model="name" :clearable="false" type="text" placeholder="请输入检测单位名称" />
+						</view>
+						<view class="form_out_name">
+							<uni-easyinput v-model="swNum" :clearable="false" type="text" placeholder="请输入检测单位的税号" />
+						</view>
+						<view>
+							<uni-easyinput v-model="phone" :clearable="false" type="text" placeholder="请输入联系方式" />
+						</view>
+						<view class="form_tip">请检查税号是否正确,输入错误无法获取报告请联系客服</view>
+					</view>
+				</uni-popup-dialog>
+			</uni-popup>
+		</view>
+	</view>
 </template>
 <style lang="scss" scoped>
-.form_out {
-  width: 100%;
-  .form_out_name {
-    margin-bottom: 20rpx;
-  }
-  .form_tip {
-    margin-top: 10rpx;
-    font-size: 20rpx;
-    color: #000000;
-    opacity: 0.4;
-  }
-}
-</style>
+	.form_out {
+		width: 100%;
+
+		.form_out_name {
+			margin-bottom: 20rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 28rpx;
+			color: #999999;
+		}
+
+		.form_tip {
+			margin-top: 10rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 24rpx;
+			color: #999999;
+			line-height: 36rpx;
+		}
+	}
+</style>

+ 19 - 19
src/components/ShuiWuTop.vue

@@ -1,26 +1,26 @@
 <script setup lang="ts">
-const prop = defineProps({
-  des: {},
-});
-const safe = uni.getSystemInfoSync().safeArea?.top as number;
-console.log(safe);
-// const saftTop = safe.top
-//获取安全距离
+	const prop = defineProps({
+		des: {},
+	});
+	const safe = uni.getSystemInfoSync().safeArea?.top as number;
+	console.log(safe);
+	// const saftTop = safe.top
+	//获取安全距离
 </script>
 
 <template>
-  <view class="view-top" :style="{ paddingTop: safe + 40 + 'rpx' }">
-    {{ des }}
-  </view>
+	<view class="view-top" :style="{ paddingTop: safe + 40 + 'rpx' }">
+		{{ des }}
+	</view>
 </template>
 
 <style>
-.view-top {
-  text-align: center;
-  color: #8ebfc7;
-  font-size: 40rpx;
-  background-color: rgb(243, 250, 248);
-  padding-bottom: 40rpx;
-  font-weight: 700;
-}
-</style>
+	.view-top {
+		text-align: center;
+		color: #8ebfc7;
+		font-size: 40rpx;
+		/* background-color: rgb(243, 250, 248); */
+		padding-bottom: 40rpx;
+		font-weight: 700;
+	}
+</style>

+ 120 - 120
src/pages.json

@@ -1,130 +1,130 @@
 {
-  "easycom": {
-    "autoscan": true,
-    "custom": {
-      // uni-ui 规则如下配置
-      "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",
-      "^LaiTing(.*)": "@/components/LaiTing$1.vue",
-      "^ShuiWu(.*)": "@/components/ShuiWu$1.vue"
-    }
-  },
-  "pages": [
-    //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
-    {
+	"easycom": {
+		"autoscan": true,
+		"custom": {
+			// uni-ui 规则如下配置
+			"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",
+			"^LaiTing(.*)": "@/components/LaiTing$1.vue",
+			"^ShuiWu(.*)": "@/components/ShuiWu$1.vue"
+		}
+	},
+	"pages": [
+		//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
 
-      "path": "pages/index/index",
-      "style": {
-        "navigationBarTitleText": "首页",
-        "navigationStyle": "custom"
-      }
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "首页",
+				"navigationStyle": "custom"
+			}
 
-    },
-    {
+		},
+		{
 
-      "path": "pages/index/inviteUser",
-      "style": {
-        "navigationBarTitleText": "邀请用户",
-        // "navigationStyle": "custom"
-      }
+			"path": "pages/index/inviteUser",
+			"style": {
+				"navigationBarTitleText": "邀请用户",
+				"navigationStyle": "custom"
+			}
 
-    },
-    // {
+		},
+		// {
 
-    //   "path": "pages/index/inviteUser",
-    //   "style": {
-    //     "navigationBarTitleText": "信息填写",
-    //     // "navigationStyle": "custom"
-    //   }
+		//   "path": "pages/index/inviteUser",
+		//   "style": {
+		//     "navigationBarTitleText": "信息填写",
+		//     // "navigationStyle": "custom"
+		//   }
 
-    // },
-    {
-      "path": "pages/index/pay",
-      "style": {
-        "navigationBarTitleText": "用户支付",
-        "navigationStyle": "custom"
-      }
+		// },
+		{
+			"path": "pages/index/pay",
+			"style": {
+				"navigationBarTitleText": "用户支付",
+				"navigationStyle": "custom"
+			}
 
-    },
-    {
-      "path": "pages/my/my",
-      "style": {
-        "navigationBarTitleText": "我的",
-        "navigationStyle": "custom"
-      }
-    },
-    {
-      "path": "pages/my/myEdit",
-      "style": {
-        "navigationBarTitleText": "编辑资料"
-        // "navigationStyle": "custom"
-      }
-    },
-    {
-      "path": "pages/my/myInvite",
-      "style": {
-        "navigationBarTitleText": "我的邀请"
-        // "navigationStyle": "custom"
-      }
-    },
-    {
-      "path": "pages/my/reportList",
-      "style": {
-        "navigationBarTitleText": "报告记录"
-        // "navigationStyle": "custom"
-      }
-    },
-    {
-      "path": "pages/my/aboutMy",
-      "style": {
-        "navigationBarTitleText": "关于我们"
-        // "navigationStyle": "custom"
-      }
-    },
+		},
+		{
+			"path": "pages/my/my",
+			"style": {
+				"navigationBarTitleText": "我的",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/my/myEdit",
+			"style": {
+				"navigationBarTitleText": "编辑资料"
+				// "navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/my/myInvite",
+			"style": {
+				"navigationBarTitleText": "我的邀请"
+				// "navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/my/reportList",
+			"style": {
+				"navigationBarTitleText": "报告记录"
+				// "navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/my/aboutMy",
+			"style": {
+				"navigationBarTitleText": "关于我们"
+				// "navigationStyle": "custom"
+			}
+		},
 
 
-    {
-      "path": "pages/login/login",
-      "style": {
-        "navigationBarTitleText": "锦泓征信"      }
-    }
-  ],
-  "globalStyle": {
-    "navigationBarTextStyle": "black",
-    "navigationBarTitleText": "",
-    "navigationBarBackgroundColor": "#F8F8F8",
-    "backgroundColor": "#F8F8F8"
-  },
-  // 设置 TabBar
-  "tabBar": {
-    "color": "#333",
-    "selectedColor": "#27ba9b",
-    "backgroundColor": "#fff",
-    "borderStyle": "white",
-    "list": [
-      {
-        "text": "首页",
-        "pagePath": "pages/index/index",
-        "iconPath": "static/tabs/home_default.png",
-        "selectedIconPath": "static/tabs/home_selected.png"
-      },
-      // {
-      //   "text": "收藏",
-      //   "pagePath": "pages/category/category",
-      //   "iconPath": "static/tabs/collect.png",
-      //   "selectedIconPath": "static/tabs/collect_active.png"
-      // },
-      // {
-      //   "text": "购物车",
-      //   "pagePath": "pages/cart/cart",
-      //   "iconPath": "static/tabs/cart_default.png",
-      //   "selectedIconPath": "static/tabs/cart_selected.png"
-      // },
-      {
-        "text": "我的",
-        "pagePath": "pages/my/my",
-        "iconPath": "static/tabs/user_default.png",
-        "selectedIconPath": "static/tabs/user_selected.png"
-      }
-    ]
-  }
-}
+		{
+			"path": "pages/login/login",
+			"style": {
+				"navigationBarTitleText": "锦泓征信"
+			}
+		}
+	],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	},
+	// 设置 TabBar
+	"tabBar": {
+		"color": "#333",
+		"selectedColor": "#4A89FB",
+		"backgroundColor": "#fff",
+		"borderStyle": "white",
+		"list": [{
+				"text": "首页",
+				"pagePath": "pages/index/index",
+				"iconPath": "static/tabs/home_default.png",
+				"selectedIconPath": "static/tabs/home_selected.png"
+			},
+			// {
+			//   "text": "收藏",
+			//   "pagePath": "pages/category/category",
+			//   "iconPath": "static/tabs/collect.png",
+			//   "selectedIconPath": "static/tabs/collect_active.png"
+			// },
+			// {
+			//   "text": "购物车",
+			//   "pagePath": "pages/cart/cart",
+			//   "iconPath": "static/tabs/cart_default.png",
+			//   "selectedIconPath": "static/tabs/cart_selected.png"
+			// },
+			{
+				"text": "我的",
+				"pagePath": "pages/my/my",
+				"iconPath": "static/tabs/user_default.png",
+				"selectedIconPath": "static/tabs/user_selected.png"
+			}
+		]
+	}
+}

+ 157 - 136
src/pages/index/components/HomeList.vue

@@ -1,143 +1,164 @@
 <script setup lang="ts">
-import { ref, reactive, onMounted } from "vue";
-//到顶部多远时触发事件
-//more  上拉加载更多
-//loading //加载中
-//noMore 没有更多
-const status = ref<string>("more");
-onMounted(() => {});
-const scrollLower = () => {
-  //我到底部了
-  console.log("我到底部了");
-};
+	import { ref, reactive, onMounted } from "vue";
+	//到顶部多远时触发事件
+	//more  上拉加载更多
+	//loading //加载中
+	//noMore 没有更多
+	const status = ref<string>("more");
+	onMounted(() => { });
+	const scrollLower = () => {
+		//我到底部了
+		console.log("我到底部了");
+	};
 </script>
 <template>
-  <view class="home_list_view">
-    <view style="height: 100%">
-      <scroll-view scroll-y="true" lower-threshold="30" @scrolltolower="scrollLower">
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <view class="list_out">
-          <view class="list_title">
-            <view class="report_name">测试报告</view>
-            <view class="report_status">已生成</view>
-          </view>
-          <view class="list_button">
-            <view class="list_time"> 2024-04-15 23:33:05 </view>
-            <view> <button class="button_detail" size="mini">查看详情</button></view>
-          </view>
-        </view>
-        <uni-load-more iconType="circle" :status="status" />
-      </scroll-view>
-    </view>
-  </view>
+	<view class="home_list_view">
+		<view style="height: 100%">
+			<scroll-view scroll-y="true" lower-threshold="30" @scrolltolower="scrollLower">
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view> <button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view> <button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view> <button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view><button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view><button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view> <button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<view class="list_out">
+					<view class="report_status">已生成</view>
+					<view class="list_title">
+						<view class="report_name">河南红朵信息科技有限责任公司</view>
+						<view class="list_time"> 2024-04-15 23:33:05 </view>
+					</view>
+					<view class="list_button">
+						<view> <button class="button_detail" size="mini">查看详情</button></view>
+					</view>
+				</view>
+				<uni-load-more iconType="circle" :status="status" />
+			</scroll-view>
+		</view>
+	</view>
 </template>
 
 <style lang="scss" scoped>
-.home_list_view {
-  flex: 1;
-  display: flex;
-  flex-direction: column;
-  height: 100%;
-  overflow: scroll;
-  .list_out {
-    margin-top: 20rpx;
-    border-radius: 40rpx;
-    background-color: #ffffff;
-    display: flex;
-    flex-direction: column;
-    .list_title {
-      display: flex;
-      flex-direction: row;
-      justify-content: space-between;
-      .report_name {
-        font-size: 30rpx;
-        font-weight: 700;
-        padding-left: 20rpx;
-        padding-top: 30rpx;
-      }
-      .report_status {
-        height: 40rpx;
-        border-top-right-radius: 40rpx;
-        border-bottom-left-radius: 40rpx;
-        font-size: 20rpx;
-        background-color: yellow;
-        display: flex;
-        align-items: center;
-        padding: 10rpx 20rpx;
-      }
-    }
-    .list_button {
-      display: flex;
-      flex-direction: row;
-      justify-content: space-between;
-      align-items: center;
-      padding: 30rpx 20rpx 20rpx;
-      .list_time {
-        color: #c4c4c4;
-      }
-      .button_detail {
-        color: #ffffff;
-        background: linear-gradient(rgb(198, 198, 243), rgb(94, 91, 247));
-      }
-    }
-  }
-}
+	.home_list_view {
+		flex: 1;
+		display: flex;
+		flex-direction: column;
+		height: 100%;
+		overflow: scroll;
 
-.is-input-border {
-  display: flex;
-  box-sizing: border-box;
-  flex-direction: row;
-  align-items: center;
-  border: 10px solid #dcdfe6;
-  border-radius: 400px !important;
-}
-</style>
+		.list_out {
+			width: 100%;
+			height: 187rpx;
+			background: #FFFFFF;
+			border-radius: 20rpx;
+			border: 1px solid #FFFFFF;
+			margin-top: 20rpx;
+			padding: 36rpx 21rpx 21rpx 34rpx;
+			position: relative;
+
+			.list_title {
+				.report_name {
+					font-family: 'Alibaba PuHuiTi 2.0';
+					font-weight: normal;
+					font-size: 32rpx;
+					color: #333333;
+				}
+
+				.list_time {
+					font-family: 'Alibaba PuHuiTi 2.0';
+					font-weight: normal;
+					font-size: 24rpx;
+					color: #999999;
+				}
+			}
+
+			.report_status {
+				width: 102rpx;
+				line-height: 41rpx;
+				background: url(https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/status_icon.png) no-repeat center;
+				background-size: 100% 100%;
+				font-family: 'Alibaba PuHuiTi 2.0';
+				font-weight: normal;
+				font-size: 24rpx;
+				color: #FFFFFF;
+				text-align: center;
+				position: absolute;
+				top: 0;
+				right: 0;
+			}
+
+			.list_button {
+				text-align: right;
+				margin-top: 6rpx;
+
+				.button_detail {
+					color: #ffffff;
+					background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+					border-radius: 20rpx;
+				}
+			}
+		}
+	}
+
+	.is-input-border {
+		display: flex;
+		box-sizing: border-box;
+		flex-direction: row;
+		align-items: center;
+		border: 10px solid #dcdfe6;
+		border-radius: 400px !important;
+	}
+</style>

+ 121 - 58
src/pages/index/components/HomeTabs.vue

@@ -1,63 +1,126 @@
 <script setup lang="ts">
-import { useMemberStore } from "@/stores";
-const userInfo = useMemberStore();
-//父组件调用父组件
-const emit = defineEmits(["jumpInvite", "jumpSW"]);
-const inviteUserFun = () => {
-  //判断是否是授权了
-  //如果没有授权,点击按钮择跳转授权页面
-  if (userInfo.userInfo.isAuth == "0") {
-    emit("jumpInvite");
-  } else {
-    //跳转到生成海报页面
-    uni.navigateTo({ url: "/pages/index/inviteUser" });
-  }
-};
-
-//点击税务风险检测
-const swFun = () => {
-  emit("jumpSW");
-  //调用父组件方法--然后让父组件打开弹出框
-  //父组件打开弹出框后表单输入校验后将值传输到这个页面
-};
+	import { useMemberStore } from "@/stores";
+	const userInfo = useMemberStore();
+	//父组件调用父组件
+	const emit = defineEmits(["jumpInvite", "jumpSW"]);
+	const inviteUserFun = () => {
+		//判断是否是授权了
+		//如果没有授权,点击按钮择跳转授权页面
+		if (userInfo.userInfo.isAuth == "0") {
+			emit("jumpInvite");
+		} else {
+			//跳转到生成海报页面
+			uni.navigateTo({ url: "/pages/index/inviteUser" });
+		}
+	};
+
+	//点击税务风险检测
+	const swFun = () => {
+		emit("jumpSW");
+		//调用父组件方法--然后让父组件打开弹出框
+		//父组件打开弹出框后表单输入校验后将值传输到这个页面
+	};
 </script>
 <template>
-  <view class="home_top"> 税务风险检测 </view>
-  <view class="home_tabs">
-    <view class="user_use" @click="inviteUserFun">邀请用户使用</view>
-    <view class="risk_detection" @click="swFun">税务风险检测</view>
-  </view>
+	<!-- <view class="home_top"> 税务风险检测 </view> -->
+	<view class="home_tabs">
+		<view class="user_use" @click="inviteUserFun">
+			<view class="card_title">邀请用户使用</view>
+			<view class="card_desc">
+				<image class="tyd" src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/tyd.png"
+					mode="widthFix"></image>
+				<image class="money" src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/money.png"
+					mode="widthFix"></image>
+				<text>使用风险</text>
+			</view>
+			<view class="card_btn">点击填写</view>
+		</view>
+		<view class="risk_detection" @click="swFun">
+			<view class="card_title">税务风险检测</view>
+			<view class="card_btn">生成报告</view>
+		</view>
+	</view>
 </template>
 <style lang="scss">
-.home_top {
-  text-align: center;
-  font-size: 40rpx;
-  margin-bottom: 60rpx;
-}
-.home_tabs {
-  display: flex;
-  justify-content: space-around;
-  flex-direction: row;
-
-  .user_use {
-    color: #fff;
-    background: linear-gradient(blue, rgb(193, 192, 255));
-    flex: 1;
-    margin-right: 10rpx;
-    padding-left: 20rpx;
-    padding-top: 20rpx;
-    height: 200rpx;
-    border-radius: 30rpx;
-  }
-  .risk_detection {
-    color: #fff;
-    padding-left: 20rpx;
-    flex: 1;
-    background: linear-gradient(rgb(0, 255, 21), rgb(212, 255, 192));
-    padding-top: 20rpx;
-    height: 200rpx;
-    margin-left: 10rpx;
-    border-radius: 30rpx;
-  }
-}
-</style>
+	.home_top {
+		text-align: center;
+		font-size: 40rpx;
+		margin-bottom: 60rpx;
+	}
+
+	.home_tabs {
+		display: flex;
+		justify-content: space-around;
+		flex-direction: row;
+
+		.user_use {
+			width: 342rpx;
+			height: 202rpx;
+			padding: 24rpx 20rpx;
+			color: #333333;
+			background: url('https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/yqyh.png') no-repeat top;
+			background-size: 100%;
+			border-radius: 30rpx;
+
+			.card_desc {
+				display: flex;
+				flex-direction: row;
+				align-items: center;
+
+				.tyd {
+					width: 5rpx;
+				}
+
+				.money {
+					width: 16rpx;
+					margin: 14rpx 8rpx
+				}
+
+				text {
+					font-family: Alibaba PuHuiTi 2.0;
+					font-weight: normal;
+					font-size: 20rpx;
+					color: #4A89FB;
+				}
+			}
+
+			.card_btn {
+				width: 121rpx;
+				line-height: 40rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+				border: 1px solid #4A89FB;
+				font-family: DingTalk JinBuTi;
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #4A89FB;
+				text-align: center;
+				margin-top: 30rpx;
+			}
+		}
+
+		.risk_detection {
+			width: 342rpx;
+			height: 202rpx;
+			padding: 24rpx 20rpx;
+			color: #333333;
+			background: url('https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/fxjc.png') no-repeat top;
+			background-size: 100%;
+			border-radius: 30rpx;
+
+			.card_btn {
+				width: 121rpx;
+				line-height: 40rpx;
+				background: #FFFFFF;
+				border-radius: 20rpx;
+				border: 1px solid #BC63F4;
+				font-family: DingTalk JinBuTi;
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #BC63F4;
+				text-align: center;
+				margin-top: 76rpx;
+			}
+		}
+	}
+</style>

+ 116 - 73
src/pages/index/index.vue

@@ -1,82 +1,125 @@
 <script setup lang="ts">
-import HomeTabs from "./components/HomeTabs.vue";
-import HomeList from "./components/HomeList.vue";
-import { ref, reactive, onMounted } from "vue";
-import { login } from "@/hooks/useIsLogin";
-import { onShow } from "@dcloudio/uni-app";
-import ShuiWuSH from "@/components/ShuiWuSH.vue";
-const companyName = ref<string>("");
+	import HomeTabs from "./components/HomeTabs.vue";
+	import HomeList from "./components/HomeList.vue";
+	import { ref, reactive, onMounted } from "vue";
+	import { login } from "@/hooks/useIsLogin";
+	import { onShow } from "@dcloudio/uni-app";
+	import ShuiWuSH from "@/components/ShuiWuSH.vue";
+	const companyName = ref<string>("");
 
-const phoneGet = ref<any>();
+	const phoneGet = ref<any>();
 
-onMounted(() => {
-  //我来了
-});
-onShow(() => {
-  console.log("onshow");
-  login().then((res) => {
-    //登录调用成功后
-    //判断是否授权了
-    //如果授权了则开始查询列表数据
-    //列表查出来后判断是都可以查看报告
-  });
-});
-//调用子组件---获取手机号授权
-const phoneGetFun = () => {
-  phoneGet.value.open();
-};
-const validFun = () => {
-  //判断用户授权登录没有
-  phoneGetFun();
-  //跳转到邀请用户页面
-  // uni.navigateTo({ url: "/pages/index/inviteUser" });
-};
+	onMounted(() => {
+		//我来了
+	});
+	onShow(() => {
+		console.log("onshow");
+		login().then((res) => {
+			//登录调用成功后
+			//判断是否授权了
+			//如果授权了则开始查询列表数据
+			//列表查出来后判断是都可以查看报告
+		});
+	});
+	//调用子组件---获取手机号授权
+	const phoneGetFun = () => {
+		phoneGet.value.open();
+	};
+	const validFun = () => {
+		//判断用户授权登录没有
+		phoneGetFun();
+		//跳转到邀请用户页面
+		// uni.navigateTo({ url: "/pages/index/inviteUser" });
+	};
 
-//点击税务风险检测--弹出输入税务号的信息
-const swGet = ref<any>();
-const openSW = () => {
-  swGet.value.openSH();
-};
+	//点击税务风险检测--弹出输入税务号的信息
+	const swGet = ref<any>();
+	const openSW = () => {
+		swGet.value.openSH();
+	};
 </script>
 <template>
-  <!-- 引入头部安全区域组件 -->
-  <view class="home_padding">
-    <ShuiWuTop />
-    <HomeTabs @jumpInvite="validFun" @jumpSW="openSW" />
-    <view class="list_search">
-      <uni-easyinput type="text" v-model="companyName" placeholder="请输入公司名称" />
-    </view>
-    <HomeList class="home_list_com" />
-    <ShuiWuGetPhone ref="phoneGet" />
-    <ShuiWuSH ref="swGet" />
-  </view>
+	<!-- 引入头部安全区域组件 -->
+	<view class="home_padding">
+		<view class="list_search">
+			<image class="search_icon"
+				src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/search_icon.png" mode="widthFix">
+			</image> <input type="text" v-model="companyName" placeholder="请输入公司名称" />
+		</view>
+		<!-- <ShuiWuTop /> -->
+		<HomeTabs @jumpInvite="validFun" @jumpSW="openSW" />
+		<HomeList class="home_list_com" />
+		<ShuiWuGetPhone ref="phoneGet" />
+		<ShuiWuSH ref="swGet" />
+	</view>
 </template>
 <style>
-.list_search >>> .is-input-border {
-  display: flex;
-  box-sizing: border-box;
-  flex-direction: row;
-  align-items: center;
-  border: 1px solid #dcdfe6;
-  border-radius: 400px !important;
-}
-</style>
-<style lang="scss">
-page {
-  height: 100%;
-  background-color: rgb(243, 250, 248);
-}
-.home_padding {
-  display: flex;
-  flex-direction: column;
-  height: 100%;
-  padding: 0rpx 20rpx;
-  .home_list_com {
-    flex: 1;
-    overflow: scroll;
-  }
-  .list_search {
-    margin-top: 40rpx;
-  }
-}
+	.list_search {
+		width: 702rpx;
+		line-height: 63rpx;
+		background: rgba(255, 255, 255, 0.3);
+		border-radius: 31rpx;
+		border: 1px solid #FFFFFF;
+		margin: 0 auto;
+	}
+
+
+	/* .list_search>>>.is-input-border {
+		display: flex;
+		box-sizing: border-box;
+		flex-direction: row;
+		align-items: center;
+		border: 1px solid #dcdfe6;
+		border-radius: 400px !important;
+	} */
 </style>
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+	}
+
+	.home_padding {
+		display: flex;
+		flex-direction: column;
+		width: 100%;
+		height: 100%;
+		padding: 0rpx 20rpx;
+
+		.home_list_com {
+			flex: 1;
+			overflow: scroll;
+		}
+	}
+
+	.list_search {
+		width: 702rpx;
+		height: 63rpx;
+		background: rgba(255, 255, 255, 0.3);
+		border-radius: 31rpx;
+		border: 1px solid #FFFFFF;
+		margin: 201rpx auto 31rpx;
+		display: flex;
+		align-items: center;
+
+		.search_icon {
+			width: 39rpx;
+			margin-left: 16rpx;
+		}
+
+		input {
+			width: 100%;
+			height: 63rpx;
+			line-height: 63rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 28rpx;
+			color: #FFFFFF;
+			opacity: 0.75;
+		}
+	}
+
+	::v-deep .uni-popup-dialog {
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/dialog_bg.png) no-repeat top;
+		background-size: cover;
+	}
+</style>

+ 323 - 284
src/pages/index/inviteUser.vue

@@ -1,291 +1,330 @@
 <script setup lang="ts">
-import { imgUrl } from "@/utils/http";
-import { ref } from "vue";
-import { useMemberStore } from "@/stores";
-import { createPosterApi } from "@/services/home";
-import type { CreatePo } from "@/types/home";
-const userInfo = useMemberStore();
-const title = ref<string>("");
-const duration = ref<number>();
-const price = ref<number>();
-const num = ref<number>();
-//海报
-const placard = ref<string>();
-placard.value = userInfo.userInfo.posterBackground;
+	import { imgUrl } from "@/utils/http";
+	import { ref } from "vue";
+	import { useMemberStore } from "@/stores";
+	import { createPosterApi } from "@/services/home";
+	import type { CreatePo } from "@/types/home";
+	import ShuiWuNav from "@/components/ShuiWuNav.vue";
+	const userInfo = useMemberStore();
+	const title = ref<string>("");
+	const duration = ref<number>();
+	const price = ref<number>();
+	const num = ref<number>();
+	//海报
+	const placard = ref<string>();
+	placard.value = userInfo.userInfo.posterBackground ? userInfo.userInfo.posterBackground : 'https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/haibao.png';
 
-//是否是新生成的海报带二维码
-const isCreatePaster = ref<boolean>(false);
-//调用接口得到图片海报路径
-//更换壁纸
-const changeImage = () => {
-  uni.chooseImage({
-    success: (chooseImageRes) => {
-      const tempFilePaths = chooseImageRes.tempFilePaths;
-      uni.uploadFile({
-        url: "/file/customUpload", //仅为示例,非真实的接口地址
-        filePath: tempFilePaths[0],
-        name: "file",
-        success: (uploadFileRes) => {
-          let photo = `${imgUrl}${JSON.parse(uploadFileRes.data).data}`;
-          placard.value = photo;
-          isCreatePaster.value = false;
-        },
-      });
-    },
-  });
-};
-//生成海报
-const createPlacard = () => {
-  console.log(duration.value);
-  if (title.value == "") {
-    uni.showToast({
-      title: "请填写标题",
-      icon: "none",
-    });
-    return;
-  }
-  if (typeof duration.value == "undefined") {
-    uni.showToast({
-      title: "请填写时长",
-      icon: "none",
-    });
-    return;
-  }
+	//是否是新生成的海报带二维码
+	const isCreatePaster = ref<boolean>(false);
+	//调用接口得到图片海报路径
+	//更换壁纸
+	const changeImage = () => {
+		uni.chooseImage({
+			success: (chooseImageRes) => {
+				const tempFilePaths = chooseImageRes.tempFilePaths;
+				uni.uploadFile({
+					url: "/file/customUpload", //仅为示例,非真实的接口地址
+					filePath: tempFilePaths[0],
+					name: "file",
+					success: (uploadFileRes) => {
+						let photo = `${imgUrl}${JSON.parse(uploadFileRes.data).data}`;
+						placard.value = photo;
+						isCreatePaster.value = false;
+					},
+				});
+			},
+		});
+	};
+	//生成海报
+	const createPlacard = () => {
+		console.log(duration.value);
+		if (title.value == "") {
+			uni.showToast({
+				title: "请填写标题",
+				icon: "none",
+			});
+			return;
+		}
+		if (typeof duration.value == "undefined") {
+			uni.showToast({
+				title: "请填写时长",
+				icon: "none",
+			});
+			return;
+		}
 
-  if (typeof price.value == "undefined") {
-    uni.showToast({
-      title: "请填写价格",
-      icon: "none",
-    });
-    return;
-  }
-  if (typeof num.value == "undefined") {
-    uni.showToast({
-      title: "请填写次数",
-      icon: "none",
-    });
-    return;
-  }
-  if (num.value == 0 || price.value == 0 || duration.value == 0) {
-    uni.showToast({
-      title: "时长|价格|次数不能为0",
-      icon: "none",
-    });
-    return;
-  }
-  //判断图片是否改变
-  createPoster({
-    userId: userInfo.userInfo.id,
-    title: title.value,
-    effectiveDays: duration.value as number,
-    amount: price.value as number,
-    times: num.value as number,
-    background: placard.value,
-  });
-  //调用生成海报的方法
-};
-const createPoster = async (val: CreatePo) => {
-  const res = await createPosterApi(val);
-  console.log("海报");
-  console.log(res);
-  if (res.data == "2001") {
-    uni.showToast({
-      title: res.msg,
-      icon: "fail",
-    });
-  } else {
-    // console.log(res.data);
-    placard.value = `${imgUrl}${res.data}`;
-    isCreatePaster.value = true;
-  }
-};
-//下载图片
-const saveLocal = () => {
-  //下载图片
-  // uni.showLoading();
-  let url: string = placard.value as string;
-  uni.downloadFile({
-    url: url, //仅为示例,并非真实的资源
-    success: (res) => {
-      console.log(res);
-      if (res.statusCode === 200) {
-        uni.saveImageToPhotosAlbum({
-          // 然后调用这个方法
-          filePath: res.tempFilePath,
-          success: (res) => {
-            // uni.hideLoading();
-            uni.showToast({
-              title: "已保存至相册",
-              icon: "success",
-            });
-          },
-        });
-      }
-    },
-  });
-};
+		if (typeof price.value == "undefined") {
+			uni.showToast({
+				title: "请填写价格",
+				icon: "none",
+			});
+			return;
+		}
+		if (typeof num.value == "undefined") {
+			uni.showToast({
+				title: "请填写次数",
+				icon: "none",
+			});
+			return;
+		}
+		if (num.value == 0 || price.value == 0 || duration.value == 0) {
+			uni.showToast({
+				title: "时长|价格|次数不能为0",
+				icon: "none",
+			});
+			return;
+		}
+		//判断图片是否改变
+		createPoster({
+			userId: userInfo.userInfo.id,
+			title: title.value,
+			effectiveDays: duration.value as number,
+			amount: price.value as number,
+			times: num.value as number,
+			background: placard.value,
+		});
+		//调用生成海报的方法
+	};
+	const createPoster = async (val : CreatePo) => {
+		const res = await createPosterApi(val);
+		console.log("海报");
+		console.log(res);
+		if (res.data == "2001") {
+			uni.showToast({
+				title: res.msg,
+				icon: "fail",
+			});
+		} else {
+			// console.log(res.data);
+			placard.value = `${imgUrl}${res.data}`;
+			isCreatePaster.value = true;
+		}
+	};
+	//下载图片
+	const saveLocal = () => {
+		//下载图片
+		// uni.showLoading();
+		let url : string = placard.value as string;
+		uni.downloadFile({
+			url: url, //仅为示例,并非真实的资源
+			success: (res) => {
+				console.log(res);
+				if (res.statusCode === 200) {
+					uni.saveImageToPhotosAlbum({
+						// 然后调用这个方法
+						filePath: res.tempFilePath,
+						success: (res) => {
+							// uni.hideLoading();
+							uni.showToast({
+								title: "已保存至相册",
+								icon: "success",
+							});
+						},
+					});
+				}
+			},
+		});
+	};
 </script>
 <template>
-  <view class="invite_user">
-    <uni-row class="demo-uni-row">
-      <uni-col :span="12">
-        <view class="user_input">
-          <view class="user_font">标题</view>
-          <view
-            ><uni-easyinput
-              type="text"
-              :inputBorder="false"
-              :clearable="false"
-              v-model="title"
-              placeholder="请输入标题"
-            ></uni-easyinput
-          ></view>
-        </view>
-      </uni-col>
-      <uni-col :span="12">
-        <view class="user_input">
-          <view class="user_font">时长</view>
-          <view
-            ><uni-easyinput
-              type="number"
-              :clearable="false"
-              :inputBorder="false"
-              v-model="duration"
-              placeholder="请输入时长(天)"
-            ></uni-easyinput
-          ></view>
-        </view>
-      </uni-col>
-    </uni-row>
-    <uni-row style="margin-top: 100rpx">
-      <uni-col :span="12">
-        <view class="user_input">
-          <view class="user_font">价格</view>
-          <view
-            ><uni-easyinput
-              type="number"
-              :clearable="false"
-              :inputBorder="false"
-              v-model="price"
-              placeholder="请输入价格(元)"
-            ></uni-easyinput
-          ></view>
-        </view>
-      </uni-col>
-      <uni-col :span="12">
-        <view class="user_input">
-          <view class="user_font">次数</view>
-          <view
-            ><uni-easyinput
-              type="number"
-              :clearable="false"
-              :inputBorder="false"
-              v-model="num"
-              placeholder="请输入次数"
-            ></uni-easyinput
-          ></view>
-        </view>
-      </uni-col>
-    </uni-row>
-    <button class="mini-btn" size="mini" @click="changeImage">跳转支付</button>
-    <view class="button_group">
-      <button class="mini-btn" size="mini" @click="changeImage">更换壁纸</button>
-      <button class="mini-btn" size="mini" @click="createPlacard">生成海报</button>
-    </view>
-    <view class="remark_user">备注:更换壁纸请上传720*1280分辨率的壁纸,大小在3M以下</view>
-    <view>
-      <image
-        :show-menu-by-longpress="isCreatePaster"
-        mode="aspectFill"
-        style="width: 720rpx; height: 1280rpx"
-        :src="placard"
-      ></image
-    ></view>
-    <view class="remark_eweima"
-      >备注:可以长按分享二维码,或点击你保存至手机,请保管好二维码以防他人使用</view
-    >
-    <view style="text-align: center; padding: 0rpx 100rpx">
-      <button class="save_button" size="mini" @click="saveLocal">保存至本地</button>
-    </view>
-  </view>
+	<view class="invite_user">
+		<ShuiWuNav navTitle="邀请用户" />
+		<view class="set_params">
+			<uni-row class="demo-uni-row">
+				<uni-col :span="12">
+					<view class="user_input">
+						<view class="user_font">标题:</view>
+						<view><input v-model="title" placeholder="请输入标题" type="text"></view>
+					</view>
+				</uni-col>
+				<uni-col :span="12">
+					<view class="user_input">
+						<view class="user_font">时长:</view>
+						<view><input v-model="duration" placeholder="请输入时长" type="text"></view>
+						<view class="unit">天</view>
+					</view>
+				</uni-col>
+			</uni-row>
+			<uni-row style="margin-top: 100rpx">
+				<uni-col :span="12">
+					<view class="user_input">
+						<view class="user_font">价格:</view>
+						<view><input v-model="price" placeholder="请输入价格" type="text"></view>
+						<view class="unit">元</view>
+					</view>
+				</uni-col>
+				<uni-col :span="12">
+					<view class="user_input">
+						<view class="user_font">次数:</view>
+						<view><input v-model="num" placeholder="请输入次数" type="text"></view>
+					</view>
+				</uni-col>
+			</uni-row>
+			<uni-row style="margin-top: 100rpx">
+				<uni-col :span="15">
+					<view class="user_input">
+						<view class="user_font">是否多人:</view>
+						<view><label class="radio">
+								<radio value="r1" checked="true" />是
+							</label>
+							<label class="radio" style="margin-left: 20rpx">
+								<radio value="r2" />否
+							</label>
+						</view>
+					</view>
+				</uni-col>
+			</uni-row>
+		</view>
+		<!-- <button class="mini-btn" size="mini" @click="changeImage">跳转支付</button> -->
+		<view class="button_group">
+			<button class="mini-btn" size="mini" @click="changeImage">更换壁纸</button>
+			<button class="mini-btn" size="mini" @click="createPlacard">生成海报</button>
+		</view>
+		<view class="remark_user">备注:更换壁纸请上传720*1080分辨率的壁纸,大小在3M以下</view>
+		<view>
+			<image class="cover" :show-menu-by-longpress="isCreatePaster" mode="widthFix" :src="placard"></image>
+		</view>
+		<view class="remark_eweima">备注:可以长按分享二维码,或点击你保存至手机,请保管好二维码以防他人使用</view>
+		<view style="text-align: center; padding: 0rpx 100rpx">
+			<button class="save_button" size="mini" @click="saveLocal">保存至本地</button>
+		</view>
+	</view>
 </template>
 <style lang="scss" scoped>
-page {
-  height: 100%;
-}
-.invite_user {
-  height: 100%;
-  width: 100%;
-  padding: 10rpx 15rpx;
-  background: rgb(243, 250, 248);
-  .remark_user {
-    color: #000000;
-    opacity: 0.4;
-    font-size: 26rpx;
-    margin-top: 20rpx;
-    margin-bottom: 10rpx;
-  }
-  .remark_eweima {
-    text-align: center;
-    color: #000000;
-    opacity: 0.4;
-    font-size: 26rpx;
-    margin-top: 20rpx;
-    margin-bottom: 10rpx;
-    padding: 0rpx 40rpx;
-  }
-  .save_button {
-    text-align: center;
-    background: linear-gradient(#ffffff, rgb(125, 123, 226));
-    color: #ffffff;
-    width: 100%;
-    font-size: 36rpx;
-    margin-top: 40rpx;
-    margin-bottom: 100rpx;
-  }
-  .button_group {
-    display: flex;
-    flex-direction: row;
-    justify-content: space-around;
-    align-items: center;
-    padding: 20rpx 0rpx;
-    button {
-      background: linear-gradient(#ffffff, blue);
-      color: #ffffff;
-      font-size: 36rpx;
-    }
-  }
-  .user_input_time {
-    padding: 20rpx 20rpx;
-    display: flex;
-    flex-direction: row;
-    justify-content: start;
-    align-items: center;
-    .user_font {
-      width: 100rpx;
-    }
-  }
-  .user_input {
-    padding: 20rpx 20rpx;
-    display: flex;
-    flex-direction: row;
-    justify-content: space-between;
-    align-items: center;
-    .user_out {
-      display: flex;
-      flex-direction: row;
-      justify-content: start;
-      align-items: center;
-      .user_font {
-        width: 100rpx;
-      }
-    }
-    .user_font {
-      width: 100rpx;
-    }
-    .user_font_unit {
-      color: blue;
-    }
-  }
-}
-</style>
+	page {
+		height: 100%;
+		background: #F0F2F6;
+	}
+
+	.invite_user {
+		height: 100%;
+		width: 100%;
+		padding: 10rpx 15rpx;
+
+		.set_params {
+			width: 721rpx;
+			height: 320rpx;
+			background: #FFFFFF;
+			border-radius: 20rpx;
+			border: 1px solid #FFFFFF;
+			margin-top: 40rpx;
+		}
+
+		.remark_user {
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 24rpx;
+			color: #999999;
+			line-height: 36rpx;
+			text-align: center;
+			letter-spacing: 3rpx;
+			margin-bottom: 18rpx;
+
+			.cover {
+				width: 720rpx;
+				height: 1080rpx;
+				border-radius: 38rpx;
+			}
+		}
+
+		.remark_eweima {
+			text-align: center;
+			color: #000000;
+			opacity: 0.4;
+			font-size: 26rpx;
+			margin-top: 20rpx;
+			margin-bottom: 10rpx;
+			padding: 0rpx 40rpx;
+		}
+
+		.save_button {
+			width: 263rpx;
+			line-height: 76rpx;
+			background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+			border-radius: 20rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			text-align: center;
+			margin: 28rpx 0 28rpx;
+		}
+
+		.button_group {
+			width: 100%;
+			display: flex;
+			flex-direction: row;
+			justify-content: center;
+			align-items: center;
+			padding: 35rpx 0rpx;
+
+			button {
+				width: 263rpx;
+				line-height: 76rpx;
+				background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+				border-radius: 20rpx;
+				font-family: 'Alibaba PuHuiTi 2.0';
+				font-weight: normal;
+				font-size: 32rpx;
+				color: #FFFFFF;
+				text-align: center;
+				margin: 0 50rpx;
+
+			}
+		}
+
+		.user_input_time {
+			padding: 20rpx 20rpx;
+			display: flex;
+			flex-direction: row;
+			justify-content: start;
+			align-items: center;
+
+			.user_font {
+				min-width: 100rpx;
+			}
+		}
+
+		.user_input {
+			padding: 20rpx 20rpx;
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+
+			.user_out {
+				display: flex;
+				flex-direction: row;
+				justify-content: start;
+				align-items: center;
+
+				.user_font {
+					width: 100rpx;
+				}
+			}
+
+			.user_font {
+				width: 140rpx;
+				font-size: 28rpx;
+				color: #333333;
+			}
+
+			.user_font_unit {
+				color: blue;
+			}
+
+			input {
+				padding: 12rpx 16rpx;
+				border-bottom: 1px solid #D6D6D6;
+				box-sizing: content-box;
+				font-size: 24rpx;
+			}
+
+			.unit {
+				font-size: 28rpx;
+				color: #4A89FB;
+			}
+		}
+	}
+</style>

+ 356 - 272
src/pages/index/pay.vue

@@ -1,278 +1,362 @@
 <!-- eslint-disable no-prototype-builtins -->
 <script setup lang="ts">
-import { onLoad, onShow, onUnload } from "@dcloudio/uni-app";
-import { ref, reactive } from "vue";
-import {
-  createOrderApi,
-  payAppointmentApi,
-  queryOrderStatusApi,
-  queryParamsApi,
-} from "@/services/home";
-import type { QueryPa } from "@/types/home";
-import HomeList from "./components/HomeList.vue";
-import { loginUser } from "@/hooks/useIsLogin";
-import { useMemberStore } from "@/stores";
-const userInfo = useMemberStore();
-//1 未支付   --可查看全部信息
-//2 openId相等  但是状态是支付中  --可查看全部状态
-//3 openId不相等  状态是别人在支付中 --不可查看任何信息
-//4 openId 相等  但是已支付  --不再支付可查看生成的报告
-//5 openId 不相等  别人已支付  --不可查看任何信息
-
-/**
- * 总结  当返回状态是
- * 1或2时--按钮是微信支付---且列表显示--全部信息展示
- * 3和5时 所有信息不展示
- * 4时 按钮为查看风险评估
- *
- */
-
-//获取到的传输过来的唯一值
-const params = reactive<any>({
-  title: "", //标题
-  num: "", //剩余次数
-  time: "", //有效截止日期
-  flag: "", //当前订单的状态
-});
-
-// const userId = ref<string>("");
-//调用查询参数需要的入参
-const scene = ref<QueryPa>({ scene: "", userId: "" });
-const orderId = ref<string>("");
-
-//onLoad方法  --在页面初次加载时触发,仅会在页面初次加载时触发一次
-//应该将二维码获取唯一标识放到缓存中--这样即使从其他页面过来就回调用就能记住这个标识--然后根据标识去查询
-onLoad((options) => {
-  //获取的二维码中得到的参数信息
-  // console.log(decodeURIComponent(options?.scene));
-  // scene.value.scene = decodeURIComponent(options?.scene);
-  // userInfo.saveScene(decodeURIComponent(options?.scene));
-
-  //根据页面中的options 获取参数
-  //1判断是否含有这个参数
-
-  //2如果没有则是表明是从另一个页面进来的不是扫码进来的
-  //3则需要调用接口需要看到访问次数和过期时间
-  const option = options as any;
-  console.log(option.hasOwnProperty("scene"));
-  console.log(option.hasOwnProperty("id"));
-  if (option.hasOwnProperty("scene")) {
-    //
-    userInfo.saveScene(option.scene);
-  } else {
-    userInfo.saveScene("");
-    //获取参数接口
-  }
-  //将scene存入缓存中
-
-  // loginUser().then((res) => {
-  //   //这时已经有返回信息了且用户数据已经
-  //   scene.value.userId = res as string;
-  //   //获取到userId了
-  //   queryParams(scene.value);
-  // });
-});
-onShow(() => {
-  //从缓存中取出信息
-  //  scene.value.scene = decodeURIComponent(options?.scene);
-  //将scene存入缓存中
-  //需要判断是否有scene
-  scene.value.scene = userInfo.scene;
-  debugger;
-  //不等于空的话就说明是从扫码进来的
-  //如果是空的话就是渠道点击进来的
-  if (scene.value.scene !== "") {
-    loginUser().then((res) => {
-      //这时已经有返回信息了且用户数据已经
-      scene.value.userId = res as string;
-      //获取到userId了
-      queryParams(scene.value);
-    });
-  } else {
-    //如果是渠道点击进来的
-    //则调用渠道接口//然后返回数据
-  }
-});
-
-//查询 根据唯一键值对
-const queryParams = async (val: QueryPa) => {
-  const res = await queryParamsApi(val);
-
-  params.flag = res.data.flag;
-  if (params.flag == 3 || params.flag == 5) {
-    return;
-  }
-  params.title = res.data.title;
-  params.num = res.data.times;
-
-  params.time = formatterData(res.data.createDate, res.data.effectiveDays);
-};
-
-//有效日期
-const formatterData = (date: any, day: any) => {
-  //将data日期格式化为初始的毫秒值
-  //将day 日期格式化为day
-
-  let dateF = new Date(date).getTime();
-  let dayF = day * 24 * 60 * 60 * 1000;
-  console.log(dateF);
-  console.log(dayF);
-  let dataN = dateF + dayF;
-  //然后将毫秒值转化为具体时间
-  let dataNew = new Date(dataN);
-  let y = dataNew.getFullYear();
-  let m =
-    dataNew.getMonth() + 1 < 10 ? "0" + (dataNew.getMonth() + 1) : dataNew.getMonth() + 1;
-
-  let d = dataNew.getDate() < 10 ? "0" + dataNew.getDate() : dataNew.getDate();
-  return y + "-" + m + "-" + d;
-};
-
-//1先生成订单号
-//2订单号生成后调用后台获取核心参数  核心参数获取到以后
-//3调用位置支付、、 查看成功与否
-//4如果是成功支付和用户取消了订单
-//5否则循环调用查询支付接口
-//支付完成后进行下边的逻辑--开始查询报告
-
-//点击支付按钮生成的方法
-const payButton = () => {
-  //先调用订单生成
-  //creatOrderFun()
-};
-//生成订单号
-const creatOrderFun = async (val: any) => {
-  const res = await createOrderApi(val);
-  //获取到订单号了
-
-  //然后调用预支付接口后去核心数据
-  //payFun(val)
-};
-//支付接口调用
-//调用后台接口返回订单号
-//调用后台接口返回  下单核心数据
-const payFun = async (val: any) => {
-  const res = await payAppointmentApi(val);
-  //核心参数返回后
-  //调用微信支付方法
-  uni.requestPayment({
-    ...val,
-    success: (res: any) => {
-      if (res) {
-        console.log(res);
-        if (res.errMsg == "requestPayment:ok") {
-          //
-          console.log("支付成功");
-        }
-      }
-    },
-    fail: (res: any) => {
-      console.log(res);
-      if (res.errMsg == "requestPayment:fail cancel") {
-        console.log("用户取消了支付");
-      } else {
-        queryOrderFor();
-        //调用支付失败的具体原因
-        //这时是不是就应该定时器调用订单状态
-      }
-    },
-  });
-};
-
-//查询订单状态
-const queryOrderStatus = async (val: any) => {
-  const res = await queryOrderStatusApi(val);
-  //判定返回参数
-  //如果订单完成了
-  //如果是满了返回了
-  //需要去掉定时器
-  clearInterval(timeMe.value);
-};
-//定时器参数
-const timeMe = ref<any>();
-//创建一个定时器
-const queryOrderFor = () => {
-  //进来的时候清除定时器
-  clearInterval(timeMe.value);
-  timeMe.value = setInterval(() => {
-    //嗲用方法
-    queryOrderStatus({});
-  }, 3000);
-};
-
-//销毁页面
-onUnload(() => {
-  //来清除定时器
-  clearInterval(timeMe.value);
-});
+	import { onLoad, onShow, onUnload } from "@dcloudio/uni-app";
+	import { ref, reactive } from "vue";
+	import {
+		createOrderApi,
+		payAppointmentApi,
+		queryOrderStatusApi,
+		queryParamsApi,
+		saveReportApi,
+		queryReportListApi
+	} from "@/services/home";
+	import type { QueryPa } from "@/types/home";
+	import HomeList from "./components/HomeList.vue";
+	import { loginUser } from "@/hooks/useIsLogin";
+	import { useMemberStore } from "@/stores";
+	import ShuiWuSH from "@/components/ShuiWuSH.vue";
+
+	const userInfo = useMemberStore();
+	//1 未支付   --可查看全部信息
+	//2 openId相等  但是状态是支付中  --可查看全部状态
+	//3 openId不相等  状态是别人在支付中 --不可查看任何信息
+	//4 openId 相等  但是已支付  --不再支付可查看生成的报告
+	//5 openId 不相等  别人已支付  --不可查看任何信息
+
+	/**
+	 * 总结  当返回状态是
+	 * 1或2时--按钮是微信支付---且列表显示--全部信息展示
+	 * 3和5时 所有信息不展示
+	 * 4时 按钮为查看风险评估
+	 *
+	 */
+
+	//获取到的传输过来的唯一值
+	const params = reactive<any>({
+		title: "", //标题
+		num: "", //剩余次数
+		time: "", //有效截止日期
+		flag: "", //当前订单的状态
+	});
+
+	let orderParams = reactive<any>({
+		userId: '',
+		linId: '',
+		channelId: '', //渠道id
+		title: '', //标题
+		amount: '',
+		times: '',
+		effectiveDate: '', //天数
+		createDate: '',
+		staffId: '',
+		staffName: '',
+		backGround: '',
+		status: '',
+		flag: ''
+	})
+
+	// const userId = ref<string>("");
+	//调用查询参数需要的入参
+	const scene = ref<QueryPa>({ scene: "", userId: "" });
+	const orderId = ref<string>("");
+
+	//onLoad方法  --在页面初次加载时触发,仅会在页面初次加载时触发一次
+	//应该将二维码获取唯一标识放到缓存中--这样即使从其他页面过来就回调用就能记住这个标识--然后根据标识去查询
+	onLoad((options) => {
+		//获取的二维码中得到的参数信息
+		// console.log(decodeURIComponent(options?.scene));
+		// scene.value.scene = decodeURIComponent(options?.scene);
+		// userInfo.saveScene(decodeURIComponent(options?.scene));
+
+		//根据页面中的options 获取参数
+		//1判断是否含有这个参数
+
+		//2如果没有则是表明是从另一个页面进来的不是扫码进来的
+		//3则需要调用接口需要看到访问次数和过期时间
+		const option = options as any;
+		console.log(option.hasOwnProperty("scene"));
+		console.log(option.hasOwnProperty("id"));
+		if (option.hasOwnProperty("scene")) {
+			//
+			userInfo.saveScene(option.scene);
+		} else {
+			userInfo.saveScene("");
+			//获取参数接口
+		}
+		//将scene存入缓存中
+
+		// loginUser().then((res) => {
+		//   //这时已经有返回信息了且用户数据已经
+		//   scene.value.userId = res as string;
+		//   //获取到userId了
+		//   queryParams(scene.value);
+		// });
+	});
+	onShow(() => {
+		//从缓存中取出信息
+		//  scene.value.scene = decodeURIComponent(options?.scene);
+		//将scene存入缓存中
+		//需要判断是否有scene
+		scene.value.scene = userInfo.scene;
+		//不等于空的话就说明是从扫码进来的
+		//如果是空的话就是渠道点击进来的
+		if (scene.value.scene !== "") {
+			loginUser().then((res) => {
+				//这时已经有返回信息了且用户数据已经
+				scene.value.userId = res as string;
+				//获取到userId了
+				queryParams(scene.value);
+			});
+		} else {
+			//如果是渠道点击进来的
+			//则调用渠道接口//然后返回数据
+		}
+	});
+
+	//查询 根据唯一键值对
+	const queryParams = async (val : QueryPa) => {
+		const res = await queryParamsApi(val);
+
+		params.flag = res.data.flag;
+		if (params.flag == 3 || params.flag == 5) {
+			return;
+		}
+		params.title = res.data.title;
+		params.num = res.data.times;
+
+		params.time = formatterData(res.data.createDate, res.data.effectiveDays);
+
+		orderParams.userId = userInfo.userInfo.id;
+		orderParams.linId = res.data.id;
+		orderParams.channelId = res.data.channelId;
+		orderParams.title = res.data.title;
+		orderParams.amount = res.data.amount;
+		orderParams.times = res.data.times;
+		orderParams.effectiveDate = res.data.effectiveDays;
+		orderParams.createDate = res.data.createDate;
+		orderParams.staffId = res.data.staffId;
+		orderParams.staffName = res.data.staffName;
+		orderParams.backGround = res.data.backGround;
+		orderParams.status = res.data.status;
+		orderParams.flag = res.data.flag;
+	};
+
+	// 邀约订单查询报告记录
+	const queryReportList = async (val : any) => {
+		const res = await queryReportListApi({
+			linkId: orderParams.linId,
+			pageNum: 1,
+			pageSize: 6
+		});
+	}
+
+	//有效日期
+	const formatterData = (date : any, day : any) => {
+		//将data日期格式化为初始的毫秒值
+		//将day 日期格式化为day
+
+		let dateF = new Date(date).getTime();
+		let dayF = day * 24 * 60 * 60 * 1000;
+		console.log(dateF);
+		console.log(dayF);
+		let dataN = dateF + dayF;
+		//然后将毫秒值转化为具体时间
+		let dataNew = new Date(dataN);
+		let y = dataNew.getFullYear();
+		let m =
+			dataNew.getMonth() + 1 < 10 ? "0" + (dataNew.getMonth() + 1) : dataNew.getMonth() + 1;
+
+		let d = dataNew.getDate() < 10 ? "0" + dataNew.getDate() : dataNew.getDate();
+		return y + "-" + m + "-" + d;
+	};
+
+	//1先生成订单号
+	//2订单号生成后调用后台获取核心参数  核心参数获取到以后
+	//3调用位置支付、、 查看成功与否
+	//4如果是成功支付和用户取消了订单
+	//5否则循环调用查询支付接口
+	//支付完成后进行下边的逻辑--开始查询报告
+
+	//点击支付按钮生成的方法
+	const payButton = () => {
+		//先调用订单生成
+		creatOrderFun(orderParams)
+	};
+	//生成订单号
+	const creatOrderFun = async (val : any) => {
+		const res = await createOrderApi(val);
+		if (res.code == 200) {
+			uni.showToast({
+				title: '支付成功'
+			})
+			params.flag = 4;
+		}
+		//获取到订单号了
+
+		//然后调用预支付接口后去核心数据
+		//payFun(val)
+	};
+	//支付接口调用
+	//调用后台接口返回订单号
+	//调用后台接口返回  下单核心数据
+	const payFun = async (val : any) => {
+		const res = await payAppointmentApi(val);
+		//核心参数返回后
+		//调用微信支付方法
+		uni.requestPayment({
+			...val,
+			success: (res : any) => {
+				if (res) {
+					console.log(res);
+					if (res.errMsg == "requestPayment:ok") {
+						//
+						console.log("支付成功");
+					}
+				}
+			},
+			fail: (res : any) => {
+				console.log(res);
+				if (res.errMsg == "requestPayment:fail cancel") {
+					console.log("用户取消了支付");
+				} else {
+					queryOrderFor();
+					//调用支付失败的具体原因
+					//这时是不是就应该定时器调用订单状态
+				}
+			},
+		});
+	};
+
+	//点击税务风险检测--弹出输入税务号的信息
+	const swGet = ref<any>();
+	const openSW = () => {
+		queryReportList();
+		// swGet.value.openSH();
+	};
+
+	const goCheck = () => {
+	}
+
+	//查询订单状态
+	const queryOrderStatus = async (val : any) => {
+		const res = await queryOrderStatusApi(val);
+		//判定返回参数
+		//如果订单完成了
+		//如果是满了返回了
+		//需要去掉定时器
+		clearInterval(timeMe.value);
+	};
+	//定时器参数
+	const timeMe = ref<any>();
+	//创建一个定时器
+	const queryOrderFor = () => {
+		//进来的时候清除定时器
+		clearInterval(timeMe.value);
+		timeMe.value = setInterval(() => {
+			//嗲用方法
+			queryOrderStatus({});
+		}, 3000);
+	};
+
+	//销毁页面
+	onUnload(() => {
+		//来清除定时器
+		clearInterval(timeMe.value);
+	});
 </script>
 <template>
-  <view class="payBg">
-    <ShuiWuTop />
-    <view class="pay_params">
-      <view class="pay_card_title1">
-        {{ params.title }}
-      </view>
-      <view class="pay_card_num"> 剩余生成次数:{{ params.num }} </view>
-      <view class="pay_card_time"> 有效日期:{{ params.time }} </view>
-    </view>
-    <view v-show="params.flag == 1 || params.flag == 2"
-      ><button class="pay_button" @click="payButton">立即支付</button></view
-    >
-    <view v-show="params.flag == 4"
-      ><button class="detection_button">税务风险检测</button></view
-    >
-
-    <view v-show="params.flag == 4"><HomeList class="home_list_com" /></view>
-  </view>
+	<view class="payBg">
+		<ShuiWuTop />
+		<view class="pay_params">
+			<view class="pay_card_title1">
+				{{ params.title }}
+			</view>
+			<view class="pay_card_num"> 剩余生成次数:{{ params.num }} </view>
+			<view class="pay_card_time"> 有效日期:{{ params.time }} </view>
+		</view>
+		<view v-show="params.flag == 1 || params.flag == 2"><button class="pay_button" @click="payButton">立即支付</button>
+		</view>
+		<view v-show="params.flag == 4"><button class="detection_button" @click="openSW">税务风险检测</button></view>
+
+		<view v-show="params.flag == 4">
+			<HomeList class="home_list_com" />
+		</view>
+		<ShuiWuSH ref="swGet" />
+	</view>
 </template>
 <style lang="scss">
-page {
-  height: 100%;
-}
-.payBg {
-  background-color: rgb(243, 250, 248);
-  width: 750rpx;
-  height: 100%;
-  padding: 0rpx 20rpx;
-  .pay_params {
-    border-radius: 20rpx;
-    color: #ffffff;
-    margin-top: 60rpx;
-    padding: 20rpx 40rpx;
-    background: linear-gradient(#bbc0ee, #55459e);
-    display: flex;
-    flex-direction: column;
-    .pay_card_title1 {
-      font-size: 40rpx;
-      padding-top: 20rpx;
-      padding-bottom: 40rpx;
-      padding-left: 20rpx;
-    }
-    .pay_card_num {
-      font-size: 26rpx;
-      padding-left: 20rpx;
-      margin-top: 20rpx;
-    }
-    .pay_card_time {
-      font-size: 26rpx;
-      padding-left: 20rpx;
-      margin-top: 20rpx;
-      margin-bottom: 40rpx;
-    }
-  }
-  .pay_button {
-    color: #ffffff;
-    border-radius: 20rpx;
-    margin-top: 40rpx;
-    width: 100%;
-    background: linear-gradient(#bbc0ee, #55459e);
-  }
-  .detection_button {
-    border-radius: 20rpx;
-    color: #ffffff;
-    width: 100%;
-    background: linear-gradient(#bb8e2d, #c7ca11);
-  }
-}
-</style>
+	page {
+		height: 100%;
+	}
+
+	.payBg {
+		width: 750rpx;
+		height: 100%;
+		padding: 0rpx 20rpx;
+
+		.pay_params {
+			width: 703rpx;
+			height: 273rpx;
+			color: #333333;
+			margin-top: 60rpx;
+			padding: 20rpx 40rpx;
+			background: url(https://test.jue-ming.com:8849/api/show?filePath=./jinhong/index/pay_card.png) no-repeat top;
+			background-size: cover;
+			display: flex;
+			flex-direction: column;
+
+			.pay_card_title1 {
+				font-family: 'Alibaba PuHuiTi 2.0';
+				font-weight: normal;
+				font-size: 32rpx;
+				color: #0056FF;
+				padding: 20rpx 0 40rpx 20rpx;
+			}
+
+			.pay_card_num {
+				font-family: 'Alibaba PuHuiTi 2.0';
+				font-weight: normal;
+				font-size: 28rpx;
+				color: #333333;
+				padding-left: 20rpx;
+				margin-top: 20rpx;
+			}
+
+			.pay_card_time {
+				font-family: 'Alibaba PuHuiTi 2.0';
+				font-weight: normal;
+				font-size: 28rpx;
+				color: #333333;
+				padding-left: 20rpx;
+				margin-top: 20rpx;
+				margin-bottom: 40rpx;
+			}
+		}
+
+		.pay_button {
+			width: 703rpx;
+			line-height: 77rpx;
+			background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+			border-radius: 20rpx;
+			border: 1px solid #FFFFFF;
+			font-family: Alibaba PuHuiTi 2.0;
+			font-weight: normal;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			margin: 72rpx 0 60rpx;
+		}
+
+		.detection_button {
+			width: 703rpx;
+			line-height: 77rpx;
+			background: linear-gradient(90deg, #BC63F4 0%, #4A89FB 100%);
+			border-radius: 20rpx;
+			border: 1px solid #FFFFFF;
+			font-family: Alibaba PuHuiTi 2.0;
+			font-weight: normal;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			margin: 72rpx 0 60rpx;
+		}
+	}
+</style>

+ 291 - 248
src/pages/my/my.vue

@@ -1,274 +1,317 @@
 <script setup lang="ts">
-import ShuiWuTop from "@/components/ShuiWuTop.vue";
-import { useMemberStore } from "@/stores";
-import { http } from "@/utils/http";
-const memberStore = useMemberStore();
-const getData = async () => {
-  const res = await http<string[]>({
-    url: `/home/banner`,
-    method: "GET",
-    header: {},
-  });
-};
+	import ShuiWuTop from "@/components/ShuiWuTop.vue";
+	import { useMemberStore } from "@/stores";
+	import { http } from "@/utils/http";
+	const memberStore = useMemberStore();
+	const getData = async () => {
+		const res = await http<string[]>({
+			url: `/home/banner`,
+			method: "GET",
+			header: {},
+		});
+	};
 
-const editUser = () => {
-  //跳转到编辑页面
-  uni.navigateTo({
-    url: "/pages/my/myEdit",
-  });
-};
-const shireFun = () => {
-  uni.share({
-    provider: "weixin",
-    scene: "WXSceneSession",
-    type: 1,
-    summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
-    success: function (res) {
-      console.log("success:" + JSON.stringify(res));
-    },
-    fail: function (err) {
-      console.log("fail:" + JSON.stringify(err));
-    },
-  });
-};
-const myInvite = () => {
-  //跳转到邀请页面
-  uni.navigateTo({
-    url: "/pages/my/myInvite",
-  });
-};
+	const editUser = () => {
+		//跳转到编辑页面
+		uni.navigateTo({
+			url: "/pages/my/myEdit",
+		});
+	};
+	const shireFun = () => {
+		uni.share({
+			provider: "weixin",
+			scene: "WXSceneSession",
+			type: 1,
+			summary: "我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!",
+			success: function (res) {
+				console.log("success:" + JSON.stringify(res));
+			},
+			fail: function (err) {
+				console.log("fail:" + JSON.stringify(err));
+			},
+		});
+	};
+	const myInvite = () => {
+		//跳转到邀请页面
+		uni.navigateTo({
+			url: "/pages/my/myInvite",
+		});
+	};
 
-const aboutMy = () => {
-  //跳转到关于
-  uni.navigateTo({
-    url: "/pages/my/aboutMy",
-  });
-};
-const report = () => {
-  //跳转到报告页面
-  uni.navigateTo({
-    url: "/pages/my/reportList",
-  });
-};
+	const aboutMy = () => {
+		//跳转到关于
+		uni.navigateTo({
+			url: "/pages/my/aboutMy",
+		});
+	};
+	const report = () => {
+		//跳转到报告页面
+		uni.navigateTo({
+			url: "/pages/my/reportList",
+		});
+	};
 
-const exit = () => {
-  uni.showToast({ title: "已退出" });
-  //跳转到报告页面
+	const exit = () => {
+		uni.showToast({ title: "已退出" });
+		//跳转到报告页面
 
-  setTimeout(() => {
-    uni.switchTab({
-      url: "/pages/index/index",
-    });
-  }, 550);
-};
+		setTimeout(() => {
+			uni.switchTab({
+				url: "/pages/index/index",
+			});
+		}, 550);
+	};
 </script>
 
 <template>
-  <view class="bg">
-    <ShuiWuTop />
-    <view class="home_top"> 我的 </view>
-    <view class="company_top"
-      ><image class="company_image" :src="memberStore.userInfo.channelAvatar"></image>
-      <view>{{
+	<view class="bg">
+		<!-- <ShuiWuTop /> -->
+		<view class="home_top"> 我的 </view>
+		<!-- <view class="company_top">
+			<image class="company_image" :src="memberStore.userInfo.channelAvatar"></image>
+			<view>{{
         memberStore.userInfo.channelName == null ? "" : memberStore.userInfo.channelName
       }}</view>
-    </view>
-    <view class="my_info">
-      <view class="info_out">
-        <image class="user_image" :src="memberStore.userInfo.photoPath"></image>
-        <view class="user_name">
-          <view class="user_name_detail">{{ memberStore.userInfo.userName }}</view>
-          <view class="user_name_detail"
-            >岗位:&nbsp;&nbsp;{{ memberStore.userInfo.job }}</view
-          >
-        </view>
-      </view>
-      <view class="info_detail" style="margin-top: 25rpx"
-        >联系电话:&nbsp;&nbsp;{{
+		</view> -->
+		<view class="my_info">
+			<view class="info_out">
+				<image class="user_image" :src="memberStore.userInfo.photoPath"></image>
+				<view class="user_name">
+					<view class="user_name_detail">{{ memberStore.userInfo.userName }}</view>
+					<view class="user_name_detail">岗位:&nbsp;&nbsp;{{ memberStore.userInfo.job }}</view>
+				</view>
+			</view>
+			<view class="info_detail">联系电话:&nbsp;&nbsp;{{
           memberStore.userInfo.phone == "NaN" ? "" : memberStore.userInfo.phone
         }}
-      </view>
-      <view class="info_detail">邮箱:&nbsp;&nbsp;{{ memberStore.userInfo.mail }}</view>
-      <view class="info_detail" style="margin-bottom: 15rpx"
-        >公司地址:&nbsp;&nbsp;{{ memberStore.userInfo.compAddress }}</view
-      >
-      <view class="info_edit">
-        <button class="button_edit" @click="editUser">编辑</button>
-        <button class="button_edit" @click="shireFun" open-type="share">分享</button>
-      </view>
-    </view>
+			</view>
+			<view class="info_detail">邮箱:&nbsp;&nbsp;{{ memberStore.userInfo.mail }}</view>
+			<view class="info_detail" style="margin-bottom: 15rpx">
+				公司地址:&nbsp;&nbsp;{{ memberStore.userInfo.compAddress }}</view>
+			<view class="info_edit">
+				<view class="button_edit" @click="editUser">
+					<image src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/edit_icon.png"
+						mode="widthFix"></image><text>编辑</text>
+				</view>
+				<view class="line"></view>
+				<view class="button_edit" @click="shireFun" open-type="share">
+					<image src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/share_icon.png"
+						mode="widthFix"></image><text>分享</text>
+				</view>
+			</view>
+		</view>
 
-    <view class="my_tab">
-      <view class="my_tab_detail" @click="myInvite">
-        <view>
-          <image class="tab_icon" src="../../static/images/shequ.png" />
-        </view>
-        <view class="tab_des"> 我的邀请 </view>
-        <view>
-          <image class="tab_icon-right" src="../../static/images/right.png" />
-        </view>
-      </view>
-      <ShuiWuLine />
-      <view class="my_tab_detail" @click="report">
-        <view>
-          <image class="tab_icon" src="../../static/images/fankui.png" />
-        </view>
-        <view class="tab_des"> 报告记录 </view>
-        <view>
-          <image class="tab_icon-right" src="../../static/images/right.png" />
-        </view>
-      </view>
-      <ShuiWuLine />
-      <view class="my_tab_detail" @click="aboutMy">
-        <view>
-          <image class="tab_icon" src="../../static/images/about.png" />
-        </view>
-        <view class="tab_des"> 关于我们 </view>
-        <view>
-          <image class="tab_icon-right" src="../../static/images/right.png" />
-        </view>
-      </view>
-      <ShuiWuLine />
-      <view class="my_tab_detail_exit" @click="exit">
-        <view>
-          <image class="tab_icon" src="../../static/images/exit.png" />
-        </view>
-        <view class="tab_des"> 退出登录 </view>
-      </view>
-    </view>
-    <view> </view>
-    <view> </view>
-  </view>
+		<view class="my_tab">
+			<view class="my_tab_detail" @click="myInvite">
+				<view>
+					<image class="tab_icon"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/menu_icon1.png" />
+				</view>
+				<view class="tab_des"> 我的邀请 </view>
+				<view>
+					<image class="tab_icon-right" src="../../static/images/right.png" />
+				</view>
+			</view>
+			<ShuiWuLine />
+			<view class="my_tab_detail" @click="report">
+				<view>
+					<image class="tab_icon"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/menu_icon2.png" />
+				</view>
+				<view class="tab_des"> 报告记录 </view>
+				<view>
+					<image class="tab_icon-right" src="../../static/images/right.png" />
+				</view>
+			</view>
+			<ShuiWuLine />
+			<view class="my_tab_detail" @click="aboutMy">
+				<view>
+					<image class="tab_icon"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/menu_icon3.png" />
+				</view>
+				<view class="tab_des"> 关于我们 </view>
+				<view>
+					<image class="tab_icon-right" src="../../static/images/right.png" />
+				</view>
+			</view>
+			<ShuiWuLine />
+			<view class="my_tab_detail_exit" @click="exit">
+				<view>
+					<image class="tab_icon"
+						src="https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/menu_icon4.png" />
+				</view>
+				<view class="tab_des"> 退出登录 </view>
+			</view>
+		</view>
+		<view> </view>
+		<view> </view>
+	</view>
 </template>
 
 <style lang="scss">
-//
-page {
-  height: 100%;
-}
+	//
+	page {
+		width: 100%;
+		height: 100%;
+	}
 
-.bg {
-  height: 100%;
-  padding: 0rpx 20rpx;
-  background: rgb(243, 250, 248);
-  .home_top {
-    text-align: center;
-    font-size: 40rpx;
-    margin-bottom: 60rpx;
-  }
-  .company_top {
-    margin-bottom: 20rpx;
-    display: flex;
-    justify-content: start;
-    align-items: center;
-    .company_image {
-      width: 60rpx;
-      height: 60rpx;
-      background-color: #eeeeee;
-      border-radius: 50%;
-      margin-right: 20rpx;
-    }
-  }
-}
+	.bg {
+		height: 100%;
+		padding: 0rpx 20rpx;
 
-.my_info {
-  display: flex;
-  flex-direction: column;
-  justify-content: flex-start;
-  background: linear-gradient(rgb(191, 191, 243), rgb(98, 95, 240));
-  padding-top: 15rpx;
-  border-radius: 15rpx;
-  .info_out {
-    padding: 0rpx 20rpx;
-    display: flex;
-    flex-direction: row;
-    .user_name {
-      color: #ffffff;
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
-      .user_name_detail {
-        font-size: 36rpx;
-      }
-    }
-  }
-  .user_image {
-    width: 100rpx;
-    height: 100rpx;
-    background-color: #eeeeee;
-    border-radius: 50%;
-    margin-right: 20rpx;
-  }
-  .info_detail {
-    color: #ffffff;
-    padding: 10rpx 20rpx;
-    font-size: 36rpx;
-    font-weight: 100;
-  }
-  .info_edit {
-    line-height: 100rpx;
-    background-color: #ffffff;
-    color: #000000;
-    display: flex;
-    font-size: 36rpx;
-    flex-direction: row;
-    justify-content: space-around;
-    border-bottom-left-radius: 15rpx;
-    border-bottom-right-radius: 15rpx;
-    .button_edit {
-      background-color: transparent;
-    }
-  }
+		.home_top {
+			text-align: center;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			padding: 110rpx 0 60rpx;
+		}
 
-  // items-align:center;
-}
+		.company_top {
+			margin-bottom: 20rpx;
+			display: flex;
+			justify-content: start;
+			align-items: center;
 
-.user_icon {
-  margin-right: 30rpx;
-  width: 80rpx;
-  height: 80rpx;
-  border-radius: 50%;
-}
+			.company_image {
+				width: 60rpx;
+				height: 60rpx;
+				background-color: #eeeeee;
+				border-radius: 50%;
+				margin-right: 20rpx;
+			}
+		}
+	}
 
-.my_tab {
-  background-color: #ffffff;
-  margin-top: 40rpx;
-  border-radius: 30rpx;
-  padding: 10rpx 30rpx;
-}
+	.my_info {
+		width: 703rpx;
+		height: 378rpx;
+		background: url(https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/user_card.png);
+		background-size: 100% 100%;
+		border-radius: 15rpx;
 
-.my_tab_detail {
-  margin-top: 42rpx;
-  margin-bottom: 20rpx;
-  display: flex;
-  flex-direction: row;
-  align-items: center;
+		.info_out {
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			padding: 31rpx 0 18rpx 39rpx;
 
-  justify-content: flex-start;
-}
-.my_tab_detail_exit {
-  margin-top: 40rpx;
-  margin-bottom: 40rpx;
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  width: 100%;
-  justify-content: center;
-}
+			.user_name {
+				color: #333333;
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
 
-.tab_icon {
-  width: 40rpx;
-  height: 40rpx;
-}
+				.user_name_detail {
+					font-family: 'Alibaba PuHuiTi 2.0';
+					font-weight: normal;
+					font-size: 28rpx;
+					color: #333333;
+					margin-bottom: 12rpx;
+				}
+			}
+		}
 
-.tab_des {
-  font-size: 30rpx;
-  margin-left: 30rpx;
-  flex: 1;
-}
+		.user_image {
+			width: 68rpx;
+			height: 68rpx;
+			background-color: #eeeeee;
+			margin-right: 20rpx;
+		}
 
-.tab_icon-right {
-  width: 20rpx;
-  height: 30rpx;
-}
-</style>
+		.info_detail {
+			padding: 10rpx 39rpx;
+			font-family: 'Alibaba PuHuiTi 2.0';
+			font-weight: normal;
+			font-size: 28rpx;
+			color: #333333;
+		}
+
+		.info_edit {
+			width: 100%;
+			line-height: 76rpx;
+			display: flex;
+			font-size: 36rpx;
+			align-items: center;
+			margin-top: 21rpx;
+
+			.button_edit {
+				flex: 1;
+				background-color: transparent;
+				font-size: 28rpx;
+				color: #FEFEFE;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+
+				image {
+					width: 34rpx;
+					margin-right: 10rpx;
+				}
+
+				&:active {
+					opacity: 0.8;
+				}
+			}
+
+			.line {
+				width: 1rpx;
+				height: 59rpx;
+				background: #FFFFFF;
+			}
+		}
+
+		// items-align:center;
+	}
+
+	.user_icon {
+		margin-right: 30rpx;
+		width: 80rpx;
+		height: 80rpx;
+		border-radius: 50%;
+	}
+
+	.my_tab {
+		background-color: #ffffff;
+		margin-top: 40rpx;
+		border-radius: 30rpx;
+		padding: 10rpx 30rpx;
+	}
+
+	.my_tab_detail {
+		margin-top: 42rpx;
+		margin-bottom: 20rpx;
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+
+		justify-content: flex-start;
+	}
+
+	.my_tab_detail_exit {
+		margin-top: 40rpx;
+		margin-bottom: 40rpx;
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		width: 100%;
+		justify-content: center;
+	}
+
+	.tab_icon {
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+	.tab_des {
+		font-size: 30rpx;
+		margin-left: 30rpx;
+		flex: 1;
+	}
+
+	.tab_icon-right {
+		width: 20rpx;
+		height: 30rpx;
+	}
+</style>

+ 93 - 67
src/services/home.ts

@@ -22,10 +22,17 @@ const createPosterUrl = '/link/save'
 const queryParamsUrl = '/link/check'
 
 //生成订单号
-const createOrderUrl = ''
+const createOrderUrl = '/order/save'
+
 //预支付接口
 const payAppointmentUrl = ''
 
+// 保存报告
+const saveReportUrl = '/report/save'
+
+// 邀约订单查询报告
+const queryReportListUrl = '/report/find'
+
 //订单号查询
 const queryOrderStatusUrl = ''
 
@@ -33,97 +40,116 @@ const queryOrderStatusUrl = ''
 const saveUserSWUrl = ''
 
 export const getHomeApi = (distributionSite = 1) => {
-  return http<TypeList[]>({
-    method: 'GET',
-    url: home,
-    data: {
-      distributionSite,
-    },
-  })
+	return http<TypeList[]>({
+		method: 'GET',
+		url: home,
+		data: {
+			distributionSite,
+		},
+	})
 }
 
 export const musicTypeApi = () => {
-  return http<TypeList[]>({
-    method: 'GET',
-    url: musicType,
-    data: {},
-  })
+	return http<TypeList[]>({
+		method: 'GET',
+		url: musicType,
+		data: {},
+	})
 }
 
-export const musicFindApi = (id: string) => {
-  return http<MusicFInd[]>({
-    method: 'GET',
-    url: musicFindUrl + `/${id}`,
-  })
+export const musicFindApi = (id : string) => {
+	return http<MusicFInd[]>({
+		method: 'GET',
+		url: musicFindUrl + `/${id}`,
+	})
 }
 
 //用户登录
-export const userLoginApi = (val: LoginParams) => {
-  return http<any>({
-    method: 'POST',
-    url: userLoginUrl,
-    data: { ...val },
-  })
+export const userLoginApi = (val : LoginParams) => {
+	return http<any>({
+		method: 'POST',
+		url: userLoginUrl,
+		data: { ...val },
+	})
 }
 
 //获取用户手机号
-export const getUserPhoneApi = (val: GetPhoneParams) => {
-  return http<any>({
-    method: 'POST',
-    url: getUserPhoneUrl,
-    data: { ...val },
-  })
+export const getUserPhoneApi = (val : GetPhoneParams) => {
+	return http<any>({
+		method: 'POST',
+		url: getUserPhoneUrl,
+		data: { ...val },
+	})
 }
 
 //生成海报接口
-export const createPosterApi = (val: CreatePo) => {
-  return http<any>({
-    method: 'POST',
-    url: createPosterUrl,
-    data: { ...val },
-  })
+export const createPosterApi = (val : CreatePo) => {
+	return http<any>({
+		method: 'POST',
+		url: createPosterUrl,
+		data: { ...val },
+	})
 }
 
 //根据查询scene 查询传输参数的 方法
-export const queryParamsApi = (val: any) => {
-  return http<any>({
-    method: 'GET',
-    url: `${queryParamsUrl}/${val.scene}/${val.userId}`,
-    // data: { ...val },
-  })
+export const queryParamsApi = (val : any) => {
+	return http<any>({
+		method: 'GET',
+		url: `${queryParamsUrl}/${val.scene}/${val.userId}`,
+		// data: { ...val },
+	})
 }
 
 //生成订单号
-export const createOrderApi = (val: any) => {
-  return http<any>({
-    method: 'POST',
-    url: createOrderUrl,
-    data: { ...val },
-  })
+export const createOrderApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: createOrderUrl,
+		data: { ...val },
+	})
 }
 
 //调用后去后台核心参数--预支付
-export const payAppointmentApi = (val: any) => {
-  return http<any>({
-    method: 'POST',
-    url: payAppointmentUrl,
-    data: { ...val },
-  })
+export const payAppointmentApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: payAppointmentUrl,
+		data: { ...val },
+	})
+}
+
+//保存报告
+export const saveOrderApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: saveReportUrl,
+		data: { ...val },
+	})
+}
+
+// 邀约订单查询报告列表
+export const queryReportListApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: queryReportListUrl,
+		data: { ...val },
+	})
 }
 
 //根据订单号查询用户订单状况
-export const queryOrderStatusApi = (val: any) => {
-  return http<any>({
-    method: 'POST',
-    url: queryOrderStatusUrl,
-    data: { ...val },
-  })
+export const queryOrderStatusApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: queryOrderStatusUrl,
+		data: { ...val },
+	})
 }
+
 //保存账号信息
-export const saveUserSWApi = (val: any) => {
-  return http<any>({
-    method: 'POST',
-    url: saveUserSWUrl,
-    data: { ...val },
-  })
-}
+export const saveUserSWApi = (val : any) => {
+	return http<any>({
+		method: 'POST',
+		url: saveUserSWUrl,
+		data: { ...val },
+	})
+}

BIN
src/static/images/fxjc.png


BIN
src/static/images/index_bg.png


BIN
src/static/images/left.png


BIN
src/static/images/money.png


BIN
src/static/images/right.png


BIN
src/static/images/search_icon.png


BIN
src/static/images/tyd.png


BIN
src/static/images/yqyh.png


BIN
src/static/images/组 3@3x(2).png


BIN
src/static/images/组 3@3x(3).png


BIN
src/static/tabs/home_default.png


BIN
src/static/tabs/home_default2.png


BIN
src/static/tabs/home_selected.png


BIN
src/static/tabs/home_selected2.png


BIN
src/static/tabs/user_default.png


BIN
src/static/tabs/user_default2.png


BIN
src/static/tabs/user_selected.png


BIN
src/static/tabs/user_selected2.png


+ 103 - 103
src/stores/modules/member.ts

@@ -3,109 +3,109 @@ import { reactive, ref } from 'vue'
 
 // 定义 Store
 export const useMemberStore = defineStore(
-  'member',
-  () => {
-    // 会员信息
-    const profile = ref<any>()
-    const token = ref<any>()
-    const userInfo = ref<any>({
-      //用户ID
-      id: '',
-      //渠道ID
-      channelId: '',
-      //手机号
-      phone: '',
-      //微信用户
-      name: '',
-      //昵称
-      userName: '',
-      //openId
-      openId: '',
-      //Miami
-      //用户类型
-      type: '',
-      //密码
-      password: '',
-      //用户状态
-      state: '',
-      //用户头像
-      photoPath: '',
-      //是否授权
-      isAuth: '',
-      //渠道名字
-      channelName: '',
-      //邮箱
-      mail: '',
-      //岗位
-      job: '',
-      //公司名称
-      compAddress: '',
-      //公司头像
-      channelAvatar: '',
-      //海报
-      posterBackground: '',
-    })
+	'member',
+	() => {
+		// 会员信息
+		const profile = ref<any>()
+		const token = ref<any>()
+		const userInfo = ref<any>({
+			//用户ID
+			id: '',
+			//渠道ID
+			channelId: '',
+			//手机号
+			phone: '',
+			//微信用户
+			name: '',
+			//昵称
+			userName: '',
+			//openId
+			openId: '',
+			//Miami
+			//用户类型
+			type: '',
+			//密码
+			password: '',
+			//用户状态
+			state: '',
+			//用户头像
+			photoPath: 'https://test.jue-ming.com:8849/api/show?filePath=./jinhong/my/user_default.png',
+			//是否授权
+			isAuth: '',
+			//渠道名字
+			channelName: '',
+			//邮箱
+			mail: '',
+			//岗位
+			job: '',
+			//公司名称
+			compAddress: '',
+			//公司头像
+			channelAvatar: '',
+			//海报
+			posterBackground: '',
+		})
 
-    //用户scene唯一标识保存
-    const scene = ref<string>('')
-    //保存scene唯一标识信息
-    const saveScene = (val: string) => {
-      scene.value = val
-    }
-    //保存用户信息
-    const saveUserInfo = (val: any) => {
-      userInfo.value = val
-    }
-    //清除用户信息
-    const clearUserInfo = () => {
-      userInfo.value = {}
-    }
-    //保存token  token校验时使用
-    const saveToken = (val: string) => {
-      token.value = val
-    }
-    //清除token
-    const clearToken = () => {
-      token.value = ''
-    }
-    // 保存会员信息,登录时使用
-    const setProfile = (val: any) => {
-      profile.value = val
-    }
+		//用户scene唯一标识保存
+		const scene = ref<string>('')
+		//保存scene唯一标识信息
+		const saveScene = (val : string) => {
+			scene.value = val
+		}
+		//保存用户信息
+		const saveUserInfo = (val : any) => {
+			userInfo.value = val
+		}
+		//清除用户信息
+		const clearUserInfo = () => {
+			userInfo.value = {}
+		}
+		//保存token  token校验时使用
+		const saveToken = (val : string) => {
+			token.value = val
+		}
+		//清除token
+		const clearToken = () => {
+			token.value = ''
+		}
+		// 保存会员信息,登录时使用
+		const setProfile = (val : any) => {
+			profile.value = val
+		}
 
-    // 清理会员信息,退出时使用
-    const clearProfile = () => {
-      profile.value = undefined
-    }
+		// 清理会员信息,退出时使用
+		const clearProfile = () => {
+			profile.value = undefined
+		}
 
-    // 记得 return
-    return {
-      profile,
-      token,
-      userInfo,
-      scene,
-      saveScene,
-      saveToken,
-      clearToken,
-      setProfile,
-      clearProfile,
-      saveUserInfo,
-      clearUserInfo,
-    }
-  },
-  // TODO: 持久化
-  {
-    //网页版是这样设置
-    // persist: true,
-    persist: {
-      storage: {
-        getItem(key) {
-          return uni.getStorageSync(key)
-        },
-        setItem(key, value) {
-          uni.setStorageSync(key, value)
-        },
-      },
-    },
-  },
-)
+		// 记得 return
+		return {
+			profile,
+			token,
+			userInfo,
+			scene,
+			saveScene,
+			saveToken,
+			clearToken,
+			setProfile,
+			clearProfile,
+			saveUserInfo,
+			clearUserInfo,
+		}
+	},
+	// TODO: 持久化
+	{
+		//网页版是这样设置
+		// persist: true,
+		persist: {
+			storage: {
+				getItem(key) {
+					return uni.getStorageSync(key)
+				},
+				setItem(key, value) {
+					uni.setStorageSync(key, value)
+				},
+			},
+		},
+	},
+)

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä