xuexiuyun 1 сар өмнө
parent
commit
a7cb3a944b
100 өөрчлөгдсөн 621 нэмэгдсэн , 357 устгасан
  1. 18 0
      .gitignore
  2. 5 0
      manifest.json
  3. 7 6
      pages.json
  4. 0 272
      pages/console/setOrderTime.uvue
  5. 0 0
      src/common/icon-map.ts
  6. 0 0
      src/common/theme.ts
  7. 0 0
      src/components/CustomBottomNav.uvue
  8. 0 0
      src/components/u-floating/u-floating.vue
  9. 0 0
      src/components/u-icon/u-icon.vue
  10. 0 0
      src/components/u-switch/u-switch.vue
  11. 331 0
      src/pages/console/setOrderTime.uvue
  12. 0 0
      src/pages/index/account.uvue
  13. 64 64
      src/pages/index/console.uvue
  14. 0 0
      src/pages/index/my.uvue
  15. 0 0
      src/pages/index/order.uvue
  16. 13 15
      src/pages/login/login.uvue
  17. 17 0
      src/utils/api/login.uts
  18. 41 0
      src/utils/api/workbenches.uts
  19. 125 0
      src/utils/request.uts
  20. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772434718197.kotlin_module
  21. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772434816268.kotlin_module
  22. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435670955.kotlin_module
  23. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435680645.kotlin_module
  24. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435695927.kotlin_module
  25. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435721710.kotlin_module
  26. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435728190.kotlin_module
  27. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435741634.kotlin_module
  28. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435749122.kotlin_module
  29. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435755062.kotlin_module
  30. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435796134.kotlin_module
  31. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435906415.kotlin_module
  32. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435911332.kotlin_module
  33. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435920488.kotlin_module
  34. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435948598.kotlin_module
  35. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435963188.kotlin_module
  36. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772435985011.kotlin_module
  37. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436001848.kotlin_module
  38. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436009596.kotlin_module
  39. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436037214.kotlin_module
  40. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436043926.kotlin_module
  41. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436242749.kotlin_module
  42. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436244390.kotlin_module
  43. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436272312.kotlin_module
  44. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436302892.kotlin_module
  45. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436319354.kotlin_module
  46. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436344676.kotlin_module
  47. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436361284.kotlin_module
  48. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772436733800.kotlin_module
  49. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772437610570.kotlin_module
  50. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772437705447.kotlin_module
  51. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772437836165.kotlin_module
  52. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772437973296.kotlin_module
  53. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772438151611.kotlin_module
  54. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772438156947.kotlin_module
  55. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772440202111.kotlin_module
  56. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772440529303.kotlin_module
  57. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772440532467.kotlin_module
  58. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772441493825.kotlin_module
  59. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772441588196.kotlin_module
  60. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772441633868.kotlin_module
  61. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772441687059.kotlin_module
  62. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772441832109.kotlin_module
  63. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442451647.kotlin_module
  64. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442516524.kotlin_module
  65. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442569539.kotlin_module
  66. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442638337.kotlin_module
  67. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442721256.kotlin_module
  68. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442758637.kotlin_module
  69. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772442844375.kotlin_module
  70. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443394650.kotlin_module
  71. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443417537.kotlin_module
  72. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443424598.kotlin_module
  73. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443680217.kotlin_module
  74. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443803263.kotlin_module
  75. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443825886.kotlin_module
  76. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443835362.kotlin_module
  77. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443849693.kotlin_module
  78. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443899993.kotlin_module
  79. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443922738.kotlin_module
  80. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443929290.kotlin_module
  81. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443956932.kotlin_module
  82. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772443973209.kotlin_module
  83. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772444474875.kotlin_module
  84. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772445200251.kotlin_module
  85. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772445327427.kotlin_module
  86. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772446342807.kotlin_module
  87. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772447952898.kotlin_module
  88. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772500095554.kotlin_module
  89. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772500864715.kotlin_module
  90. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772501258196.kotlin_module
  91. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772501263533.kotlin_module
  92. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772501584342.kotlin_module
  93. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772501758323.kotlin_module
  94. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502004975.kotlin_module
  95. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502185181.kotlin_module
  96. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502332541.kotlin_module
  97. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502355210.kotlin_module
  98. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502518489.kotlin_module
  99. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772502592501.kotlin_module
  100. BIN
      unpackage/cache/.app-android/class/META-INF/main-1772505204120.kotlin_module

+ 18 - 0
.gitignore

@@ -0,0 +1,18 @@
+# 忽略整个目录
+node_modules/
+dist/
+build/
+unpackage/
+.hbuilderx/
+
+# 忽略特定文件
+.DS_Store
+*.log
+*.tmp
+
+# 忽略某类文件
+*.zip
+*.rar
+
+# 例外:不忽略某个文件
+!dist/README.md

+ 5 - 0
manifest.json

@@ -60,5 +60,10 @@
 			"icons": {},
 			"splashScreens": {}
 		}
+	},
+	"web": {
+		"router": {
+			"mode": ""
+		}
 	}
 }

+ 7 - 6
pages.json

@@ -1,37 +1,38 @@
 {
+	"vue3": true,
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://doc.dcloud.net.cn/uni-app-x/collocation/pagesjson.html
 		{
-			"path": "pages/index/console",
+			"path": "src/pages/index/console",
 			"style": {
 				"navigationBarTitleText": "控制台"
 			}
 		},
 		{
-			"path": "pages/index/my",
+			"path": "src/pages/index/my",
 			"style": {
 				"navigationBarTitleText": "我的"
 			}
 		},
 		{
-			"path": "pages/index/order",
+			"path": "src/pages/index/order",
 			"style": {
 				"navigationBarTitleText": "订单"
 			}
 		},
 		{
-			"path": "pages/index/account",
+			"path": "src/pages/index/account",
 			"style": {
 				"navigationBarTitleText": "账户"
 			}
 		},
 		{
-			"path": "pages/console/setOrderTime",
+			"path": "src/pages/console/setOrderTime",
 			"style": {
 				"navigationBarTitleText": "接单时间"
 			}
 		},
 		{
-			"path": "pages/login/login",
+			"path": "src/pages/login/login",
 			"style": {
 				"navigationBarTitleText": ""
 			}

+ 0 - 272
pages/console/setOrderTime.uvue

@@ -1,272 +0,0 @@
-<!-- 设置时间 -->
-<template>
-	<view class="body" :style="'padding-top:' + bottomHeight">
-		<view style="width: 100%;height: 48rpx;"></view>
-		<view class="head-box" @click="allTime">全部可接单</view>
-		<scroll-view scroll-y="true" class="list">
-			<view class="ss-flex-2 div-time-flag-box">
-				<view :class="item?.isSelect ? 'conter-xz' : 'conter-xx'" v-for="item in timeArr"
-					@click.stop="chooseTime(item)" :key="item.start_time">
-					<view :class="item?.isSelect ? 'kjd-time' : 'xx-time'">{{ item.start_time }}</view>
-					<view :class="item?.isSelect ? 'kjd-text' : 'xx-text'">{{ item?.isSelect ? '可接单' : '休息' }}</view>
-				</view>
-			</view>
-		</scroll-view>
-		<view class="save-box" @click="handleSave">保存设置</view>
-	</view>
-</template>
-<script setup>
-	import {
-		ref
-	} from 'vue';
-	import {
-		onShow
-	} from '@dcloudio/uni-app';
-	//接口
-	import workbenchesInfoApi from '@/sheep/api/masterProject/workbenches';
-
-	const allIndex = ref(1)
-	const timeArr = ref(Array.from({ length: 48 }, (_, i) => ({
-		start_time: `${Math.floor(i / 2) < 10 ? '0' : ''}${Math.floor(i / 2)}:${i % 2 === 0 ? '00' : '30'}`,
-		end_time: `${Math.floor((i + 1) / 2) < 10 ? '0' : ''}${Math.floor((i + 1) / 2)}:${(i + 1) % 2 === 0 ? '00' : '30'}`,
-		isSelect: false
-	})))
-	onShow(() => {
-		allIndex.value = 1
-		getCoachTime()
-	})
-	//获取技师的时间设置
-	const getCoachTime = async () => {
-		// 先全部置为未选中
-		timeArr.value.forEach(item => item.isSelect = false);
-
-		const res = await workbenchesInfoApi.getWorkTimeSetting();
-		const timeRanges = res.data?.time_ranges || [];
-
-		// 全部可接单
-		if (
-			timeRanges.length === 1 &&
-			timeRanges[0].start_time === '00:00' &&
-			timeRanges[0].end_time === '24:00'
-		) {
-			allTime();
-			return;
-		}
-
-		// 遍历所有时间段,判断是否在任一 time_range 内
-		timeArr.value.forEach(item => {
-			const itemTime = item.start_time;
-			for (const range of timeRanges) {
-				if (
-					compareTime(itemTime, range.start_time) >= 0 &&
-					compareTime(itemTime, range.end_time) < 0
-				) {
-					item.isSelect = true;
-					break;
-				}
-			}
-		});
-	};
-
-	// 时间字符串比较函数,返回 1/0/-1
-	function compareTime(t1, t2) {
-		// t1, t2: "09:00"
-		const [h1, m1] = t1.split(':').map(Number);
-		const [h2, m2] = t2.split(':').map(Number);
-		if (h1 > h2) return 1;
-		if (h1 < h2) return -1;
-		if (m1 > m2) return 1;
-		if (m1 < m2) return -1;
-		return 0;
-	}
-
-	//点击单个时间
-	const chooseTime = async (item) => {
-		if (item.isSelect) {
-			item.isSelect = false
-		} else {
-			item.isSelect = true
-		}
-	}
-	//全部可接单
-	const allTime = async () => {
-		timeArr.value.forEach(item => {
-			item.isSelect = true;
-		});
-		allIndex.value = 2
-	}
-	/**
-	 * 保存排班设置
-	 * @returns {Promise<void>}
-	 */
-	const handleSave = async () => {
-		//获取可接单时间段
-		const kjTime = []
-		for (let i = 0; i < timeArr.value.length; i++) {
-			const item = timeArr.value[i]
-			if (item?.isSelect) {
-				kjTime.push(item)
-			}
-		}
-		if (kjTime.length === 0) {
-			uni.showToast({
-				title: '请至少选择一个可接单时间段',
-				icon: 'none',
-				duration: 2000
-			})
-			return
-		}
-
-		try {
-			const scheduleData = {
-				time_ranges: kjTime.filter(range => range.isSelect).map(range => ({
-					start_time: range.start_time,
-					end_time: range.end_time
-				}))
-			};
-			await workbenchesInfoApi.editWorkTimeSetting(scheduleData);
-			uni.showToast({
-				title: '保存成功',
-				icon: 'success',
-				duration: 2000
-			});
-			setTimeout(() => {
-				uni.reLaunch({
-					url: '/pages/masterProject/homePage/index'
-				})
-			}, 2300);
-
-		} catch (error) {
-			uni.showToast({
-				title: '保存失败,请重试',
-				icon: 'none'
-			});
-		}
-	};
-
-	const bottomHeight = ref('0rpx');
-	// #ifdef APP-PlUS
-	//获取顶部安全距离
-	const app = uni.getSystemInfoSync();
-	const bottomHeightOne = app.statusBarHeight + 'rpx';
-	bottomHeight.value = bottomHeightOne
-	// #endif
-</script>
-<style scoped lang="scss">
-	//设置时间样式
-	.head-box {
-		width: 184rpx;
-		height: 66rpx;
-		line-height: 66rpx;
-		text-align: center;
-		border-radius: 16rpx;
-		background-color: #FFDA59;
-		color: #3D444E;
-		font-size: 28rpx;
-		font-weight: 550;
-		letter-spacing: 3rpx;
-		margin-left: 32rpx;
-		box-sizing: border-box;
-	}
-
-
-	.div-time-flag-box {
-		width: 96%;
-		margin-left: 3%;
-		flex-wrap: wrap;
-		box-sizing: border-box;
-	}
-
-	.conter-xz {
-		width: 158rpx;
-		height: 90rpx;
-		background-color: #FFFBEF;
-		border: 2rpx solid #FFDB5F;
-		border-radius: 16rpx;
-		margin-bottom: 22rpx;
-		margin-right: 22rpx;
-		box-sizing: border-box;
-	}
-
-	.kjd-time {
-		font-size: 28rpx;
-		color: #3A3330;
-		font-weight: 500;
-		margin-top: 10rpx;
-		text-align: center;
-	}
-
-	.kjd-text {
-		font-size: 26rpx;
-		color: #3A3330;
-		font-weight: 500;
-		letter-spacing: 2rpx;
-		text-align: center;
-	}
-
-	.conter-xx {
-		width: 158rpx;
-		height: 94rpx;
-		background-color: #F3F3F3;
-		border-radius: 16rpx;
-		margin-bottom: 22rpx;
-		margin-right: 22rpx;
-		box-sizing: border-box;
-	}
-
-	.xx-time {
-		font-size: 28rpx;
-		color: #9B9B9B;
-		margin-top: 10rpx;
-		text-align: center;
-	}
-
-	.xx-text {
-		font-size: 26rpx;
-		color: #9B9B9B;
-		letter-spacing: 2rpx;
-		text-align: center;
-	}
-
-	.save-box {
-		position: absolute;
-		bottom: 30rpx;
-		left: 0;
-		width: 78%;
-		margin-left: 11%;
-		height: 100rpx;
-		line-height: 100rpx;
-		text-align: center;
-		background-color: #FFDA59;
-		border-radius: 24rpx;
-		font-size: 34rpx;
-		color: #3A3330;
-		font-weight: 550;
-		letter-spacing: 3rpx;
-		box-sizing: border-box;
-	}
-
-	//old样式
-	.icon-navigation {
-		font-size: 32rpx;
-		color: #3D444E;
-		font-weight: 700;
-	}
-
-	// 上中下布局样式
-	// .body {
-	//     position: relative;
-	//     width: 100vw;
-	//     height: 100vh;
-	//     background-color: #FFFFFF;
-	//     box-sizing: border-box;
-	// }
-
-	.list {
-		position: absolute;
-		top: 180rpx;
-		left: 0;
-		bottom: 150rpx;
-		box-sizing: border-box;
-	}
-</style>

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


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


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


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


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


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


+ 331 - 0
src/pages/console/setOrderTime.uvue

@@ -0,0 +1,331 @@
+<!-- pages/setOrderTime/setOrderTime.uvue -->
+<template>
+	<view class="container">
+		<!-- 顶部占位 (模拟安全区或导航栏高度,可根据实际调整) -->
+		<view class="top-safe-area">
+		</view>
+
+		<!-- 头部:全部可接单 -->
+		<view class="header-box">
+			<text class="header-text">
+				{{ allIndex == 2 ? '取消全选' : '全部可接单' }}
+			</text>
+		</view>
+
+		<!-- 滚动列表区域 -->
+		<!-- uni-app x 中 scroll-view 需要明确高度或使用 flex 填充 -->
+		<!-- <scroll-view scroll-y="true" class="time-list">
+			<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-sub selected' : 'time-sub normal'">
+						{{ item.isSelect ? '可接单' : '休息' }}
+					</text>
+				</view>
+			</view>
+		</scroll-view> -->
+
+		<!-- 底部保存按钮 -->
+		<view class="footer-box">
+			<text class="footer-text">
+				保存设置
+			</text>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import { ref } from 'vue';
+	// uni-app x 中 API 调用方式不变
+	import workbenchesInfoApi from '@/src/utils/api/workbenches.uts'
+
+	// import workbenchesInfoApi from '../../utils/api/workbenches'
+
+	// 状态定义
+	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
+	// 		};
+	// 	})
+	// );
+
+	// onShow(() => {
+	// 	allIndex.value = 1;
+	// 	// getCoachTime();
+	// 	// 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 () => {
+	// 	// 重置状态
+	// 	timeArr.value.forEach(item => item.isSelect = false);
+	// 	allIndex.value = 1;
+
+	// 	try {
+	// 		const res = await workbenchesInfoApi.getWorkTimeSetting();
+	// 		const timeRanges = res.data?.time_ranges || [];
+
+	// 		// 判断是否全部可接单
+	// 		if (timeRanges.length === 1 && timeRanges[0].start_time === '00:00' && timeRanges[0].end_time === '24:00') {
+	// 			allTime();
+	// 			return;
+	// 		}
+
+	// 		// 匹配时间段
+	// 		timeArr.value.forEach(item => {
+	// 			const itemTime = item.start_time;
+	// 			for (const range of timeRanges) {
+	// 				// 比较逻辑:start <= item < end
+	// 				if (compareTime(itemTime, range.start_time) >= 0 &&
+	// 					compareTime(itemTime, range.end_time) < 0
+	// 				) {
+	// 					item.isSelect = true;
+	// 					break;
+	// 				}
+	// 			}
+	// 		});
+	// 	} catch (error) {
+	// 		console.error('获取时间设置失败', error);
+	// 		uni.showToast({ title: '加载失败', icon: 'none' });
+	// 	}
+	// };
+
+	// 时间比较工具函数
+	// function compareTime(t1, t2) {
+	// 	if (!t1 || !t2) return 0;
+	// 	const [h1, m1] = t1.split(':').map(Number);
+	// 	const [h2, m2] = t2.split(':').map(Number);
+
+	// 	if (h1 !== h2) return h1 > h2 ? 1 : -1;
+	// 	if (m1 !== m2) return m1 > m2 ? 1 : -1;
+	// 	return 0;
+	// }
+
+	// 点击单个时间
+
+
+
+	// // 全部可接单/取消全选
+	// 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 scheduleData = {
+	// 		time_ranges: selectedTimes.map(range => ({
+	// 			start_time: range.start_time,
+	// 			end_time: range.end_time
+	// 		}))
+	// 	};
+
+	// 	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' });
+	// 	}
+	// };
+</script>
+
+<style lang="scss">
+	/* 根容器:使用 Flex 布局填满屏幕 */
+	.container {
+		display: flex;
+		flex-direction: column;
+		width: 100%;
+		height: 100%;
+		/* 或 100% */
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		padding-bottom: env(safe-area-inset-bottom);
+		/* 适配全面屏底部 */
+	}
+
+	/* 顶部占位 */
+	.top-safe-area {
+		width: 100%;
+		height: 20rpx;
+		/* 根据需要调整 */
+		flex-shrink: 0;
+	}
+
+	/* 头部盒子 */
+	.header-box {
+		width: 184rpx;
+		height: 66rpx;
+		border-radius: 16rpx;
+		background-color: #FFDA59;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		margin: 20rpx 0 20rpx 32rpx;
+		flex-shrink: 0;
+
+		.header-text {
+			color: #3D444E;
+			font-size: 28rpx;
+			font-weight: 700;
+			letter-spacing: 3rpx;
+		}
+	}
+
+	/* 滚动列表区域:flex: 1 占据剩余空间 */
+	.time-list {
+		flex: 1;
+		width: 100%;
+		/* overflow-y: auto;  scroll-view 组件自带滚动 */
+	}
+
+	/* 网格布局容器 */
+	.time-grid {
+		width: 100%;
+		padding: 0 3% 140rpx 3%;
+		/* 底部 padding 防止被按钮遮挡 */
+		box-sizing: border-box;
+		display: flex;
+		flex-wrap: wrap;
+		justify-content: flex-start;
+	}
+
+	/* 时间卡片通用样式 */
+	.time-card {
+		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;
+		border-width: 2rpx;
+		border-style: solid;
+
+		/* 选中状态 */
+		&.selected {
+			background-color: #FFFBEF;
+			border-color: #FFDB5F;
+
+			.time-text,
+			.time-sub {
+				color: #3A3330;
+			}
+		}
+
+		/* 未选中状态 */
+		&.normal {
+			background-color: #F3F3F3;
+			border-color: transparent;
+
+			.time-text,
+			.time-sub {
+				color: #9B9B9B;
+			}
+		}
+	}
+
+	/* 时间文字 */
+	.time-text {
+		font-size: 28rpx;
+		font-weight: 400;
+		margin-bottom: 4rpx;
+		text-align: center;
+	}
+
+	/* 状态文字 */
+	.time-sub {
+		font-size: 26rpx;
+		font-weight: 400;
+		letter-spacing: 2rpx;
+		text-align: center;
+	}
+
+	/* 底部保存按钮 */
+	.footer-box {
+		position: absolute;
+		/* 或者使用 fixed,但在 flex 容器中 absolute + bottom 更可控 */
+		bottom: 40rpx;
+		/* 距离底部距离 */
+		left: 50%;
+		transform: translateX(-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>

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


+ 64 - 64
pages/index/console.uvue → src/pages/index/console.uvue

@@ -56,13 +56,13 @@
 							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">
+							: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>
@@ -133,71 +133,71 @@
 					</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 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>
 
-				<!-- 客户评价 -->
-				<view class="eval-section">
-					<view class="section-header">
-						<text class="section-title">
-							客户评价
-						</text>
-						<text class="section-more">
-							查看全部 >
+			<!-- 客户评价 -->
+			<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">
+								匿名评价
+							</text>
+							<text class="eval-date">
+								2025-04-24
 							</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">
-											匿名评价
-										</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 class="eval-stars">
+							<text>
+								⭐⭐⭐⭐☆
+							</text>
+							<view class="stat-divider">
 							</view>
+							<text class="eval-service">
+								泰式松骨
+							</text>
 						</view>
-						<!-- 做一个悬浮球 -->
-						<u-floating @dblclick="callPolice" />
+						<text class="eval-comment">
+							服务到位
+						</text>
 					</view>
-				</scroll-view>
+				</view>
+			</view>
+			<!-- 做一个悬浮球 -->
+			<u-floating @dblclick="callPolice" />
+		</view>
+	</scroll-view>
 </template>
 
 <script setup lang="uts">
 	import { ref, computed } from 'vue';
-	import { colors } from '@/common/theme';
+	// import { colors } from '@/common/theme';
 
 	// 状态
 	const isOnline = ref(true);
@@ -240,8 +240,8 @@
 		// 在这里可以执行导航或其他逻辑
 		//在起始页面跳转到test.vue页面并传递参数
 		uni.navigateTo({
-				url: 'setOrderTime?id=1&name=uniapp'
-			});
+			url: '/src/pages/console/setOrderTime'
+		});
 
 	};
 
@@ -265,9 +265,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>
 
@@ -312,8 +312,8 @@
 		*/
 		right: 0;
 		width: 702rpx
-
 	}
+
 	.user-info {
 		/* display: flex; */
 		flex-direction: row;
@@ -341,7 +341,7 @@
 		border-radius: 24rpx;
 		margin: 0 16rpx;
 		font-size: 28rpx;
-		padding:6rpx 12rpx ;
+		padding: 6rpx 12rpx;
 	}
 
 	.tag-edit {

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


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


+ 13 - 15
pages/login/login.uvue → src/pages/login/login.uvue

@@ -157,7 +157,6 @@
 	const sendCode = () => {
 		if (!canSend.value) return;
 
-		// ✅ 修复核心:先取值到局部常量,再操作
 		const currentTimer = timer;
 		if (currentTimer !== null) {
 			clearInterval(currentTimer);
@@ -168,17 +167,16 @@
 		uni.showToast({ title: '验证码已发送', icon: 'success' });
 
 		timer = setInterval(() => {
-				countdown.value--;
-				if (countdown.value <= 0) {
-					// ✅ 同样在闭包内先取局部常量
-					const t = timer;
-					if (t !== null) {
-						clearInterval(t);
-					}
-					timer = null;
-					countdown.value = 0;
+			countdown.value--;
+			if (countdown.value <= 0) {
+				const t = timer;
+				if (t !== null) {
+					clearInterval(t);
 				}
-			}, 1000);
+				timer = null;
+				countdown.value = 0;
+			}
+		}, 1000);
 	};
 
 	const onAgreeChange = (e : any) => {
@@ -187,7 +185,7 @@
 		if (evt != null) {
 			const detail = evt["detail"] as UTSJSONObject | null;
 			if (detail != null) {
-				const value = detail["value"] as Boolean | null;
+				const value = detail["value"] as boolean | null;
 				isAgree.value = (value != null) && value;
 				return;
 			}
@@ -202,9 +200,9 @@
 		}
 		uni.showLoading({ title: '登录中...' });
 		setTimeout(() => {
-				uni.hideLoading();
-				uni.showToast({ title: '登录成功', icon: 'success' });
-			}, 1500);
+			uni.hideLoading();
+			uni.showToast({ title: '登录成功', icon: 'success' });
+		}, 1500);
 	};
 
 	const rejectAgreement = () => {

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

@@ -0,0 +1,17 @@
+import request from "@utils/request";
+
+getCityAndCountyList: (params) => {
+	return request({
+		url: "/coach/v3/wallet/getBsArea",
+		method: "GET",
+		params,
+	});
+}
+
+register: (data) => {
+	return request({
+		url: "/coach/v3/wallet/coachBsUserApply",
+		method: "POST",
+		data,
+	});
+}

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

@@ -0,0 +1,41 @@
+// 导入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

+ 125 - 0
src/utils/request.uts

@@ -0,0 +1,125 @@
+// request.uts - 无警告 最终版
+export class RequestOptions {
+	url : string = ''
+	method : string = 'GET'
+	params : UTSJSONObject | null = null
+	data : UTSJSONObject | null = null
+	showLoading : boolean = true
+	loadingMsg : string = '加载中'
+	showError : boolean = true
+}
+
+// 修复:any → any | null 声明可空,消除null判断警告
+function toUTSJSONObject(obj : any | null) : UTSJSONObject | null {
+	if (obj == null) return null
+	if (obj instanceof UTSJSONObject) return obj
+
+	const result = new UTSJSONObject()
+	const keys = UTSJSONObject.keys(obj as UTSJSONObject)
+	for (let i = 0; i < keys.length; i++) {
+		const key = keys[i]
+		const val = (obj as UTSJSONObject).get(key)
+		if (val != null) {
+			result.set(key, val)
+		}
+	}
+	return result
+}
+
+// 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)
+	}
+	return obj
+}
+
+// 修复:any → any | null
+function buildQueryString(params : any | null) : string {
+	if (params == null) return ''
+	const obj = toUTSJSONObject(params)
+	if (obj == null) return ''
+
+	const keys = UTSJSONObject.keys(obj)
+	let query = ''
+	for (let i = 0; i < keys.length; i++) {
+		const key = keys[i]
+		const val = obj.get(key)
+		if (val != null) {
+			if (query.length > 0) query += '&'
+			query += key + '=' + encodeURIComponent(val.toString())
+		}
+	}
+	return query
+}
+
+// 修复:any → any | null
+export function request(options : any | null) : Promise<any> {
+	return new Promise<any>((resolve, reject) => {
+		if (options == null) {
+			reject(new Error('请求参数不能为空'))
+			return
+		}
+
+		const opts = toUTSJSONObject(options)
+		if (opts == null) {
+			reject(new Error('请求参数格式错误'))
+			return
+		}
+
+		const url = opts.getString('url') ?? ''
+		const method = opts.getString('method') ?? 'GET'
+		const params = opts.get('params')
+		const data = opts.get('data')
+		const showLoading = opts.getBoolean('showLoading') ?? true
+		const loadingMsg = opts.getString('loadingMsg') ?? '加载中'
+
+		let finalUrl = url
+		const upperMethod = method.toUpperCase()
+		if (upperMethod === 'GET' && params != null) {
+			const query = buildQueryString(params)
+			if (query.length > 0) finalUrl = url + '?' + query
+		}
+
+		const headerMap = new Map<string, string>()
+		headerMap.set('Content-Type', 'application/json')
+		const token = uni.getStorageSync('token') as string
+		if (token.length > 0) headerMap.set('Authorization', 'Bearer ' + token)
+		const tenantId = uni.getStorageSync('tenantId') as string | null
+		headerMap.set('tenant-id', tenantId ?? 'default')
+		headerMap.set('terminal', uni.getSystemInfoSync().platform)
+		const header = mapToUTSJSONObject(headerMap)
+
+		let requestData : string | null = null
+		if (upperMethod !== 'GET' && data != null) {
+			requestData = JSON.stringify(data)
+		}
+
+		if (showLoading) {
+			uni.showLoading({ title: loadingMsg, mask: true })
+		}
+
+		uni.request({
+			url: finalUrl,
+			method: upperMethod,
+			data: requestData,
+			header: header,
+			timeout: 15000,
+			success: (res) => {
+				uni.hideLoading()
+				if (res.statusCode >= 200 && res.statusCode < 300) {
+					resolve(res.data as any ?? {})
+				} else {
+					reject(new Error('请求失败:HTTP ' + res.statusCode))
+				}
+			},
+			fail: (err) => {
+				uni.hideLoading()
+				reject(new Error('网络错误:' + err.errMsg))
+			}
+		})
+	})
+}

BIN
unpackage/cache/.app-android/class/META-INF/main-1772434718197.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772434816268.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435670955.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435680645.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435695927.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435721710.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435728190.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435741634.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435749122.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435755062.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435796134.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435906415.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435911332.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435920488.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435948598.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435963188.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772435985011.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436001848.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436009596.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436037214.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436043926.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436242749.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436244390.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436272312.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436302892.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436319354.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436344676.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436361284.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772436733800.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772437610570.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772437705447.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772437836165.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772437973296.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772438151611.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772438156947.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772440202111.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772440529303.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772440532467.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772441493825.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772441588196.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772441633868.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772441687059.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772441832109.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442451647.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442516524.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442569539.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442638337.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442721256.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442758637.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772442844375.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443394650.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443417537.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443424598.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443680217.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443803263.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443825886.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443835362.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443849693.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443899993.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443922738.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443929290.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443956932.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772443973209.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772444474875.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772445200251.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772445327427.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772446342807.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772447952898.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772500095554.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772500864715.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772501258196.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772501263533.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772501584342.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772501758323.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502004975.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502185181.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502332541.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502355210.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502518489.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772502592501.kotlin_module


BIN
unpackage/cache/.app-android/class/META-INF/main-1772505204120.kotlin_module


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно