浏览代码

first commit

fxl 1 月之前
父节点
当前提交
d5c14565c6

+ 10 - 4
components/oppositePhonenumberChoose.vue

@@ -9,13 +9,14 @@
     <!-- 遮盖罩 -->
     <view class="modal-overlay" @click="close"></view>
     <!-- 提示栏内容 -->
-    <view class="modal-content">
+    <scroll-view class="modal-content" @touchmove.stop>
       <view class="modal-title">{{ title }}</view>
       <view class="modal-body">
 		<slot></slot>
+		
 		<!-- 插槽 -->
 	  </view>
-    </view>
+    </scroll-view>
   </view>
 </template>
 
@@ -46,6 +47,7 @@
 	align-items: center;
 	justify-content: center;
 	z-index: 10000;
+	overflow: hidden;
 }
 /* 遮盖罩样式 */
 .modal-overlay {
@@ -59,13 +61,14 @@
 }
 
 .modal-content {
+	max-height: 60%;
 	position: fixed;
 	bottom: 0%;
     padding: 20px;
     border-radius: 8px;
     width: 100%;
     max-width: 90%;
-    background: #ffffff;
+    background: #f0efef;
     z-index: 9999; /* 确保遮罩在内容上层 */
 }
 
@@ -73,12 +76,14 @@
 	display: flex;
 	align-items: center;
     justify-content: center;
-    font-size: 70rpx;
+    font-size: 100rpx;
     font-weight: bold;
     margin-bottom: 5rpx;
+	padding-bottom: 15rpx;
 }
 
 .modal-body {
+	background-color: aqua;
 	display: flex;
 	flex-direction: column;/*按列排布*/
 	align-items: center;
@@ -86,6 +91,7 @@
 	font-size: 70rpx;
 	padding: 5rpx;
 	margin: 5rpx;
+	padding-bottom: 15rpx;
 }
 
 .modal-buttons {

+ 7 - 0
pages.json

@@ -64,6 +64,13 @@
 			{
 				"navigationBarTitleText" : ""
 			}
+		},
+		{
+			"path" : "pages/contact/contact",
+			"style" : 
+			{
+				"navigationBarTitleText" : ""
+			}
 		}
 	],
 	"globalStyle": {

+ 66 - 50
pages/ContactDetails/ContactDetails.vue

@@ -2,8 +2,6 @@
 更新内容:多个号码颜色头
 更新人:張志宏
 更新时间:2024/9/18
-更新内容:传参
-更新时间:2024/9/28
 -->
 <template>
   <view class="content">
@@ -105,7 +103,6 @@
 	export default {
 		data() {
 			return {
-				formEdit: false, // 初始化为 false
 				// 存储 fixed-container 的高度
 				containerHeight: 0 ,
 				//联系人名称
@@ -141,34 +138,23 @@
 			this.filtrCallLogs();//筛选通话记录
 			this.updateContainerHeight();//获取fixed-container 的高度
 			this.getCallType(this.callType);
-			uni.$on('contactSaved', (contact) => {
-			    // 打印联系人信息
-			    console.log('Saved contact:', contact);
-			    // 更新页面内容
-			    this.name = contact.name;
-			    this.phones = contact.phones.map(phone => ({
-			        number: this.formatPhoneNumber(phone.number) // 对每个号码进行格式化
-			    }));
-			    this.count = this.phones.length; // 更新数量
-			});
-
-          
-
 		},
 		methods: {
 			//跳转页面
 			navigateToPage(page){
 				switch(page){
 					case 'index':
-					uni.reLaunch({
-					  url:`/pages/index/index`
-					});         
+					//返回到联系人页面
+					uni.navigateBack({
+						delta:1
+					});
 					break;
 					case 'edit':
-						uni.navigateTo({
-							url: `/pages/edit/edit?name=${encodeURIComponent(this.name)}&phones=${encodeURIComponent(JSON.stringify(this.phones))}&count=${this.count}`
-						});
+					uni.navigateTo({
+					    url: `/pages/edit/edit?name=${encodeURIComponent(this.name)}&phones=${encodeURIComponent(JSON.stringify(this.phones))}&count=${this.count}`
+					});
 					//导航到编辑页面
+					
 					break;
 					default:
 					break;
@@ -365,33 +351,64 @@
 
 		},
 		//页面传输的联系人姓名、电话号码、号码数量
-		onLoad(options) {
-		    console.error('传输内容的格式', typeof options);
-		    console.error('传输的内容', options);
-		
-		    // 确保有值
-		    this.name = decodeURIComponent(options.name || '') || '';
-		    this.count = options.count || 0;
-		
-		    // 处理电话号码
-		    const numbers = options.phoneNumbers ? JSON.parse(decodeURIComponent(options.phoneNumbers)) : [];
-		    this.phonenumbers = numbers;
-		
-		    console.error("测试号码", numbers);
-		    console.log('传输的电话号码', numbers);
-		
-		    this.phones = numbers.map(num => ({ number: num.value }));
-		
-		    for (let i = 0; i < this.count; i++) {
-		        if (numbers[i]) {
-		            this[`phoneNumber${i + 1}`] = numbers[i].value;
-		            this[`formatPhoneNumber${i + 1}`] = this.formatPhoneNumber(this[`phoneNumber${i + 1}`]);
-		            console.log(`phoneNumber${i + 1}`, this[`phoneNumber${i + 1}`]);
-		            console.log(`formatPhoneNumber${i + 1}`, this[`formatPhoneNumber${i + 1}`]);
-		        }
-		    }
-		    
-		    console.error('phones的结构', this.phones);
+		onLoad(options){
+			console.error('传输内容的格式',typeof options)
+			console.error('传输的内容',options)
+			this.name=decodeURIComponent(options.name) || '';
+			this.count=options.count;
+			const numbers=options.phoneNumbers ? JSON.parse(decodeURIComponent(options.phoneNumbers)):[];
+			this.phonenumbers=numbers;
+			console.error("测试号码",numbers)
+			console.log('传输的电话号码',numbers)
+			if(this.count==1){
+				this.phones=numbers.map(num=>({number:num.value}));
+				console.error('phones的结构',this.phones)
+				this.phoneNumber1=numbers[0].value;
+				console.log("phonenumber1",this.phoneNumber1)
+				this.formatPhoneNumber1=this.formatPhoneNumber(this.phoneNumber1);
+				console.log("phoneNumber",this.formatPhoneNumber1)
+			}
+			else if(this.count==2){
+				this.phones=numbers.map(num=>({number:num.value}));
+				console.error('phones的结构',this.phones)
+				this.phoneNumber1=numbers[0].value;
+				this.phoneNumber2=numbers[1].value;
+				console.log("phonenumber1",this.phoneNumber1)
+				console.log("phonenumber2",this.phoneNumber2)
+				this.formatPhoneNumber1=this.formatPhoneNumber(this.phoneNumber1);
+				this.formatPhoneNumber2=this.formatPhoneNumber(this.phoneNumber2);
+				console.log("phoneNumber",this.formatPhoneNumber1)
+				console.log("phoneNumber",this.formatPhoneNumber2)
+			}else if(this.count==3){
+				this.phones=numbers.map(num=>({number:num.value}));
+				this.phoneNumber1=numbers[0].value;
+				this.phoneNumber2=numbers[1].value;
+				this.phoneNumber3=numbers[2].value;
+				this.formatPhoneNumber1=this.formatPhoneNumber(this.phoneNumber1);
+				this.formatPhoneNumber2=this.formatPhoneNumber(this.phoneNumber2);
+				this.formatPhoneNumber3=this.formatPhoneNumber(this.phoneNumber3);
+				console.log("formatPhoneNumber",this.formatPhoneNumber1)
+			}else if(this.count==4){
+				this.phones=numbers.map(num=>({number:num.value}));
+				this.phoneNumber1=numbers[0].value;
+				this.phoneNumber2=numbers[1].value;
+				this.phoneNumber3=numbers[2].value;
+				this.phoneNumber4=numbers[3].value;
+				this.formatPhoneNumber1=this.formatPhoneNumber(this.phoneNumber1);
+				this.formatPhoneNumber2=this.formatPhoneNumber(this.phoneNumber2);
+				this.formatPhoneNumber3=this.formatPhoneNumber(this.phoneNumber3);
+				this.formatPhoneNumber4=this.formatPhoneNumber(this.phoneNumber4);
+			}else if(this.count>4){
+				this.phones=numbers.map(num=>({number:num.value}));
+				console.error('phones的结构',this.phones)
+				console.error("多个号码",numbers)
+				this.phoneNumbers=numbers.map(number=>number.value);
+				console.error('这是未被筛选的电话',this.phoneNumbers)
+				this.formatPhoneNumbers=numbers.map(number=>this.formatPhoneNumber(number.value));
+				console.error("解析后增加间隔的号码",this.formatPhoneNumbers)
+				
+			}
+				
 		},
 	}
 </script>
@@ -452,7 +469,6 @@
   margin-bottom: 10rpx; 
   margin-left: 10%;
   margin-right: 10%;
-  white-space: normal; /* 允许换行 */
   text-align: center; /* 文本居中 */
 }
 

+ 65 - 0
pages/contact/contact.vue

@@ -0,0 +1,65 @@
+<template>
+  <view class="container">
+    <view class="input-container">
+      <textarea class="text"  placeholder="请输入反馈内容" v-model="inputValue" />
+    </view>
+    <button class="submit-button" @click="submit">提交</button>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      inputValue: '' // 绑定输入框的v-model
+    };
+  },
+  methods: {
+    submit() {
+      // 处理提交逻辑
+      console.log('提交的内容:', this.inputValue);
+      // 这里可以添加代码将输入的内容发送到服务器或者进行其他处理
+    }
+  }
+};
+</script>
+
+<style scoped>
+.container {
+    display: flex;
+	flex-direction: column;
+    height: 100%;
+	font-size: 60px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding: 20px;
+    background-color: #f0efef;
+}
+
+.input-container {
+  margin-bottom: 20px;
+}
+
+.text{
+    border: 1px solid #bbbaba;
+    border-radius: 8px;
+	padding: 10px;
+	font-size: 20px;
+	background-color: white;
+}
+
+.submit-button {
+    background-color: #9ee493;
+    color: white;
+	width: 200px;
+	font-size: 30px;
+    border: none;
+    border-radius: 4px;
+    cursor: pointer;
+}
+
+.submit-button:active {
+  background-color: #9ee493;
+}
+</style>

+ 46 - 26
pages/index/index.vue

@@ -6,18 +6,6 @@
  -->
 
 <template>
-    <!-- <movable-area class="floating-button" scale-area @change="updateFloatingButton">
-      <movable-view class="floating-button-view" direction="all">
-        可滚动的字母列表
-        <scroll-view class="alphabet-scroll" scroll-y>
-          <view v-for="letter in alphabet" :key="letter" class="alphabet-item"
-            :data-letter="letter" :class="{ active: currentLetter === letter }"
-            @touchstart="scrollToLetter(letter)">
-            {{ letter }}
-          </view>
-        </scroll-view>
-      </movable-view>
-    </movable-area> -->
 
   <view class="content">
     <view v-if="searchActive" class="navbar" style="padding-bottom: 20px;">
@@ -64,12 +52,13 @@
 		    @update:visible="(visible) => this.$set(isChooseNumberVisible, item.id, visible)"
 		  >
 		    <template #default>
-		  	  <view v-for="(number, index) in item.phoneNumbers" :key="index" @click="CallPhone(item,number.value)">
-			    <view class="line"></view>
-			    <text class="choose-phonenumber" style="white-space: nowrap;">				
-				  {{formatPhoneNumber(number.value) }}
-				</text>	
-		  	  </view>
+		  	    <scrollable-box  class="numbers">
+					<view v-for="(number, index) in item.phoneNumbers" :key="index" @click="CallPhone(item,number.value)">
+					    <text class="choose-phonenumber" >				
+						  {{formatPhoneNumber1(number.value) }}
+						</text>	
+					</view>
+				</scrollable-box>
 		    </template>
 		  </NumbersChoose>
 		  <!-- :style="{backgroundColor:isActive ? 'grey' :'white'}"
@@ -189,6 +178,18 @@
 		        return value.replace(/(\d{4})(?=\d)/g, '$1 ');
 		      }
 		    },
+			formatPhoneNumber1(value) {
+			  // 移除所有非数字字符
+			  value = value.replace(/\D/g, '');
+			
+			  if (value.length === 11) {
+			    // 如果长度为11,在第4位和第7位插入空格,并在第7位后添加换行符
+			    return value.replace(/(\d{3})(\d{4})(\d{4})/, '$1\n$2 $3');
+			  } else {
+			    // 如果长度不为11,每4个字符插入一个空格,并在第7位后添加换行符
+			    return value.replace(/(\d{4})(\d{3})/, '$1\n$2').replace(/(\d{4})(?=\d)/g, '$1 ');
+			  }
+			},
   			truncate(value) {
 		      if (value.length > 9) {
 		        return value.slice(0, 5) + '\n' + value.substring(5, 9) + '...';
@@ -606,19 +607,38 @@
 	  width: 80px;
 	  height: 80px;
 	}
-.phonenumber-choose-component{
-	position: fixed;
-	bottom: 0;
-	left: 0;
-	right: 0;
+
+.numbers{
 }
 
-.choose-phonenumber{
-	flex-direction: column;
+.choose-phonenumber1{
+	display: flex;
+	align-items: center;
+	text-align: center;
+	justify-content: center;
 	font-size: 80rpx;
-	transition: background-color 0.3s;
+	border-left: 5px solid #9ee493;
+	border-radius: 6px;
+	background-color: white;
+	padding: 10px;
+	margin-top: 10px;
+	margin-bottom: 10px;
 	
 }	
+
+.choose-phonenumber{
+	display: flex;
+	text-align: center;
+	width: 90%;
+	align-items: center;
+	justify-content: center;
+	font-size: 100rpx;
+	border-radius: 10px;
+	background-color: #c6ffcf;
+	padding: 10px;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}	
 .choose-phonenumber.active {
 	background-color: #b0b0b0; /* 点击后颜色 */
 }

+ 13 - 4
pages/setting/setting.vue

@@ -26,8 +26,12 @@
 	  <view class="version-details">
 		<p class="text-left">当前版本</p>
 		{{version_number}}
+	  </view>
+	  <view class="version-details">
+	  		<p class="text-left">到期时间</p>
+	  		{{version_number}}
 	  </view>
-	  <view class="version-details" @click="contactUs">
+	  <view class="version-details" @click="navigateToPage()">
 	    <p class="text-left">联系我们</p>
 	    <image class="enter-right" src="../../static/pics/enter-right.png" mode=""></image>
 	  </view>
@@ -41,9 +45,15 @@
 				switchStatus:false,//语音播报开关初始为关闭状态
 			};		
 		},
-		methods: {
+		methods: {
+		  navigateToPage() {
+			uni.navigateTo({
+			  url: '/pages/contact/contact'
+			});
+		  },
+		
 		  currentVersion() {
-		    this.version_number = "24.1";
+		    this.version_number = "1.0.0";
 		  },
 		  // 判断是否为 Android 平台的 App 环境
 		  isApp() {
@@ -131,7 +141,6 @@
 		  // 初始化应用时读取本地存储的开关状态
 		  initializeApp() {
 		    const ttsPackageName = "com.iflytek.speechcloud";
-		    console.log("1111");
 		  
 		    // 从本地存储中读取开关状态
 		    const storedSwitchStatus = uni.getStorageSync('voiceBroadcastSwitch');

+ 40 - 523
pages/test/test.vue

@@ -1,536 +1,53 @@
-<!-- 
- 联系人主页,获取通讯录信息
- 
- zzh 24.8.26 修改 name-btn边框宽度
- 方新力 24.8.28 修改字体大小,满6字换行,号码满7字换
- -->
-
 <template>
-    <!-- <movable-area class="floating-button" scale-area @change="updateFloatingButton">
-      <movable-view class="floating-button-view" direction="all">
-        可滚动的字母列表
-        <scroll-view class="alphabet-scroll" scroll-y>
-          <view v-for="letter in alphabet" :key="letter" class="alphabet-item"
-            :data-letter="letter" :class="{ active: currentLetter === letter }"
-            @touchstart="scrollToLetter(letter)">
-            {{ letter }}
-          </view>
-        </scroll-view>
-      </movable-view>
-    </movable-area> -->
-
-  <view class="content">
-    <view v-if="searchActive" class="navbar" style="padding-bottom: 20px;">
-      <image @click="showBar()" class="icon" src="../../static/pics/search.png"></image>
-      <image @click="navigateToPage('add')" class="icon" src="../../static/pics/add.png"></image>
-      <image @click="navigateToPage('setting')" class="icon" src="../../static/pics/setting.png"></image>
-	  
-    </view>
-    <view class="navbar" v-else>
-      <view class="uni-column">
-        <view class="search-input">
-          <input type="text" focus confirm-type="search" v-model="searchText" placeholder="输入号码或名字" @input="filterContacts" />
-        </view>
-        <view class="search-img" @click="showBar()">
-          取消
-        </view>
-      </view>
-    </view>
-    <view class="text-area">
-      <view v-if="filteredContacts.length" v-for="(item, id) in filteredContacts" :key="id">
-        <view class="name-btn">
-          <view v-if="isLoudVisible" class="loud" @click="play(item.displayName || item.phoneNumbers[0].value)">
-            <image style="width: 80%;height: 40%; margin-left: 35rpx;" src="../../static/pics/laba.png"></image>
-          </view>
-          <view class="con-mes" @click="goToDetails(item)">
-		    <text v-if="!item.displayName">{{ formatPhoneNumber(item.phoneNumbers[0].value) }}</text>
-		    <text v-else>{{ truncate(item.displayName) }}</text>
-		  </view>
-          <view class="btn" @click="CallPhone(item.phoneNumbers[0].value)">
-            <image class="Call" src="../../static/pics/call-out.png"></image>
-          </view>
-        </view>
-      </view>
-      <view v-else class="notFind">
-        该号码或联系人不存在
-      </view>
-    </view>
+  <view>
+    <text>设备型号: {{ model }}</text>
+    <text>硬件制造商: {{ manufacturer }}</text>
+    <text>Android 版本: {{ androidVersion }}</text>
+    <text>SDK 版本: {{ sdkVersion }}</text>
   </view>
 </template>
 
 <script>
-	// 辅助函数,用于获取字符串的所有拼音首字母
-	function getInitials(str) {
-	  // 将字符串转换为拼音数组,每个汉字转换为对应的拼音首字母
-	  const initialsArray = pinyin(str, {
-	    style: pinyin.STYLE_FIRST_LETTER
+export default {
+  data() {
+    return {
+      model: '',
+      manufacturer: '',
+      androidVersion: '',
+      sdkVersion: ''
+    };
+  },
+  onReady() {
+    this.getDeviceInfo();
+	this.getAnd();
+  },
+  methods: {
+    getDeviceInfo() {
+      // 获取设备型号和制造商信息
+      this.model = plus.device.model; // 设备型号
+      this.manufacturer = plus.device.vendor; // 硬件制造商
+
+    },
+	
+	getAnd() {
+	  // 获取Android版本和SDK版本
+	  uni.getSystemInfo({
+		success: (res) => {
+		  this.androidVersion = res.system;
+		  this.sdkVersion = res.osAndroidAPILevel ? res.osAndroidAPILevel : '未知';
+		}
 	  });
-	  
-	  // 映射每个拼音首字母数组,只取每个数组的第一个字符(即首字母)
-	  const firstLettersOnly = initialsArray.map(initial => initial[0]);
-	  
-	  // 使用 join 方法将所有首字母拼接成一个字符串
-	  return firstLettersOnly.join('');
-	}
-	const FvvUniTTS=uni.requireNativePlugin('Fvv-UniTTS');
-	import pinyin from "pinyin"; // 假设你使用了一个 pinyin 库,例如 pinyin
-	export default {
-	  data() {
-		return {
-		    searchText: '', // 用户输入的搜索文本
-		    list: [], // 原始联系人列表
-		    filteredContacts: [], // 过滤后的联系人列表
-			num: '',
-			isLoudVisible: true, // 初始状态为显示
-		    searchActive: true,
-			
-		};
-	  },
-	  onShow() {
-		// 页面显示时直接调用
-		this.ToGetMessage();
-		/* this.ToGetHis(); */
-		this.init();
-		this.setLanguage();
-	  },
-	  beforeCreate() {
-			const domModule = uni.requireNativePlugin('dom')
-			domModule.addRule('fontFace', {
-				'fontFamily': "myIconfont",
-				'src': "url('../assets/typeface/almmdfdk.ttf')"
-			});
-	  },
-	  methods: {
-		    toNum(e){
-				console.log("num",e);
-				this.num=e;
-			},
-		    // 格式化电话号码
-		    formatPhoneNumber(value) {
-		      // 移除所有非数字字符
-		      value = value.replace(/\D/g, '');
-		      
-		      if (value.length === 11) {
-		        // 如果长度为11, 在第4和第9位插入空格
-		        return value.replace(/(\d{3})(\d{4})(\d{4})/, '$1 $2 $3');
-		      } else {
-		        // 如果长度不为11,每4个字符插入一个空格
-		        return value.replace(/(\d{4})(?=\d)/g, '$1 ');
-		      }
-		    },
-  			truncate(value) {
-		      if (value.length > 9) {
-		        return value.slice(0, 5) + '\n' + value.substring(5, 9) + '...';
-		      }
-			  else{
-				return value.slice(0, 5) + '\n' + value.substring(5, 9)
-			  }
-		      return value;
-		    },
-		    onChange: function(e) {
-		    	this.old.x = e.detail.x
-		    	this.old.y = e.detail.y
-		    },
-		    
-			init(){
-				FvvUniTTS.init((callback) => {
-					console.log(callback);
-				},"com.iflytek.speechcloud");
-				
-				FvvUniTTS.onStart((res) => {
-					console.log("onStart:" + res)
-				});
-				
-				FvvUniTTS.onDone((res) => {
-					console.log("onDone:" + res)
-				});
-				
-				FvvUniTTS.onError((res) => {
-					console.log("onError:" + res)
-				});
-				FvvUniTTS.getInstallTTS(res => {
-				    console.log(res) 
-				})
-			},
-			play(e){
-				console.log("xinxi",e)
-				FvvUniTTS.speak({
-					text:e,
-					id:2,
-				});
-				
-				FvvUniTTS.getInstallTTS(res => {
-				    console.log(res+"11") 
-				})
-			},
-			setLanguage(){
-				console.log("set lang : " + FvvUniTTS.setLanguage("CHINESE"));
-			},
-			setEngines(){
-				let setEngine = "com.iflytek.speechcloud"
-				
-				//获取已安装的引擎
-				FvvUniTTS.getInstallTTS(res => {
-					if(res == null || res.length <= 0){
-						return
-					}
-					console.log(res)
-					if(JSON.stringify(res).indexOf(setEngine) < 0){
-						console.log("未安装该语音引擎")
-						return
-					}
-					console.log("set engine : " + FvvUniTTS.setEngine(setEngine));
-					FvvUniTTS.speak({
-						text:"设置成功",
-						id:2,
-					});
-				})
-			},
-			saveFile(){
-				FvvUniTTS.saveAudioFile({
-					text:"hello",
-					id:3,
-					path:"/sdcard/test/1.wav"
-				})
-			},
-			setVoice(){
-				FvvUniTTS.setPitch(100)
-				FvvUniTTS.setSpeechRate(100)
-			},
-			navigateToPage(page) {
-				switch (page) {
-				  case 'add':
-					// 导航到添加页面
-					uni.navigateTo({
-					  url: '/pages/add/add'
-					});
-					break;
-				  case 'setting':
-					// 导航到设置页面
-					uni.navigateTo({
-					  url: '/pages/setting/setting'
-					});
-					break;
-					default:
-					break;
-				}
-			},
-		  
-		showBar() {
-		  this.searchActive = !this.searchActive;
-		  this.ToGetMessage();
-		},
-		// 获取联系人信息
-	   ToGetMessage() {
-		 var that = this;
-		 // 获取通讯录对象
-		 plus.contacts.getAddressBook(plus.contacts.ADDRESSBOOK_PHONE, function(addressbook) {
-		   addressbook.find(["displayName", "phoneNumbers"], function(contacts) {
-			 that.list = contacts;
-			 console.log(that.list)
-	   
-			 // 将联系人按自定义规则排序
-			 that.list.sort(function(a, b) {
-			   // 检查是否为汉字、英文、数字或符号
-			   const isChinese = (str) => /^[\u4e00-\u9fa5]+$/.test(str);
-			   const isEnglish = (str) => /^[A-Za-z]+$/.test(str);
-			   const isNumber = (str) => /^[0-9]+$/.test(str);
-	   
-			   // 获取首字母,如果 displayName 是空,则使用 phoneNumbers 的第一个号码
-			   let firstCharA = a.displayName ? a.displayName.trim()[0] : a.phoneNumbers[0].value;
-			   let firstCharB = b.displayName ? b.displayName.trim()[0] : b.phoneNumbers[0].value;
-	   
-			   // 将汉字转换为拼音以便比较
-			   if (isChinese(firstCharA)) {
-				 firstCharA = pinyin(firstCharA, { style: pinyin.STYLE_FIRST_LETTER })[0][0];
-			   }
-			   if (isChinese(firstCharB)) {
-				 firstCharB = pinyin(firstCharB, { style: pinyin.STYLE_FIRST_LETTER })[0][0];
-			   }
-	   
-			   // 确定排序的优先级
-			   if (isEnglish(firstCharA) && isEnglish(firstCharB)) {
-				 // 如果都是英文,按字母顺序排序
-				 return firstCharA.localeCompare(firstCharB);
-			   } else if (isChinese(firstCharA) && isChinese(firstCharB)) {
-				 // 如果都是汉字(已经转换为拼音首字母),按拼音排序
-				 return firstCharA.localeCompare(firstCharB);
-			   } else if ((isEnglish(firstCharA) || isChinese(firstCharA)) && (isNumber(firstCharB) || !isEnglish(firstCharB))) {
-				 // 如果 A 是英文或汉字,而 B 是数字或其他符号,则 A 在前
-				 return -1;
-			   } else if ((isNumber(firstCharA) || !isEnglish(firstCharA)) && (isEnglish(firstCharB) || isChinese(firstCharB))) {
-				 // 如果 A 是数字或其他符号,而 B 是英文或汉字,则 B 在前
-				 return 1;
-			   } else {
-				 // 若是其他情况(如两个字符都为数字或符号),按字符顺序排序
-				 return firstCharA.localeCompare(firstCharB);
-			   }
-			 });
-	   
-			 // 更新过滤后的联系人列表
-			 console.log("list",that.list);
-			 that.filteredContacts = that.list;
-			 console.error("更新过滤后的联系人列表",that.filteredContacts)
-		   }, function() {
-			 uni.showToast({
-			   title: '获取联系人失败',
-			   duration: 2000 // 在屏幕上显示的时间长度
-			 });
-		   }, { multiple: true }); // 应该检索多个联系人
-		 }, function(e) {
-		   uni.showToast({
-			 title: '获取通讯录对象失败:' + e.message,
-			 duration: 2000
-		   });
-		 });
-	   },
-		// 拨打电话
-		CallPhone(e) {
-		  // 调用HTML5 Plus框架提供的接口
-		  plus.device.dial(e, false);
-		},
-		filterContacts() {
-		  // 获取用户输入的文本,转换为小写
-		  const searchText = this.searchText.toLowerCase();
-		  console.log("输入内容",searchText)
-		  if (!searchText) {
-		    // 如果用户没有输入,显示所有联系人
-			console.log("kong")
-		    this.filteredContacts = this.list;
-			
-		  } else {
-		    // 过滤出匹配用户输入的联系人
-		    this.filteredContacts = this.list.filter(contact => {
-		      // 模糊查找逻辑:检查 displayName 或 phoneNumbers 是否包含用户输入的文本
-		      const isFuzzyMatch = (contact.displayName || '').toLowerCase().includes(searchText) ||
-		                           contact.phoneNumbers.some(phone => phone.value.toLowerCase().includes(searchText));
-		
-		      // 拼音首字母查找逻辑:检查拼音首字母序列是否包含用户输入的序列
-		      const displayNameFirstLetters = getInitials(contact.displayName || '');
-		      const isInitialsMatch = displayNameFirstLetters.includes(searchText);
-		
-		      // 返回匹配结果,只有当模糊查找或拼音首字母查找任一条件满足时,才包含该联系人
-		      return isFuzzyMatch || isInitialsMatch;
-		    });
-		  }
-		},
-		
-		search() {
-		  // 可以在这里添加更复杂的搜索逻辑
-		  this.filterContacts();
-		},
-  		//进行页面跳转到联系人详情
-		goToDetails(item){
-			console.error('item',item)
-			const phoneNumbers=item.phoneNumbers
-			const phoneNumbersString=JSON.stringify(phoneNumbers)
-			const phoenNumberCount=item.phoneNumbers.length;
-			console.error("phonenumber",phoneNumbers)
-			console.error("phoenNumberCount",phoenNumberCount)
-			uni.navigateTo({
-			    url: `/pages/ContactDetails/ContactDetails?name=${encodeURIComponent(item.displayName)}&phoneNumbers=${encodeURIComponent(phoneNumbersString)}&count=${phoenNumberCount}`
-			});
-		},
-	  }
 	}
+  }
+};
 </script>
 
 <style>
-.floating-button {
-  width: 50px; /* 根据需要调整尺寸 */
-  height: 300px; /* 根据需要调整尺寸,确保字母列表可以容纳 */
-  border-radius: 25px;
-  background-color: rgba(0, 0, 0, 0.5);
-  position: fixed;
-  right: 20px;
-  bottom: 20px;
-  overflow: hidden; /* 确保内容在按钮范围内 */
-  z-index: 1000; /* 一个较高的z-index值,确保它在最上层 */
-}
-
-.alphabet-scroll {
-  width: 100%;
-  height: 100%;
-  background-color: #fff; /* 根据需要调整背景色 */
-}
-
-.alphabet-item {
-  padding: 5px 10px;
-  text-align: center;
-  cursor: pointer;
-}
-
-.alphabet-item.active {
-  background-color: #007AFF; /* 高亮颜色 */
-  color: #fff;
-}
-
-	
-.notFind{
-	font-size: 50rpx;
+view {
+  padding: 20px;
 }
-	
-.null {}
-
-/* 其他样式保持不变 */
-.uni-column {
-  width: 690rpx;
-  height: 140rpx;
-  border: 1px solid black;
-  margin-top: 18rpx;
-  border-radius: 20rpx;
-  font-size: 50rpx;
-  display: flex; /* 使用flex布局 */
-  justify-content: space-between; /* 左右分布 */
-  /* 其他样式保持不变 */
-}
-
-.search-input {
-  width: 75%;
-  /* 可以根据需要调整以下样式 */
-  display: flex;
-  align-items: center;
-}
-
-.search-img {
-  width: 25%;
-  /* 可以根据需要调整以下样式 */
-  display: flex;
-  border-left: 1px solid black;
-  justify-content: center;
-  align-items: center;
-}
-
-.search-input input {
-  /* 根据需要调整输入框大小 */
-  width: 90%; /* 例如90% */
-  height: 90%; /* 例如80% */
-  font-size: 50rpx;
-  padding: 10px; /* 根据需要调整内边距 */
-}
-
-.search-img image {
-  width: 50%; /* 例如30% */
-  height: 50%; /* 保持与输入框一致的高度 */
-  font-size: 50rpx;
-}
-
-.content {
-  min-height: 100%;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  background-color: #f0efef;
-}
-
-.con-mes {
-  line-height: 1.05; /* 行高为字体大小的0.2倍 */
-  font-family: 'FangSong', '仿宋_GB2312', serif;
-  font-size: 35px;
-  font-weight: 700;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  text-align: center;
-  white-space: pre-line; /* 保证换行符有效 */
-  word-wrap: break-word; /* 确保长单词换行 */
-  width: 410rpx;
-  height: 200rpx;
-  border: none;
-  background-color: white;
-}
-
-.name-btn {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  width: 690rpx;
-  height: 200rpx;
-  border: 0.5px solid black;
-  margin-top: 8rpx;
-  margin-bottom: 10rpx;
-  border-radius: 20rpx;
-  font-size: 50rpx;
-}
-
-.text-area {
-  padding-top: 145px;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-}
-
-.loud {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 100rpx;
-  height: 200rpx;
-  border-radius: 20rpx 0rpx 0rpx 20rpx;
-  background-color: white;
-}
-
-.btn {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 180rpx;
-  height: 200rpx;
-  background-color: #ecfff3;
-  border-radius: 0rpx 20rpx 20rpx 0rpx;
-}
-
-.Call {
-  width: 100rpx;
-  height: 100rpx;
-  object-fit: contain;
-}
-
-.navbar {
-  display: flex;
-  justify-content: space-around;
-  align-items: flex-end;
-  width: 100%;
-  background-color: #f0efef;
-  min-height: 120px;
-  padding-bottom: 20px;
-  position: fixed; /* 设置为固定定位 */
-  top: 0; /* 与页面顶部的距离为0 */
-  z-index: 999;
-}
-
-.icon {
-  justify-content: space-around;
-  width: 100rpx;
-  height: 100rpx;
-}
-
-.uni-tabbar__iconfont {
-	  font-size: 50px; /* 自定义字体大小 */
-	  width: 80px;
-	  height: 80px;
-	}
-	
-/* 悬浮框css */
-movable-view {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	height: 150rpx;
-	width: 150rpx;
-	background-color: #007AFF;
-	color: #fff;
-}
-
-movable-area {
-	height: 300rpx;
-	width: 100%;
-	background-color: #D8D8D8;
-	overflow: hidden;
-}
-
-.max {
-	width:500rpx;
-	height: 500rpx;
+text {
+  display: block;
+  margin-bottom: 10px;
 }
 </style>

二进制
static/fonts/directory.png


二进制
static/fonts/directory1.png


+ 4 - 4
unpackage/dist/cache/.vite/deps/_metadata.json

@@ -1,13 +1,13 @@
 {
-  "hash": "8abf201c",
+  "hash": "24c61f9c",
   "configHash": "42c01462",
-  "lockfileHash": "96aabefe",
-  "browserHash": "c00088b0",
+  "lockfileHash": "ddbd0a17",
+  "browserHash": "a4395c19",
   "optimized": {
     "pinyin": {
       "src": "../../../../../node_modules/pinyin/esm/pinyin-web.js",
       "file": "pinyin.js",
-      "fileHash": "09f3fe9c",
+      "fileHash": "1cdeec86",
       "needsInterop": false
     }
   },

+ 1 - 1
unpackage/dist/dev/app-plus/app-config-service.js

@@ -2,7 +2,7 @@
   ;(function(){
   let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
   const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#f0efef","bottomBarColor":"#007bff","navigationBar":{"backgroundColor":"#f0efef","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"电话","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.15","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"tabBar":{"position":"bottom","color":"#999","selectedColor":"#007aff","borderStyle":"black","blurEffect":"none","fontSize":"10px","iconWidth":"40px","spacing":"3px","height":"50px","backgroundColor":"#f0efef","list":[{"pagePath":"pages/history/history","iconPath":"/./static/fonts/directory.png","selectedIconPath":"/static/fonts/directory1.png"},{"pagePath":"pages/index/index","iconPath":"/./static/fonts/linkman.png","selectedIconPath":"/static/fonts/linkman1.png"},{"pagePath":"pages/tel/tel","iconPath":"/./static/fonts/24gf-telephoneKeypad4 (1).png","selectedIconPath":"/static/fonts/24gf-telephoneKeypad4.png"}],"selectedIndex":0,"shown":true},"locales":{},"darkmode":false,"themeConfig":{}};
-  const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":1,"navigationBar":{"backgroundColor":"#f0efef","titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/add/add","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"添加联系人","type":"default"},"isNVue":false}},{"path":"pages/setting/setting","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"设置","type":"default"},"isNVue":false}},{"path":"pages/history/history","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":0,"enablePullDownRefresh":false,"navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/tel/tel","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"enablePullDownRefresh":false,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/ContactDetails/ContactDetails","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/edit/edit","meta":{"navigationBar":{"titleText":"编辑","type":"default"},"isNVue":false}},{"path":"pages/test/test","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
+  const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":1,"navigationBar":{"backgroundColor":"#f0efef","titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/add/add","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"添加联系人","type":"default"},"isNVue":false}},{"path":"pages/setting/setting","meta":{"enablePullDownRefresh":false,"navigationBar":{"titleText":"设置","type":"default"},"isNVue":false}},{"path":"pages/history/history","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":0,"enablePullDownRefresh":false,"navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/tel/tel","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"enablePullDownRefresh":false,"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/ContactDetails/ContactDetails","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/edit/edit","meta":{"navigationBar":{"titleText":"编辑","type":"default"},"isNVue":false}},{"path":"pages/test/test","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/contact/contact","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
   __uniConfig.styles=[];//styles
   __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
   __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});

文件差异内容过多而无法显示
+ 320 - 301
unpackage/dist/dev/app-plus/app-service.js


+ 0 - 1
unpackage/dist/dev/app-plus/pages/ContactDetails/ContactDetails.css

@@ -49,7 +49,6 @@
   margin-bottom: 0.3125rem; 
   margin-left: 10%;
   margin-right: 10%;
-  white-space: normal; /* 允许换行 */
   text-align: center; /* 文本居中 */
 }
 .contact-person-phonenumber{

+ 34 - 0
unpackage/dist/dev/app-plus/pages/contact/contact.css

@@ -0,0 +1,34 @@
+
+.container[data-v-6bf5d4b5] {
+    display: flex;
+	flex-direction: column;
+    height: 100%;
+	font-size: 60px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding: 20px;
+    background-color: #f0efef;
+}
+.input-container[data-v-6bf5d4b5] {
+  margin-bottom: 20px;
+}
+.text[data-v-6bf5d4b5]{
+    border: 1px solid #bbbaba;
+    border-radius: 8px;
+	padding: 10px;
+	font-size: 20px;
+	background-color: white;
+}
+.submit-button[data-v-6bf5d4b5] {
+    background-color: #9ee493;
+    color: white;
+	width: 200px;
+	font-size: 30px;
+    border: none;
+    border-radius: 4px;
+    cursor: pointer;
+}
+.submit-button[data-v-6bf5d4b5]:active {
+  background-color: #9ee493;
+}

+ 32 - 10
unpackage/dist/dev/app-plus/pages/index/index.css

@@ -70,6 +70,7 @@
 	align-items: center;
 	justify-content: center;
 	z-index: 10000;
+	overflow: hidden;
 }
 /* 遮盖罩样式 */
 .modal-overlay[data-v-7e794c10] {
@@ -82,24 +83,27 @@
 	z-index: 9990; /* 确保遮罩在内容下层 */
 }
 .modal-content[data-v-7e794c10] {
+	max-height: 60%;
 	position: fixed;
 	bottom: 0%;
     padding: 20px;
     border-radius: 8px;
     width: 100%;
     max-width: 90%;
-    background: #ffffff;
+    background: #f0efef;
     z-index: 9999; /* 确保遮罩在内容上层 */
 }
 .modal-title[data-v-7e794c10] {
 	display: flex;
 	align-items: center;
     justify-content: center;
-    font-size: 2.1875rem;
+    font-size: 3.125rem;
     font-weight: bold;
     margin-bottom: 0.15625rem;
+	padding-bottom: 0.46875rem;
 }
 .modal-body[data-v-7e794c10] {
+	background-color: aqua;
 	display: flex;
 	flex-direction: column;/*按列排布*/
 	align-items: center;
@@ -107,6 +111,7 @@
 	font-size: 2.1875rem;
 	padding: 0.15625rem;
 	margin: 0.15625rem;
+	padding-bottom: 0.46875rem;
 }
 .modal-buttons[data-v-7e794c10] {
 	display: flex;
@@ -290,16 +295,33 @@
 	  width: 80px;
 	  height: 80px;
 }
-.phonenumber-choose-component{
-	position: fixed;
-	bottom: 0;
-	left: 0;
-	right: 0;
+.numbers{
 }
-.choose-phonenumber{
-	flex-direction: column;
+.choose-phonenumber1{
+	display: flex;
+	align-items: center;
+	text-align: center;
+	justify-content: center;
 	font-size: 2.5rem;
-	transition: background-color 0.3s;
+	border-left: 5px solid #9ee493;
+	border-radius: 6px;
+	background-color: white;
+	padding: 10px;
+	margin-top: 10px;
+	margin-bottom: 10px;
+}
+.choose-phonenumber{
+	display: flex;
+	text-align: center;
+	width: 90%;
+	align-items: center;
+	justify-content: center;
+	font-size: 3.125rem;
+	border-radius: 10px;
+	background-color: #c6ffcf;
+	padding: 10px;
+	margin-top: 10px;
+	margin-bottom: 10px;
 }
 .choose-phonenumber.active {
 	background-color: #b0b0b0; /* 点击后颜色 */

+ 5 - 173
unpackage/dist/dev/app-plus/pages/test/test.css

@@ -1,176 +1,8 @@
 
-.floating-button {
-  width: 50px; /* 根据需要调整尺寸 */
-  height: 300px; /* 根据需要调整尺寸,确保字母列表可以容纳 */
-  border-radius: 25px;
-  background-color: rgba(0, 0, 0, 0.5);
-  position: fixed;
-  right: 20px;
-  bottom: 20px;
-  overflow: hidden; /* 确保内容在按钮范围内 */
-  z-index: 1000; /* 一个较高的z-index值,确保它在最上层 */
+uni-view {
+  padding: 20px;
 }
-.alphabet-scroll {
-  width: 100%;
-  height: 100%;
-  background-color: #fff; /* 根据需要调整背景色 */
-}
-.alphabet-item {
-  padding: 5px 10px;
-  text-align: center;
-  cursor: pointer;
-}
-.alphabet-item.active {
-  background-color: #007AFF; /* 高亮颜色 */
-  color: #fff;
-}
-.notFind{
-	font-size: 1.5625rem;
-}
-.null {}
-
-/* 其他样式保持不变 */
-.uni-column {
-  width: 21.5625rem;
-  height: 4.375rem;
-  border: 1px solid black;
-  margin-top: 0.5625rem;
-  border-radius: 0.625rem;
-  font-size: 1.5625rem;
-  display: flex; /* 使用flex布局 */
-  justify-content: space-between; /* 左右分布 */
-  /* 其他样式保持不变 */
-}
-.search-input {
-  width: 75%;
-  /* 可以根据需要调整以下样式 */
-  display: flex;
-  align-items: center;
-}
-.search-img {
-  width: 25%;
-  /* 可以根据需要调整以下样式 */
-  display: flex;
-  border-left: 1px solid black;
-  justify-content: center;
-  align-items: center;
-}
-.search-input uni-input {
-  /* 根据需要调整输入框大小 */
-  width: 90%; /* 例如90% */
-  height: 90%; /* 例如80% */
-  font-size: 1.5625rem;
-  padding: 10px; /* 根据需要调整内边距 */
-}
-.search-img uni-image {
-  width: 50%; /* 例如30% */
-  height: 50%; /* 保持与输入框一致的高度 */
-  font-size: 1.5625rem;
-}
-.content {
-  min-height: 100%;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  background-color: #f0efef;
-}
-.con-mes {
-  line-height: 1.05; /* 行高为字体大小的0.2倍 */
-  font-family: 'FangSong', '仿宋_GB2312', serif;
-  font-size: 35px;
-  font-weight: 700;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  text-align: center;
-  white-space: pre-line; /* 保证换行符有效 */
-  word-wrap: break-word; /* 确保长单词换行 */
-  width: 12.8125rem;
-  height: 6.25rem;
-  border: none;
-  background-color: white;
-}
-.name-btn {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  width: 21.5625rem;
-  height: 6.25rem;
-  border: 0.5px solid black;
-  margin-top: 0.25rem;
-  margin-bottom: 0.3125rem;
-  border-radius: 0.625rem;
-  font-size: 1.5625rem;
-}
-.text-area {
-  padding-top: 145px;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-}
-.loud {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 3.125rem;
-  height: 6.25rem;
-  border-radius: 0.625rem 0 0 0.625rem;
-  background-color: white;
-}
-.btn {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  width: 5.625rem;
-  height: 6.25rem;
-  background-color: #ecfff3;
-  border-radius: 0 0.625rem 0.625rem 0;
-}
-.Call {
-  width: 3.125rem;
-  height: 3.125rem;
-  object-fit: contain;
-}
-.navbar {
-  display: flex;
-  justify-content: space-around;
-  align-items: flex-end;
-  width: 100%;
-  background-color: #f0efef;
-  min-height: 120px;
-  padding-bottom: 20px;
-  position: fixed; /* 设置为固定定位 */
-  top: 0; /* 与页面顶部的距离为0 */
-  z-index: 999;
-}
-.icon {
-  justify-content: space-around;
-  width: 3.125rem;
-  height: 3.125rem;
-}
-.uni-tabbar__iconfont {
-	  font-size: 50px; /* 自定义字体大小 */
-	  width: 80px;
-	  height: 80px;
-}
-	
-/* 悬浮框css */
-uni-movable-view {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	height: 4.6875rem;
-	width: 4.6875rem;
-	background-color: #007AFF;
-	color: #fff;
-}
-uni-movable-area {
-	height: 9.375rem;
-	width: 100%;
-	background-color: #D8D8D8;
-	overflow: hidden;
-}
-.max {
-	width:15.625rem;
-	height: 15.625rem;
+uni-text {
+  display: block;
+  margin-bottom: 10px;
 }

二进制
unpackage/dist/dev/app-plus/static/fonts/directory.png


二进制
unpackage/dist/dev/app-plus/static/fonts/directory1.png


部分文件因为文件数量过多而无法显示