Ver código fonte

时间接口+ 设置页面

xuexiuyun 1 mês atrás
pai
commit
0f1ed54c47
50 arquivos alterados com 1420 adições e 366 exclusões
  1. 0 0
      common/icon-map.ts
  2. 0 0
      common/theme.ts
  3. 0 0
      components/CustomBottomNav.uvue
  4. 0 0
      components/u-floating/u-floating.vue
  5. 0 0
      components/u-icon/u-icon.vue
  6. 0 0
      components/u-switch/u-switch.vue
  7. 18 6
      pages.json
  8. 349 0
      pages/console/serviceProject.uvue
  9. 127 108
      pages/console/setOrderTime.uvue
  10. 0 0
      pages/index/account.uvue
  11. 112 88
      pages/index/console.uvue
  12. 0 0
      pages/index/my.uvue
  13. 0 0
      pages/index/order.uvue
  14. 0 0
      pages/login/login.uvue
  15. 326 0
      pages/myEdit/myEdit.uvue
  16. 0 41
      src/utils/api/workbenches.uts
  17. BIN
      static/imagesInfo/anmo.png
  18. BIN
      static/imagesInfo/avatar.png
  19. BIN
      unpackage/cache/.app-android/class/ktClasss.ser
  20. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/AvatarUrl.class
  21. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/AvatarUrlReactiveObject.class
  22. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/BillItem.class
  23. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/BillItemReactiveObject.class
  24. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/CoachInfo.class
  25. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/CoachInfoReactiveObject.class
  26. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/EvalTag.class
  27. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/GenApp$Companion.class
  28. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/GenApp.class
  29. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/GenUniApp.class
  30. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/IndexKt.class
  31. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/OrderItem.class
  32. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/OrderTag.class
  33. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/ToolItem.class
  34. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/ToolItemReactiveObject.class
  35. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/UniAppConfig.class
  36. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/UserInfo.class
  37. BIN
      unpackage/cache/.app-android/class/uni/UNI9F955ED/UserInfoReactiveObject.class
  38. BIN
      unpackage/cache/.app-android/dex/index/classes.dex
  39. 0 0
      unpackage/cache/.app-android/sourcemap/index.kt.map
  40. 43 19
      unpackage/cache/.app-android/src/.manifest.json
  41. 366 65
      unpackage/cache/.app-android/src/index.kt
  42. 0 0
      unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo
  43. 18 14
      unpackage/dist/dev/.tsc/app-android/main.uts.ts
  44. 18 14
      unpackage/dist/dev/.uvue/app-android/main.uts
  45. 0 0
      unpackage/dist/dev/.uvue/app-android/main.uts.map
  46. BIN
      unpackage/dist/dev/app-android/index/classes.dex
  47. 0 0
      utils/api/login.uts
  48. 31 0
      utils/api/workbenches.uts
  49. 11 10
      utils/request.uts
  50. 1 1
      vite.config.js

+ 0 - 0
src/common/icon-map.ts → common/icon-map.ts


+ 0 - 0
src/common/theme.ts → common/theme.ts


+ 0 - 0
src/components/CustomBottomNav.uvue → components/CustomBottomNav.uvue


+ 0 - 0
src/components/u-floating/u-floating.vue → components/u-floating/u-floating.vue


+ 0 - 0
src/components/u-icon/u-icon.vue → components/u-icon/u-icon.vue


+ 0 - 0
src/components/u-switch/u-switch.vue → components/u-switch/u-switch.vue


+ 18 - 6
pages.json

@@ -2,40 +2,52 @@
 	"vue3": true,
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://doc.dcloud.net.cn/uni-app-x/collocation/pagesjson.html
 		{
-			"path": "src/pages/index/console",
+			"path": "pages/index/console",
 			"style": {
 				"navigationBarTitleText": "控制台"
 			}
 		},
 		{
-			"path": "src/pages/index/my",
+			"path": "pages/index/my",
 			"style": {
 				"navigationBarTitleText": "我的"
 			}
 		},
 		{
-			"path": "src/pages/index/order",
+			"path": "pages/index/order",
 			"style": {
 				"navigationBarTitleText": "订单"
 			}
 		},
 		{
-			"path": "src/pages/index/account",
+			"path": "pages/index/account",
 			"style": {
 				"navigationBarTitleText": "账户"
 			}
 		},
 		{
-			"path": "src/pages/console/setOrderTime",
+			"path": "pages/console/setOrderTime",
 			"style": {
 				"navigationBarTitleText": "接单时间"
 			}
 		},
 		{
-			"path": "src/pages/login/login",
+			"path": "pages/login/login",
 			"style": {
 				"navigationBarTitleText": ""
 			}
+		},
+		{
+			"path": "pages/console/serviceProject",
+			"style": {
+				"navigationBarTitleText": "服务项目"
+			}
+		},
+		{
+			"path": "pages/myEdit/myEdit",
+			"style": {
+				"navigationBarTitleText": "个人信息"
+			}
 		}
 	],
 

+ 349 - 0
pages/console/serviceProject.uvue

@@ -0,0 +1,349 @@
+<template>
+	<view class="page-container">
+		<scroll-view style="flex:1">
+
+			<!-- 服务列表容器 -->
+			<view class="service-list" v-for="service in servicesList" :key="service.id">
+				<!-- 中式推拿项(带路费设置) -->
+				<view class="service-item">
+					<!-- 左侧图片+信息区(核心:显式设置flex-direction: row) -->
+					<view class="item-left" style="flex-direction: row;">
+						<image class="service-img" :src="service.img" mode="aspectFill">
+						</image>
+						<view class="service-info">
+							<text class="service-title">
+								{{ service.title }}
+							</text>
+							<text class="service-desc">
+								{{ service.desc }}
+							</text>
+							<text class="service-price">
+								¥{{ service.price }}
+							</text>
+						</view>
+					</view>
+					<!-- 右侧开关 -->
+					<switch class="service-switch" :checked="service.hasFare" color="#FFCC00">
+					</switch>
+
+					<!-- 路费设置(仅中式推拿展示) -->
+					<view class="fare-setting" style="flex-direction: row;">
+						<text class="fare-label">
+							路费设置
+						</text>
+						<view class="fare-options" style="flex-direction: row;">
+							<button class="fare-btn">
+								免路费
+							</button>
+							<button class="fare-btn">
+								单程
+							</button>
+							<button class="fare-btn active">
+								双程
+							</button>
+						</view>
+					</view>
+				</view>
+
+
+			</view>
+		</scroll-view>
+		<!-- 底部保存按钮 -->
+		<view class="footer-box" @click="handleSave">
+			<text class="footer-text">
+				保存设置
+			</text>
+		</view>
+	</view>
+</template>
+
+<script setup lang="uts">
+	import { ref } from 'vue';
+	import { editWorkTimeSetting } from '@/utils/api/workbenches.uts'
+
+	type ServiceItem = {
+		id : number
+		title : string
+		desc : string
+		price : number
+		img : string
+		hasFare : boolean
+	}
+
+	const fareType = ref<string>('roundtrip');
+	const servicesList = ref<ServiceItem[]>([
+		{
+			id: 1,
+			title: '中式推拿',
+			desc: '服务时长:60分钟',
+			price: 199,
+			img: '/static/imagesInfo/anmo.png',
+			hasFare: true
+		},
+		{
+			id: 2,
+			title: '足疗按摩',
+			desc: '服务时长:45分钟',
+			price: 149,
+			img: '/static/imagesInfo/anmo.png',
+			hasFare: false
+		},
+		{
+			id: 3,
+			title: '肩颈按摩',
+			desc: '服务时长:30分钟',
+			price: 99,
+			img: '/static/imagesInfo/anmo.png',
+			hasFare: false
+		}
+	])
+	const handleSave = async () => {
+		// console.log(timeArr.value, 'timeArr')
+		// // 1. 声明选中时间数组(类型固定)
+		// const kjTime : TimeItem[] = []
+		// // 2. 遍历获取选中的时间段
+		// for (let i = 0; i < timeArr.value.length; i++) {
+		// 	const item : TimeItem = timeArr.value[i]
+		// 	if (item.isSelect) {
+		// 		kjTime.push(item)
+		// 	}
+		// }
+		// // 3. 校验:未选择时间段
+		// if (kjTime.length === 0) {
+		// 	uni.showToast({
+		// 			title: '请至少选择一个可接单时间段',
+		// 			icon: 'none',
+		// 			duration: 2000
+		// 		})
+		// 	return
+		// }
+		try {
+
+			// const scheduleData = {
+			// 	time_ranges: kjTime.filter((range : TimeItem) => range.isSelect).map((range : TimeItem) => ({
+			// 		start_time: range.start_time,
+			// 		end_time: range.end_time
+			// 	}))
+			// }
+			// 调用接口保存
+			const res = await editWorkTimeSetting({})
+			console.log(res);
+			// if ((res.code as number) === 200) {
+			// 	uni.showToast({
+			// 		title: '保存成功',
+			// 		icon: 'success',
+			// 		duration: 2000
+			// 	})
+			// 	uni.reLaunch({
+			// 		url: '/pages/index/console'
+			// 	})
+			// }
+		} catch (error) {
+			uni.showToast({
+				title: '保存失败,请重试',
+				icon: 'none'
+			})
+			console.error('保存报错:', error)
+		}
+	}
+</script>
+
+<style>
+	/* 页面根容器:利用默认flex + column,全屏适配 + 基础背景 */
+	.page-container {
+		min-height: 100%;
+		height: 100%;
+		background-color: #f5f5f5;
+		padding-bottom: 40rpx;
+		/* 给保存按钮留间距 */
+	}
+
+	/* 顶部导航栏:显式设置flex-direction: row,保证横向排版 */
+	.nav-bar {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: space-between;
+		padding: 20rpx 20rpx;
+		background-color: #fff;
+		border-bottom: 1px solid #eee;
+	}
+
+	/* 关闭图标 */
+	.close-icon {
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+	/* 导航标题 */
+	.nav-title {
+		font-size: 36rpx;
+		font-weight: 700;
+		/* 替换600,兼容uni app x */
+		color: #333;
+	}
+
+	/* 占位空盒 */
+	.empty-box {
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+	/* 服务列表容器:纵向排列,替代gap用margin */
+	.service-list {
+		display: flex;
+		flex-direction: column;
+		padding: 20rpx;
+	}
+
+	/* 服务项间距:替代gap:15rpx */
+	.service-item {
+		margin-bottom: 15rpx;
+		background-color: #fff;
+		border-radius: 12rpx;
+		padding: 20rpx;
+		display: flex;
+		flex-direction: row;
+		/* 核心:显式设置横向排版 */
+		align-items: center;
+		justify-content: space-between;
+		flex-wrap: wrap;
+		/* 小屏幕路费设置换行 */
+	}
+
+	/* 最后一个服务项去掉底部间距 */
+	.service-list .service-item:last-child {
+		margin-bottom: 0;
+	}
+
+	/* 左侧图片+信息区:横向排版 */
+	.item-left {
+		display: flex;
+		align-items: center;
+		flex: 1;
+	}
+
+	/* 服务图片 */
+	.service-img {
+		width: 120rpx;
+		height: 120rpx;
+		border-radius: 8rpx;
+		margin-right: 20rpx;
+		/* 替代gap:20rpx */
+	}
+
+	/* 服务信息区:纵向排列 */
+	.service-info {
+		display: flex;
+		flex-direction: column;
+	}
+
+	/* 服务描述/价格:顶部间距,替代gap:8rpx */
+	.service-desc {
+		margin-top: 8rpx;
+	}
+
+	.service-price {
+		margin-top: 8rpx;
+	}
+
+	/* 服务标题:替换font-weight:600为700 */
+	.service-title {
+		font-size: 32rpx;
+		font-weight: 700;
+		color: #333;
+	}
+
+	/* 服务描述:替换font-weight:500为400 */
+	.service-desc {
+		font-size: 24rpx;
+		color: #666;
+		font-weight: 400;
+	}
+
+	/* 服务价格:替换font-weight:500为400 */
+	.service-price {
+		font-size: 28rpx;
+		color: #ff6700;
+		font-weight: 400;
+	}
+
+	/* 开关样式 */
+	.service-switch {
+		transform: scale(0.9);
+	}
+
+	/* 路费设置区域:横向排版 */
+	.fare-setting {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		margin-top: 15rpx;
+		padding-top: 15rpx;
+		border-top: 1px solid #eee;
+	}
+
+	/* 路费标签 */
+	.fare-label {
+		font-size: 26rpx;
+		color: #666;
+		white-space: nowrap;
+		margin-right: 20rpx;
+		/* 替代gap:20rpx */
+	}
+
+	/* 路费选项容器:横向排版 */
+	.fare-options {
+		display: flex;
+		flex: 1;
+	}
+
+	/* 路费按钮:替代gap:10rpx用margin-left */
+	.fare-btn {
+		flex: 1;
+		height: 60rpx;
+		line-height: 60rpx;
+		text-align: center;
+		font-size: 24rpx;
+		border-radius: 8rpx;
+		border: 1px solid #ddd;
+		background-color: #fff;
+	}
+
+	/* 路费按钮:非首个按钮左侧间距 */
+	.fare-btn:not(:first-child) {
+		margin-left: 10rpx;
+	}
+
+	/* 选中状态样式 */
+	.fare-btn.active {
+		background-color: #FFCC00;
+		color: #fff;
+		border-color: #FFCC00;
+	}
+
+	/* 底部保存按钮 */
+	.footer-box {
+
+		/* bottom: 40rpx; */
+		/* 距离底部距离 */
+
+		transform: translateX(-50%);
+		left: 50%;
+		width: 78%;
+		height: 100rpx;
+		background-color: #FFDA59;
+		border-radius: 24rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
+
+		.footer-text {
+			color: #3A3330;
+			font-size: 34rpx;
+			font-weight: 700;
+			letter-spacing: 3rpx;
+		}
+	}
+</style>

+ 127 - 108
src/pages/console/setOrderTime.uvue → pages/console/setOrderTime.uvue

@@ -1,12 +1,9 @@
 <!-- pages/setOrderTime/setOrderTime.uvue -->
 <template>
 	<view class="container">
-		<!-- 顶部占位 (模拟安全区或导航栏高度,可根据实际调整) -->
-		<view class="top-safe-area">
-		</view>
 
 		<!-- 头部:全部可接单 -->
-		<view class="header-box">
+		<view class="header-box" @click="allTime">
 			<text class="header-text">
 				{{ allIndex == 2 ? '取消全选' : '全部可接单' }}
 			</text>
@@ -14,21 +11,21 @@
 
 		<!-- 滚动列表区域 -->
 		<!-- uni-app x 中 scroll-view 需要明确高度或使用 flex 填充 -->
-		<!-- <scroll-view scroll-y="true" class="time-list">
+		<scroll-view class="time-list" scroll-y="true">
 			<view class="time-grid">
 				<view v-for="item in timeArr" :key="item.start_time"
 					:class="item.isSelect ? 'time-card selected' : 'time-card normal'" @click.stop="chooseTime(item)">
-					<text
-						:class="item.isSelect ? 'time-text selected' : 'time-text normal'">{{ item.start_time }}</text>
+					<text :class="item.isSelect ? 'time-text selected' : 'time-text normal'">
+						{{ item.start_time }}
+					</text>
 					<text :class="item.isSelect ? 'time-sub selected' : 'time-sub normal'">
 						{{ item.isSelect ? '可接单' : '休息' }}
 					</text>
 				</view>
 			</view>
-		</scroll-view> -->
-
+		</scroll-view>
 		<!-- 底部保存按钮 -->
-		<view class="footer-box">
+		<view class="footer-box" @click="handleSave">
 			<text class="footer-text">
 				保存设置
 			</text>
@@ -36,41 +33,56 @@
 	</view>
 </template>
 
-<script setup>
+<script lang="uts" setup>
 	import { ref } from 'vue';
-	// uni-app x 中 API 调用方式不变
-	import workbenchesInfoApi from '@/src/utils/api/workbenches.uts'
-
-	// import workbenchesInfoApi from '../../utils/api/workbenches'
+	import { editWorkTimeSetting } from '@/utils/api/workbenches.uts'
 
 	// 状态定义
 	const allIndex = ref<1 | 2>(1); // 1: 普通模式, 2: 全选模式
-	// // 状态定义
-	// const allIndex = ref(1); // 1: 普通模式, 2: 全选模式
-	// const bottomHeight = ref('0px');
-
-	// // 初始化时间数组 (00:00 - 23:30, 每30分钟一个片段)
-	// const timeArr = ref(
-	// 	Array.from({ length: 48 }, (_, i) => {
-	// 		const startHour = Math.floor(i / 2);
-	// 		const startMin = i % 2 === 0 ? '00' : '30';
-
-	// 		let endHour = Math.floor((i + 1) / 2);
-	// 		let endMin = (i + 1) % 2 === 0 ? '00' : '30';
-
-	// 		// 处理跨天情况 (23:30 -> 24:00)
-	// 		if (endHour >= 24) {
-	// 			endHour = 24;
-	// 			endMin = '00';
-	// 		}
 
-	// 		return {
-	// 			start_time: `${startHour < 10 ? '0' : ''}${startHour}:${startMin}`,
-	// 			end_time: `${endHour < 10 ? '0' : ''}${endHour}:${endMin}`,
-	// 			isSelect: false
-	// 		};
-	// 	})
-	// );
+	// 1. 定义时间项类型(必须最先定义)
+	type TimeItem = {
+		start_time : string;
+		end_time : string;
+		isSelect : boolean;
+	}
+
+	// 2. 定义响应式数组
+	const timeArr = ref<TimeItem[]>([]);
+
+	// 3. 先定义初始化函数
+	function initTimeArr() {
+		const arr : TimeItem[] = [];
+		for (let i = 0; i < 48; i++) {
+			const startHour = Math.floor(i / 2);
+			const startMin = i % 2 === 0 ? '00' : '30';
+
+			let endHour = Math.floor((i + 1) / 2);
+			let endMin = (i + 1) % 2 === 0 ? '00' : '30';
+
+			// 处理23:30 -> 24:00
+			if (endHour >= 24) {
+				endHour = 24;
+				endMin = '00';
+			}
+
+			arr.push({
+				start_time: `${startHour < 10 ? '0' : ''}${startHour}:${startMin}`,
+				end_time: `${endHour < 10 ? '0' : ''}${endHour}:${endMin}`,
+				isSelect: false
+			});
+		}
+		timeArr.value = arr;
+	}
+
+	// 4. 定义点击函数
+	function chooseTime(item : TimeItem) {
+		item.isSelect = !item.isSelect;
+		console.log('选中时间:', item.start_time, item.isSelect);
+	}
+
+	// 5. 最后调用函数(UTS 核心:先定义,后调用)
+	initTimeArr();
 
 	// onShow(() => {
 	// 	allIndex.value = 1;
@@ -78,21 +90,6 @@
 	// 	// adjustSafeArea();
 	// });
 
-	// // 获取底部安全区域 (适配全面屏)
-	// const adjustSafeArea = () => {
-	// 	try {
-	// 		const systemInfo = uni.getSystemInfoSync();
-	// 		// uni-app x 中通常直接获取 safeArea 或 statusBarHeight
-	// 		// 这里简单估算底部留白,实际项目中建议用 CSS env(safe-area-inset-bottom)
-	// 		const safeBottom = systemInfo.safeArea != null ? systemInfo.safeArea.bottom : systemInfo.screenHeight;
-	// 		const navHeight = systemInfo.statusBarHeight != null ? systemInfo.statusBarHeight : 0;
-
-	// 		// 简单处理:给底部按钮留出空间,具体数值根据设计稿调整
-	// 		// 在 CSS 中使用 padding-bottom 更灵活,这里仅做逻辑参考
-	// 	} catch (e) {
-	// 		console.log('获取系统信息失败', e);
-	// 	}
-	// };
 
 	// // 获取技师时间设置
 	// const getCoachTime = async () => {
@@ -144,50 +141,75 @@
 
 
 
-	// // 全部可接单/取消全选
-	// const allTime = () => {
-	// 	if (allIndex.value === 2) {
-	// 		// 当前是全选状态,点击则取消全选
-	// 		timeArr.value.forEach(item => item.isSelect = false);
-	// 		allIndex.value = 1;
-	// 	} else {
-	// 		// 当前是普通状态,点击则全选
-	// 		timeArr.value.forEach(item => item.isSelect = true);
-	// 		allIndex.value = 2;
-	// 	}
-	// };
-
-	// // 保存设置
-	// const handleSave = async () => {
-	// 	const selectedTimes = timeArr.value.filter(item => item.isSelect);
-
-	// 	if (selectedTimes.length === 0) {
-	// 		uni.showToast({ title: '请至少选择一个可接单时间段', icon: 'none' });
-	// 		return;
-	// 	}
+	// 全部可接单/取消全选
+	const allTime = () => {
+		if (allIndex.value === 2) {
+			// 当前是全选状态,点击则取消全选
+			for (let i = 0; i < timeArr.value.length; i++) {
+				timeArr.value[i].isSelect = false;
+			}
+			allIndex.value = 1;
+		} else {
+			// 当前是普通状态,点击则全选
+			for (let i = 0; i < timeArr.value.length; i++) {
+				timeArr.value[i].isSelect = true;
+			}
+			allIndex.value = 2;
+		}
+	};
+	const handleSave = async () => {
+		// console.log(timeArr.value, 'timeArr')
+		// 1. 声明选中时间数组(类型固定)
+		const kjTime : TimeItem[] = []
+		// 2. 遍历获取选中的时间段
+		for (let i = 0; i < timeArr.value.length; i++) {
+			const item : TimeItem = timeArr.value[i]
+			if (item.isSelect) {
+				kjTime.push(item)
+			}
+		}
+		// 3. 校验:未选择时间段
+		if (kjTime.length === 0) {
+			uni.showToast({
+				title: '请至少选择一个可接单时间段',
+				icon: 'none',
+				duration: 2000
+			})
+			return
+		}
+		try {
 
-	// 	const scheduleData = {
-	// 		time_ranges: selectedTimes.map(range => ({
-	// 			start_time: range.start_time,
-	// 			end_time: range.end_time
-	// 		}))
-	// 	};
+			const scheduleData = {
+				// time_ranges: kjTime.filter((range : TimeItem) => range.isSelect).map((range : TimeItem) => ({
+				// 			start_time: range.start_time,
+				// 			end_time: range.end_time
+				// 		}))
+				time_ranges: [{ start_time: "04:00", end_time: "04:30" }, { start_time: "04:30", end_time: "05:00" }]
 
-	// 	try {
-	// 		await workbenchesInfoApi.editWorkTimeSetting(scheduleData);
-	// 		uni.showToast({ title: '保存成功', icon: 'success' });
-
-	// 		setTimeout(() => {
-	// 			// 确保路径正确,建议使用绝对路径
-	// 			uni.reLaunch({
-	// 				url: '/pages/masterProject/homePage/index'
-	// 			});
-	// 		}, 1500);
-	// 	} catch (error) {
-	// 		console.error('保存失败', error);
-	// 		uni.showToast({ title: '保存失败,请重试', icon: 'none' });
-	// 	}
-	// };
+			}
+			console.log(scheduleData, 'scheduleData');
+
+			// 调用接口保存
+			const res = await editWorkTimeSetting(scheduleData)
+			console.log(res);
+			// if ((res.code as number) === 200) {
+			// 	uni.showToast({
+			// 		title: '保存成功',
+			// 		icon: 'success',
+			// 		duration: 2000
+			// 	})
+			// 	uni.reLaunch({
+			// 		url: '/pages/index/console'
+			// 	})
+			// }
+		} catch (error) {
+			uni.showToast({
+				title: '保存失败,请重试',
+				icon: 'none'
+			})
+			console.error('保存报错:', error)
+		}
+	}
 </script>
 
 <style lang="scss">
@@ -236,18 +258,18 @@
 	.time-list {
 		flex: 1;
 		width: 100%;
-		/* overflow-y: auto;  scroll-view 组件自带滚动 */
+		padding-bottom: 20rpx;
 	}
 
 	/* 网格布局容器 */
 	.time-grid {
 		width: 100%;
-		padding: 0 3% 140rpx 3%;
+		padding: 0 20rpx 20rpx;
 		/* 底部 padding 防止被按钮遮挡 */
 		box-sizing: border-box;
-		display: flex;
 		flex-wrap: wrap;
-		justify-content: flex-start;
+		justify-content: space-between;
+		flex-direction: row;
 	}
 
 	/* 时间卡片通用样式 */
@@ -255,10 +277,7 @@
 		width: 158rpx;
 		height: 90rpx;
 		border-radius: 16rpx;
-		margin-right: 22rpx;
 		margin-bottom: 22rpx;
-		display: flex;
-		flex-direction: column;
 		align-items: center;
 		justify-content: center;
 		box-sizing: border-box;
@@ -306,12 +325,12 @@
 
 	/* 底部保存按钮 */
 	.footer-box {
-		position: absolute;
-		/* 或者使用 fixed,但在 flex 容器中 absolute + bottom 更可控 */
-		bottom: 40rpx;
+
+		/* bottom: 40rpx; */
 		/* 距离底部距离 */
-		left: 50%;
+
 		transform: translateX(-50%);
+		left: 50%;
 		width: 78%;
 		height: 100rpx;
 		background-color: #FFDA59;

+ 0 - 0
src/pages/index/account.uvue → pages/index/account.uvue


+ 112 - 88
src/pages/index/console.uvue → pages/index/console.uvue

@@ -4,9 +4,10 @@
 		<view class="page">
 			<image class="upContent" src="@/static/imagesInfo/bg-color.png" mode="aspectFill">
 			</image>
+
 			<view class="city-info">
-				<view class="city-text-box">
-					<text>
+				<view>
+					<text class="city-text-box">
 						当前城市:{{ cityInfo }}
 					</text>
 				</view>
@@ -28,7 +29,7 @@
 								</text>
 
 							</view>
-							<u-icon name="edit" :size="18" />
+							<u-icon name="edit" :size="18" @click="jumpMasterInfo" />
 							<text class="tag">
 								编辑
 							</text>
@@ -48,21 +49,21 @@
 							<u-switch :checked="isOnline" @change="toggleOnline" />
 						</view>
 					</view>
-					<view class="user-right">
+					<view class="user-right" @click="jumpMasterInfo">
 						<text class="text-time-box">
 							入驻时间
 						</text>
 						<text class="text-time-box" style="margin-top: 5rpx;">2026.03.01{{
 							coachInfo?.created_at.split(' ')[0] }}
 						</text>
-						<image v-if="coachInfo!=null && coachInfo.avatar_url!=null" @click.stop="jumpMasterInfo"
-							:src="coachInfo!.avatar_url!.url"
-							style="width: 138rpx;height:138rpx;border-radius: 69rpx;margin-top: 15rpx;"
-							mode="aspectFit">
+						<image v-if="coachInfo!=null && coachInfo.avatar_url!=null"
+						:src="coachInfo!.avatar_url!.url"
+						style="width: 138rpx;height:138rpx;border-radius: 69rpx;margin-top: 15rpx;"
+						mode="aspectFit">
 						</image>
 						<image v-else src="/static/testInfo/boy-nickname.png"
-							style="width: 138rpx;height:138rpx;border-radius: 69rpx;margin-top: 15rpx;"
-							mode="aspectFit">
+						style="width: 138rpx;height:138rpx;border-radius: 69rpx;margin-top: 15rpx;"
+						mode="aspectFit">
 						</image>
 					</view>
 				</view>
@@ -114,8 +115,8 @@
 			<!-- 功能按钮 -->
 			<view class="func-grid">
 				<view class="func-item" v-for="(item, i) in funcList" :key="i">
-					<view @click.stop="jumpSetProject">
-						<image style="width: 92rpx;height: 92rpx;" :src="item.iconUrl" mode="aspectFit">
+					<view @click.stop="jumpSetProject(item.label as string)">
+						<image style=" width: 92rpx;height: 92rpx;" :src="item.iconUrl" mode="aspectFit">
 						</image>
 						<text class="func-label">
 							{{ item.label }}
@@ -133,69 +134,69 @@
 					</text>
 					<text class="section-more">
 						查看全部 >
-					</text>
-				</view>
-				<view class="data-grid">
-					<view class="data-item" v-for="(item, i) in dataStats" :key="i">
-						<text class="data-value">
-							{{ item.value }}
-						</text>
-						<text class="data-label">
-							{{ item.label }}
 						</text>
 					</view>
-				</view>
-			</view>
-
-			<!-- 客户评价 -->
-			<view class="eval-section">
-				<view class="section-header">
-					<text class="section-title">
-						客户评价
-					</text>
-					<text class="section-more">
-						查看全部 >
-					</text>
-				</view>
-				<view class="eval-tags">
-					<text class="eval-tag" v-for="(tag, i) in evalTags" :key="i">
-						{{ tag.text }} {{ tag.count > 0 ? tag.count : '' }}
-					</text>
-				</view>
-				<view class="eval-item">
-					<image class="eval-avatar" src="/static/testInfo/boy-nickname.png" mode="aspectFill" />
-					<view class="eval-content">
-						<view class="eval-top">
-							<text class="eval-name">
-								匿名评价
+					<view class="data-grid">
+						<view class="data-item" v-for="(item, i) in dataStats" :key="i">
+							<text class="data-value">
+								{{ item.value }}
 							</text>
-							<text class="eval-date">
-								2025-04-24
+							<text class="data-label">
+								{{ item.label }}
 							</text>
 						</view>
-						<view class="eval-stars">
-							<text>
-								⭐⭐⭐⭐☆
+					</view>
+				</view>
+
+				<!-- 客户评价 -->
+				<view class="eval-section">
+					<view class="section-header">
+						<text class="section-title">
+							客户评价
+						</text>
+						<text class="section-more">
+							查看全部 >
 							</text>
-							<view class="stat-divider">
+						</view>
+						<view class="eval-tags">
+							<text class="eval-tag" v-for="(tag, i) in evalTags" :key="i">
+								{{ tag.text }} {{ tag.count > 0 ? tag.count : '' }}
+								</text>
+							</view>
+							<view class="eval-item">
+								<image class="eval-avatar" src="/static/testInfo/boy-nickname.png" mode="aspectFill" />
+								<view class="eval-content">
+									<view class="eval-top">
+										<text class="eval-name">
+											匿名评价
+										</text>
+										<text class="eval-date">
+											2025-04-24
+										</text>
+									</view>
+									<view class="eval-stars">
+										<text>
+											⭐⭐⭐⭐☆
+										</text>
+										<view class="stat-divider">
+										</view>
+										<text class="eval-service">
+											泰式松骨
+										</text>
+									</view>
+									<text class="eval-comment">
+										服务到位
+									</text>
+								</view>
 							</view>
-							<text class="eval-service">
-								泰式松骨
-							</text>
 						</view>
-						<text class="eval-comment">
-							服务到位
-						</text>
+						<!-- 做一个悬浮球 -->
+						<u-floating @dblclick="callPolice" />
 					</view>
-				</view>
-			</view>
-			<!-- 做一个悬浮球 -->
-			<u-floating @dblclick="callPolice" />
-		</view>
-	</scroll-view>
+				</scroll-view>
 </template>
 
-<script setup lang="uts">
+<script setup>
 	import { ref, computed } from 'vue';
 	// import { colors } from '@/common/theme';
 
@@ -206,11 +207,17 @@
 	type AvatarUrl = {
 		url : string
 	}
+
 	// 技师信息(空对象,字段可为null)
 	type CoachInfo = {
 		created_at : string | null
 		avatar_url : AvatarUrl | null
 	}
+	type FuncItem = {
+		label : string | undefined;
+		iconUrl : string;
+	// 补充其他可能的字段(如id、desc等)
+	}
 	const coachInfo = ref<CoachInfo | null>(null);
 
 	// 切换上线状态
@@ -230,18 +237,31 @@
 
 	// 跳转到技师详情
 	const jumpMasterInfo = () => {
-		console.log('jumpMasterInfo invoked');
-		// 在这里可以执行导航或其他逻辑
+		uni.navigateTo({
+				url: '/pages/myEdit/myEdit'
+			});
+
 	};
 
 	// 功能按钮点击处理
-	const jumpSetProject = () => {
-		console.log('jumpSetProject invoked');
-		// 在这里可以执行导航或其他逻辑
-		//在起始页面跳转到test.vue页面并传递参数
-		uni.navigateTo({
-			url: '/src/pages/console/setOrderTime'
-		});
+	const jumpSetProject = (label : string) => {
+		console.log(label, 'jumpSetProject invoked');
+		switch (label) {
+			case '接单时间':
+			uni.navigateTo({
+					url: '/pages/console/setOrderTime'
+				});
+			break;
+			case '服务项目':
+			uni.navigateTo({
+					url: '/pages/console/serviceProject'
+				});
+			break;
+			default:
+			break;
+		}
+
+
 
 	};
 
@@ -265,9 +285,9 @@
 	type EvalTag = { text : string; count : number };
 	const evalTags : EvalTag[] = [
 		{ text: '不良引导', count: 0 },
-		{ text: '手法不好', count: 101 },
-		{ text: '性格温柔', count: 198 },
-		{ text: '服务到位', count: 10 }
+	{ text: '手法不好', count: 101 },
+	{ text: '性格温柔', count: 198 },
+	{ text: '服务到位', count: 10 }
 	];
 </script>
 
@@ -276,8 +296,7 @@
 		/* width: 100%;
 		commented out because percentage unsupported
 		*/
-		padding: 24rpx;
-
+		padding: 20rpx;
 	}
 
 	.upContent {
@@ -294,6 +313,10 @@
 		justify-content: space-between;
 	}
 
+	.city-text-box {
+		font-size: 28rpx;
+	}
+
 	/* 用户卡片 */
 	.user-card {
 		border-radius: 16rpx;
@@ -301,17 +324,14 @@
 		/* margin-top: 16rpx; */
 		margin-bottom: 32rpx;
 		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.06);
+		/* border: 1rpx solid #f5f5f5; */
+		position: relative;
 	}
 
 	.user-bg {
 		position: absolute;
-		/* top: 0;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		*/
-		right: 0;
-		width: 702rpx
+		width: 100%;
+		height: 100%;
 	}
 
 	.user-info {
@@ -440,6 +460,7 @@
 		border-radius: 24rpx;
 		padding: 32rpx;
 		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.05);
+		/* border: 1rpx solid #e9e9e9; */
 	}
 
 	.stat-item {
@@ -476,8 +497,9 @@
 		margin-bottom: 32rpx;
 		border-radius: 24rpx;
 		padding: 32rpx 0;
-		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.05);
 		flex-direction: row;
+		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
+		border: 1rpx solid #f9f9f9;
 	}
 
 	.func-item {
@@ -498,7 +520,8 @@
 		margin-bottom: 32rpx;
 		border-radius: 24rpx;
 		padding: 32rpx;
-		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.05);
+		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
+		border: 1rpx solid #f9f9f9;
 	}
 
 	.section-header {
@@ -549,7 +572,8 @@
 		margin-bottom: 32rpx;
 		border-radius: 24rpx;
 		padding: 32rpx;
-		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.05);
+		box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1);
+		border: 1rpx solid #f9f9f9;
 	}
 
 	.eval-tags {

+ 0 - 0
src/pages/index/my.uvue → pages/index/my.uvue


+ 0 - 0
src/pages/index/order.uvue → pages/index/order.uvue


+ 0 - 0
src/pages/login/login.uvue → pages/login/login.uvue


+ 326 - 0
pages/myEdit/myEdit.uvue

@@ -0,0 +1,326 @@
+<template>
+  <view class="container">
+    <!-- 内容区 -->
+    <scroll-view class="content-box" scroll-y>
+      <!-- 头像+基础信息区 -->
+      <view class="avatar-section">
+        <view class="avatar-wrap">
+          <image class="avatar-img" :src="userAvatar" mode="aspectFill">
+          </image>
+          <image class="avatar-tag" src="/static/imagesInfo/xiangji-icon.png" mode="aspectFit">
+          </image>
+          <!-- 头像角标 -->
+        </view>
+        <text class="user-name">
+          刘大锤
+        </text>
+        <text class="user-phone">
+          16709890987
+        </text>
+      </view>
+
+      <!-- 信息列表容器 -->
+      <view class="info-list">
+        <!-- 年龄项(带开关) -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            年龄
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <text class="content-text">
+              24岁
+            </text>
+            <switch class="info-switch" checked color="#FFCC00">
+            </switch>
+          </view>
+        </view>
+
+        <!-- 昵称项 -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            昵称
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <text class="content-text">
+              熙熙
+            </text>
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 生活照片项 -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            生活照片
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <text class="content-text text-gray">
+              未添加
+            </text>
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 商户简介项(审核失败) -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            商户简介
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <text class="content-text text-red">
+              审核失败
+            </text>
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 证件上传项(待审核+待处理) -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            证件上传
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <view class="status-tag-wrap" style="flex-direction: row;">
+              <text class="status-tag tag-gray">
+                待审核
+              </text>
+              <text class="status-tag tag-orange">
+                待处理
+              </text>
+            </view>
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 紧急联系人项 -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            紧急联系人
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 我的负责人项 -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            我的负责人
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <text class="content-text">
+              李景才-18709873290
+            </text>
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+
+        <!-- 从业年份项 -->
+        <view class="info-item" style="flex-direction: row;">
+          <text class="info-label">
+            从业年份
+          </text>
+          <view class="info-content" style="flex-direction: row;">
+            <image class="arrow-icon" src="/static/arrow.png" mode="aspectFit">
+            </image>
+          </view>
+        </view>
+      </view>
+    </scroll-view>
+  </view>
+</template>
+
+<script setup>
+  import { ref } from 'vue';
+
+  const userAvatar = ref('/static/imagesInfo/avatar.png');
+</script>
+
+<style>
+  /* 页面容器:解决100vh兼容,全屏适配 */
+  .page-container {
+    min-height: 100%;
+    height: 100%;
+    background-color: #f8f8f8;
+  }
+
+  /* 顶部导航栏:显式flex-direction:row,横向排版 */
+  .nav-bar {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 20rpx 20rpx;
+    background-color: #fff;
+    border-bottom: 1px solid #eee;
+  }
+
+  /* 关闭图标 */
+  .close-icon {
+    width: 40rpx;
+    height: 40rpx;
+  }
+
+  /* 导航标题 */
+  .nav-title {
+    font-size: 36rpx;
+    font-weight: 700;
+    /* 替换font-weight:600 */
+    color: #333;
+  }
+
+  /* 占位空盒 */
+  .empty-box {
+    width: 40rpx;
+    height: 40rpx;
+  }
+
+  /* 头像+基础信息区:居中排版 */
+  .avatar-section {
+
+    align-items: center;
+    padding: 40rpx 20rpx;
+    background-color: #f5f5f5;
+    margin-bottom: 10rpx;
+
+  }
+
+  /* 头像容器:相对定位,容纳角标 */
+  .avatar-wrap {
+    position: relative;
+    margin-bottom: 16rpx;
+
+  }
+
+  /* 头像图片 */
+  .avatar-img {
+    width: 120rpx;
+    height: 120rpx;
+    border-radius: 60rpx;
+  }
+
+  /* 头像角标 */
+  .avatar-tag {
+    position: absolute;
+    bottom: 0;
+    right: 0;
+    width: 32rpx;
+    height: 32rpx;
+  }
+
+  /* 用户名 */
+  .user-name {
+    font-size: 32rpx;
+    font-weight: 700;
+    color: #333;
+    margin-bottom: 8rpx;
+
+  }
+
+  /* 手机号 */
+  .user-phone {
+    font-size: 24rpx;
+    color: #666;
+    /* 替换font-weight:500 */
+  }
+
+  /* 信息列表容器 */
+  .info-list {
+    display: flex;
+    flex-direction: column;
+    background-color: #fff;
+    margin: 0 20rpx;
+    /* 左右间距 */
+    border-radius: 12rpx;
+    box-shadow: 0 0 10rpx 2rpx rgba(0, 0, 0, 0.05);
+    /* 四周阴影 */
+    overflow: hidden;
+  }
+
+  /* 信息项:显式flex-direction:row,横向排版 */
+  .info-item {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 24rpx 20rpx;
+    border-bottom: 1px solid #f0f0f0;
+  }
+
+  /* 最后一个信息项去掉下边框 */
+  .info-list .info-item:last-child {
+    border-bottom: none;
+  }
+
+  /* 信息标签 */
+  .info-label {
+    font-size: 28rpx;
+    color: #333;
+    font-weight: 400;
+  }
+
+  /* 信息内容容器:显式flex-direction:row,横向排版 */
+  .info-content {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+
+  /* 内容文本 */
+  .content-text {
+    font-size: 28rpx;
+    color: #333;
+    margin-right: 12rpx;
+  }
+
+  /* 灰色文本(未添加) */
+  .text-gray {
+    color: #999;
+  }
+
+  /* 红色文本(审核失败) */
+  .text-red {
+    color: #ff4444;
+  }
+
+  /* 箭头图标 */
+  .arrow-icon {
+    width: 24rpx;
+    height: 24rpx;
+  }
+
+  /* 开关样式 */
+  .info-switch {
+    transform: scale(0.9);
+  }
+
+  /* 状态标签容器:显式flex-direction:row,横向排版 */
+  .status-tag-wrap {
+    display: flex;
+    margin-right: 12rpx;
+  }
+
+  /* 状态标签通用样式 */
+  .status-tag {
+    font-size: 22rpx;
+    padding: 4rpx 8rpx;
+    border-radius: 4rpx;
+    margin-right: 8rpx;
+  }
+
+  /* 待审核标签(灰色) */
+  .tag-gray {
+    color: #999;
+    background-color: #f0f0f0;
+  }
+
+  /* 待处理标签(橙色) */
+  .tag-orange {
+    color: #fff;
+    background-color: #ff9900;
+  }
+</style>

+ 0 - 41
src/utils/api/workbenches.uts

@@ -1,41 +0,0 @@
-// 导入UTS环境的请求函数
-import { request } from '../request'
-
-// 技师相关V3接口(UTS语法,兼容uni-app x)
-const workbenchesInfoApi = {
-	// 获取技师统计数据
-	getAllData: (params : any) : Promise<any> => {
-		return request({
-			url: "/coach/v3/orders/statistics",
-			method: "GET",
-			params: params
-		})
-	},
-	// 修改技师工作状态
-	editCoachWorkState: (data : any) : Promise<any> => {
-		return request({
-			url: "/coach/v3/account/work-status",
-			method: "POST",
-			data: data
-		})
-	},
-	// 修改技师工作时间设置
-	editWorkTimeSetting: (data : any) : Promise<any> => {
-		return request({
-			url: "/coach/v3/account/schedule",
-			method: "POST",
-			data: data
-		})
-	},
-	// 开通/关闭项目并设置路费
-	toggleProject: (data : any) : Promise<any> => {
-		return request({
-			url: "/coach/v3/projects/open",
-			method: "POST",
-			data: data
-		})
-	}
-}
-
-// UTS 标准导出
-export default workbenchesInfoApi

BIN
static/imagesInfo/anmo.png


BIN
static/imagesInfo/avatar.png


BIN
unpackage/cache/.app-android/class/ktClasss.ser


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/AvatarUrl.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/AvatarUrlReactiveObject.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/BillItem.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/BillItemReactiveObject.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/CoachInfo.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/CoachInfoReactiveObject.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/EvalTag.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/GenApp$Companion.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/GenApp.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/GenUniApp.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/IndexKt.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/OrderItem.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/OrderTag.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/ToolItem.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/ToolItemReactiveObject.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/UniAppConfig.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/UserInfo.class


BIN
unpackage/cache/.app-android/class/uni/UNI9F955ED/UserInfoReactiveObject.class


BIN
unpackage/cache/.app-android/dex/index/classes.dex


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/cache/.app-android/sourcemap/index.kt.map


+ 43 - 19
unpackage/cache/.app-android/src/.manifest.json

@@ -4,33 +4,57 @@
     "compiler_version": "4.87"
   },
   "files": {
-    "src/pages/login/login.kt": {
-      "md5": "9997dc5a81f022705be9bec4aadc821edb2e7141",
-      "class": "GenSrcPagesLoginLogin"
+    "pages/login/login.kt": {
+      "md5": "88e0140f1e9a76d0b35e82a464840e0cfc7c9ea1",
+      "class": "GenPagesLoginLogin"
     },
-    "src/pages/console/setOrderTime.kt": {
-      "md5": "15d698e174dd90753d680b289a81eacc700eb0a7",
-      "class": "GenSrcPagesConsoleSetOrderTime"
+    "components/u-floating/u-floating.kt": {
+      "class": "GenComponentsUFloatingUFloating",
+      "md5": "23ca4ef401b3409ccba4ee79743b9b87b79b582b"
     },
-    "src/pages/index/my.kt": {
-      "class": "GenSrcPagesIndexMy",
-      "md5": "641dce55b7fc98f66ec912bb58cfc0a5978f250b"
+    "pages/myEdite/myEdite.kt": {
+      "md5": "756fe95e9b1e001dca506f3e1385778274c8b3c6",
+      "class": "GenPagesMyEditeMyEdite"
     },
-    "src/pages/index/order.kt": {
-      "md5": "43c1d45010374dd101d802b89b2a20c40328fcf4",
-      "class": "GenSrcPagesIndexOrder"
+    "pages/myEdit/myEdit.kt": {
+      "md5": "56ed3de5ce1047df090a998277eed4ad69466c31",
+      "class": "GenPagesMyEditMyEdit"
+    },
+    "pages/console/serviceProject.kt": {
+      "class": "GenPagesConsoleServiceProject",
+      "md5": "fdae97dd719155ab0ae91bcbd4592d4f3936959b"
+    },
+    "pages/index/my.kt": {
+      "class": "GenPagesIndexMy",
+      "md5": "bb8ab8a709c43a9dd1cde722732539be42c4670c"
+    },
+    "pages/console/setOrderTime.kt": {
+      "class": "GenPagesConsoleSetOrderTime",
+      "md5": "f191e961d6b300fd4029a151a198ce7444a584e4"
+    },
+    "components/u-switch/u-switch.kt": {
+      "class": "GenComponentsUSwitchUSwitch",
+      "md5": "6a65054fba278927a443d9fe3a429908721bc4c4"
     },
     "index.kt": {
       "class": "",
-      "md5": "30305e6b5008327991076846c890fc78f0f93441"
+      "md5": "ccbfbfe16ac960ea4ecdb836959b3cfc299f139e"
+    },
+    "components/u-icon/u-icon.kt": {
+      "class": "GenComponentsUIconUIcon",
+      "md5": "22540c7124f5ffc782d15d0beddec26aaeddc5dc"
+    },
+    "pages/index/account.kt": {
+      "class": "GenPagesIndexAccount",
+      "md5": "5b4fd313e14bfdf34932fe33a35c77a70024629b"
     },
-    "src/pages/index/account.kt": {
-      "md5": "761a2aab7f183afe39c98d98cf717099d54c147c",
-      "class": "GenSrcPagesIndexAccount"
+    "pages/index/console.kt": {
+      "class": "GenPagesIndexConsole",
+      "md5": "cf299c6c2dece052a10f2b4aa25ca84e3b84d1ed"
     },
-    "src/pages/index/console.kt": {
-      "class": "GenSrcPagesIndexConsole",
-      "md5": "a3d593da0a630dba114b5f9b2df73f29b44306e3"
+    "pages/index/order.kt": {
+      "class": "GenPagesIndexOrder",
+      "md5": "1e1e6bbcb5807489f3cc33035b545e3a0962cb3e"
     }
   }
 }

+ 366 - 65
unpackage/cache/.app-android/src/index.kt

@@ -73,7 +73,7 @@ fun tryConnectSocket(host: String, port: String, id: String): UTSPromise<SocketT
 fun initRuntimeSocketService(): UTSPromise<Boolean> {
     val hosts: String = "192.168.0.20,127.0.0.1"
     val port: String = "8090"
-    val id: String = "app-android_Q11oN8"
+    val id: String = "app-android_XpkOHc"
     if (hosts == "" || port == "" || id == "") {
         return UTSPromise.resolve(false)
     }
@@ -156,6 +156,122 @@ val GenAppClass = CreateVueAppComponent(GenApp::class.java, fun(): VueComponentO
     return GenApp(instance)
 }
 )
+val iconMap: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("iconMap", "common/icon-map.uts", 2, 14)) {
+    var alipay = "/static/icons/alipay.svg"
+    var arrow_down = "/static/icons/arrow_down.svg"
+    var arrow_left = "/static/icons/arrow_left.svg"
+    var arrow_right = "/static/icons/arrow_right.svg"
+    var arrow_up = "/static/icons/arrow_up.svg"
+    var calculator = "/static/icons/calculator.svg"
+    var cart = "/static/icons/cart.svg"
+    var cart_empty = "/static/icons/cart_empty.svg"
+    var caution = "/static/icons/caution.svg"
+    var caution_filled = "/static/icons/caution_filled.svg"
+    var check = "/static/icons/check.svg"
+    var check_filled = "/static/icons/check_filled.svg"
+    var close = "/static/icons/close.svg"
+    var close_filled = "/static/icons/close_filled.svg"
+    var copy = "/static/icons/copy.svg"
+    var `customer-interests` = "/static/icons/customer-interests.svg"
+    var customer_service = "/static/icons/customer_service.svg"
+    var discount = "/static/icons/discount.svg"
+    var download = "/static/icons/download.svg"
+    var down_to_bottom = "/static/icons/down_to_bottom.svg"
+    var edit = "/static/icons/edit.svg"
+    var email = "/static/icons/email.svg"
+    var ET = "/static/icons/ET.svg"
+    var filter = "/static/icons/filter.svg"
+    var flow = "/static/icons/flow.svg"
+    var forbidden = "/static/icons/forbidden.svg"
+    var forbidden_filled = "/static/icons/forbidden_filled.svg"
+    var help = "/static/icons/help.svg"
+    var help_filled = "/static/icons/help_filled.svg"
+    var image = "/static/icons/image.svg"
+    var info = "/static/icons/info.svg"
+    var info_filled = "/static/icons/info_filled.svg"
+    var international = "/static/icons/international.svg"
+    var like = "/static/icons/like.svg"
+    var like_filled = "/static/icons/like_filled.svg"
+    var link = "/static/icons/link.svg"
+    var list = "/static/icons/list.svg"
+    var lock = "/static/icons/lock.svg"
+    var message = "/static/icons/message.svg"
+    var message_unread = "/static/icons/message_unread.svg"
+    var navigation = "/static/icons/navigation.svg"
+    var notification = "/static/icons/notification.svg"
+    var notification_off = "/static/icons/notification_off.svg"
+    var order_unread = "/static/icons/order_unread.svg"
+    var page_first = "/static/icons/page_first.svg"
+    var page_last = "/static/icons/page_last.svg"
+    var page_turning_left = "/static/icons/page_turning_left.svg"
+    var page_turning_right = "/static/icons/page_turning_right.svg"
+    var partner = "/static/icons/partner.svg"
+    var phonecall = "/static/icons/phonecall.svg"
+    var phonecall_off = "/static/icons/phonecall_off.svg"
+    var play = "/static/icons/play.svg"
+    var record = "/static/icons/record.svg"
+    var refresh = "/static/icons/refresh.svg"
+    var region = "/static/icons/region.svg"
+    var search = "/static/icons/search.svg"
+    var setting = "/static/icons/setting.svg"
+    var share = "/static/icons/share.svg"
+    var show_less = "/static/icons/show_less.svg"
+    var show_more = "/static/icons/show_more.svg"
+    var social_wechat = "/static/icons/social_wechat.svg"
+    var star = "/static/icons/star.svg"
+    var star_filled = "/static/icons/star_filled.svg"
+    var store = "/static/icons/store.svg"
+    var sub_account = "/static/icons/sub_account.svg"
+    var time = "/static/icons/time.svg"
+    var unlock = "/static/icons/unlock.svg"
+    var upload = "/static/icons/upload.svg"
+    var up_to_top = "/static/icons/up_to_top.svg"
+    var user = "/static/icons/user.svg"
+    var view = "/static/icons/view.svg"
+    var view_off = "/static/icons/view_off.svg"
+}
+val GenComponentsUIconUIconClass = CreateVueComponent(GenComponentsUIconUIcon::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "component", name = "", inheritAttrs = GenComponentsUIconUIcon.inheritAttrs, inject = GenComponentsUIconUIcon.inject, props = GenComponentsUIconUIcon.props, propsNeedCastKeys = GenComponentsUIconUIcon.propsNeedCastKeys, emits = GenComponentsUIconUIcon.emits, components = GenComponentsUIconUIcon.components, styles = GenComponentsUIconUIcon.styles)
+}
+, fun(instance, renderer): GenComponentsUIconUIcon {
+    return GenComponentsUIconUIcon(instance)
+}
+)
+val GenComponentsUSwitchUSwitchClass = CreateVueComponent(GenComponentsUSwitchUSwitch::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "component", name = "", inheritAttrs = GenComponentsUSwitchUSwitch.inheritAttrs, inject = GenComponentsUSwitchUSwitch.inject, props = GenComponentsUSwitchUSwitch.props, propsNeedCastKeys = GenComponentsUSwitchUSwitch.propsNeedCastKeys, emits = GenComponentsUSwitchUSwitch.emits, components = GenComponentsUSwitchUSwitch.components, styles = GenComponentsUSwitchUSwitch.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenComponentsUSwitchUSwitch.setup(props as GenComponentsUSwitchUSwitch)
+    }
+    )
+}
+, fun(instance, renderer): GenComponentsUSwitchUSwitch {
+    return GenComponentsUSwitchUSwitch(instance)
+}
+)
+open class TouchItem (
+    @JsonNotNull
+    open var clientX: Number,
+    @JsonNotNull
+    open var clientY: Number,
+) : UTSObject(), IUTSSourceMap {
+    override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
+        return UTSSourceMapPosition("TouchItem", "components/u-floating/u-floating.vue", 9, 7)
+    }
+}
+open class TouchEvent (
+    @JsonNotNull
+    open var touches: UTSArray<TouchItem>,
+) : UTSObject(), IUTSSourceMap {
+    override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
+        return UTSSourceMapPosition("TouchEvent", "components/u-floating/u-floating.vue", 13, 7)
+    }
+}
+val GenComponentsUFloatingUFloatingClass = CreateVueComponent(GenComponentsUFloatingUFloating::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "component", name = GenComponentsUFloatingUFloating.name, inheritAttrs = GenComponentsUFloatingUFloating.inheritAttrs, inject = GenComponentsUFloatingUFloating.inject, props = GenComponentsUFloatingUFloating.props, propsNeedCastKeys = GenComponentsUFloatingUFloating.propsNeedCastKeys, emits = GenComponentsUFloatingUFloating.emits, components = GenComponentsUFloatingUFloating.components, styles = GenComponentsUFloatingUFloating.styles)
+}
+, fun(instance, renderer): GenComponentsUFloatingUFloating {
+    return GenComponentsUFloatingUFloating(instance)
+}
+)
 val `default` = "/static/imagesInfo/bg-color.png"
 val default__1 = "/static/imagesInfo/bg-icon.png"
 open class AvatarUrl (
@@ -163,7 +279,7 @@ open class AvatarUrl (
     open var url: String,
 ) : UTSReactiveObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("AvatarUrl", "src/pages/index/console.uvue", 206, 7)
+        return UTSSourceMapPosition("AvatarUrl", "pages/index/console.uvue", 207, 7)
     }
     override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
         return AvatarUrlReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
@@ -201,7 +317,7 @@ open class CoachInfo (
     open var avatar_url: AvatarUrl? = null,
 ) : UTSReactiveObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("CoachInfo", "src/pages/index/console.uvue", 210, 7)
+        return UTSSourceMapPosition("CoachInfo", "pages/index/console.uvue", 212, 7)
     }
     override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
         return CoachInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
@@ -253,17 +369,17 @@ open class EvalTag (
     open var count: Number,
 ) : UTSObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("EvalTag", "src/pages/index/console.uvue", 265, 7)
+        return UTSSourceMapPosition("EvalTag", "pages/index/console.uvue", 285, 7)
     }
 }
-val GenSrcPagesIndexConsoleClass = CreateVueComponent(GenSrcPagesIndexConsole::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesIndexConsole.inheritAttrs, inject = GenSrcPagesIndexConsole.inject, props = GenSrcPagesIndexConsole.props, propsNeedCastKeys = GenSrcPagesIndexConsole.propsNeedCastKeys, emits = GenSrcPagesIndexConsole.emits, components = GenSrcPagesIndexConsole.components, styles = GenSrcPagesIndexConsole.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesIndexConsole.setup(props as GenSrcPagesIndexConsole)
+val GenPagesIndexConsoleClass = CreateVueComponent(GenPagesIndexConsole::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexConsole.inheritAttrs, inject = GenPagesIndexConsole.inject, props = GenPagesIndexConsole.props, propsNeedCastKeys = GenPagesIndexConsole.propsNeedCastKeys, emits = GenPagesIndexConsole.emits, components = GenPagesIndexConsole.components, styles = GenPagesIndexConsole.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesIndexConsole.setup(props as GenPagesIndexConsole)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesIndexConsole {
-    return GenSrcPagesIndexConsole(instance, renderer)
+, fun(instance, renderer): GenPagesIndexConsole {
+    return GenPagesIndexConsole(instance, renderer)
 }
 )
 open class UserInfo (
@@ -283,7 +399,7 @@ open class UserInfo (
     open var progressPercent: Number,
 ) : UTSReactiveObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("UserInfo", "src/pages/index/my.uvue", 179, 7)
+        return UTSSourceMapPosition("UserInfo", "pages/index/my.uvue", 179, 7)
     }
     override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
         return UserInfoReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
@@ -397,7 +513,7 @@ open class ToolItem (
     open var color: String,
 ) : UTSReactiveObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("ToolItem", "src/pages/index/my.uvue", 204, 7)
+        return UTSSourceMapPosition("ToolItem", "pages/index/my.uvue", 204, 7)
     }
     override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
         return ToolItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
@@ -454,14 +570,14 @@ class ToolItemReactiveObject : ToolItem, IUTSReactive<ToolItem> {
             _tRS(__v_raw, "color", oldValue, value)
         }
 }
-val GenSrcPagesIndexMyClass = CreateVueComponent(GenSrcPagesIndexMy::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesIndexMy.inheritAttrs, inject = GenSrcPagesIndexMy.inject, props = GenSrcPagesIndexMy.props, propsNeedCastKeys = GenSrcPagesIndexMy.propsNeedCastKeys, emits = GenSrcPagesIndexMy.emits, components = GenSrcPagesIndexMy.components, styles = GenSrcPagesIndexMy.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesIndexMy.setup(props as GenSrcPagesIndexMy)
+val GenPagesIndexMyClass = CreateVueComponent(GenPagesIndexMy::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexMy.inheritAttrs, inject = GenPagesIndexMy.inject, props = GenPagesIndexMy.props, propsNeedCastKeys = GenPagesIndexMy.propsNeedCastKeys, emits = GenPagesIndexMy.emits, components = GenPagesIndexMy.components, styles = GenPagesIndexMy.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesIndexMy.setup(props as GenPagesIndexMy)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesIndexMy {
-    return GenSrcPagesIndexMy(instance, renderer)
+, fun(instance, renderer): GenPagesIndexMy {
+    return GenPagesIndexMy(instance, renderer)
 }
 )
 open class OrderTag (
@@ -471,7 +587,7 @@ open class OrderTag (
     open var type: String,
 ) : UTSObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("OrderTag", "src/pages/index/order.uvue", 120, 7)
+        return UTSSourceMapPosition("OrderTag", "pages/index/order.uvue", 120, 7)
     }
 }
 open class OrderItem (
@@ -497,17 +613,17 @@ open class OrderItem (
     open var image: String,
 ) : UTSObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("OrderItem", "src/pages/index/order.uvue", 125, 7)
+        return UTSSourceMapPosition("OrderItem", "pages/index/order.uvue", 125, 7)
     }
 }
-val GenSrcPagesIndexOrderClass = CreateVueComponent(GenSrcPagesIndexOrder::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesIndexOrder.inheritAttrs, inject = GenSrcPagesIndexOrder.inject, props = GenSrcPagesIndexOrder.props, propsNeedCastKeys = GenSrcPagesIndexOrder.propsNeedCastKeys, emits = GenSrcPagesIndexOrder.emits, components = GenSrcPagesIndexOrder.components, styles = GenSrcPagesIndexOrder.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesIndexOrder.setup(props as GenSrcPagesIndexOrder)
+val GenPagesIndexOrderClass = CreateVueComponent(GenPagesIndexOrder::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexOrder.inheritAttrs, inject = GenPagesIndexOrder.inject, props = GenPagesIndexOrder.props, propsNeedCastKeys = GenPagesIndexOrder.propsNeedCastKeys, emits = GenPagesIndexOrder.emits, components = GenPagesIndexOrder.components, styles = GenPagesIndexOrder.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesIndexOrder.setup(props as GenPagesIndexOrder)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesIndexOrder {
-    return GenSrcPagesIndexOrder(instance, renderer)
+, fun(instance, renderer): GenPagesIndexOrder {
+    return GenPagesIndexOrder(instance, renderer)
 }
 )
 open class BillItem (
@@ -525,7 +641,7 @@ open class BillItem (
     open var recordTime: String,
 ) : UTSReactiveObject(), IUTSSourceMap {
     override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
-        return UTSSourceMapPosition("BillItem", "src/pages/index/account.uvue", 195, 7)
+        return UTSSourceMapPosition("BillItem", "pages/index/account.uvue", 195, 7)
     }
     override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
         return BillItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
@@ -618,14 +734,14 @@ class BillItemReactiveObject : BillItem, IUTSReactive<BillItem> {
             _tRS(__v_raw, "recordTime", oldValue, value)
         }
 }
-val GenSrcPagesIndexAccountClass = CreateVueComponent(GenSrcPagesIndexAccount::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesIndexAccount.inheritAttrs, inject = GenSrcPagesIndexAccount.inject, props = GenSrcPagesIndexAccount.props, propsNeedCastKeys = GenSrcPagesIndexAccount.propsNeedCastKeys, emits = GenSrcPagesIndexAccount.emits, components = GenSrcPagesIndexAccount.components, styles = GenSrcPagesIndexAccount.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesIndexAccount.setup(props as GenSrcPagesIndexAccount)
+val GenPagesIndexAccountClass = CreateVueComponent(GenPagesIndexAccount::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesIndexAccount.inheritAttrs, inject = GenPagesIndexAccount.inject, props = GenPagesIndexAccount.props, propsNeedCastKeys = GenPagesIndexAccount.propsNeedCastKeys, emits = GenPagesIndexAccount.emits, components = GenPagesIndexAccount.components, styles = GenPagesIndexAccount.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesIndexAccount.setup(props as GenPagesIndexAccount)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesIndexAccount {
-    return GenSrcPagesIndexAccount(instance, renderer)
+, fun(instance, renderer): GenPagesIndexAccount {
+    return GenPagesIndexAccount(instance, renderer)
 }
 )
 fun toUTSJSONObject(obj: Any?): UTSJSONObject? {
@@ -635,7 +751,7 @@ fun toUTSJSONObject(obj: Any?): UTSJSONObject? {
     if (obj is UTSJSONObject) {
         return obj as UTSJSONObject
     }
-    val result = UTSJSONObject(UTSSourceMapPosition("result", "src/utils/request.uts", 17, 11))
+    val result = UTSJSONObject(UTSSourceMapPosition("result", "utils/request.uts", 17, 11))
     val keys = UTSJSONObject.keys(obj as UTSJSONObject)
     run {
         var i: Number = 0
@@ -651,12 +767,11 @@ fun toUTSJSONObject(obj: Any?): UTSJSONObject? {
     return result
 }
 fun mapToUTSJSONObject(map: Map<String, String>): UTSJSONObject {
-    val obj = UTSJSONObject(UTSSourceMapPosition("obj", "src/utils/request.uts", 30, 11))
-    val iter = map.iterator()
-    while(iter.hasNext()){
-        val entry = iter.next()
-        obj.set(entry.key, entry.value)
+    val obj = UTSJSONObject(UTSSourceMapPosition("obj", "utils/request.uts", 30, 11))
+    map.forEach(fun(value: String, key: String){
+        obj.set(key, value)
     }
+    )
     return obj
 }
 fun buildQueryString(params: Any?): String {
@@ -678,7 +793,7 @@ fun buildQueryString(params: Any?): String {
                 if (query.length > 0) {
                     query += "&"
                 }
-                query += key + "=" + UTSAndroid.consoleDebugError(encodeURIComponent(kVal.toString()), " at src/utils/request.uts:53")
+                query += key + "=" + UTSAndroid.consoleDebugError(encodeURIComponent(kVal.toString()), " at utils/request.uts:51")
             }
             i++
         }
@@ -696,18 +811,19 @@ fun request(options: Any?): UTSPromise<Any> {
             reject(UTSError("请求参数格式错误"))
             return
         }
+        val baseURL = "/"
         val url = opts.getString("url") ?: ""
         val method = opts.getString("method") ?: "GET"
         val params = opts.get("params")
         val data = opts.get("data")
         val showLoading = opts.getBoolean("showLoading") ?: true
         val loadingMsg = opts.getString("loadingMsg") ?: "加载中"
-        var finalUrl = url
+        var finalUrl = baseURL + url.replace(UTSRegExp("^\\/", ""), "")
         val upperMethod = method.toUpperCase()
         if (upperMethod === "GET" && params != null) {
             val query = buildQueryString(params)
             if (query.length > 0) {
-                finalUrl = url + "?" + query
+                finalUrl += "?" + query
             }
         }
         val headerMap = Map<String, String>()
@@ -743,38 +859,221 @@ fun request(options: Any?): UTSPromise<Any> {
     }
     )
 }
-val workbenchesInfoApi: UTSJSONObject = object : UTSJSONObject(UTSSourceMapPosition("workbenchesInfoApi", "src/utils/api/workbenches.uts", 4, 7)) {
-    var getAllData = fun(params: Any): UTSPromise<Any> {
-        return request(_uO("url" to "/coach/v3/orders/statistics", "method" to "GET", "params" to params))
+fun editWorkTimeSetting(data: Any): UTSPromise<Any> {
+    return request(_uO("url" to "/api/coach/v3/account/schedule", "method" to "POST", "data" to data))
+}
+open class TimeItem (
+    @JsonNotNull
+    open var start_time: String,
+    @JsonNotNull
+    open var end_time: String,
+    @JsonNotNull
+    open var isSelect: Boolean = false,
+) : UTSReactiveObject(), IUTSSourceMap {
+    override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
+        return UTSSourceMapPosition("TimeItem", "pages/console/setOrderTime.uvue", 44, 7)
+    }
+    override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
+        return TimeItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
+    }
+}
+class TimeItemReactiveObject : TimeItem, IUTSReactive<TimeItem> {
+    override var __v_raw: TimeItem
+    override var __v_isReadonly: Boolean
+    override var __v_isShallow: Boolean
+    override var __v_skip: Boolean
+    constructor(__v_raw: TimeItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(start_time = __v_raw.start_time, end_time = __v_raw.end_time, isSelect = __v_raw.isSelect) {
+        this.__v_raw = __v_raw
+        this.__v_isReadonly = __v_isReadonly
+        this.__v_isShallow = __v_isShallow
+        this.__v_skip = __v_skip
+    }
+    override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): TimeItemReactiveObject {
+        return TimeItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip)
+    }
+    override var start_time: String
+        get() {
+            return _tRG(__v_raw, "start_time", __v_raw.start_time, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("start_time")) {
+                return
+            }
+            val oldValue = __v_raw.start_time
+            __v_raw.start_time = value
+            _tRS(__v_raw, "start_time", oldValue, value)
+        }
+    override var end_time: String
+        get() {
+            return _tRG(__v_raw, "end_time", __v_raw.end_time, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("end_time")) {
+                return
+            }
+            val oldValue = __v_raw.end_time
+            __v_raw.end_time = value
+            _tRS(__v_raw, "end_time", oldValue, value)
+        }
+    override var isSelect: Boolean
+        get() {
+            return _tRG(__v_raw, "isSelect", __v_raw.isSelect, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("isSelect")) {
+                return
+            }
+            val oldValue = __v_raw.isSelect
+            __v_raw.isSelect = value
+            _tRS(__v_raw, "isSelect", oldValue, value)
+        }
+}
+val GenPagesConsoleSetOrderTimeClass = CreateVueComponent(GenPagesConsoleSetOrderTime::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesConsoleSetOrderTime.inheritAttrs, inject = GenPagesConsoleSetOrderTime.inject, props = GenPagesConsoleSetOrderTime.props, propsNeedCastKeys = GenPagesConsoleSetOrderTime.propsNeedCastKeys, emits = GenPagesConsoleSetOrderTime.emits, components = GenPagesConsoleSetOrderTime.components, styles = GenPagesConsoleSetOrderTime.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesConsoleSetOrderTime.setup(props as GenPagesConsoleSetOrderTime)
+    }
+    )
+}
+, fun(instance, renderer): GenPagesConsoleSetOrderTime {
+    return GenPagesConsoleSetOrderTime(instance, renderer)
+}
+)
+val GenPagesLoginLoginClass = CreateVueComponent(GenPagesLoginLogin::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesLoginLogin.inheritAttrs, inject = GenPagesLoginLogin.inject, props = GenPagesLoginLogin.props, propsNeedCastKeys = GenPagesLoginLogin.propsNeedCastKeys, emits = GenPagesLoginLogin.emits, components = GenPagesLoginLogin.components, styles = GenPagesLoginLogin.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesLoginLogin.setup(props as GenPagesLoginLogin)
+    }
+    )
+}
+, fun(instance, renderer): GenPagesLoginLogin {
+    return GenPagesLoginLogin(instance, renderer)
+}
+)
+open class ServiceItem (
+    @JsonNotNull
+    open var id: Number,
+    @JsonNotNull
+    open var title: String,
+    @JsonNotNull
+    open var desc: String,
+    @JsonNotNull
+    open var price: Number,
+    @JsonNotNull
+    open var img: String,
+    @JsonNotNull
+    open var hasFare: Boolean = false,
+) : UTSReactiveObject(), IUTSSourceMap {
+    override fun `__$getOriginalPosition`(): UTSSourceMapPosition? {
+        return UTSSourceMapPosition("ServiceItem", "pages/console/serviceProject.uvue", 64, 7)
     }
-    var editCoachWorkState = fun(data: Any): UTSPromise<Any> {
-        return request(_uO("url" to "/coach/v3/account/work-status", "method" to "POST", "data" to data))
+    override fun __v_create(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): UTSReactiveObject {
+        return ServiceItemReactiveObject(this, __v_isReadonly, __v_isShallow, __v_skip)
     }
-    var editWorkTimeSetting = fun(data: Any): UTSPromise<Any> {
-        return request(_uO("url" to "/coach/v3/account/schedule", "method" to "POST", "data" to data))
+}
+class ServiceItemReactiveObject : ServiceItem, IUTSReactive<ServiceItem> {
+    override var __v_raw: ServiceItem
+    override var __v_isReadonly: Boolean
+    override var __v_isShallow: Boolean
+    override var __v_skip: Boolean
+    constructor(__v_raw: ServiceItem, __v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean) : super(id = __v_raw.id, title = __v_raw.title, desc = __v_raw.desc, price = __v_raw.price, img = __v_raw.img, hasFare = __v_raw.hasFare) {
+        this.__v_raw = __v_raw
+        this.__v_isReadonly = __v_isReadonly
+        this.__v_isShallow = __v_isShallow
+        this.__v_skip = __v_skip
     }
-    var toggleProject = fun(data: Any): UTSPromise<Any> {
-        return request(_uO("url" to "/coach/v3/projects/open", "method" to "POST", "data" to data))
+    override fun __v_clone(__v_isReadonly: Boolean, __v_isShallow: Boolean, __v_skip: Boolean): ServiceItemReactiveObject {
+        return ServiceItemReactiveObject(this.__v_raw, __v_isReadonly, __v_isShallow, __v_skip)
     }
+    override var id: Number
+        get() {
+            return _tRG(__v_raw, "id", __v_raw.id, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("id")) {
+                return
+            }
+            val oldValue = __v_raw.id
+            __v_raw.id = value
+            _tRS(__v_raw, "id", oldValue, value)
+        }
+    override var title: String
+        get() {
+            return _tRG(__v_raw, "title", __v_raw.title, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("title")) {
+                return
+            }
+            val oldValue = __v_raw.title
+            __v_raw.title = value
+            _tRS(__v_raw, "title", oldValue, value)
+        }
+    override var desc: String
+        get() {
+            return _tRG(__v_raw, "desc", __v_raw.desc, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("desc")) {
+                return
+            }
+            val oldValue = __v_raw.desc
+            __v_raw.desc = value
+            _tRS(__v_raw, "desc", oldValue, value)
+        }
+    override var price: Number
+        get() {
+            return _tRG(__v_raw, "price", __v_raw.price, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("price")) {
+                return
+            }
+            val oldValue = __v_raw.price
+            __v_raw.price = value
+            _tRS(__v_raw, "price", oldValue, value)
+        }
+    override var img: String
+        get() {
+            return _tRG(__v_raw, "img", __v_raw.img, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("img")) {
+                return
+            }
+            val oldValue = __v_raw.img
+            __v_raw.img = value
+            _tRS(__v_raw, "img", oldValue, value)
+        }
+    override var hasFare: Boolean
+        get() {
+            return _tRG(__v_raw, "hasFare", __v_raw.hasFare, __v_isReadonly, __v_isShallow)
+        }
+        set(value) {
+            if (!__v_canSet("hasFare")) {
+                return
+            }
+            val oldValue = __v_raw.hasFare
+            __v_raw.hasFare = value
+            _tRS(__v_raw, "hasFare", oldValue, value)
+        }
 }
-val GenSrcPagesConsoleSetOrderTimeClass = CreateVueComponent(GenSrcPagesConsoleSetOrderTime::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesConsoleSetOrderTime.inheritAttrs, inject = GenSrcPagesConsoleSetOrderTime.inject, props = GenSrcPagesConsoleSetOrderTime.props, propsNeedCastKeys = GenSrcPagesConsoleSetOrderTime.propsNeedCastKeys, emits = GenSrcPagesConsoleSetOrderTime.emits, components = GenSrcPagesConsoleSetOrderTime.components, styles = GenSrcPagesConsoleSetOrderTime.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesConsoleSetOrderTime.setup(props as GenSrcPagesConsoleSetOrderTime)
+val GenPagesConsoleServiceProjectClass = CreateVueComponent(GenPagesConsoleServiceProject::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesConsoleServiceProject.inheritAttrs, inject = GenPagesConsoleServiceProject.inject, props = GenPagesConsoleServiceProject.props, propsNeedCastKeys = GenPagesConsoleServiceProject.propsNeedCastKeys, emits = GenPagesConsoleServiceProject.emits, components = GenPagesConsoleServiceProject.components, styles = GenPagesConsoleServiceProject.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesConsoleServiceProject.setup(props as GenPagesConsoleServiceProject)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesConsoleSetOrderTime {
-    return GenSrcPagesConsoleSetOrderTime(instance, renderer)
+, fun(instance, renderer): GenPagesConsoleServiceProject {
+    return GenPagesConsoleServiceProject(instance, renderer)
 }
 )
-val GenSrcPagesLoginLoginClass = CreateVueComponent(GenSrcPagesLoginLogin::class.java, fun(): VueComponentOptions {
-    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenSrcPagesLoginLogin.inheritAttrs, inject = GenSrcPagesLoginLogin.inject, props = GenSrcPagesLoginLogin.props, propsNeedCastKeys = GenSrcPagesLoginLogin.propsNeedCastKeys, emits = GenSrcPagesLoginLogin.emits, components = GenSrcPagesLoginLogin.components, styles = GenSrcPagesLoginLogin.styles, setup = fun(props: ComponentPublicInstance): Any? {
-        return GenSrcPagesLoginLogin.setup(props as GenSrcPagesLoginLogin)
+val GenPagesMyEditMyEditClass = CreateVueComponent(GenPagesMyEditMyEdit::class.java, fun(): VueComponentOptions {
+    return VueComponentOptions(type = "page", name = "", inheritAttrs = GenPagesMyEditMyEdit.inheritAttrs, inject = GenPagesMyEditMyEdit.inject, props = GenPagesMyEditMyEdit.props, propsNeedCastKeys = GenPagesMyEditMyEdit.propsNeedCastKeys, emits = GenPagesMyEditMyEdit.emits, components = GenPagesMyEditMyEdit.components, styles = GenPagesMyEditMyEdit.styles, setup = fun(props: ComponentPublicInstance): Any? {
+        return GenPagesMyEditMyEdit.setup(props as GenPagesMyEditMyEdit)
     }
     )
 }
-, fun(instance, renderer): GenSrcPagesLoginLogin {
-    return GenSrcPagesLoginLogin(instance, renderer)
+, fun(instance, renderer): GenPagesMyEditMyEdit {
+    return GenPagesMyEditMyEdit(instance, renderer)
 }
 )
 fun createApp(): UTSJSONObject {
@@ -795,12 +1094,14 @@ open class UniAppConfig : io.dcloud.uniapp.appframe.AppConfig {
     constructor() : super() {}
 }
 fun definePageRoutes() {
-    __uniRoutes.push(UniPageRoute(path = "src/pages/index/console", component = GenSrcPagesIndexConsoleClass, meta = UniPageMeta(isQuit = true), style = _uM("navigationBarTitleText" to "控制台")))
-    __uniRoutes.push(UniPageRoute(path = "src/pages/index/my", component = GenSrcPagesIndexMyClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的")))
-    __uniRoutes.push(UniPageRoute(path = "src/pages/index/order", component = GenSrcPagesIndexOrderClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "订单")))
-    __uniRoutes.push(UniPageRoute(path = "src/pages/index/account", component = GenSrcPagesIndexAccountClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "账户")))
-    __uniRoutes.push(UniPageRoute(path = "src/pages/console/setOrderTime", component = GenSrcPagesConsoleSetOrderTimeClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "接单时间")))
-    __uniRoutes.push(UniPageRoute(path = "src/pages/login/login", component = GenSrcPagesLoginLoginClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "")))
+    __uniRoutes.push(UniPageRoute(path = "pages/index/console", component = GenPagesIndexConsoleClass, meta = UniPageMeta(isQuit = true), style = _uM("navigationBarTitleText" to "控制台")))
+    __uniRoutes.push(UniPageRoute(path = "pages/index/my", component = GenPagesIndexMyClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "我的")))
+    __uniRoutes.push(UniPageRoute(path = "pages/index/order", component = GenPagesIndexOrderClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "订单")))
+    __uniRoutes.push(UniPageRoute(path = "pages/index/account", component = GenPagesIndexAccountClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "账户")))
+    __uniRoutes.push(UniPageRoute(path = "pages/console/setOrderTime", component = GenPagesConsoleSetOrderTimeClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "接单时间")))
+    __uniRoutes.push(UniPageRoute(path = "pages/login/login", component = GenPagesLoginLoginClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "")))
+    __uniRoutes.push(UniPageRoute(path = "pages/console/serviceProject", component = GenPagesConsoleServiceProjectClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "服务项目")))
+    __uniRoutes.push(UniPageRoute(path = "pages/myEdit/myEdit", component = GenPagesMyEditMyEditClass, meta = UniPageMeta(isQuit = false), style = _uM("navigationBarTitleText" to "个人信息")))
 }
 val __uniTabBar: Map<String, Any?>? = _uM("selectedColor" to "#000000", "backgroundColor" to "#ffffff", "list" to _uA(
     _uM("pagePath" to "pages/index/console", "iconPath" to "static/iconInfo/noactive/homepage.png", "selectedIconPath" to "static/iconInfo/active/homepage.png", "text" to "控制台"),
@@ -808,9 +1109,9 @@ val __uniTabBar: Map<String, Any?>? = _uM("selectedColor" to "#000000", "backgro
     _uM("pagePath" to "pages/index/account", "iconPath" to "static/iconInfo/noactive/account.png", "selectedIconPath" to "static/iconInfo/active/account.png", "text" to "账户"),
     _uM("pagePath" to "pages/index/my", "iconPath" to "static/iconInfo/noactive/myhome.png", "selectedIconPath" to "static/iconInfo/active/myhome.png", "text" to "我的")
 ))
-val __uniLaunchPage: Map<String, Any?> = _uM("url" to "src/pages/index/console", "style" to _uM("navigationBarTitleText" to "控制台"))
+val __uniLaunchPage: Map<String, Any?> = _uM("url" to "pages/index/console", "style" to _uM("navigationBarTitleText" to "控制台"))
 fun defineAppConfig() {
-    __uniConfig.entryPagePath = "/src/pages/index/console"
+    __uniConfig.entryPagePath = "/pages/index/console"
     __uniConfig.globalStyle = _uM("navigationBarTextStyle" to "black", "navigationBarTitleText" to "小丁到家--上门按摩", "navigationBarBackgroundColor" to "#F8F8F8", "backgroundColor" to "#F8F8F8")
     __uniConfig.getTabBarConfig = fun(): Map<String, Any>? {
         return _uM("selectedColor" to "#000000", "backgroundColor" to "#ffffff", "list" to _uA(

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/cache/.app-android/tsc/app-android/.tsbuildInfo


+ 18 - 14
unpackage/dist/dev/.tsc/app-android/main.uts.ts

@@ -23,24 +23,28 @@ export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
     constructor() { super() }
 }
 
-import GenSrcPagesIndexConsoleClass from './src/pages/index/console.uvue'
-import GenSrcPagesIndexMyClass from './src/pages/index/my.uvue'
-import GenSrcPagesIndexOrderClass from './src/pages/index/order.uvue'
-import GenSrcPagesIndexAccountClass from './src/pages/index/account.uvue'
-import GenSrcPagesConsoleSetOrderTimeClass from './src/pages/console/setOrderTime.uvue'
-import GenSrcPagesLoginLoginClass from './src/pages/login/login.uvue'
+import GenPagesIndexConsoleClass from './pages/index/console.uvue'
+import GenPagesIndexMyClass from './pages/index/my.uvue'
+import GenPagesIndexOrderClass from './pages/index/order.uvue'
+import GenPagesIndexAccountClass from './pages/index/account.uvue'
+import GenPagesConsoleSetOrderTimeClass from './pages/console/setOrderTime.uvue'
+import GenPagesLoginLoginClass from './pages/login/login.uvue'
+import GenPagesConsoleServiceProjectClass from './pages/console/serviceProject.uvue'
+import GenPagesMyEditMyEditClass from './pages/myEdit/myEdit.uvue'
 function definePageRoutes() {
-__uniRoutes.push({ path: "src/pages/index/console", component: GenSrcPagesIndexConsoleClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText","控制台"]]) } as UniPageRoute)
-__uniRoutes.push({ path: "src/pages/index/my", component: GenSrcPagesIndexMyClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","我的"]]) } as UniPageRoute)
-__uniRoutes.push({ path: "src/pages/index/order", component: GenSrcPagesIndexOrderClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","订单"]]) } as UniPageRoute)
-__uniRoutes.push({ path: "src/pages/index/account", component: GenSrcPagesIndexAccountClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","账户"]]) } as UniPageRoute)
-__uniRoutes.push({ path: "src/pages/console/setOrderTime", component: GenSrcPagesConsoleSetOrderTimeClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","接单时间"]]) } as UniPageRoute)
-__uniRoutes.push({ path: "src/pages/login/login", component: GenSrcPagesLoginLoginClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText",""]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/index/console", component: GenPagesIndexConsoleClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText","控制台"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/index/my", component: GenPagesIndexMyClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","我的"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/index/order", component: GenPagesIndexOrderClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","订单"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/index/account", component: GenPagesIndexAccountClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","账户"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/console/setOrderTime", component: GenPagesConsoleSetOrderTimeClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","接单时间"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/login/login", component: GenPagesLoginLoginClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText",""]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/console/serviceProject", component: GenPagesConsoleServiceProjectClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","服务项目"]]) } as UniPageRoute)
+__uniRoutes.push({ path: "pages/myEdit/myEdit", component: GenPagesMyEditMyEditClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText","个人信息"]]) } as UniPageRoute)
 }
 const __uniTabBar: Map<string, any | null> | null = _uM([["selectedColor","#000000"],["backgroundColor","#ffffff"],["list",[_uM([["pagePath","pages/index/console"],["iconPath","static/iconInfo/noactive/homepage.png"],["selectedIconPath","static/iconInfo/active/homepage.png"],["text","控制台"]]),_uM([["pagePath","pages/index/order"],["iconPath","static/iconInfo/noactive/order.png"],["selectedIconPath","static/iconInfo/active/order.png"],["text","订单"]]),_uM([["pagePath","pages/index/account"],["iconPath","static/iconInfo/noactive/account.png"],["selectedIconPath","static/iconInfo/active/account.png"],["text","账户"]]),_uM([["pagePath","pages/index/my"],["iconPath","static/iconInfo/noactive/myhome.png"],["selectedIconPath","static/iconInfo/active/myhome.png"],["text","我的"]])]]])
-const __uniLaunchPage: Map<string, any | null> = _uM([["url","src/pages/index/console"],["style",_uM([["navigationBarTitleText","控制台"]])]])
+const __uniLaunchPage: Map<string, any | null> = _uM([["url","pages/index/console"],["style",_uM([["navigationBarTitleText","控制台"]])]])
 function defineAppConfig(){
-  __uniConfig.entryPagePath = '/src/pages/index/console'
+  __uniConfig.entryPagePath = '/pages/index/console'
   __uniConfig.globalStyle = _uM([["navigationBarTextStyle","black"],["navigationBarTitleText","小丁到家--上门按摩"],["navigationBarBackgroundColor","#F8F8F8"],["backgroundColor","#F8F8F8"]])
   __uniConfig.getTabBarConfig = ():Map<string, any> | null =>  _uM([["selectedColor","#000000"],["backgroundColor","#ffffff"],["list",[_uM([["pagePath","pages/index/console"],["iconPath","static/iconInfo/noactive/homepage.png"],["selectedIconPath","static/iconInfo/active/homepage.png"],["text","控制台"]]),_uM([["pagePath","pages/index/order"],["iconPath","static/iconInfo/noactive/order.png"],["selectedIconPath","static/iconInfo/active/order.png"],["text","订单"]]),_uM([["pagePath","pages/index/account"],["iconPath","static/iconInfo/noactive/account.png"],["selectedIconPath","static/iconInfo/active/account.png"],["text","账户"]]),_uM([["pagePath","pages/index/my"],["iconPath","static/iconInfo/noactive/myhome.png"],["selectedIconPath","static/iconInfo/active/myhome.png"],["text","我的"]])]]])
   __uniConfig.tabBar = __uniConfig.getTabBarConfig()

+ 18 - 14
unpackage/dist/dev/.uvue/app-android/main.uts

@@ -20,24 +20,28 @@ export class UniAppConfig extends io.dcloud.uniapp.appframe.AppConfig {
     override uniCompilerVersion: string = "4.87";
     constructor() { super(); }
 }
-import GenSrcPagesIndexConsoleClass from './src/pages/index/console.uvue';
-import GenSrcPagesIndexMyClass from './src/pages/index/my.uvue';
-import GenSrcPagesIndexOrderClass from './src/pages/index/order.uvue';
-import GenSrcPagesIndexAccountClass from './src/pages/index/account.uvue';
-import GenSrcPagesConsoleSetOrderTimeClass from './src/pages/console/setOrderTime.uvue';
-import GenSrcPagesLoginLoginClass from './src/pages/login/login.uvue';
+import GenPagesIndexConsoleClass from './pages/index/console.uvue';
+import GenPagesIndexMyClass from './pages/index/my.uvue';
+import GenPagesIndexOrderClass from './pages/index/order.uvue';
+import GenPagesIndexAccountClass from './pages/index/account.uvue';
+import GenPagesConsoleSetOrderTimeClass from './pages/console/setOrderTime.uvue';
+import GenPagesLoginLoginClass from './pages/login/login.uvue';
+import GenPagesConsoleServiceProjectClass from './pages/console/serviceProject.uvue';
+import GenPagesMyEditMyEditClass from './pages/myEdit/myEdit.uvue';
 function definePageRoutes() {
-    __uniRoutes.push({ path: "src/pages/index/console", component: GenSrcPagesIndexConsoleClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText", "控制台"]]) } as UniPageRoute);
-    __uniRoutes.push({ path: "src/pages/index/my", component: GenSrcPagesIndexMyClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "我的"]]) } as UniPageRoute);
-    __uniRoutes.push({ path: "src/pages/index/order", component: GenSrcPagesIndexOrderClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "订单"]]) } as UniPageRoute);
-    __uniRoutes.push({ path: "src/pages/index/account", component: GenSrcPagesIndexAccountClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "账户"]]) } as UniPageRoute);
-    __uniRoutes.push({ path: "src/pages/console/setOrderTime", component: GenSrcPagesConsoleSetOrderTimeClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "接单时间"]]) } as UniPageRoute);
-    __uniRoutes.push({ path: "src/pages/login/login", component: GenSrcPagesLoginLoginClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", ""]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/index/console", component: GenPagesIndexConsoleClass, meta: { isQuit: true } as UniPageMeta, style: _uM([["navigationBarTitleText", "控制台"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/index/my", component: GenPagesIndexMyClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "我的"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/index/order", component: GenPagesIndexOrderClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "订单"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/index/account", component: GenPagesIndexAccountClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "账户"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/console/setOrderTime", component: GenPagesConsoleSetOrderTimeClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "接单时间"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/login/login", component: GenPagesLoginLoginClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", ""]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/console/serviceProject", component: GenPagesConsoleServiceProjectClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "服务项目"]]) } as UniPageRoute);
+    __uniRoutes.push({ path: "pages/myEdit/myEdit", component: GenPagesMyEditMyEditClass, meta: { isQuit: false } as UniPageMeta, style: _uM([["navigationBarTitleText", "个人信息"]]) } as UniPageRoute);
 }
 const __uniTabBar: Map<string, any | null> | null = _uM([["selectedColor", "#000000"], ["backgroundColor", "#ffffff"], ["list", [_uM([["pagePath", "pages/index/console"], ["iconPath", "static/iconInfo/noactive/homepage.png"], ["selectedIconPath", "static/iconInfo/active/homepage.png"], ["text", "控制台"]]), _uM([["pagePath", "pages/index/order"], ["iconPath", "static/iconInfo/noactive/order.png"], ["selectedIconPath", "static/iconInfo/active/order.png"], ["text", "订单"]]), _uM([["pagePath", "pages/index/account"], ["iconPath", "static/iconInfo/noactive/account.png"], ["selectedIconPath", "static/iconInfo/active/account.png"], ["text", "账户"]]), _uM([["pagePath", "pages/index/my"], ["iconPath", "static/iconInfo/noactive/myhome.png"], ["selectedIconPath", "static/iconInfo/active/myhome.png"], ["text", "我的"]])]]]);
-const __uniLaunchPage: Map<string, any | null> = _uM([["url", "src/pages/index/console"], ["style", _uM([["navigationBarTitleText", "控制台"]])]]);
+const __uniLaunchPage: Map<string, any | null> = _uM([["url", "pages/index/console"], ["style", _uM([["navigationBarTitleText", "控制台"]])]]);
 function defineAppConfig() {
-    __uniConfig.entryPagePath = '/src/pages/index/console';
+    __uniConfig.entryPagePath = '/pages/index/console';
     __uniConfig.globalStyle = _uM([["navigationBarTextStyle", "black"], ["navigationBarTitleText", "小丁到家--上门按摩"], ["navigationBarBackgroundColor", "#F8F8F8"], ["backgroundColor", "#F8F8F8"]]);
     __uniConfig.getTabBarConfig = (): Map<string, any> | null => _uM([["selectedColor", "#000000"], ["backgroundColor", "#ffffff"], ["list", [_uM([["pagePath", "pages/index/console"], ["iconPath", "static/iconInfo/noactive/homepage.png"], ["selectedIconPath", "static/iconInfo/active/homepage.png"], ["text", "控制台"]]), _uM([["pagePath", "pages/index/order"], ["iconPath", "static/iconInfo/noactive/order.png"], ["selectedIconPath", "static/iconInfo/active/order.png"], ["text", "订单"]]), _uM([["pagePath", "pages/index/account"], ["iconPath", "static/iconInfo/noactive/account.png"], ["selectedIconPath", "static/iconInfo/active/account.png"], ["text", "账户"]]), _uM([["pagePath", "pages/index/my"], ["iconPath", "static/iconInfo/noactive/myhome.png"], ["selectedIconPath", "static/iconInfo/active/myhome.png"], ["text", "我的"]])]]]);
     __uniConfig.tabBar = __uniConfig.getTabBarConfig();

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
unpackage/dist/dev/.uvue/app-android/main.uts.map


BIN
unpackage/dist/dev/app-android/index/classes.dex


+ 0 - 0
src/utils/api/login.uts → utils/api/login.uts


+ 31 - 0
utils/api/workbenches.uts

@@ -0,0 +1,31 @@
+// 导入请求
+import { request } from '../request.uts'
+
+export function getAllData(params : any) : Promise<any> {
+	return request({
+		url: "/api/coach/v3/orders/statistics",
+		method: "GET",
+		params: params
+	})
+}
+export function editCoachWorkState(data : any) : Promise<any> {
+	return request({
+		url: "/api/coach/v3/account/work-status",
+		method: "POST",
+		data: data
+	})
+}
+export function editWorkTimeSetting(data : any) : Promise<any> {
+	return request({
+		url: "/api/coach/v3/account/schedule",
+		method: "POST",
+		data: data
+	})
+}
+export function toggleProject(data : any) : Promise<any> {
+	return request({
+		url: "/api/coach/v3/projects/open",
+		method: "POST",
+		data: data
+	})
+}

+ 11 - 10
src/utils/request.uts → utils/request.uts

@@ -29,14 +29,11 @@ function toUTSJSONObject(obj : any | null) : UTSJSONObject | null {
 // Map 转 UTSJSONObject
 function mapToUTSJSONObject(map : Map<string, string>) : UTSJSONObject {
 	const obj = new UTSJSONObject()
-	const iter = map.iterator()
-	while (iter.hasNext()) {
-		const entry = iter.next()
-		obj.set(entry.key, entry.value)
-	}
+	map.forEach((value : string, key : string) => {
+		obj.set(key, value)
+	})
 	return obj
 }
-
 // 修复:any → any | null
 function buildQueryString(params : any | null) : string {
 	if (params == null) return ''
@@ -56,7 +53,6 @@ function buildQueryString(params : any | null) : string {
 	return query
 }
 
-// 修复:any → any | null
 export function request(options : any | null) : Promise<any> {
 	return new Promise<any>((resolve, reject) => {
 		if (options == null) {
@@ -69,7 +65,7 @@ export function request(options : any | null) : Promise<any> {
 			reject(new Error('请求参数格式错误'))
 			return
 		}
-
+		const baseURL = '/'
 		const url = opts.getString('url') ?? ''
 		const method = opts.getString('method') ?? 'GET'
 		const params = opts.get('params')
@@ -77,13 +73,18 @@ export function request(options : any | null) : Promise<any> {
 		const showLoading = opts.getBoolean('showLoading') ?? true
 		const loadingMsg = opts.getString('loadingMsg') ?? '加载中'
 
-		let finalUrl = url
+		// 拼接基础地址 + 接口地址
+		let finalUrl = baseURL + url.replace(/^\//, '')
 		const upperMethod = method.toUpperCase()
+
+		// GET 参数拼接
 		if (upperMethod === 'GET' && params != null) {
 			const query = buildQueryString(params)
-			if (query.length > 0) finalUrl = url + '?' + query
+			if (query.length > 0) finalUrl += '?' + query
 		}
 
+
+
 		const headerMap = new Map<string, string>()
 		headerMap.set('Content-Type', 'application/json')
 		const token = uni.getStorageSync('token') as string

+ 1 - 1
vite.config.js

@@ -16,7 +16,7 @@ export default defineConfig({
 		port: 8080,
 		proxy: {
 			'/api': {
-				target: 'http://your-backend-server.com',
+				target: 'http://192.168.0.9:8001/api',
 				changeOrigin: true,
 				secure: false,
 				rewrite: (path) => path.replace(/^\/api/, '')

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff