| 
					
				 | 
			
			
				@@ -0,0 +1,123 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<!-- 滚动展示 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div style="height: 100%; width: 100%;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="mb-3" style="font-size: 13px; color: #666;">最近30天已有<span class="red">68人</span>提现成功,累计提现<span class="red">¥9450</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- 滚动 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style="height: calc(100% - 42px); overflow: hidden; font-size: 13px;color: #333;" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <!-- 数据list --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       <div class="scrollBox" id="scrollBox"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           v-for="(item) in dataList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           :key="item[keyText] || item.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           class="d-flex justify-space-between align-center" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           style="height: 40px;" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <!-- 头像、用户名 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <div class="d-flex align-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <v-avatar size="30" :image="item.avatar || 'https://minio.citupro.com/dev/menduner/7.png'"></v-avatar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <div class="ml-2">{{ formatName(item.name) }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <!-- <div class="ml-2">{{ item.name }}</div> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           <div class="d-flex" style="width: calc(100% - 65px);"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <!-- 内容 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <div class="d-flex ellipsisText mx-4" style="flex: 1;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               <div>推荐到</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               <div class="ellipsisText ml-1" style="max-width: 100px;">{{ item.company }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               <div class="ellipsisText ml-1" style="max-width: 60px;">{{ item.job }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <!-- 赏金 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             <div>提现¥<span class="red">{{ item.money }}</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import  { ref } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defineOptions({name: 'publicRecruitment-bountyDisplay'}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defineProps({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  keyText: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    type: String, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default: 'id' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const avatarList = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://img0.baidu.com/it/u=230622178,1565949306&fm=253&fmt=auto&app=138&f=JPEG?w=449&h=300', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://img0.baidu.com/it/u=1401084042,2724457850&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=726', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://q7.itc.cn/q_70/images03/20240423/6d236fae5c8f44ed9b60d977f32debb7.jpeg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://q1.itc.cn/q_70/images03/20240609/1c1be14298be4dbe978e55bde6e958b0.jpeg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://q4.itc.cn/q_70/images03/20240528/298d4abda5e4469d98fa77e7cde46525.jpeg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://q5.itc.cn/q_70/images03/20240520/ceb0d77d1be24eea8cd3826994eac1c1.jpeg', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  'https://img1.baidu.com/it/u=3995643348,1848098846&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=800', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const realDataList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+for (let index = 0; index < 68; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const obj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    id: 'id' + (index+1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name: '用户' + (index+1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    avatar: avatarList[index % 7], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    company: '某某公司' + (index+1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    job: '某某职位' + (index+1), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    money: index*index*(100 - index) || 100, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  realDataList.push(obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const setDataList = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 将数据的基数设置极大-> totalNum: 总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const totalNum = 1000 // 设置长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (realDataList.length >= totalNum) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return realDataList.slice(0, totalNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const multipleCount = Math.ceil(totalNum/realDataList.length) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 创建一个长度为multipleCount的新数组,并用realDataList填充,取totalNum长度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const arr = realDataList.concat(...Array.from({ length: multipleCount }, () => [...realDataList])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return arr.slice(0, totalNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let dataList = ref([]) // 渲染的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if (realDataList?.length) dataList.value = setDataList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 用户名加*号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formatName = (name) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (name.length === 1) {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return name // 如果名字只有一个字,则直接返回该字   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else if (name.length === 2) {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return name.charAt(0) + '*' // 如果名字有两个字,则返回第一个字后跟一个星号   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return name.charAt(0) + '**' // 如果名字有多于两个字,则返回第一个字后跟两个星号   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 滚动实现代码部分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.red { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  color: red; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.ellipsisText { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // width: 120px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  white-space: nowrap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  text-overflow: ellipsis; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.scrollBox { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	position:relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  animation: myMove 1500s linear infinite; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@keyframes myMove 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// from { bottom: 0%; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// to { bottom: 100%; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  0% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    transform: translateY(0%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  100% { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    transform: translateY(-100%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |