yuanyiming 1 year ago
parent
commit
7a0b59533b
100 changed files with 9380 additions and 0 deletions
  1. 3 0
      .gitignore
  2. 175 0
      App.vue
  3. 126 0
      components/activity-case/activity-case.vue
  4. 142 0
      components/detailBlock/detailBlock.vue
  5. 111 0
      components/statusBar/statusBar.vue
  6. 113 0
      components/tabBar/tabBar.vue
  7. 272 0
      components/teaching-case/teaching-case.vue
  8. 60 0
      components/viewX-Case/viewX-Case.vue
  9. 20 0
      index.html
  10. 22 0
      main.js
  11. 72 0
      manifest.json
  12. 17 0
      package-lock.json
  13. 5 0
      package.json
  14. 271 0
      pages.json
  15. 243 0
      pages/activityDetail/activityDetail.vue
  16. 86 0
      pages/activityList/activityList.vue
  17. 332 0
      pages/activityPage/activityPage.vue
  18. 134 0
      pages/dy/dy.vue
  19. 205 0
      pages/hd/hd.vue
  20. 171 0
      pages/hdxx/hdxx.vue
  21. 257 0
      pages/index/index.vue
  22. 208 0
      pages/jys/jys.vue
  23. 106 0
      pages/login/login.vue
  24. 98 0
      pages/login_three/login_three.vue
  25. 206 0
      pages/login_two/login_two.vue
  26. 195 0
      pages/message/message.vue
  27. 95 0
      pages/messageDy/messageDy.vue
  28. 112 0
      pages/messageSystem/messageSystem.vue
  29. 266 0
      pages/mine/mine.vue
  30. 242 0
      pages/mineActive/mineActive.vue
  31. 276 0
      pages/mineClass/mineClass.vue
  32. 220 0
      pages/mineCollect/mineCollect.vue
  33. 324 0
      pages/mineEdit/mineEdit.vue
  34. 396 0
      pages/mineSubscribe/mineSubscribe.vue
  35. 292 0
      pages/publish/publish.vue
  36. 383 0
      pages/resource/resource.vue
  37. 301 0
      pages/teachingDetail/teachingDetail.vue
  38. 80 0
      pages/teachingList/teachingList.vue
  39. 29 0
      project.config.json
  40. 7 0
      project.private.config.json
  41. BIN
      static/activity/bg1.png
  42. BIN
      static/activity/bg2.png
  43. BIN
      static/jys/jys.png
  44. BIN
      static/logo.png
  45. 6 0
      static/message/notice.svg
  46. 7 0
      static/message/subscribe.svg
  47. 6 0
      static/message/system.svg
  48. BIN
      static/mine/Avatar.png
  49. BIN
      static/mine/Avatar_default.png
  50. BIN
      static/mine/Collect_default.png
  51. BIN
      static/mine/Collect_yellow.png
  52. BIN
      static/mine/Rectangle 1547.png
  53. BIN
      static/mine/Rectangle 23.png
  54. BIN
      static/mine/Union.png
  55. BIN
      static/mine/active.png
  56. BIN
      static/mine/activeclass.png
  57. BIN
      static/mine/arrow-right-blue.png
  58. BIN
      static/mine/arrow-right.png
  59. BIN
      static/mine/arrow-right_gray.png
  60. BIN
      static/mine/setting.png
  61. BIN
      static/mine/title_bg.png
  62. BIN
      static/publish/photo.png
  63. 187 0
      static/publish/publish.vue
  64. BIN
      static/resource/bg.png
  65. BIN
      static/resource/jqr.png
  66. BIN
      static/tabbar/Fill 1.png
  67. BIN
      static/tabbar/Fill 2.png
  68. BIN
      static/tabbar/hd.png
  69. BIN
      static/tabbar/hd2.png
  70. BIN
      static/tabbar/wd.png
  71. BIN
      static/tabbar/wd2.png
  72. BIN
      static/tabbar/xx.png
  73. BIN
      static/tabbar/xx2.png
  74. BIN
      static/tabbar/zyk.png
  75. BIN
      static/tabbar/zyk2.png
  76. BIN
      static/yym/Ellipse 10.png
  77. BIN
      static/yym/Rectangle 1918.png
  78. BIN
      static/yym/Rectangle 40.png
  79. BIN
      static/yym/Rectangle23.png
  80. BIN
      static/yym/Rectangle25.png
  81. BIN
      static/yym/Star 1 (Stroke) (2).png
  82. BIN
      static/yym/Star 1 (Stroke).png
  83. BIN
      static/yym/Vector (Stroke) (1).png
  84. BIN
      static/yym/Vector (Stroke) (2).png
  85. BIN
      static/yym/Vector (Stroke).png
  86. BIN
      static/yym/jia.png
  87. BIN
      static/yym/union.png
  88. 10 0
      uni.promisify.adaptor.js
  89. 76 0
      uni.scss
  90. 13 0
      uni_modules/uni-grid/changelog.md
  91. 127 0
      uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue
  92. 142 0
      uni_modules/uni-grid/components/uni-grid/uni-grid.vue
  93. 86 0
      uni_modules/uni-grid/package.json
  94. 11 0
      uni_modules/uni-grid/readme.md
  95. 22 0
      uni_modules/uni-icons/changelog.md
  96. 1169 0
      uni_modules/uni-icons/components/uni-icons/icons.js
  97. 96 0
      uni_modules/uni-icons/components/uni-icons/uni-icons.vue
  98. 663 0
      uni_modules/uni-icons/components/uni-icons/uniicons.css
  99. BIN
      uni_modules/uni-icons/components/uni-icons/uniicons.ttf
  100. 86 0
      uni_modules/uni-icons/package.json

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+node_modules
+unpackage
+launch.json

+ 175 - 0
App.vue

@@ -0,0 +1,175 @@
+<script>
+	import Vue from 'vue'
+		// import app from './utils/api.js'
+		export default {
+			onLaunch: function() { 
+				
+				// uni.
+				uni.getAppBaseInfo({
+					
+				})
+				
+				uni.getSystemInfo({
+					success: function (res) {
+						Vue.prototype.screenHeight=res.screenHeight
+						Vue.prototype.screenWidth=res.screenWidth
+						console.log(res);
+						const tabBarHeight = res.screenHeight - res.windowHeight;
+						Vue.prototype.tabBarHeight=tabBarHeight
+						if (uni.getMenuButtonBoundingClientRect()) {
+							console.log('小程序');
+							// 小程序状态栏是指显示电量的那一小部分
+							thisWechat(res.statusBarHeight)
+						}else{
+							console.log('app');
+							thisApp(res.statusBarHeight)
+						}
+					}
+				});
+				
+				function thisWechat(statusBarHeight){
+					
+					
+					
+					// 获取胶囊位置
+					let meunButtonInfo=uni.getMenuButtonBoundingClientRect()
+					// console.log(meunButtonInfo);
+					
+					Vue.prototype.meunButtonInfo=meunButtonInfo.height
+					
+					// 计算出导航栏高度+动态栏
+					let  allHeight = meunButtonInfo.bottom + (meunButtonInfo.top - statusBarHeight )*2;
+					// console.log(allHeight);
+					let navheight;
+					Vue.prototype.navheight=allHeight
+					
+					// 按钮离顶
+					let alltop = meunButtonInfo.top 
+					Vue.prototype.navTop=alltop
+					
+					// 动态栏高度
+					let statusHeight
+					Vue.prototype.statusHeight=statusBarHeight
+				};
+				
+				function thisApp(statusBarHeight){
+					// console.log(uni.getSystemInfoSync());
+					// 导航栏高度
+					// let appAllHeight;console.log();
+					// Vue.prototype.appAllHeight=statusBarHeight+44+'px';
+					// console.log(statusBarHeight);
+					let customBarHeight;
+					if (uni.getSystemInfoSync().platform === 'android') {
+					     
+					      customBarHeight = statusBarHeight + 50;
+						  
+					    } else if (uni.getSystemInfoSync().platform === 'ios') {
+					      // iOS 平台
+					      // 在这里根据 iOS 平台的特性计算自定义状态栏高度
+					      // ...
+					      customBarHeight = statusBarHeight + 45;
+					    } else {
+					      // 其他平台
+					      // ...
+					      customBarHeight = statusBarHeight;
+					    }
+						// console.log(customBarHeight);
+					    Vue.prototype.customBar = customBarHeight;
+				}
+				
+			},
+			onShow() {
+			},
+			onLoad() {
+				
+			}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+	body{
+		background-color: #f0f2f5;
+		/* font-family: PingFang SC; */
+		
+	}
+	view{
+			box-sizing: border-box;
+			padding: 0;
+	}
+	/* 公共字体大小类 */
+	
+	.one-font{
+		font-size: 48rpx;
+		line-height: 72rpx;
+		font-weight: 600;
+	}
+	.two-font{
+		font-size: 40rpx;
+		line-height: 56rpx;
+	}
+	.twoZ-font{
+		font-size: 40rpx;
+		line-height: 56rpx;
+		font-weight: 500;
+	}
+	.three-font{
+		font-size: 34rpx;
+		line-height: 48rpx;
+		font-weight: 500;
+	}
+	.num-font{
+		font-size: 36rpx;
+		line-height: 56rpx;
+		font-weight: 700;
+	}
+	.bmTit-font{
+		font-size: 36rpx;
+		line-height: 44rpx;
+		font-weight: 500;
+	}
+	.fNum-font{
+		font-size: 44rpx;
+		line-height: 56rpx;
+		font-weight: 700;
+	}
+	.zw-font{
+		font-size: 34rpx;
+		line-height: 48rpx;
+	}
+	.btn-font{
+		font-size: 28rpx;
+		line-height: 40rpx;
+		font-weight: 600;
+	}
+	.fwb-font{
+		font-size: 28rpx;
+		line-height: 40rpx;
+		font-size: 400;
+	}
+	.sZw-font{
+		font-size: 26rpx;
+		line-height: 42rpx;
+		font-size: 400;
+	}
+	.sBtn-font{
+		font-size: 24rpx;
+		line-height: 32rpx;
+		font-weight: 600;
+	}
+	.fz-font{
+		font-size: 24rpx;
+		line-height: 32rpx;
+		font-weight: 400;
+	}
+	.bq-font{
+		font-size: 20rpx;
+		line-height: 24rpx;
+	}
+	.bqZ-font{
+		font-size: 20rpx;
+		line-height: 24rpx;
+		font-weight: 600;
+	}
+	
+</style>

+ 126 - 0
components/activity-case/activity-case.vue

@@ -0,0 +1,126 @@
+<template>
+	<view class="teaching_case">
+		<view class="img">
+			<!-- <slot name="img"></slot> -->
+			<image src="../../static/activity/bg2.png" mode="aspectFill"></image>
+		</view>
+		
+		<view class="right">
+			<view class="title">
+				<view class="tag">类型</view>
+				<text>这里是活动标题标题标题</text>
+			</view>
+			
+			<view class="introduce">
+				活动描述活动描述活动描述活动描述活动描述活动描述活动描述
+			</view>
+			
+			<view class="operate">
+				<view class="left">
+					<view class="money">¥188</view>
+					<view class="person">已报名123人</view>
+				</view>
+				<button class="btn">立即报名</button>
+			</view>
+		</view>
+	</view>
+	
+</template>
+
+<script>
+	export default {
+		name:"activity-case",
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.teaching_case{
+		display: flex;
+		justify-content: space-between;
+		margin-bottom: 20px;
+		// padding-right: 20px;
+		padding: 0 15px;
+		
+		.img{
+			width: 180rpx;
+			height: 180rpx;
+			image{
+				width: 100%;
+				height:100%;
+			}
+		}
+		.right{
+			padding-left: 15px;
+			flex: 1;
+			width: 100rpx;
+			display: flex;
+			flex-direction: column;
+			align-content: flex-end ;
+			.title{
+				display: flex;
+				margin-bottom: 5px;
+				.tag{
+					border: 1px #00b2b6 solid;
+					font-size: 12px;
+					display: flex;
+					white-space: nowrap;
+					justify-content: center;
+					align-items: center;
+					padding: 2px 4px;
+					border-radius: 3px;
+					margin-right: 10rpx;
+					color: #00b2b6;
+				}
+				text{
+					overflow: hidden;
+					text-overflow:ellipsis;
+					white-space: nowrap;
+				}
+				
+			}
+			.introduce{
+				font-size: 16px;
+				color: #a7a7a7;
+				// padding: 20rpx 0;
+				overflow: hidden;
+				text-overflow:ellipsis;
+				white-space: nowrap;
+			}
+			.operate{
+				display: flex;
+				justify-content: space-between;
+				align-items: flex-end;
+				.left{
+					display: flex;
+					justify-content: space-between;
+					width: 260rpx;
+					.money{
+						color: #FFA338 ;
+						font-weight: bold;
+						font-size: 36rpx;
+					}
+					.person{
+						padding-top: 10rpx;
+						font-size: 24rpx;
+						
+					}
+				}
+					.btn{
+						width: 80px;
+						font-size: 12px;
+						background-color: #3081e8;
+						color: #fff;
+						border-radius: 30px;
+						margin: 0;
+						float: right;
+						margin-top: 10px;
+					}
+			}
+		}
+	}
+</style>

+ 142 - 0
components/detailBlock/detailBlock.vue

@@ -0,0 +1,142 @@
+<template>
+	<view class="detailBlock">
+		<view class="tit fwb-font" v-if="!item.isShow">教研室详情</view>
+		<view class="tit fwb-font" v-else>活动详情</view>
+		<view class="cont sZw-font">
+			会议时间:<text>10月7日上午八点(周日)</text>
+		</view>
+		<view class="cont sZw-font">
+			活动形式:<text style="color: #0056a8;">线上直播</text>
+		</view>
+		<view class="cont sZw-font">
+			<!-- <view id="myElement" class="activeTit">
+					教研室概况:查看更多查看更多查看更多看更多查看更多查看更多查看更多查看更多查看更多查看更多查看更多看更多查看更多查看更多查看更多查看更多
+			   </view>
+				<text class="zdwz" style="color: #0056a8;float: right;" @click="zdwz">收起</text> -->
+			<view class="content">
+				<view ref="p" :class="getClassNames">
+					<text style="color: #999999;">教研室概况:</text>
+					这是一段需要展开收起的文字,可以有很多很多的字,可能会占据很多的空间。因此,在默认情况下,我们只会显示部分文字,而把其余的部分折叠起
+					来。如果需要查看全部内容,可以点击“查看更多按钮,文
+				</view>
+
+				<view ref="btnnn" :class="getClassNames1" @click="qqq">
+					{{isAll ? '收起' : '展开'}}
+				</view>
+			</view>
+			
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "detailBlock",
+		props: {
+			item: {
+				type: Object,
+				default () {
+					return {
+						isshow: 0 //0教研室 1 活动
+					}
+				}
+			}
+		},
+		data() {
+			return {
+				isAll: false,
+				meunButtonInfo:this.meunButtonInfo, //胶囊高度
+			};
+		},
+		computed: {
+			getClassNames() {
+				return {
+					'p': !this.isAll,
+					'is-expanded': this.isAll
+				};
+			},
+			getClassNames1() {
+				return {
+					'btn-more': !this.isAll,
+					'is-zd': this.isAll
+				};
+			}
+		},
+		methods: {
+			// zdwz(){
+			// 	const query = wx.createSelectorQuery();
+			// 	    query.select('#myElement').fields({ computedStyle: ['lineClamp'] }).exec((res) => {
+			// 	      const element = res[0];
+			// 	      element.style.webkitLineClamp = '4'; // 修改行数限制为 2
+			// 	    });
+			// },
+			qqq() {
+				console.log(111);
+				this.isAll = !this.isAll
+
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.detailBlock {
+		background-color: #ffffff;
+		border-radius: 10rpx;
+		padding: 30rpx;
+
+		.tit {
+			font-weight: 600;
+			margin-bottom: 10px;
+		}
+
+		.cont {
+			color: #999999;
+			margin-bottom: 10px;
+			text {
+				color: #666666;
+			}
+
+			.content {
+				// display: flex;
+				// float: left;
+			}
+
+			.content .p {
+				width: 90%;
+				color: #666666;
+				// max-width: 100%;
+				// display:inline-block;
+				display: block;
+				// float: left;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+				// padding-right: 50rpx;
+				/*设置文字溢出时显示省略号*/
+
+			}
+
+			.content .p.is-expanded {
+				width: 100%;
+				overflow: visible;
+				white-space: normal;
+				/*文字溢出时不再显示省略号*/
+			}
+
+			.btn-more {
+				float: right;
+				display: inline-block;
+				// width: 60px;
+				transform: translate(0, -100%);
+				color: #0056a8;
+			}
+
+			.btn-more.is-zd {
+				transform: none;
+				// transform: translate(0,0);
+			}
+		}
+	}
+</style>

+ 111 - 0
components/statusBar/statusBar.vue

@@ -0,0 +1,111 @@
+<template>
+		<view class="statusBar" :style="{height: meunButtonInfo? navheight + 'px': customBar +'px'}">
+			<view class="nav" v-if="meunButtonInfo" :style="{height:navheight + 'px'}">
+				<view v-if="item.btn" class="backBtnSty" style="position: fixed;transform: translate(0,-50%);" :style="{width:'30px',marginTop:navTop+meunButtonInfo/2 +'px'}">
+					<!-- <image @click="backIndex" src="../../static/logo.png" mode="aspectFill"></image> -->
+					<uni-icons @click="backIndex" type="back" size="20"></uni-icons>
+				</view>
+				<view class="navTit" :style="{paddingTop:navTop+ 'px',lineHeight:meunButtonInfo+'px'}">
+					<view class="postTit">{{item.title}} </view>
+				</view>
+			</view>
+			<!-- app端 -->
+			<view class="nav" v-else :style="{height:customBar +'px'}">
+					<view v-if="item.btn" class="backBtnSty" style="position: fixed;transform: translate(0,-50%);" :style="{width:'30px',marginTop:appAllHeight/2 +'px'}">
+						<!-- <image @click="backIndex" src="../../static/img/back.png"  mode="aspectFill"></image> -->
+						<uni-icons @click="backIndex" type="back" size="20"></uni-icons>
+					</view>
+					<!-- 导航栏文字开始 -->
+					<view class="navTit" :style="{lineHeight:customBar+'px'}">
+						<view class="postTit">{{item.title}} </view>
+					</view>
+					<!-- 导航栏文字结束 -->
+			</view>
+	</view>
+	
+</template>
+
+<script>
+	export default {
+		name:"statusBar",
+		props:{ 
+			item:{
+				type:Object,
+				default(){
+					return{
+						title:'',
+						btn:1  //判断是否显示返回按钮
+					}
+					
+				}
+			}
+		},
+		data() {
+			return {
+				navheight:this.navheight,		//导航栏高度
+				statusHeight:this.statusHeight,   //状态栏高度
+				navTop:this.navTop,                //胶囊离顶高度
+				meunButtonInfo:this.meunButtonInfo, //胶囊高度
+				
+				appAllHeight:this.customBar,//app导航栏高度
+			};
+		},
+		methods:{
+			backIndex(){
+				uni.navigateBack({
+					url:this.item.btn
+				})
+			}
+		},
+		onLoad() {
+			console.log(this.meunButtonInfo);
+		}
+	}
+</script>
+
+<style lang="scss">
+		.statusBar{
+			// background-color: #000;
+		}
+		.nav{
+			width: 750rpx;
+			
+			background-color: #FFFFFF;
+			
+			position: fixed;
+			top: 0;
+			z-index: 11;
+			.backBtnSty{
+				width: 40rpx;
+				height: 40rpx;		
+				margin-left: 30rpx;
+				margin-top:50rpx;
+				image{
+					width: 16rpx;height: 28rpx;
+				}
+			}
+			.navTit{
+				width: 260rpx;
+				height: 44px;
+				margin: auto;
+				color: #ffffff;
+				// font-family: 'Microsoft YaHei';
+				text-align: center;
+				display: flex;
+				justify-content: space-around;
+				
+				.postTit{
+					height: 40px;
+					color: #000;
+					font-weight: bold;
+					display: inline-block; /* 将容器设置为行内块元素 */
+					vertical-align: bottom; /* 将文字垂直对齐到底部 */
+				}
+			}
+		}
+		 .tab-item-active {
+		    color: #FFFFFF !important;
+			font-size: 18px;
+			font-weight: bold;
+		  }
+</style>

+ 113 - 0
components/tabBar/tabBar.vue

@@ -0,0 +1,113 @@
+<template>
+	<view class="tabBar">
+		<uv-tabbar :value="value" @change="gotoBar">
+				<uv-tabbar-item class="txt" text="首页">
+					<template v-slot:active-icon>
+						<image class="icon" style="width: 36rpx;height: 36rpx;" src="../../static/tabbar/Fill 2.png"></image>
+					</template>
+					<template v-slot:inactive-icon>
+						<image class="icon" style="width: 36rpx;height: 36rpx;" src="../../static/tabbar/Fill 1.png"></image>
+					</template>
+				</uv-tabbar-item>
+				
+				<uv-tabbar-item text="资源库">
+					<template v-slot:active-icon>
+						<image class="icon" style="width: 40rpx;height: 32rpx;" src="/static/tabbar/zyk2.png"></image>
+					</template>
+					
+					<template v-slot:inactive-icon>
+						<image class="icon" style="width: 40rpx;height: 32rpx;" src="/static/tabbar/zyk.png"></image>
+					</template>
+				</uv-tabbar-item>
+				
+				<uv-tabbar-item text="活动">
+					<template v-slot:active-icon>
+						<image class="icon" style="width: 40rpx;height: 40rpx;" src="/static/tabbar/hd2.png"></image>
+					</template>
+					
+					<template v-slot:inactive-icon>
+						<image class="icon" style="width: 40rpx;height: 40rpx;" src="/static/tabbar/hd.png"></image>
+					</template>
+				</uv-tabbar-item>
+				
+				<uv-tabbar-item text="消息">
+					<template v-slot:active-icon>
+						<image class="icon" style="width: 38rpx;height: 34rpx;" src="/static/tabbar/xx2.png"></image>
+					</template>
+					<template v-slot:inactive-icon>
+						<image class="icon" style="width: 38rpx;height: 34rpx;" src="/static/tabbar/xx.png"></image>
+					</template>
+				</uv-tabbar-item>
+				
+				<uv-tabbar-item text="我的">
+					<template v-slot:active-icon>
+						<image class="icon" style="width: 34rpx;height: 38rpx;" src="/static/tabbar/wd2.png"></image>
+					</template>
+					<template v-slot:inactive-icon>
+						<image class="icon" style="width: 34rpx;height: 38rpx;" src="/static/tabbar/wd.png"></image>
+					</template>
+				</uv-tabbar-item>
+			</uv-tabbar>
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"tabBar",
+		data() {
+			return {
+				value: 0
+			};
+		},
+		methods:{
+			gotoBar(e){
+				// this.value=index
+				console.log(e);
+				switch(e){
+					case 0:
+						uni.switchTab({
+							url:'/pages/index/index'
+						})
+						break;
+					case 1:
+						uni.switchTab({
+							url:'/pages/resource/resource'
+						})
+						break;
+					case 2:
+						uni.switchTab({
+							url:'/pages/activityPage/activityPage'
+						})
+						break;
+					case 3:
+						uni.switchTab({
+							url:'/pages/message/message'
+						})
+						break;
+					default:
+						uni.switchTab({
+							url:'/pages/mine/mine'
+						})
+						break;
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.tabBar{
+		// position: fixed;
+		.icon {
+				width: 36rpx;
+				height: 36rpx;
+		}
+		/deep/ .uni-tabbar__label{
+			 font-size: 100rpx !important;
+			 font-weight: 400;
+			 line-height: 24rpx;
+			 
+		 }
+		
+	}
+</style>

+ 272 - 0
components/teaching-case/teaching-case.vue

@@ -0,0 +1,272 @@
+<template>
+	<view class="teaching_case" @click="gotoTeDetail">
+		<view class="img cell-img">
+			<!-- <slot name="img"></slot> -->
+			<image :src="classList.img" v-if="!item.btn" mode="aspectFill"></image>
+			<image :src="activeList.img" v-else mode="aspectFill"></image>
+		</view>
+
+		<view class="right">
+			<view class="">
+				<view class="title">
+					<view v-if="!item.btn" class="tag bqZ-font">类型</view>
+					<view v-else class="tag bqZ-font">类型</view>
+
+
+
+					<text class="btn-font" v-if="!item.btn" style="">{{ classList.className }}</text>
+					<text class="three-font" v-else>{{ activeList.className }}</text>
+				</view>
+
+				<view v-if="!item.btn" class="introduce fwb-font">
+					{{ classList.intro }}
+				</view>
+				<view v-else class="introduce fwb-font">
+					{{ activeList.intro }}
+				</view>
+			</view>
+
+
+			<view class="operate" v-if="!item.btn">
+				<view class="left">
+					<view class="opr" style="padding-right: 25rpx;">
+						<view class="icon">
+							<image src="http://43.139.158.220:5007/img/static/yym/Star 1 (Stroke).png" style="width: 28rpx;height: 26rpx;"
+								mode="aspectFill"></image>
+						</view>
+						<text class="fz-font">收藏</text>
+					</view>
+					<view class="opr">
+						<view class="icon">
+							<image src="http://43.139.158.220:5007/img/static/yym/Vector (Stroke).png" style="width: 22rpx;height: 26rpx;"
+								mode="aspectFill"></image>
+						</view>
+						<text class="fz-font">订阅</text>
+					</view>
+				</view>
+				<view class="">
+					<button class="btn sBtn-font" disableEventPropagation="true" @click.stop="join">立即参与</button>
+				</view>
+			</view>
+			<view class="operate" v-else>
+				<view class="left">
+					<view class="price num-font"><text class="three-font">¥</text> 188</view>
+					<view class="pernum fz-font">已报名{{ activeList.count }}人</view>
+				</view>
+				<view class="">
+					<button class="btn sBtn-font" @click.stop="actApply">立即报名</button>
+				</view>
+			</view>
+		</view>
+		<!-- <view class="" style="height: 50rpx;width: 100%;background-color: #ffffff;"></view> -->
+	</view>
+
+</template>
+
+<script>
+	export default {
+		name: "teaching-case",
+		props: {
+			item: {
+				type: Object,
+				default () {
+					return {
+						btn: 0 //0教研列表 1活动列表
+					}
+				}
+			},
+			classList: {
+				type: Object,
+				default () {
+					return []
+				}
+			},
+			activeList: {
+				type: Object,
+				default () {
+					return []
+				}
+			}
+		},
+		data() {
+			return {
+
+			};
+		},
+		methods: {
+			gotoTeDetail() {
+				if (this.item.btn) {
+					uni.navigateTo({
+						url: "/pages/activityDetail/activityDetail"
+					})
+				} else {
+					uni.navigateTo({
+						url: "/pages/teachingDetail/teachingDetail"
+					})
+				}
+
+			},
+			join() {
+				uni.navigateTo({
+					url: '/pages/jys/jys'
+				})
+			},
+			actApply() {
+				uni.navigateTo({
+					url: '/pages/hd/hd'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.teaching_case {
+		display: flex;
+		justify-content: space-between;
+		// margin-bottom: 10px;
+		background-color: #ffffff;
+		padding: 20rpx 30rpx;
+		
+		// padding-bottom: 50rpx;
+		.img {
+			width: 160rpx;
+			height: 160rpx;
+
+			image {
+				width: 100%;
+				height: 100%;
+				border-radius: 10rpx;
+			}
+		}
+
+		.right {
+			padding-left: 20rpx;
+			flex: 1;
+			// height: 300px;
+			width: 100rpx;
+			display: flex;
+			flex-direction: column;
+			// align-content: flex-end ;
+			justify-content: space-between;
+			// align-content: space-between;
+
+			.title {
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				margin-bottom: 15rpx;
+
+				// margin-bottom: 10rpx;
+				.tag {
+					border: 1px #00b2b6 solid;
+					flex-shrink: 0;
+					letter-spacing: 2rpx;
+					width: 64rpx;
+					height: 32rpx;
+					display: flex;
+					white-space: nowrap;
+					justify-content: center;
+					align-items: center;
+					border-radius: 4rpx;
+					margin-right: 10rpx;
+					color: #00b2b6;
+					line-height: 32rpx;
+					// border: 1px #00b2b6 solid;
+					// font-size: 20rpx;
+					// width: 94rpx;
+					// display: flex;
+					// height: 36rpx;
+					// white-space: nowrap;
+					// justify-content: center;
+					// align-items: center;
+					// // padding: 4px 12px 4px 12px;
+					// border-radius: 5rpx;
+					// margin-right: 10rpx;
+					// color: #00b2b6;
+				}
+
+				text {
+					font-weight: bold;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+				}
+
+			}
+
+			.introduce {
+				// font-size: 28rpx;
+				color: #a7a7a7;
+				// padding: 20rpx 0;
+				// width: 560rpx;
+				height: 40rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+			}
+
+			.operate {
+				display: flex;
+				justify-content: space-between;
+				// align-items: baseline;
+				align-items: flex-end;
+
+				.left {
+					display: flex;
+					// justify-content: space-between;
+					// align-items: center;
+					align-items: baseline;
+
+					// width: 200rpx;
+					.opr {
+						display: flex;
+						align-items: center;
+
+						.icon {
+							width: 32rpx;
+							height: 32rpx;
+							display: flex;
+							justify-content: center;
+							align-items: center;
+						}
+
+						text {
+							padding-left: 3rpx;
+							color: #666666;
+						}
+					}
+
+					.pernum {
+						color: #666666;
+
+						// font-size: 30rpx;
+					}
+
+					.price {
+						// font-size: 40rpx;
+						font-weight: bold;
+						color: #f8a551;
+						padding-right: 10rpx;
+					}
+				}
+
+				.btn {
+					z-index: 5;
+					border: none;
+					padding: 0;
+					text-align: center;
+					// padding: 8px, 24px, 8px, 24px;
+					background-color: rgba(48, 129, 232, 1);
+					color: #fff;
+					border-radius: 100rpx;
+					float: right;
+					width: 144rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					letter-spacing: 1px;
+				}
+			}
+		}
+	}
+</style>

+ 60 - 0
components/viewX-Case/viewX-Case.vue

@@ -0,0 +1,60 @@
+<template>
+	<view class="view_x_case">
+		<view class="tit">
+			<view class="" >
+				<slot name="title"></slot>
+			</view>
+			<view class="" style="display: flex; align-items: center;">
+				<slot name="lookMore"></slot>
+				<!-- <text style="color:#999999;font-size: 14px;">查看更多</text> -->
+				<uni-icons type="forward" color="#ccc"></uni-icons>
+			</view>
+		</view>
+		
+		<!-- 首页精选活动类 -->
+		<scroll-view class="scroll-view_H" scroll-x="true" :enhanced="true" :show-scrollbar="false">
+			<slot name="activeBlock"></slot>
+		</scroll-view>
+		
+		<!-- 首页教研室活动类 -->
+		<!-- <scroll-view class="scroll-view_y" scroll-y="true"> -->
+			<slot name="teaching"></slot>
+		<!-- </scroll-view> -->
+	</view>
+</template>
+
+<script>
+	export default {
+		name:"view_x_case",
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.view_x_case{
+		width: 750rpx;
+		background-color: #fff;
+		// margin-bottom: 50rpx;
+		// padding-left: 25rpx;
+		.tit{
+			// margin-bottom: 15px;
+			display: flex;
+			justify-content: space-between;
+			align-items: baseline;
+			// padding-right: 25rpx;
+			padding: 40rpx 30rpx;
+			padding-bottom: 20rpx;
+		}
+		.scroll-view_H {
+			white-space: nowrap;
+			// margin-left: 20rpx;
+		}
+		.scroll-view_y{
+			// padding-right: 25rpx;
+		}
+	}
+</style>

+ 20 - 0
index.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title></title>
+    <!--preload-links-->
+    <!--app-context-->
+  </head>
+  <body>
+    <div id="app"><!--app-html--></div>
+    <script type="module" src="/main.js"></script>
+  </body>
+</html>

+ 22 - 0
main.js

@@ -0,0 +1,22 @@
+import App from './App'
+
+// #ifndef VUE3
+import Vue from 'vue'
+import './uni.promisify.adaptor'
+Vue.config.productionTip = false
+App.mpType = 'app'
+const app = new Vue({
+  ...App
+})
+app.$mount()
+// #endif
+
+// #ifdef VUE3
+import { createSSRApp } from 'vue'
+export function createApp() {
+  const app = createSSRApp(App)
+  return {
+    app
+  }
+}
+// #endif

+ 72 - 0
manifest.json

@@ -0,0 +1,72 @@
+{
+    "name" : "kklbWe",
+    "appid" : "__UNI__B46B675",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "wxcb284ff05d9ea544",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "vueVersion" : "2"
+}

+ 17 - 0
package-lock.json

@@ -0,0 +1,17 @@
+{
+  "name": "teaching-uniapp",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "dependencies": {
+        "@dcloudio/uni-ui": "^1.4.28"
+      }
+    },
+    "node_modules/@dcloudio/uni-ui": {
+      "version": "1.4.28",
+      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.4.28.tgz",
+      "integrity": "sha512-e/lSbvR79KH9+d3D4ueNbvD6szigjO/5IyjBNmiTqaj0PTS324fBV3L6f3s1qpkYonM4rdOl000hVOcAg6Gh/A=="
+    }
+  }
+}

+ 5 - 0
package.json

@@ -0,0 +1,5 @@
+{
+  "dependencies": {
+    "@dcloudio/uni-ui": "^1.4.28"
+  }
+}

+ 271 - 0
pages.json

@@ -0,0 +1,271 @@
+{
+	"easycom": {
+			"autoscan": true,
+			"custom": {
+				// uni-ui 规则如下配置
+				"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
+			}
+		},
+    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+	
+        {
+            "path": "pages/index/index",
+            "style": {
+                "navigationBarTitleText": "首页"
+
+            }
+        },
+      {
+          "path": "pages/login/login",
+          "style": {
+              "navigationBarTitleText": "登录",
+              "enablePullDownRefresh": false
+          }
+      
+      },
+
+        {
+            "path": "pages/login_two/login_two",
+            "style": {
+                "navigationBarTitleText": "手机号登录",
+                "enablePullDownRefresh": false
+            }
+
+        }, {
+            "path": "pages/login_three/login_three",
+            "style": {
+                "navigationBarTitleText": "找回密码",
+                "enablePullDownRefresh": false
+            }
+
+        }, {
+            "path": "pages/resource/resource",
+            "style": {
+                "navigationBarTitleText": "资源库",
+                "enablePullDownRefresh": false
+            }
+
+        }, {
+            "path": "pages/activityPage/activityPage",
+            "style": {
+                "navigationBarTitleText": "活动页",
+                "enablePullDownRefresh": false
+            }
+
+        }, {
+            "path": "pages/message/message",
+            "style": {
+                "navigationBarTitleText": "消息",
+                "enablePullDownRefresh": false
+            }
+
+        },
+		// {
+  //           "path": "pages/message/messageDetail",
+  //           "style": {
+  //               "navigationBarTitleText": "活动消息",
+  //               "enablePullDownRefresh": false
+  //           }
+
+  //       }, 
+		{
+            "path": "pages/mine/mine",
+            "style": {
+                "navigationBarTitleText": "我的",
+                "enablePullDownRefresh": false
+            }
+
+        }
+        ,{
+            "path" : "pages/teachingDetail/teachingDetail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "教研室详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/teachingList/teachingList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "教研室列表",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/mineSubscribe/mineSubscribe",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/activityList/activityList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/activityDetail/activityDetail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/jys/jys",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/hd/hd",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/publish/publish",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+		,{
+		    "path" : "pages/hdxx/hdxx",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		,{
+		    "path" : "pages/mineClass/mineClass",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		,{
+		    "path" : "pages/mineCollect/mineCollect",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		,{
+		    "path" : "pages/mineEdit/mineEdit",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		},{
+		    "path" : "pages/mineActive/mineActive",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		},{
+		    "path" : "pages/dy/dy",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+        ,{
+            "path" : "pages/messageSystem/messageSystem",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/messageDy/messageDy",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
+    "tabBar": {
+		// "custom": true,
+		"backgroundColor": "#ffffff",
+		"fontSize": "25rpx",
+		"selectedColor":"#0056a8",
+        "list": [
+
+            {
+                "pagePath": "pages/index/index",
+                "text": "首页",
+                "iconPath": "static/tabbar/Fill 1.png", 
+                "selectedIconPath": "static/tabbar/Fill 2.png"
+            },
+            {
+                "pagePath": "pages/resource/resource",
+                "text": "资源库",
+                "iconPath": "static/tabbar/zyk.png",
+                "selectedIconPath": "static/tabbar/zyk2.png"
+            },
+            {
+                "pagePath": "pages/activityPage/activityPage",
+                "text": "活动",
+                "iconPath": "static/tabbar/hd.png",
+                "selectedIconPath": "static/tabbar/hd2.png"
+            },
+            {
+                "pagePath": "pages/message/message",
+                "text": "消息",
+                "iconPath": "static/tabbar/xx.png",
+                "selectedIconPath": "static/tabbar/xx2.png"
+            },
+            {
+                "pagePath": "pages/mine/mine",
+                "text": "我的",
+                "iconPath": "static/tabbar/wd.png",
+                "selectedIconPath": "static/tabbar/wd2.png"
+            }
+        ]
+    },
+	
+    "globalStyle": {
+		"navigationStyle": "custom",
+        "navigationBarTextStyle": "black",
+        "navigationBarTitleText": "uni-app",
+        "navigationBarBackgroundColor": "#ffffff",
+        "backgroundColor": "#F8F8F8",
+        "navigationBarTitleCentered": true
+    },
+    "uniIdRouter": {}
+}

+ 243 - 0
pages/activityDetail/activityDetail.vue

@@ -0,0 +1,243 @@
+<template>
+	<!-- 教研室详情 -->
+	<view class="activityDetail">
+		<statusBar :item="navbar"></statusBar>
+		
+		<!-- 顶部 -->
+			<view class="backPic">
+				<image src="http://43.139.158.220:5007/img/static/yym/Rectangle 40.png" mode="aspectFill"></image>
+				<view style="padding: 0 30rpx;margin-bottom: 20px;">
+					<view class="card">
+						<view class="cardTop three-font">
+							2023年全国国际银行分行“防范灾害风险护航高质量发展”防灾减灾志愿宣传活动
+						</view>
+						<view class="col fz-font">
+							活动日期:<text>5.12~5.13</text>
+						</view>
+						<view class="col fz-font">
+							招募人数:<text>23/50</text>
+						</view>
+						<view class="col fz-font">
+							活动地址:<text>龙岗将军帽路一号深圳技师学院</text>
+							<uni-icons type="location" color="#0056a8"  style="position: absolute;right: 10px;top: 0;width: 32rpx;height: 45rpx;"></uni-icons>
+						</view>
+					</view>
+				</view>
+			</view>
+		
+		<!-- 创建者用户名 -->
+		<view style="padding: 0 30rpx;">
+			<view class="creator">
+				<image src="http://43.139.158.220:5007/img/static/mine/Avatar.png" mode="aspectFill"></image>
+				<view class="creName btn-font">
+					发起者爱谁谁
+				</view>
+			</view>
+		</view>
+		
+		<!-- 活动详情 -->
+		<view class="" style="padding: 0 30rpx;">
+			<detailBlock :item='judge'></detailBlock>
+		</view>
+		
+
+		
+		<!-- 当前成员 -->
+		<view style="padding: 0 30rpx;">
+			<view class="member">
+				<view class="memberTop">
+					<view class="btn-font">报名情况(已报名23人)</view>
+					<view class="fz-font" style="color: #666666;display: flex;align-items: center;" @click="perList">
+						查看更多
+						<uni-icons type="right"></uni-icons>
+					</view>
+				</view>
+				
+				<view class="pers">
+					<view class="per" v-for="i in 6">
+						<image src="http://43.139.158.220:5007/img/static/mine/Avatar.png" mode="aspectFill"></image>
+						<view class="perName fz-font">
+							袁一鸣
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 申请加入 -->
+		<view class="btnBlock">
+			<button class="btn" @click="gotoAdd">立即报名</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navbar:{
+					title:'活动详情',
+					btn:1
+				},
+				judge:{
+					isShow:1
+				}
+			};
+		},
+		methods:{
+			perList(){
+				uni.navigateTo({
+					url:'/pages/dy/dy'
+				})
+			},
+			gotoAdd(){
+				uni.navigateTo({
+					url:'/pages/hd/hd'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.activityDetail{
+		padding-bottom: 80px;
+		.backPic{
+			width: 750rpx;
+			position: relative;
+			image{
+				width: 100%;
+				display: block;
+			}
+			.card{
+				position: absolute;
+				width: 690rpx;
+				// height: 150px;
+				bottom: -20px;
+				left: 50%;
+				// padding: 30rpx 16px;
+				padding: 30rpx;
+				border-radius: 10px;
+				background-color: #ffffff;
+				transform: translate(-50%,0);
+				.cardTop{
+					// display: flex;
+					// justify-content: center;
+					// padding-bottom: 5px;
+					margin-bottom: 5px;
+					// font-size: 18px;
+					font-weight: bold;
+					display: -webkit-box;
+					word-break: break-all;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp:2;/*设置 需要显示的行数*/
+					.title{
+						font-weight: bold;
+					}
+				}
+				.col{
+					position: relative;
+					margin-bottom: 10rpx;
+					color: #999999;
+					padding-right: 40px;
+					// font-size: 14px;
+					width: 100%;
+					display: -webkit-box;
+					word-break: break-all;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp:2;/*设置 需要显示的行数*/
+					text{
+						color: #333333;
+					}
+				}
+				.tag{
+					display: flex;
+				}
+			}
+			// background-image: url(http://43.139.158.220:5007/img/static/resource/jqr.png);
+		}
+	
+		
+		.creator{
+			display: flex;
+			// padding: 10px 30px;
+			padding: 30rpx 20rpx;
+			background-color: #ffffff;
+			align-items: center;
+			margin-top: 30px;
+			margin-bottom: 20rpx;
+			border-radius: 10px;
+			image{
+				width: 96rpx;
+				height: 96rpx;
+				border-radius: 50%;
+				margin-right: 20rpx;
+			}
+			.creName{
+				font-weight: bold;
+			}
+		}
+		
+		.member{
+			background-color: #ffffff;
+			margin-top: 20rpx;
+			// padding: 10px 10px;
+			padding: 30rpx;
+			// border: 10px;
+			border-radius: 10px;
+			.memberTop{
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 10px;
+			}
+				
+				.pers{
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					.per{
+						// display: inline-block;
+						display: flex;
+						flex-direction: column;
+						// justify-content: center;
+						align-items: center;
+						image{
+							width: 72rpx;
+							height: 72rpx;
+							border-radius: 50%;
+						}
+						.perName{
+							// font-size: 14px;
+							text-align: center;
+						}
+					}
+					
+				}
+				
+		}
+		
+		.btnBlock{
+			position: fixed;
+			bottom: 0;
+			width: 750rpx;
+			background-color: #ffffff;
+			// padding: 20px 0;
+			padding: 2vh 0;
+			.btn{
+				width: 432rpx;
+				height: 88rpx;
+				font-weight: 500;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				margin: auto;
+				background-color: #0056a8;
+				color: #ffffff;
+			}
+		}
+	}
+</style>

+ 86 - 0
pages/activityList/activityList.vue

@@ -0,0 +1,86 @@
+<template>
+	<view class="activeList">
+		<statusBar :item="navbarData"></statusBar>
+		<!-- <teaching-case :item="teaData"></teaching-case> -->
+		<view class="" style="padding-bottom: 50rpx;">
+			<teaching-case v-for="(item,index) in activeList" :item="teaData" :key="index" :activeList="item"></teaching-case>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navbarData: {
+					title: '活动列表',
+					btn: 1
+				},
+				teaData: {
+					btn: 1
+				},
+				activeList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img10.jpg',
+						count: '1790',
+						className: '创新思维开发与落地',
+						intro: '《暂无简介》'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img11.jpg',
+						count: '3842',
+						className: '创业意识与商机识别',
+						intro: '在创新创业的大氛围下,课堂上常常强调要以项目为中心,你却苦于迟迟无法最终确定具体的项目?那么,《创业意识与商机识别》这门课程可以帮助你。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img12.png',
+						count: '701',
+						className: '机电(机械)技术创新创业实务',
+						intro: '该课程是针对机电、机械行业、企业用户的一门关于创新创业的培训类课程。在国家“大众创业、万众创新”的新时代背景下,创新是引领一个企业发展的第一动力。为推动科技不断进步、促进企业快速健康发展,开发了《机电(机械)技术创新创业实务》课程。计划为36学时,理论讲授30学时,实践案例分析和操作6学时'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img13.jpg',
+						count: '823',
+						className: '打造黄金创始人团队',
+						intro: '如何摆正自己的工作态度和位置,清醒认识到自己的职责,学会选人用人,努力提高领导力和执行力,带好团队,并最终成为一个卓越的管理者呢?本课程提供给你建议'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img14.jpg',
+						count: '2287',
+						className: '创业素质测评与团队组建',
+						intro: '本课程采取案例分析、研讨、游戏的方式使同学们的聪明才智能够有发挥的空间,话语权能够得到满足。通过完成团队任务的方式使大家逐渐与陌生人建立良好沟通关系,掌握沟通技巧,使自己具有使命感、懂得感恩。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img15.jpg',
+						count: '2076',
+						className: '创业素质测评与团队组建',
+						intro: '《创业素质测评与团队建设课程》根据心理学者荣格所提的“人格特质”理论,围绕心智结构,以特质测评为基础,让同学们运用人格特质的分析了解不同人群之间的思维差异,学会根据不同特质的人才采取不同的行为沟通模式,确定其在创业团队的角色和地位,从而更好的促进创业团队建设及创业团队能力提升。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img16.jpg',
+						count: '11390',
+						className: '行业创业实践',
+						intro: '行业创业实践'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img17.jpg',
+						count: '1639',
+						className: '创业就业指导',
+						intro: '本课程是公共基础课和必修课。课程根据国务院、广东省教育厅关于高校双创教育改革实施意见的有关通知精神,结合提升学生就业、创业竞争力和发展力需求,突出就业知识与技能、创业发展及职业素养的培养。通过本课程的学习,能够使学生掌握     的基础知识,初步具备就业与创业的核心能力;并为学生在职业发展的阶段特点;较为清晰地认识自己的个性特性、职业特性;个性创业素养、个体创业能力等方面提供必要的知识。为个人的生涯发展和社会的创新推动、提高自身就业竞争力,展现良好职业素养,为今后职业发展与事业发展拓展通道。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img18.jpg',
+						count: '2129',
+						className: '营销管理实务与创新',
+						intro: '课程基于线上线下协同的教学方式,注重提升学生自主学习、市场运营创新能力的培养,不断蓄积其专业底蕴;通过学练一体的教学模式,实现对学生营销技术素养与职业人格的协同培养,建立面向复杂市场的商业逻辑。课程线上部分共24学时,开课一学期 ;线下部分一般以24~36学时为宜。'
+					},
+				]
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.activeList {}
+</style>

+ 332 - 0
pages/activityPage/activityPage.vue

@@ -0,0 +1,332 @@
+<template>
+	<view class="activity">
+		<statusBar :item="navBarData"></statusBar>
+		<viewX-Case class="mid">
+			<template #title>
+				<view class="title three-font">活动直播</view>
+			</template>
+			<template #lookMore>
+				<view class="lookMore fz-font">
+					查看更多
+				</view>
+			</template>
+			<template #activeBlock>
+				<view class="activeData" v-for="(item,index) in liveList" :key="index">
+					<!-- <image src="http://43.139.158.220:5007/img/static/activity/bg1.png" mode="aspectFill"></image> -->
+					<image :src="liveList[index].img" mode="aspectFill"></image>
+
+					<view class="liveBroadcast">
+						<view class="title">
+							<view class="tag bqZ-font">类型</view>
+							<text three-font>{{ item.className }}</text>
+						</view>
+
+						<view class="operate">
+							<view class="left">
+								<view class="img">
+									<image :src="liveList[index].imgName"></image>
+								</view>
+								<view class="user fwb-font">{{ item.name }}</view>
+							</view>
+							<view class="collection">
+
+								<!-- <view class="" style="display: flex;margin-right: 10rpx;align-items: center;"> -->
+								<view class="img">
+									<image src="http://43.139.158.220:5007/img/static/yym/Vector (Stroke) (2).png" mode="aspectFill"></image>
+								</view>
+								<text class="fz-font">收藏</text>
+
+							</view>
+						</view>
+					</view>
+				</view>
+			</template>
+		</viewX-Case>
+
+		<viewX-Case style="margin-top: 10px;">
+			<template #title>
+				<view class="title three-font">活动推荐</view>
+			</template>
+			<template #lookMore>
+				<view class="lookMore fz-font" @click="lookMore">查看更多</view>
+			</template>
+			<template #activeBlock>
+				<!-- <activity-case v-for="i in 10" :key="i"></activity-case> -->
+				<teaching-case v-for="(item,index) in activeList" :item="actData" :key="index"
+					:activeList="item"></teaching-case>
+			</template>
+		</viewX-Case>
+
+
+
+		<!-- 		<uni-fab ref="fab" 
+		:pattern="pattern" 
+		:horizontal="horizontal" 
+		:vertical="vertical"
+		:direction="direction"
+		buttonColor="#0056a8"
+		@fabClick="fabClick" /> -->
+<view class="" style="height: 30rpx;width: 100%;">
+	
+</view>
+		<view class="qiu" @click="fabClick">
+			<image src="/static/yym/jia.png" mode="aspectFill"></image>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '活动', //导航栏标题
+					btn: 0 //是否显示返回按钮 0不显示  1 显示
+				},
+				actData: {
+					btn: 1
+				},
+				title: 'uni-fab',
+				liveList: [{
+						img: "http://43.139.158.220:5007/img/static/mine/img1.jpg",
+						className: "创业者管理能力训练基础",
+						imgName: "http://43.139.158.220:5007/img/static/activity/Name1.png",
+						name: "李芳"
+					},
+					{
+						img: "http://43.139.158.220:5007/img/static/mine/img2.jpg",
+						className: '创业融资实务',
+						imgName: "http://43.139.158.220:5007/img/static/activity/Name2.png",
+						name: "郑秀"
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+						className: '创业基础',
+						imgName: "http://43.139.158.220:5007/img/static/activity/Name3.png",
+						name: "杨哲旗"
+					},
+					{
+						img: "http://43.139.158.220:5007/img/static/mine/img4.jpg",
+						className: "打造无敌商业计划书",
+						imgName: "http://43.139.158.220:5007/img/static/activity/Name2.png",
+						name: "杨广"
+					}
+				],
+				activeList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img10.jpg',
+						count: '1790',
+						className: '创新思维开发与落地',
+						intro: '《暂无简介》'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img11.jpg',
+						count: '3842',
+						className: '创业意识与商机识别',
+						intro: '在创新创业的大氛围下,课堂上常常强调要以项目为中心,你却苦于迟迟无法最终确定具体的项目?那么,《创业意识与商机识别》这门课程可以帮助你。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img12.png',
+						count: '701',
+						className: '机电(机械)技术创新创业实务',
+						intro: '该课程是针对机电、机械行业、企业用户的一门关于创新创业的培训类课程。在国家“大众创业、万众创新”的新时代背景下,创新是引领一个企业发展的第一动力。为推动科技不断进步、促进企业快速健康发展,开发了《机电(机械)技术创新创业实务》课程。计划为36学时,理论讲授30学时,实践案例分析和操作6学时'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img13.jpg',
+						count: '823',
+						className: '打造黄金创始人团队',
+						intro: '如何摆正自己的工作态度和位置,清醒认识到自己的职责,学会选人用人,努力提高领导力和执行力,带好团队,并最终成为一个卓越的管理者呢?本课程提供给你建议'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img14.jpg',
+						count: '2287',
+						className: '创业素质测评与团队组建',
+						intro: '本课程采取案例分析、研讨、游戏的方式使同学们的聪明才智能够有发挥的空间,话语权能够得到满足。通过完成团队任务的方式使大家逐渐与陌生人建立良好沟通关系,掌握沟通技巧,使自己具有使命感、懂得感恩。'
+					},
+				],
+			};
+		},
+		methods: {
+			lookMore() {
+				uni.navigateTo({
+					url: '/pages/activityList/activityList'
+				})
+			},
+			fabClick() {
+				// console.log(111);
+				uni.navigateTo({
+					url: '/pages/publish/publish'
+				})
+			},
+			onChange: function(e) {
+				this.old.x = e.detail.x
+				this.old.y = e.detail.y
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.activity {
+		.qiu {
+			width: 90rpx;
+			height: 90rpx;
+			position: fixed;
+			z-index: 19;
+			right: 30rpx;
+			bottom: 10vh;
+			border-radius: 50%;
+			background-color: rgba(0, 86, 168, 1);
+			display: flex;
+			justify-content: center;
+			align-items: center;
+
+			image {
+				position: absolute;
+
+				width: 36rpx;
+				height: 36rpx;
+			}
+
+		}
+
+		.mid {
+
+			// margin:20px 0;
+			.activeData {
+				width: 460rpx;
+				display: inline-block;
+				margin-right: 20px;
+
+				image {
+					width: 100%;
+					height: 120px;
+					border-radius: 10px;
+					margin-bottom: 10px;
+				}
+
+				.liveBroadcast {
+					flex: 1;
+					width: 460rpx;
+					display: flex;
+					flex-direction: column;
+					align-content: flex-end;
+
+					.title {
+						display: flex;
+						align-items: center;
+						margin-bottom: 10rpx;
+
+						.tag {
+							// border: 1px #00b2b6 solid;
+							// // font-size: 12px;
+							// width: 64rpx;
+							// height: 38rpx;
+							// display: flex;
+							// white-space: nowrap;
+							// justify-content: center;
+							// align-items: center;
+							// // padding: 2px 4px;
+							// padding: 1rpx 4rpx;
+							// border-radius: 3px;
+							// margin-right: 10rpx;
+							// color: #00b2b6;
+							border: 1px #00b2b6 solid;
+							font-size: 20rpx;
+							width: 64rpx;
+							display: flex;
+							height: 34rpx;
+							white-space: nowrap;
+							justify-content: center;
+							align-items: center;
+							// padding: 4px 12px 4px 12px;
+							border-radius: 5rpx;
+							margin-right: 10rpx;
+							color: #00b2b6;
+						}
+
+						text {
+							// display: -webkit-box;//对象作为弹性伸缩盒子模型显示
+							// overflow: hidden;//溢出隐藏
+							// -webkit-box-orient: vertical;//设置伸缩盒子对象的子元素的排列方式
+							// -webkit-line-clamp: 2;//设置 块元素包含的文本行数
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+
+					}
+
+					.operate {
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						padding: 20rpx 0;
+						color: #666666;
+
+						// margin-bottom: 20rpx;
+						// padding-bottom: 20rpx;
+						.left {
+							display: flex;
+							align-items: center;
+
+							.img {
+								width: 48rpx;
+								height: 48rpx;
+								margin-right: 10rpx;
+
+								image {
+									width: 100%;
+									height: 100%;
+									border-radius: 50%;
+								}
+							}
+
+							.user {}
+
+						}
+
+						.collection {
+							display: flex;
+							align-items: center;
+							justify-content: space-between;
+							width: 88rpx;
+							height: 32rpx;
+							position: relative;
+
+							.img {
+								position: absolute;
+								left: 0;
+								top: 6rpx;
+								transform: translate(-130%, 0);
+							}
+
+							image {
+								width: 27rpx;
+								height: 25rpx;
+								display: block;
+							}
+
+							// float: right;
+							// font-size: 14px;
+							// padding-top: 10px;
+						}
+					}
+				}
+			}
+
+			.activeData:nth-child(1) {
+				margin-left: 15px;
+			}
+		}
+
+		.title {
+			font-weight: bold;
+			// color: #999999;
+		}
+
+		.lookMore {
+			color: #666666;
+			// font-size: 14px;
+		}
+	}
+</style>

+ 134 - 0
pages/dy/dy.vue

@@ -0,0 +1,134 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+		<view class="bigBox" v-for=" i in items">
+			<view class="content">
+				<view class="left">
+					<image class="image" src="../../static/mine/Avatar.png" mode=""></image>
+					<view class="text">
+						<view class="fwb-font">橘子很橘子</view>
+						<view class="brief fz-font">
+							<text class="fz-font" style="margin-right: 20rpx;">订阅了您的教研室</text> 
+							<text class="fz-font">2023-04-01</text>
+						</view>
+					</view>
+				</view>
+				<view class="right">
+					<button v-if="i.btn==1" class="btn sBtn-font" @click="btn1(i.tit)">回粉</button>
+					<button v-else-if="i.btn==2" class="btn2 sBtn-font" @click="btn2(i.tit)">+关注</button>
+					<button v-else class="btn3 sBtn-font" @click="btn3(i.tit)">相互关注</button>
+				</view>
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '新增订阅',
+				btn: 1
+			},
+			items:[   //1回粉 2关注 3相互关注
+				{tit:'hf',btn:1},
+				{tit:'hf2',btn:1},
+				{tit:'gz',btn:2},
+				{tit:'hx',btn:3},
+			]
+		};
+	},
+	methods:{
+		btn1(e){
+			// console.log(e.btn==1);
+			// console.log(e);
+			this.items.find(i=>{
+				if(i.tit==e) return i.btn=3
+			})
+		},
+		btn2(e){
+			this.items.find(i=>{
+				if(i.tit==e) return i.btn=2
+			})
+		},
+		btn3(e){
+			this.items.find(i=>{
+				if(i.tit==e) return i.btn=1
+			})
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+	.bigBox{
+		background-color: white;
+		width: 750rpx;
+		padding: 24rpx 30rpx 24rpx 30rpx;
+	}
+.content {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	width: 690rpx;
+	height: 88rpx;
+	.left{
+		display: flex;
+		.image {
+			width: 88rpx;
+			height: 88rpx;
+			border-radius: 50%;
+		}
+		.text{
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			margin-left: 20rpx;
+			.brief{
+				color: rgba(0, 0, 0, 0.6);
+			}
+		}
+	}
+	.right{
+		.btn {
+			background-color: #adadad;
+			width: 144rpx;
+			height: 56rpx;
+			padding: 0;
+			// padding: 8rpx 24rpx 8rpx 24rpx ;
+			border-radius: 32rpx;
+			// text-align: center;
+			line-height: 56rpx;
+			color: white;
+		}
+		.btn2{
+			background-color: #0056a9;
+			width: 144rpx;
+			height: 56rpx;
+			padding: 0;
+			// padding: 8rpx 24rpx 8rpx 24rpx ;
+			// border-radius: 42px;
+			border-radius: 32rpx;
+			// text-align: center;
+			line-height: 56rpx;
+			color: white;
+		}
+		.btn3{
+			background-color: #d1e5fe;
+			width: 144rpx;
+			height: 56rpx;
+			padding: 0;
+			// padding: 8rpx 24rpx 8rpx 24rpx;
+			border-radius: 32rpx;
+			// text-align: center;
+			line-height: 56rpx;
+			color: #105eaa;
+		}
+	}
+	
+
+	
+}
+</style>

+ 205 - 0
pages/hd/hd.vue

@@ -0,0 +1,205 @@
+<template>
+	<view class="hd">
+		<statusBar :item="navBarData"></statusBar>
+		
+		<view class="top">
+				<view class="card">
+					<image class="image" src="../../static/jys/jys.png" mode=""></image>
+					<view class="text">
+						
+						<view class="text_title">
+							<view class="manage bqZ-font">类型</view>
+							<view class="t1 bmTit-font">这里是活动名活动名活动名活动名</view>
+						</view>
+						<view class="col sZw-font">
+							活动日期:5.12~5.13
+						</view>
+						<view class="col sZw-font">
+							招募人数:23/50
+						</view>
+					</view>
+				</view>
+		</view>
+		
+		<!-- <uni-card :is-shadow="false"> -->
+			<view class="xinxi">
+				<view class="card2">
+					<view class="hdxx">
+						<view class="xxTit btn-font">活动信息</view>
+						<view class="textcolor">
+							<view class="name  sZw-font">
+								姓名:
+								<text class="name1  sZw-font">李某某</text>
+							</view>
+							<view class="name  sZw-font">
+								联系方式:
+								<text class="lx1  sZw-font">172xxxxx5678</text>
+							</view>
+							<view class="name  sZw-font">
+								单位:
+								<text class="dw1  sZw-font">xx实验中学学校</text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		<!-- </uni-card> -->
+		<view class="buttons">
+			<view class="button-container">
+				<button @click="button1Action" class="btn1 sZw-font">清空填写信息</button>
+				<!-- <text class="button-spacing"></text> -->
+				<!-- 添加间距 -->
+				<button @click="button2Action" class="btn2 sZw-font">申请加入</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '活动报名',
+				btn: 1
+			}
+		};
+	},
+	methods: {
+		button1Action() {
+			// 这里添加按钮1点击后触发的动作
+			console.log('Button 1 clicked');
+		},
+		button2Action() {
+			// 这里添加按钮2点击后触发的动作
+			console.log('Button 2 clicked');
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.hd {
+	.top{
+		width: 690rpx;
+		height: 192rpx;
+		background-color: #ffffff;
+		margin: auto;
+		margin-top: 30rpx;
+		// padding: 24rpx;
+		padding: 16rpx 24rpx;
+		border-radius: 10rpx;
+		.col{
+			color: #999999;
+		}
+	}
+	.card {
+		// margin-top: 40rpx;
+		display: flex;
+		.image {
+			flex-shrink: 0;
+			width: 160rpx;
+			height: 160rpx;
+			border-radius: 4px;
+		}
+		
+		.text {
+			margin-left: 10px; // 增加一点空间
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			.text_title {
+				display: flex;
+				align-items: center;
+				.manage {
+					// padding:4rpx 12rpx 4rpx 12rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					width: 68rpx;
+					height: 36rpx;
+					border-radius: 5rpx;
+					color: #00b2b6;
+					border: 1px solid #00b2b6;
+					// border-radius: 10rpx;
+					margin-right: 10rpx;
+				}
+				.t1 {
+					color: black;
+					width: 350rpx;
+					font-weight: 550;
+					overflow:hidden;
+					text-overflow:ellipsis;
+					white-space:nowrap;
+				}
+			}
+
+		}
+	}
+	.xinxi{
+		background-color: #ffffff;
+		width: 690rpx;
+		// height: 272rpx;
+		margin: auto;
+		margin-top: 20rpx;
+		padding: 20rpx 24rpx;
+		border-radius: 12rpx;
+	}
+	.hdxx {
+		.xxTit {
+			color: black;
+			// font-size: 18px;
+			// font-weight: 400px;
+			line-height: 42px;
+		}
+		.textcolor {
+			color: #999999;
+			line-height: 42px;
+			.name {
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 20rpx;
+			}
+		}
+	}
+	.buttons {
+		background-color: white;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+		height: 137rpx;
+		// padding-bottom: 50rpx;
+		// font-size: 30rpx;
+		.button-container {
+			width: 100%;
+			display: flex;
+			justify-content: space-around;
+			.btn1{
+				width: 326rpx;
+				height: 71rpx;
+				border: 1px solid #666666;
+				border-radius: 50px;
+				height: 70rpx;
+				line-height: 70rpx;
+				// font-size: 35rpx;
+				color: #666666;
+			}
+			.btn2{
+				width: 326rpx;
+				height: 71rpx;
+				background-color: #0056a8;
+				border-radius: 50px;
+				height: 70rpx;
+				line-height: 70rpx;
+				color: #ffffff;
+			}
+		}
+		
+		
+	}
+}
+</style>

+ 171 - 0
pages/hdxx/hdxx.vue

@@ -0,0 +1,171 @@
+<template>
+	<view class="hdxx">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view class="disC three-font">
+						活动发布成功
+						<text class="sj fwb-font">13:28</text>
+					</view>
+				</view>
+				<view class="main">
+					<view class="fwb-font">
+						恭喜!您已成功完成
+						<text class="btn-font" style="color: #0056a8;">“XXXX讲座”</text>
+						活动发布过程。您的活动现在已经在我们的平台上正式上线,可以被其他用户浏览和参加。请随时返回您的活动管理页面,以进行任何进一步的编辑、更新或促进活动的操作。
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- <view class="content">
+			<view class="text">
+				<view class="header">
+					<view>
+						活动发布成功
+						<view class="sj">13:28</view>
+					</view>
+				</view>
+				<view class="main">
+					<view>
+						恭喜!您已成功完成
+						<view>“XXXX讲座”</view>
+						活动报名。您的参与信息已经成功提交,您现在是我们活动的一部分,我们非常期待与您共度美好时光。
+						<view style="text-indent: 2em" >
+							以下是一些额外信息,以确保您充分了解您的参与:
+						</view>  
+					</view>
+					<view class="custom-list">
+						<view class="list-item">活动名称:[活动名称]</view>
+						<view class="list-item">日期:[活动日期]</view>
+						<view class="list-item">时间:[活动时间]</view>
+						<view class="list-item">地点:[活动地点]</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view>
+						活动已结束
+						<view class="sj">13:28</view>
+					</view>
+				</view>
+				<view class="main">
+					<view>
+						<view>“XXXX讲座”</view>
+						活动已圆满结束,我们要对您的热情参与表示由衷的感谢。您的支持和参与使这次活动变得特别而难忘。
+						再次感谢您的参与,我们期待将来再次与您共享更多精彩的活动。敬请期待未来的活动通知!
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view>
+						活动开始提醒
+						<view class="sj">13:28</view>
+					</view>
+				</view>
+				<view class="main">
+					<view>
+						<view>“XXXX讲座”</view>
+						活动快开始啦!准备好迎接精彩时刻了吗?不要错过这个令人兴奋的机会,我们期待着与您一同度过难忘的时光。请确保您已经做好了所有必要的准备,包括查看活动时间、地点和其他重要信息。
+					</view>
+				</view>
+			</view>
+		</view> -->
+<!-- 		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view class="disC three-font">
+						成功加入教研室
+						<text class="sj fwb-font">13:28</text>
+					</view>
+				</view>
+				<view class="main">
+					<view style="text-indent: 0em">
+						尊敬的
+						<text>XXX</text>
+					</view>
+
+					<view>
+						我们很高兴通知您,您已成功加入
+						<text class="btn-font" style="color: #0056a8;">[教研室名称]</text>
+						!欢迎加入我们的团队,我们期待与您一同合作并共同追求卓越教育。
+					</view>
+				</view>
+			</view>
+		</view> -->
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '活动消息',
+				btn: 1
+			}
+		};
+	}
+};
+</script>
+
+<style lang="scss">
+	.hdxx{
+		padding-bottom: 80rpx;
+	}
+.content {
+	padding: 10px;
+	margin: 10px;
+	background-color: white;
+	border-radius: 8px;
+	// margin-top: 5px;
+	.disC{
+		display: flex;
+		justify-content: space-between;
+		align-items: baseline;
+	}
+	.text {
+		.header {
+			view {
+				color: black;
+				// font-size: 16px;
+				font-weight: 600;
+				margin-bottom: 10px;
+				display: flex;
+				justify-content: space-between;
+				.sj {
+					color: #999999;
+					// font-size: 13px;
+					font-weight: 500;
+				}
+			}
+		}
+		.main {
+			color: #999999;
+			view {
+				font-weight: 400;
+				// font-size: 14px;
+				text-indent: 2em;
+				view {
+					color: #0056a8;
+					font-weight: 600;
+				}
+			}
+			.custom-list {
+				padding-left: 5px;
+				padding-top: 3px;
+			}
+			.custom-list .list-item::before {
+				content: '• ';
+			}
+		}
+	}
+}
+</style>

+ 257 - 0
pages/index/index.vue

@@ -0,0 +1,257 @@
+<template>
+	<view class="content">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="top">
+			<!-- <image src="http://43.139.158.220:5007/img/static/logo.png" mode="aspectFill"></image> -->
+			<image src="http://43.139.158.220:5007/img/static/yym/Rectangle25.png" mode="aspectFill"></image>
+		</view>
+
+		<viewX-Case class="mid">
+			<template #title>
+				<view class="title three-font">精选活动</view>
+			</template>
+			<template #lookMore>
+				<view class="lookMore fz-font" @click="gotoActivity">查看更多</view>
+			</template>
+			<template #activeBlock>
+				<view class="activeData" @click="gotoActivityDetail" v-for="(item,index) in activeList" :key="index">
+					<image :src="item.img" mode="aspectFill"></image>
+					<view class="activeTit sBtn-font" style="font-weight: bold;">
+						{{ item.className }}
+					</view>
+					<view class="numData">
+						<view class="proNum bqZ-font">{{ item.count }} 人报名</view>
+						<view class="price num-font"> <text class="fz-font">¥</text>299</view>
+					</view>
+					<button class="btn sBtn-font" @click.stop="gotoHd">立即报名</button>
+				</view>
+			</template>
+		</viewX-Case>
+
+
+		<viewX-Case>
+			<template #title>
+				<view class="title three-font">教研室活动</view>
+			</template>
+			<template #lookMore>
+				<view class="lookMore fz-font" @click="teachmore">查看更多</view>
+			</template>
+			<template #teaching>
+				<teaching-case v-for="(item,index) in classList" :key="index" :classList='item'></teaching-case>
+			</template>
+		</viewX-Case>
+<view class="" style="height: 30rpx;width: 100%;">
+	
+</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: 'Hello',
+				navBarData: {
+					title: '首页', //导航栏标题
+					btn: 0 //是否显示返回按钮 0不显示  1 显示
+				},
+				activeList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img10.jpg',
+						count: '1790',
+						className: '创新思维开发与落地',
+						intro: '《暂无简介》'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img11.jpg',
+						count: '3842',
+						className: '创业意识与商机识别',
+						intro: '在创新创业的大氛围下,课堂上常常强调要以项目为中心,你却苦于迟迟无法最终确定具体的项目?那么,《创业意识与商机识别》这门课程可以帮助你。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img12.png',
+						count: '701',
+						className: '机电(机械)技术创新创业实务',
+						intro: '该课程是针对机电、机械行业、企业用户的一门关于创新创业的培训类课程。在国家“大众创业、万众创新”的新时代背景下,创新是引领一个企业发展的第一动力。为推动科技不断进步、促进企业快速健康发展,开发了《机电(机械)技术创新创业实务》课程。计划为36学时,理论讲授30学时,实践案例分析和操作6学时'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img13.jpg',
+						count: '823',
+						className: '打造黄金创始人团队',
+						intro: '如何摆正自己的工作态度和位置,清醒认识到自己的职责,学会选人用人,努力提高领导力和执行力,带好团队,并最终成为一个卓越的管理者呢?本课程提供给你建议'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img14.jpg',
+						count: '2287',
+						className: '创业素质测评与团队组建',
+						intro: '本课程采取案例分析、研讨、游戏的方式使同学们的聪明才智能够有发挥的空间,话语权能够得到满足。通过完成团队任务的方式使大家逐渐与陌生人建立良好沟通关系,掌握沟通技巧,使自己具有使命感、懂得感恩。'
+					},
+				],
+				classList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img1.jpg',
+						className: '创业者管理能力训练基础',
+						intro: '《创业者管理能力训练基础》通过管理学、营销学、财税理论、创业基础知识及创业操作实务的提炼,以专题化的形式面向高职类所有专业的学生。本课程一共有三大部分、七个专题。分别为:第一部分,一般管理者能力训练基础,四个专题,即自我管理能力训练、团队管理能力训练、社会关系管理能力训练与团队建设能力训练。第二部分,创业者重要能力的领悟与训练,二个专题,即成功创业者的智力要素、成功创业者商务能力的领悟与训练。第三部分是咖啡厅实践训练。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img2.jpg',
+						className: '创业融资实务',
+						intro: '本课程是创业管理专业、创业班的核心课程,根据专业培养目标的定位,主要面向创投机构服务专员岗位,培养该岗位应具备的相关创业融资知识和技能。课程主要采用“做中学”体验式的设计理念,引入真实项目进行“理实一体实战训练”。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+						className: '创业基础',
+						intro: '《创业基础》是一门面向高等院校学生与社会青年开设一门必修的基础理论和易于实际操作的创业综合基础课程。旨激发学员创业激情,增强创业意识,培养学员具备创业基础知识与基本能力,为大学生自主创业、拓展就业及开创事业等提供系统的理论与实践支持。是顺应新时代社会经济与高校教育发展的要求,以市场变化及其趋势为前提,从人才培养机理与中小企业成长规律的角度出发,结合教师多年创业教育与企业家人才培养成功经验,运用企业现代管理新观念,让学员掌握中小企业开办与管理全过程的理论和实务的一门创业综合基础课程。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img4.jpg',
+						className: '打造无敌商业计划书',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img5.jpg',
+						className: '创新思维',
+						intro: '将创新思维意识与方法技能双元结合,综合微课学习与创造力实践训练融合演进,实现在线学习与配套教材混合驱动。'
+					},
+				]
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+			teachmore() {
+				uni.navigateTo({
+					url: "/pages/teachingList/teachingList"
+				})
+			},
+			gotoTeDetail() {
+				uni.navigateTo({
+					url: "/pages/teachingDetail/teachingDetail"
+				})
+			},
+			gotoActivity() {
+				uni.navigateTo({
+					url: "/pages/activityList/activityList"
+				})
+			},
+			gotoActivityDetail() {
+				uni.navigateTo({
+					url: '/pages/activityDetail/activityDetail'
+				})
+			},
+			gotoHd() {
+				uni.navigateTo({
+					// url: '/pages/hd/hd'
+					url:"/pages/login/login"
+				})
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.content {
+
+		// background-color: ;
+		// background-color: #f0f2f5;
+		.top {
+			width: 750rpx;
+			height: 288rpx;
+			display: flex;
+			margin-bottom: 20rpx;
+			align-items: center;
+			background-color: #fff;
+			justify-content: center;
+
+			image {
+				height: 246rpx;
+				width: 690rpx;
+				border-radius: 12rpx;
+			}
+		}
+
+		.mid {
+			margin: 10px 0;
+			height: 498rpx;
+
+			.activeData {
+				width: 290rpx;
+				display: inline-block;
+				padding-right: 20rpx;
+
+				image {
+					width: 100%;
+					height: 80px;
+					border-radius: 10px;
+					margin-bottom: 10rpx;
+				}
+
+				.activeTit {
+					// font-weight: 600;
+					height: 64rpx;
+					white-space: normal;
+					/*隐藏溢出*/
+					/*当文本溢出包含元素时显示省略符号来代表被修剪的文本*/
+					/*规定段落中的文本不进行换行*/
+					letter-spacing: 2rpx;
+					display: -webkit-box;
+					word-break: break-all;
+					text-overflow: ellipsis;
+					overflow: hidden;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					/*设置 需要显示的行数*/
+				}
+
+				.numData {
+					display: flex;
+					justify-content: space-between;
+					align-items: baseline;
+
+					// padding: 10rpx 0;
+					.proNum {
+						color: #999999;
+						// font-size: 14px;
+					}
+
+					.price {
+						color: #f68717;
+						// font-size: 18px;
+					}
+				}
+
+				.btn {
+					border: none;
+					padding: 0;
+					float: left;
+					text-align: center;
+					// padding: 8px 24px 8px 24px;
+					background-color: #3081e8;
+					color: #fff;
+					border-radius: 100rpx;
+					width: 144rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					letter-spacing: 1px;
+					margin-bottom: 30rpx;
+				}
+			}
+
+			.activeData:nth-child(1) {
+				margin-left: 15px;
+			}
+		}
+
+		.title {
+			font-weight: bold;
+		}
+
+		.lookMore {
+			color: #666666;
+			// font-size: 14px;
+		}
+
+
+
+	}
+</style>

+ 208 - 0
pages/jys/jys.vue

@@ -0,0 +1,208 @@
+<template>
+	<view class="jys">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="top">
+				<view class="card">
+					<image class="image" src="../../static/jys/jys.png" mode=""></image>
+					<view class="text">
+						
+						<view class="text_title">
+							<view class="manage bqZ-font">类型</view>
+							<view class="t1 bmTit-font">这里是活动名活动名活动名活动名</view>
+						</view>
+						<view class="col sZw-font">
+							活动日期:5.12~5.13
+						</view>
+						<view class="col sZw-font">
+							招募人数:23/50
+						</view>
+					</view>
+				</view>
+		</view>
+		
+<!-- <uni-card :is-shadow="false"> -->
+			<view class="xinxi">
+				<view class="card2">
+					<view class="hdxx">
+						<view class="hd btn-font">活动信息</view>
+						<view class="textcolor">
+							<view class="name  sZw-font">
+								姓名:
+								<text class="name1  sZw-font">李某某</text>
+							</view>
+							<view class="name  sZw-font">
+								联系方式:
+								<text class="lx1  sZw-font">172xxxxx5678</text>
+							</view>
+							<view class="name  sZw-font">
+								单位:
+								<text class="dw1  sZw-font">xx实验中学学校</text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		<!-- </uni-card> -->
+		<view class="buttons">
+			<view class="button-container">
+				<button @click="button1Action" class="btn1 sZw-font">清空填写信息</button>
+				<!-- <text class="button-spacing"></text> -->
+				<!-- 添加间距 -->
+				<button @click="button2Action" class="btn2 sZw-font">申请加入</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '教研室报名',
+				btn: 1
+			}
+		};
+	},
+	methods: {
+		button1Action() {
+			// 这里添加按钮1点击后触发的动作
+			console.log('Button 1 clicked');
+		},
+		button2Action() {
+			// 这里添加按钮2点击后触发的动作
+			console.log('Button 2 clicked');
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.jys {
+	.top{
+		width: 690rpx;
+		// height: 192rpx;
+		background-color: #ffffff;
+		margin: auto;
+		margin-top: 30rpx;
+		padding: 16rpx 24rpx;
+		border-radius: 10rpx;
+		.col{
+			color: #999999;
+		}
+	}
+	.card {
+		display: flex;
+		justify-content: flex-start;
+		.image {
+			flex-shrink: 0;
+			width: 160rpx;
+			height: 160rpx;
+			border-radius: 4px;
+		}
+
+		.text {
+			margin-left: 10px; // 增加一点空间
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			// line-height: 35px; // 根据你的需求调整,使/文本与图片保持
+			.text_title {
+				display: flex;
+				align-items: center;
+				.manage {
+					// padding:4rpx 12rpx 4rpx 12rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					width: 68rpx;
+					// line-height: 68rpx;
+					height: 36rpx;
+					font-weight: 600rpx;
+					// text-align: center;
+					color: #00b2b6;
+					border: 1px solid #00b2b6;
+					border-radius: 5rpx;
+					margin-right: 10rpx;
+				}
+				.t1 {
+					// font-size: 35rpx;
+					color: black;
+					width: 350rpx;
+					font-weight: 550;
+					overflow:hidden;
+					text-overflow:ellipsis;
+					white-space:nowrap;
+				}
+			}
+
+		}
+	}
+	.xinxi{
+		background-color: #ffffff;
+		width: 690rpx;
+		// height: 272rpx;
+		margin: auto;
+		margin-top: 20rpx;
+		padding: 20rpx 24rpx;
+		border-radius: 12rpx;
+	}
+	.hdxx {
+		.hd {
+			color: black;
+			// font-size: 18px;
+			font-weight: 400px;
+			line-height: 42px;
+		}
+		.textcolor {
+			color: #999999;
+			line-height: 42px;
+			.name {
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 20rpx;
+			}
+		}
+	}
+	.buttons {
+		background-color: white;
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		display: flex;
+		justify-content: space-around;
+		align-items: center;
+		// padding: 30rpx 0;
+		height: 137rpx;
+		// padding-bottom: 50rpx;
+		// font-size: 30rpx;
+		.button-container {
+			width: 100%;
+			display: flex;
+			justify-content: space-around;
+			.btn1{
+				width: 326rpx;
+				height: 71rpx;
+				border: 1px solid #666666;
+				border-radius: 50px;
+				height: 70rpx;
+				line-height: 70rpx;
+				// font-size: 35rpx;
+				color: #666666;
+			}
+			.btn2{
+				width: 326rpx;
+				height: 71rpx;
+				background-color: #0056a8;
+				border-radius: 50px;
+				height: 70rpx;
+				line-height: 70rpx;
+				// font-size: 35rpx;
+				color: #ffffff;
+			}
+		}
+		
+	}
+}
+</style>

+ 106 - 0
pages/login/login.vue

@@ -0,0 +1,106 @@
+<template>
+	<view class="login">
+		<statusBar :item='navBarData'></statusBar>
+		<view class="img">
+			<image src="http://43.139.158.220:5007/img/static/yym/image7.png"  mode="aspectFill"></image>
+		</view>
+		
+		<view class="mid">
+			<view class="quan"></view>
+			<!-- <radio value="r1" @click="radioCheck" size="10" :checked="isOK" /> -->
+			<view class="">
+				我已阅读并同意<text>《教育小程序服务条款》</text>和 <text>《 隐私协议》</text>新用户自动注册
+			</view>
+		</view>
+		
+		<button class="btn">一键登录</button>
+		<view class="footer" @click="goto">
+			<text>手机号登录/账号密码登录</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				isOK:false,
+				navBarData:{
+					title:'首页',
+					btn:1  //判断是否显示返回按钮
+				},
+			};
+		},
+		methods:{
+			goto(){
+				uni.navigateTo({
+					url:"/pages/login_two/login_two"
+				})
+			},
+			radioCheck(){
+				this.isOK=!this.isOK
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login{
+		background-color: #ffffff;
+		height: 100vh;
+		.img{
+			// margin-top: 150rpx;
+			// background-color: #ccc;
+			padding: 10vh 0;
+			width: 750rpx;
+			display: flex;
+			justify-content: center;
+			image{
+				width: 200rpx;
+				height: 200rpx;
+				border-radius: 50%;
+				
+			}
+		}
+		.mid{
+			display: flex;
+			justify-content: flex-start;
+			width: 750rpx;
+			padding: 0rpx 20rpx;
+			font-size: 13px;
+			::v-deep uni-radio .uni-radio-input{
+				width: 10rpx;
+				height: 10rpx;
+			}
+			.quan{
+				flex-shrink: 0;
+				width: 15px;
+				height: 15px;
+				border-radius: 50%;
+				margin-top: 5rpx;
+				// background-color: #4a97f2;
+				margin-right: 10rpx;
+				border: 1px #bdbdbd solid;
+			}
+			text{
+				color: #4a97f2;
+			}
+		}
+		
+		.btn{
+			background-color: #0056a8;
+			color: #ffffff;
+			border-radius: 30px;
+			margin: 30rpx 55rpx;
+			// padding: 0rpx 10rpx;
+			font-size: 16px;
+		}
+		.footer{
+			display: flex;
+			justify-content: center;
+			font-size: 14px;
+			margin: auto;
+			color: #666666;
+		}
+	}
+</style>

+ 98 - 0
pages/login_three/login_three.vue

@@ -0,0 +1,98 @@
+<template>
+	<view class="login_three">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="inpBlock">
+			<view class="inps">
+				<input class="inp" type="text" placeholder="输入验证码">
+				<button class="yzm">获取验证码</button>
+			</view>
+			<view class="inpTip">
+				验证码已发送到您的手机
+				<text>17739460336</text>
+			</view>
+			<view class="inps">
+				<input class="inp" type="text" placeholder="输入新密码">
+				<view class="icon">
+					<uni-icons type="eye" size="25"></uni-icons>
+				</view>
+			</view>
+			<view class="inps">
+				<input class="inp" type="text" placeholder="输入新密码">
+				<view class="icon">
+					<uni-icons type="eye-slash" size="25" color="#bdbdbd"></uni-icons>
+				</view>
+			</view>
+		</view>
+		<button class="btn">修改并登录</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData:{
+					title:'找回密码',
+					btn:1  //判断是否显示返回按钮
+				},
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login_three{
+		height: 100vh;
+		background-color: #ffffff;
+		.inpBlock{
+			width: 700rpx;
+			padding-top: 100px;
+			margin: auto;
+			.inpTip{
+				font-size: 14px;
+				width: 100%;
+				color: #666666;
+				padding: 0 45rpx;
+				margin-bottom: 10px;
+				text{
+					color: #73aff4;
+				}
+			}
+			.inps{
+				width: 100%;
+				padding: 0 30rpx;
+				margin-bottom: 20px;
+				position: relative;
+				// font-size: 25px;
+				.inp{
+					padding: 10rpx 15rpx;
+					border-bottom: 1px #ccc solid;
+				}
+				.yzm{
+					position: absolute;
+					bottom: 10rpx;
+					right: 20rpx;
+					font-size: 12px;
+					background-color: #7eb5f6;
+					color: #fff;
+				}
+				.icon{
+					position: absolute;
+					right: 10px;
+					top: 5px;
+				}
+			}
+			.inps:nth-child(1){
+				margin-bottom: 10px;
+			}
+		}
+		.btn{
+			background-color: #999999;
+			color: #ffffff;
+			border-radius: 30px;
+			margin: 40rpx 55rpx;
+			font-size: 16px;
+			margin-top: 50px;
+		}
+	}
+</style>

+ 206 - 0
pages/login_two/login_two.vue

@@ -0,0 +1,206 @@
+<template>
+	<view class="login_two">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="top">
+			<view class="left" @click="phoneLogin" :class="current==0?info1:info2">
+				<text>手机号登录</text>
+				<view :class="current==0?yun:info2"></view>
+			</view>
+			<view class="right" @click="accountLogin" :class="current==1?info1:info2">
+				<text>账号密码登录</text>
+				<view :class="current==1?yun:info2"></view>
+			</view>
+		</view>
+		<swiper class="scroll-view-height" @change="swipeIndex" :current="current" :duration="300">
+		    <swiper-item>
+					<view class="inputBox">
+						<input type="text" class="inp" placeholder="手机号">
+						<input type="text" class="inp" placeholder="请输入验证码">
+						<button class="yzm">获取验证码</button>
+					</view>
+					<view class="inpTip">
+						验证码已发送到您的手机
+						<text>17739460336</text>
+					</view>
+					<view class="mid">
+						<view class="quan"></view>
+						<!-- <radio value="r1" @click="radioCheck" size="15" :checked="isOK" /> -->
+						<view class="">
+							我已阅读并同意<text>《教育小程序服务条款》</text>和 <text>《 隐私协议》</text>新用户自动注册
+						</view>
+					</view>
+					
+					<button class="btn">登录</button>
+		    </swiper-item>
+			
+		    <swiper-item>
+					<view class="inputBox">
+						<input type="text" class="inp inp2" placeholder="用户名/绑定手机/绑定邮箱">
+						<input type="text" class="inp" placeholder="登录密码">
+					</view>
+					<text @click="goto" style="font-size: 14px;float: right;padding: 20rpx;padding-right: 30rpx;">忘记密码</text>
+					<view class="mid">
+						<view class="quan"></view>
+						<!-- <radio value="r1" @click="radioCheck" :checked="isOK" /> -->
+						
+						<view class="">
+							我已阅读并同意<text>《教育小程序服务条款》</text>和 <text>《 隐私协议》</text>新用户自动注册
+						</view>
+					</view>
+					
+					<button class="btn">登录</button>
+		  </swiper-item>
+		</swiper>
+		
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				current:0,//登录方式切换
+				
+				info1:'info1',  //类名
+				info2:'info2',
+				yun:'yun',
+				
+				isOK:false,  //用户协议是否勾选
+				navBarData:{
+					title:'手机号登录',
+					btn:1  //判断是否显示返回按钮
+				},
+			}
+		},
+		methods: {
+			// 登录方式切换
+			swipeIndex(index){
+				this.current=index.detail.current;
+				console.log(this.current);
+				if (index.detail.current==0) {
+					this.navBarData.title="手机号登录"
+				}else{
+					this.navBarData.title='账号密码登录'
+				}
+				
+			},
+			phoneLogin(){
+				this.current=0
+			},
+			accountLogin(){
+				this.current=1
+			},
+			// 是否同意条约
+			radioCheck(){
+				this.isOK=!this.isOK
+			},
+			// 忘记密码
+			goto(){
+				uni.navigateTo({
+					url:"/pages/login_three/login_three"
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.login_two{
+		background-color: #ffffff;
+		height: 100vh;
+		.top{
+			width: 500rpx;
+			display: flex;
+			justify-content: space-between;
+			margin: auto;
+			margin-top: 10vh;
+			margin-bottom: 40px;
+			.info1{
+				font-weight: bold;
+				position: relative;
+				.yun{
+					width: 80rpx;
+					height: 0rpx;
+					position: absolute;
+					left: 50%;
+					transform: translate(-50%,-50%);
+					box-shadow: 0px 0px 10px 2px #4a97f2;
+				}
+			}
+			.info2{
+				color: #666666;
+			}
+		}
+		.inputBox{
+			padding: 0 30rpx;
+			position: relative;
+			.yzm{
+				position: absolute;
+				bottom: 10rpx;
+				right: 20rpx;
+				font-size: 12px;
+				background-color: #7eb5f6;
+				color: #fff;
+			}
+			.inp{
+				padding: 10rpx 15rpx;
+				// margin-top: 50rpx;
+				border-bottom: 1px #ccc solid;
+			}
+			.inp:nth-child(1){
+				margin-bottom: 50rpx;
+			}
+		}
+		.inpTip{
+			font-size: 14px;
+			width: 750rpx;
+			padding: 0 15rpx;
+			color: #666666;
+			margin: 10px;
+			margin-bottom: 30px;
+			text{
+				color: #73aff4;
+			}
+		}
+		.scroll-view-height{
+			height: 60vh;
+		}
+		
+		.mid{
+			display: flex;
+			justify-content: flex-start;
+			width: 750rpx;
+			padding: 0rpx 20rpx;
+			font-size: 13px;
+			margin-top: 10px;
+			/deep/ .uni-radio-input{
+				width: 15px;
+				height: 15px;
+			}
+			.quan{
+				flex-shrink: 0;
+				width: 15px;
+				height: 15px;
+				border-radius: 50%;
+				margin-top: 5rpx;
+				// background-color: #4a97f2;
+				margin-right: 10rpx;
+				border: 1px #bdbdbd solid;
+			}
+			text{
+				color: #4a97f2;
+			}
+		}
+		
+		.btn{
+			background-color: #0056a8;
+			color: #ffffff;
+			border-radius: 30px;
+			margin: 30rpx 55rpx;
+			// padding: 0rpx 10rpx;
+			font-family: SimHei;
+			font-size: 16px;
+		}
+	}
+</style>

+ 195 - 0
pages/message/message.vue

@@ -0,0 +1,195 @@
+<template>
+	<view class="messBox">
+		<statusBar :item="navbarData"></statusBar>
+		
+		<view class="mesItem" @click="goToMesDetail">
+			<view class="leftBox" >
+				<view class="mesImg">
+					<image src="http://43.139.158.220:5007/img/static/message/notice.svg"  mode="aspectFill"></image>
+				</view>
+				
+				<view class="mesBrief">
+					<view class="tit">活动通知</view>
+					<view class="breif fz-font" style="line-height: 40rpx;">活动报名成功</view>
+				</view>
+			</view>
+			
+			<view class="right">
+				<view class="">
+					<view v-if="isAll" class="newMessage"></view>
+				</view>
+				<view class="mesTime fz-font">07-12</view>
+			</view>
+		</view>
+		
+		
+		<view class="mesItem" @click="goToMeGXt">
+			<view class="leftBox">
+				<view class="mesImg">
+					<image src="http://43.139.158.220:5007/img/static/message/system.svg" mode=""></image>
+				</view>
+				
+				<view class="mesBrief">
+					<view class="tit ">系统通知</view>
+					<view class="breif fz-font" style="line-height: 40rpx;">已加入xxxxxx教研室</view>
+				</view>
+			</view>
+			
+			<view class="right">
+				<view class="">
+					<view v-if="xt" class="newMessage"></view>
+				</view>
+				<view class="mesTime fz-font" >07-12</view>
+			</view>
+		</view>
+		
+		<view class="mesItem" @click="goToMegDy">
+			<view class="leftBox">
+				<view class="mesImg">
+					<image src="http://43.139.158.220:5007/img/static/message/subscribe.svg" mode=""></image>
+				</view>
+				
+				<view class="mesBrief">
+					<view class="tit ">订阅消息</view>
+					<view class="breif fz-font" style="line-height: 40rpx;">xxx教研室更新了课程</view>
+				</view>
+			</view>
+			
+			<view class="right">
+			
+				<view class="">
+					<view v-if="dy" class="newMessage"></view>
+				</view>
+				
+				<view class="mesTime fz-font">07-12</view>
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navbarData:{
+					title:'消息'
+				},
+				// msgList:[
+				// 	{tit:'hd',isClick:0},
+				// 	{tit:'hd',isClick:0},
+				// 	{tit:'hd',isClick:0},
+				// ]
+				isAll:1,
+				xt:1,
+				dy:1
+				
+			};
+		},
+		methods: {
+			goToMesDetail() {
+				uni.navigateTo({
+					url: '/pages/hdxx/hdxx'
+				});
+				this.isAll=0
+			},
+			goToMeGXt(){
+				uni.navigateTo({
+					url: '/pages/messageSystem/messageSystem'
+				});
+				this.xt=0
+			},
+			goToMegDy() {
+				uni.navigateTo({
+					url: '/pages/messageDy/messageDy'
+				});
+				this.dy=0
+			},
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	
+	.messBox {
+		background: #fff;
+		display: flex;
+		flex-direction: column;
+		flex-wrap: nowrap;
+		// align-items: center;
+
+		.mesItem {
+			display: flex;
+			// flex-direction: row;
+			// flex-wrap: nowrap;
+			// align-items: flex-end;
+			justify-content: space-between;
+			width: 750rpx;
+			padding: 30rpx 20rpx;
+			// position: relative;
+
+			.leftBox {
+				display: flex;
+				justify-content: flex-start;
+				// flex-direction: row;
+				// flex-wrap: nowrap;
+				// align-items: center;
+
+				.mesImg {
+					width: 96rpx;
+					height: 96rpx;
+					// padding: 30rpx 5rpx;
+					margin-right: 25rpx;
+					image{
+						width: 100%;
+						height: 100%;
+					}
+				}
+
+				.mesBrief {
+					display: flex;
+					flex-direction: column;
+					justify-content: space-between;
+					.tit{
+						font-size: 32rpx;
+						font-weight: 400;
+						line-height: 48rpx;
+						color: #333333;
+					}
+					.breif{
+						// font-size: 16px;
+						color: rgba(51, 51, 51, 1);
+					}
+				}
+				// .mesBrief:nth-child(1){
+				// 	// font-size: 36rpx;
+				// }
+				// .mesBrief:nth-last-child(1){
+				// 	color: #999;
+				// 	padding: 10rpx 0 0 0;
+				// }
+			}
+			.right{
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+				align-items: center;
+				padding-top: 10px;
+				.mesTime {
+					color: #999;
+					bottom: 30px;
+				}
+				
+				.newMessage {
+					width: 16rpx;
+					height: 16rpx;
+					background: red;
+					border-radius: 10rpx;
+				}
+			}
+
+			
+		}
+	}
+</style>

+ 95 - 0
pages/messageDy/messageDy.vue

@@ -0,0 +1,95 @@
+<template>
+	<view class="messageDy">
+		<statusBar :item="navBarData"></statusBar>
+
+		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view class="disC three-font">
+						欢迎订阅“XXXX讲座”
+						<text class="sj fwb-font">13:28</text>
+					</view>
+				</view>
+				<view class="main">
+					<view style="text-indent: 0em">
+						尊敬的
+						<text>XXX</text>
+					</view>
+
+					<view>
+						您已成功订阅
+						<text class="btn-font" style="color: #0056a8;">[XXXX讲座名称]</text>
+						!欢迎加入我们的团队,我们期待与您一同合作并共同追求卓越教育。
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '系统消息',
+				btn: 1
+			}
+		};
+	}
+};
+</script>
+
+<style lang="scss">
+	.messageDy{
+		padding-bottom: 80rpx;
+	}
+.content {
+	padding: 10px;
+	margin: 10px;
+	background-color: white;
+	border-radius: 8px;
+	// margin-top: 5px;
+	.disC{
+		display: flex;
+		justify-content: space-between;
+		align-items: baseline;
+	}
+	.text {
+		.header {
+			view {
+				color: black;
+				// font-size: 16px;
+				font-weight: 600;
+				margin-bottom: 10px;
+				display: flex;
+				justify-content: space-between;
+				.sj {
+					color: #999999;
+					// font-size: 13px;
+					font-weight: 500;
+				}
+			}
+		}
+		.main {
+			color: #999999;
+			view {
+				font-weight: 400;
+				// font-size: 14px;
+				text-indent: 2em;
+				view {
+					color: #0056a8;
+					font-weight: 600;
+				}
+			}
+			.custom-list {
+				padding-left: 5px;
+				padding-top: 3px;
+			}
+			.custom-list .list-item::before {
+				content: '• ';
+			}
+		}
+	}
+}
+</style>

+ 112 - 0
pages/messageSystem/messageSystem.vue

@@ -0,0 +1,112 @@
+<template>
+	<view class="messageSys">
+		<statusBar :item="navBarData"></statusBar>
+<!-- 		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view class="disC three-font">
+						活动发布成功
+						<text class="sj fwb-font">13:28</text>
+					</view>
+				</view>
+				<view class="main">
+					<view class="fwb-font">
+						恭喜!您已成功完成
+						<text class="btn-font" style="color: #0056a8;">“XXXX讲座”</text>
+						活动发布过程。您的活动现在已经在我们的平台上正式上线,可以被其他用户浏览和参加。请随时返回您的活动管理页面,以进行任何进一步的编辑、更新或促进活动的操作。
+					</view>
+				</view>
+			</view>
+		</view> -->
+		
+		<view class="content">
+			<view class="text">
+				<view class="header">
+					<view class="disC three-font">
+						成功加入教研室
+						<text class="sj fwb-font">13:28</text>
+					</view>
+				</view>
+				<view class="main">
+					<view style="text-indent: 0em">
+						尊敬的
+						<text>XXX</text>
+					</view>
+
+					<view>
+						我们很高兴通知您,您已成功加入
+						<text class="btn-font" style="color: #0056a8;">[教研室名称]</text>
+						!欢迎加入我们的团队,我们期待与您一同合作并共同追求卓越教育。
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '系统消息',
+				btn: 1
+			}
+		};
+	}
+};
+</script>
+
+<style lang="scss">
+	.messageSys{
+		padding-bottom: 80rpx;
+	}
+.content {
+	padding: 10px;
+	margin: 10px;
+	background-color: white;
+	border-radius: 8px;
+	// margin-top: 5px;
+	.disC{
+		display: flex;
+		justify-content: space-between;
+		align-items: baseline;
+	}
+	.text {
+		.header {
+			view {
+				color: black;
+				// font-size: 16px;
+				font-weight: 600;
+				margin-bottom: 10px;
+				display: flex;
+				justify-content: space-between;
+				.sj {
+					color: #999999;
+					// font-size: 13px;
+					font-weight: 500;
+				}
+			}
+		}
+		.main {
+			color: #999999;
+			view {
+				font-weight: 400;
+				// font-size: 14px;
+				text-indent: 2em;
+				view {
+					color: #0056a8;
+					font-weight: 600;
+				}
+			}
+			.custom-list {
+				padding-left: 5px;
+				padding-top: 3px;
+			}
+			.custom-list .list-item::before {
+				content: '• ';
+			}
+		}
+	}
+}
+</style>

+ 266 - 0
pages/mine/mine.vue

@@ -0,0 +1,266 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+		<view class="mineBox">
+			<view class="userInformation" @click="gotoMineEdit">
+				<view class="userAvatar">
+					<image :src="userAvatar ? userAvatar : 'http://43.139.158.220:5007/img/static/mine/Avatar_default.png'" mode="aspectFill"></image>
+				</view>
+				<view class="userInfo">
+					<view class="infoTextone">
+						<text class="twoZ-font">{{ username ? username : '未登录' }}</text>
+						<span v-if="isManage" class="manage bq-font">管理员</span>
+					</view>
+					<view class="infoTexttwo">
+						<text style="font-size: 26rpx;font-weight: 400;line-height: 42rpx;color: #999999;">个性签名</text>
+					</view>
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem" @click="goToSub(1)">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/Subscribe.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">我的订阅</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem" @click="gotoMineCollect">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/Collect.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">我的收藏</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem" @click="gotoMineActive">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/active.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">我的活动</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem" @click="gotoMineClass">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/myClass.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">我的教研室</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/help.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">反馈帮助</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem" @click="gotoMineEdit">
+						<view class="option_left">
+							<span class="option_icon">
+								<image src="http://43.139.158.220:5007/img/static/mine/setting.png" mode="aspectFill"></image>
+							</span>
+							<text class="option_text fwb-font">我的设置</text>
+						</view>
+						<view class="option_right">
+							<image src="http://43.139.158.220:5007/img/static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			navBarData: {
+				title: '我的',
+				btn: 0
+			},
+			username: '情绪稳定的疯子',
+			userAvatar: 'http://43.139.158.220:5007/img/static/mine/Avatar.png',
+			isManage: true
+		};
+	},
+	methods: {
+		goToSub(i) {
+			uni.navigateTo({
+				url: '/pages/mineSubscribe/mineSubscribe'
+			});
+		},
+		
+		gotoMineClass(){
+			uni.navigateTo({
+				url:'/pages/mineClass/mineClass'
+			})
+		},
+		gotoMineCollect(){
+			uni.navigateTo({
+				url:'/pages/mineCollect/mineCollect'
+			})
+		},
+		gotoMineEdit(){
+			uni.navigateTo({
+				url:'/pages/mineEdit/mineEdit'
+			})
+		},
+		gotoMineEdit(){
+			uni.navigateTo({
+				url:'/pages/mineEdit/mineEdit'
+			})
+		},
+		gotoMineActive(){
+			uni.navigateTo({
+				url:'/pages/mineActive/mineActive'
+			})
+		}
+	},
+};
+</script>
+
+<style lang="scss" scoped>
+.mineBox {
+	width: 100%;
+
+	// 头像信息
+	.userInformation {
+		width: 100%;
+		height: 100px;
+		padding: 0 18px;
+		background-color: white;
+		display: flex;
+		justify-content: flex-start;
+		align-items: center;
+
+		.userAvatar {
+			flex: 1;
+			// height: 80%;
+			
+			display: flex;
+			align-items: center;
+
+			image {
+				width: 128rpx;
+				height: 128rpx;
+			}
+		}
+
+		.userInfo {
+			margin-left: 10px;
+			flex: 4;
+			height: 80%;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-evenly;
+
+			.infoTextone {
+				display: flex;
+				align-items: center;
+
+				span {
+					&:first-child {
+						color: #000;
+						// font-size: 40rpx;
+						font-weight: 600;
+					}
+
+					&.manage {
+						border: 1px #ffa338 solid;
+						// font-size: 11px;
+						display: flex;
+						white-space: nowrap;
+						justify-content: center;
+						align-items: center;
+						padding: 2px 4px;
+						border-radius: 3px;
+						margin-right: 10rpx;
+						color: #ffa338;
+						margin-left: 5px;
+					}
+				}
+			}
+
+			.infoTexttwo {
+				span {
+					color: rgb(153, 153, 153);
+					// font-size: 26rpx;
+				}
+			}
+		}
+	}
+
+	// 个人资料选项
+	.userOptionsBox {
+		width: 100%;
+		margin-top: 10px;
+
+		.optionsItemBox {
+			background-color: #fff;
+			width: 100%;
+			margin-bottom: 10px;
+			padding: 5px 23px;
+
+			.optionItem {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				height: 81rpx;
+				// font-size: 28rpx;
+
+				.option_left {
+					display: flex;
+					align-items: center;
+					height: 40rpx;
+
+					.option_icon {
+						height: 100%;
+						width: 40rpx;
+
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					.option_text {
+						margin-left: 10px;
+						color:rgba(0, 0, 0, 0.8);
+					}
+				}
+
+				.option_right {
+					height: 40rpx;
+
+					image {
+						height: 34rpx;
+						width: 30rpx;
+					}
+				}
+			}
+		}
+	}
+}
+</style>

+ 242 - 0
pages/mineActive/mineActive.vue

@@ -0,0 +1,242 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+
+
+		<view class="activeBox" v-for="(item,index) in activeList" :key="index">
+			<view class="teaching_case">
+				<view class="img">
+					<!-- <image src="http://43.139.158.220:5007/img/static/activity/bg2.png" mode="aspectFill"></image> -->
+					<image :src="activeList[index].img" mode="aspectFill"></image>
+
+				</view>
+
+				<view class="right">
+					<view class="title">
+						<view class="tag bqZ-font">类型</view>
+						<text class="three-font" style="font-weight: 600;">{{ item.className }}</text>
+					</view>
+
+					<view class="introduce">
+						{{ item.intro }}
+					</view>
+
+					<view class="operate">
+						<view class="left">
+							<view class="money fNum-font"><text class="three-font">¥</text> 188</view>
+							<view class="person">已报名{{ item.count }}人</view>
+						</view>
+
+						<view class="Oright">
+							<view class="text">查看详情</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right-blue.png" mode="aspectFill"></image>
+							</view>
+						</view>
+
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="" style="width: 100%;height: 50rpx;">
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '我的活动',
+					btn: 1
+				},
+				activeList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img10.jpg',
+						count: '1790',
+						className: '创新思维开发与落地',
+						intro: '《暂无简介》'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img11.jpg',
+						count: '3842',
+						className: '创业意识与商机识别',
+						intro: '在创新创业的大氛围下,课堂上常常强调要以项目为中心,你却苦于迟迟无法最终确定具体的项目?那么,《创业意识与商机识别》这门课程可以帮助你。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img12.png',
+						count: '701',
+						className: '机电(机械)技术创新创业实务',
+						intro: '该课程是针对机电、机械行业、企业用户的一门关于创新创业的培训类课程。在国家“大众创业、万众创新”的新时代背景下,创新是引领一个企业发展的第一动力。为推动科技不断进步、促进企业快速健康发展,开发了《机电(机械)技术创新创业实务》课程。计划为36学时,理论讲授30学时,实践案例分析和操作6学时'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img13.jpg',
+						count: '823',
+						className: '打造黄金创始人团队',
+						intro: '如何摆正自己的工作态度和位置,清醒认识到自己的职责,学会选人用人,努力提高领导力和执行力,带好团队,并最终成为一个卓越的管理者呢?本课程提供给你建议'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img14.jpg',
+						count: '2287',
+						className: '创业素质测评与团队组建',
+						intro: '本课程采取案例分析、研讨、游戏的方式使同学们的聪明才智能够有发挥的空间,话语权能够得到满足。通过完成团队任务的方式使大家逐渐与陌生人建立良好沟通关系,掌握沟通技巧,使自己具有使命感、懂得感恩。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img15.jpg',
+						count: '2076',
+						className: '创业素质测评与团队组建',
+						intro: '《创业素质测评与团队建设课程》根据心理学者荣格所提的“人格特质”理论,围绕心智结构,以特质测评为基础,让同学们运用人格特质的分析了解不同人群之间的思维差异,学会根据不同特质的人才采取不同的行为沟通模式,确定其在创业团队的角色和地位,从而更好的促进创业团队建设及创业团队能力提升。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img16.jpg',
+						count: '11390',
+						className: '行业创业实践',
+						intro: '行业创业实践'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img17.jpg',
+						count: '1639',
+						className: '创业就业指导',
+						intro: '本课程是公共基础课和必修课。课程根据国务院、广东省教育厅关于高校双创教育改革实施意见的有关通知精神,结合提升学生就业、创业竞争力和发展力需求,突出就业知识与技能、创业发展及职业素养的培养。通过本课程的学习,能够使学生掌握     的基础知识,初步具备就业与创业的核心能力;并为学生在职业发展的阶段特点;较为清晰地认识自己的个性特性、职业特性;个性创业素养、个体创业能力等方面提供必要的知识。为个人的生涯发展和社会的创新推动、提高自身就业竞争力,展现良好职业素养,为今后职业发展与事业发展拓展通道。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img18.jpg',
+						count: '2129',
+						className: '营销管理实务与创新',
+						intro: '课程基于线上线下协同的教学方式,注重提升学生自主学习、市场运营创新能力的培养,不断蓄积其专业底蕴;通过学练一体的教学模式,实现对学生营销技术素养与职业人格的协同培养,建立面向复杂市场的商业逻辑。课程线上部分共24学时,开课一学期 ;线下部分一般以24~36学时为宜。'
+					},
+				]
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.activeBox {
+		width: 100%;
+		background-color: #fff;
+		padding: 10px 0;
+
+		.teaching_case {
+			display: flex;
+			justify-content: space-between;
+			padding: 0 15px;
+
+			.img {
+				width: 160rpx;
+				height: 160rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 10rpx;
+				}
+			}
+
+			.right {
+				padding-left: 15px;
+				flex: 1;
+				display: flex;
+				flex-direction: column;
+				// align-content: flex-end;
+				justify-content: space-between;
+
+				.title {
+					display: flex;
+					align-items: center;
+
+					margin-bottom: 5px;
+
+					.tag {
+						border: 1px #00b2b6 solid;
+						// font-size: 20rpx;
+						width: 64rpx;
+						height: 38rpx;
+						display: flex;
+						white-space: nowrap;
+						justify-content: center;
+						align-items: center;
+						padding: 1rpx 4rpx;
+						border-radius: 3px;
+						margin-right: 10rpx;
+						color: #00b2b6;
+					}
+
+					text {
+						width: 180px;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+					}
+
+				}
+
+				.introduce {
+					width: 230px;
+					font-size: 28rpx;
+					color: #a7a7a7;
+					// margin-top: 8px;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+				}
+
+				.operate {
+					display: flex;
+					justify-content: space-between;
+					// align-items: flex-end;
+					align-items: baseline;
+					// margin-top: 15px;
+
+					.left {
+						display: flex;
+						flex-direction: row;
+						justify-content: space-between;
+						align-items: baseline;
+						width: 260rpx;
+
+						.money {
+							color: #FFA338;
+							font-weight: bold;
+							font-size: 36rpx;
+							line-height: 20px;
+						}
+
+						.person {
+							color: #00000099;
+							font-size: 24rpx;
+							// margin-left: 6px;
+						}
+					}
+
+					.Oright {
+						width: 80px;
+						display: flex;
+						justify-content: flex-start;
+						align-items: center;
+						// flex-direction: row;
+						// justify-content: space-around;
+						// align-items: flex-end;
+
+						.text {
+							font-size: 24rpx;
+							color: #3081E8;
+						}
+
+						.arrow {
+							display: flex;
+							justify-content: center;
+							margin-top: 5rpx;
+
+							image {
+								width: 32rpx;
+								height: 32rpx;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 276 - 0
pages/mineClass/mineClass.vue

@@ -0,0 +1,276 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+
+		<!-- <view class="activeBox" v-for="i in 5" :key="i"> -->
+		<view class="activeBox" v-for="(item,index) in classList" :key="index">
+
+			<view class="teaching_case">
+				<view class="img">
+					<!-- <image src="http://43.139.158.220:5007/img/static/mine/Rectangle 23.png" mode="aspectFill"></image> -->
+					<image :src="classList[index].img" mode="aspectFill"></image>
+				</view>
+
+				<view class="right">
+					<view class="title">
+						<view class="tag">类型</view>
+						<text>{{ item.className }}</text>
+					</view>
+
+					<view class="introduce">
+						{{ item.intro }}
+					</view>
+
+					<view class="operate">
+						<view class="left">
+							<view class="leftCollect">
+								<view class="icon">
+									<image src="http://43.139.158.220:5007/img/static/mine/Collect_yellow.png"
+										mode="aspectFill"></image>
+								</view>
+								<view class="text">
+									<span>收藏</span>
+								</view>
+							</view>
+							<view class="leftSubscribe">
+								<view class="icon">
+									<image src="http://43.139.158.220:5007/img/static/mine/Subscribe_gray.png"
+										mode="aspectFill"></image>
+								</view>
+								<view class="text">
+									<span>订阅</span>
+								</view>
+							</view>
+						</view>
+						<view class="btnGoto">
+							<view class="text">查看详情</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right-blue.png"
+									mode="aspectFill"></image>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="" style="padding-bottom: 50rpx;">
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '我的教研室',
+					btn: 1
+				},
+				classList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img1.jpg',
+						className: '创业者管理能力训练基础',
+						intro: '《创业者管理能力训练基础》通过管理学、营销学、财税理论、创业基础知识及创业操作实务的提炼,以专题化的形式面向高职类所有专业的学生。本课程一共有三大部分、七个专题。分别为:第一部分,一般管理者能力训练基础,四个专题,即自我管理能力训练、团队管理能力训练、社会关系管理能力训练与团队建设能力训练。第二部分,创业者重要能力的领悟与训练,二个专题,即成功创业者的智力要素、成功创业者商务能力的领悟与训练。第三部分是咖啡厅实践训练。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img2.jpg',
+						className: '创业融资实务',
+						intro: '本课程是创业管理专业、创业班的核心课程,根据专业培养目标的定位,主要面向创投机构服务专员岗位,培养该岗位应具备的相关创业融资知识和技能。课程主要采用“做中学”体验式的设计理念,引入真实项目进行“理实一体实战训练”。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+						className: '创业基础',
+						intro: '《创业基础》是一门面向高等院校学生与社会青年开设一门必修的基础理论和易于实际操作的创业综合基础课程。旨激发学员创业激情,增强创业意识,培养学员具备创业基础知识与基本能力,为大学生自主创业、拓展就业及开创事业等提供系统的理论与实践支持。是顺应新时代社会经济与高校教育发展的要求,以市场变化及其趋势为前提,从人才培养机理与中小企业成长规律的角度出发,结合教师多年创业教育与企业家人才培养成功经验,运用企业现代管理新观念,让学员掌握中小企业开办与管理全过程的理论和实务的一门创业综合基础课程。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img4.jpg',
+						className: '打造无敌商业计划书',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img5.jpg',
+						className: '创新思维',
+						intro: '将创新思维意识与方法技能双元结合,综合微课学习与创造力实践训练融合演进,实现在线学习与配套教材混合驱动。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img7.jpg',
+						className: '跨境电商创业',
+						intro: '跨境电商所有平台中利润最高、要求最高的就是亚马逊平台。 跨境电商企业需求最多的也是亚马逊运营人才。 《跨境电商创业》课程汇聚了一批有丰富亚马逊实战经验的高校创业导师、企业大卖家和大学生创业者,以经验分享、后台实操演示和创业案例剖析等形式,手把手教您亚马逊平台实操运营,带您开启跨境电商创业之路。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img8.jpg',
+						className: '精益创业方法论',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img9.png',
+						className: '互联网营销策划实务',
+						intro: '课程开发以创业就业能力培养为导向;以培养学生职业生涯发展、专业技能、自主学习与创新能力、职业素质为指导。使课程实现“项目化、任务化、碎片化、实战化”。便于学生利用零碎时间、移动设备学习。课程配有成套微课程视频外,还提供全套的教学与自学材料的国家及省级精品在线开放课程。'
+					},
+				],
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.activeBox {
+		width: 100%;
+		background-color: #fff;
+		padding: 10px 0;
+
+		.teaching_case {
+			display: flex;
+			justify-content: space-between;
+			padding: 0 15px;
+
+			.img {
+				width: 180rpx;
+				height: 180rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 10rpx;
+				}
+			}
+
+			.right {
+				padding-left: 15px;
+				flex: 1;
+				width: 100rpx;
+				display: flex;
+				flex-direction: column;
+				align-content: flex-end;
+
+				.title {
+					display: flex;
+					align-items: center;
+					margin-bottom: 5px;
+
+					.tag {
+						border: 1px #00b2b6 solid;
+						font-size: 20rpx;
+						width: 64rpx;
+						display: flex;
+						height: 32rpx;
+						white-space: nowrap;
+						justify-content: center;
+						align-items: center;
+						// padding: 4px 12px 4px 12px;
+						border-radius: 5rpx;
+						margin-right: 10rpx;
+						color: #00b2b6;
+					}
+
+					text {
+						width: 180px;
+						overflow: hidden;
+						text-overflow: ellipsis;
+						white-space: nowrap;
+					}
+
+				}
+
+				.introduce {
+					width: 230px;
+					font-size: 28rpx;
+					color: #a7a7a7;
+					margin-top: 8px;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+				}
+
+				.operate {
+					display: flex;
+					justify-content: space-between;
+					align-items: flex-end;
+					margin-top: 15px;
+
+					.left {
+						display: flex;
+						flex-direction: row;
+						// justify-content: space-between;
+						width: 260rpx;
+						color: #00000099;
+						font-size: 24rpx;
+
+						.leftCollect {
+							display: flex;
+							align-items: flex-end;
+							margin-right: 15px;
+
+							.text {
+								display: flex;
+								margin-left: 5px;
+							}
+
+							.icon {
+								display: flex;
+
+								image {
+									width: 32rpx;
+									height: 32rpx;
+								}
+							}
+						}
+
+						.leftSubscribe {
+							display: flex;
+							align-items: flex-end;
+
+							// margin-left: 15px;
+							.text {
+								display: flex;
+								margin-left: 5px;
+							}
+
+							.icon {
+								display: flex;
+
+								image {
+									width: 32rpx;
+									height: 32rpx;
+								}
+							}
+						}
+					}
+
+					.btnGoto {
+						width: 80px;
+						// height: 24px;
+						display: flex;
+						flex-direction: row;
+						justify-content: flex-start;
+						align-items: center;
+						align-items: flex-end;
+
+						.text {
+							font-size: 24rpx;
+							color: #3081E8;
+						}
+
+						.arrow {
+							line-height: 10px;
+
+							image {
+								width: 32rpx;
+								height: 32rpx;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 220 - 0
pages/mineCollect/mineCollect.vue

@@ -0,0 +1,220 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+
+		<view class="collectBox">
+			<view class="collect_length">
+				<span>共3条收藏</span>
+			</view>
+			<view class="classBox" v-for="(item,index) in classList" :key="index">
+
+				<view class="classTitle">
+					<span>{{ item.className }}</span>
+					<image src="http://43.139.158.220:5007/img/static/mine/Collect_yellow.png" mode="aspectFill"></image>
+
+				</view>
+				<view class="classContent">
+					<view class="contentLeft">
+						<view class="constDate">
+							<span class="manage">类型</span>
+							<span>|</span>
+							<span class="c_data">03月27日</span>
+							<span class="c_time">21:07</span>
+						</view>
+						<view class="classIntro">
+							<span>{{ item.intro }}</span>
+						</view>
+					</view>
+					<view class="contentRight">
+						<image :src="classList[index].img" mode="aspectFill"></image>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '我的收藏',
+					btn: 1
+				},
+				classList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img1.jpg',
+						className: '创业者管理能力训练基础',
+						intro: '《创业者管理能力训练基础》通过管理学、营销学、财税理论、创业基础知识及创业操作实务的提炼,以专题化的形式面向高职类所有专业的学生。本课程一共有三大部分、七个专题。分别为:第一部分,一般管理者能力训练基础,四个专题,即自我管理能力训练、团队管理能力训练、社会关系管理能力训练与团队建设能力训练。第二部分,创业者重要能力的领悟与训练,二个专题,即成功创业者的智力要素、成功创业者商务能力的领悟与训练。第三部分是咖啡厅实践训练。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img2.jpg',
+						className: '创业融资实务',
+						intro: '本课程是创业管理专业、创业班的核心课程,根据专业培养目标的定位,主要面向创投机构服务专员岗位,培养该岗位应具备的相关创业融资知识和技能。课程主要采用“做中学”体验式的设计理念,引入真实项目进行“理实一体实战训练”。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+						className: '创业基础',
+						intro: '《创业基础》是一门面向高等院校学生与社会青年开设一门必修的基础理论和易于实际操作的创业综合基础课程。旨激发学员创业激情,增强创业意识,培养学员具备创业基础知识与基本能力,为大学生自主创业、拓展就业及开创事业等提供系统的理论与实践支持。是顺应新时代社会经济与高校教育发展的要求,以市场变化及其趋势为前提,从人才培养机理与中小企业成长规律的角度出发,结合教师多年创业教育与企业家人才培养成功经验,运用企业现代管理新观念,让学员掌握中小企业开办与管理全过程的理论和实务的一门创业综合基础课程。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img4.jpg',
+						className: '打造无敌商业计划书',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img5.jpg',
+						className: '创新思维',
+						intro: '将创新思维意识与方法技能双元结合,综合微课学习与创造力实践训练融合演进,实现在线学习与配套教材混合驱动。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img7.jpg',
+						className: '跨境电商创业',
+						intro: '跨境电商所有平台中利润最高、要求最高的就是亚马逊平台。 跨境电商企业需求最多的也是亚马逊运营人才。 《跨境电商创业》课程汇聚了一批有丰富亚马逊实战经验的高校创业导师、企业大卖家和大学生创业者,以经验分享、后台实操演示和创业案例剖析等形式,手把手教您亚马逊平台实操运营,带您开启跨境电商创业之路。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img8.jpg',
+						className: '精益创业方法论',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img9.png',
+						className: '互联网营销策划实务',
+						intro: '课程开发以创业就业能力培养为导向;以培养学生职业生涯发展、专业技能、自主学习与创新能力、职业素质为指导。使课程实现“项目化、任务化、碎片化、实战化”。便于学生利用零碎时间、移动设备学习。课程配有成套微课程视频外,还提供全套的教学与自学材料的国家及省级精品在线开放课程。'
+					},
+				],
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.collectBox {
+		margin: 0 30rpx;
+		// margin-bottom: 30rpx;
+		padding-bottom: 50rpx;
+		.collect_length {
+			width: 100%;
+			height: 40rpx;
+			font-size: 24rpx;
+			font-weight: 400;
+			color: #00000099;
+			display: flex;
+			align-items: center;
+			margin-top: 6px;
+			margin-bottom: 6px;
+		}
+
+		.classBox {
+			width: 100%;
+			height: 248rpx;
+			background-color: #fff;
+			border-radius: 20rpx;
+			padding: 0 16rpx;
+			margin-bottom: 20rpx;
+
+			.classTitle {
+				display: flex;
+				padding-top: 15px;
+				justify-content: space-between;
+				margin-bottom: 6px;
+
+				span {
+					font-size: 32rpx;
+					font-weight: 500;
+				}
+
+				image {
+					width: 32rpx;
+					height: 32rpx;
+				}
+			}
+
+			.classContent {
+				width: 100%;
+				display: flex;
+				justify-content: space-between;
+
+				.contentLeft {
+					display: flex;
+					flex-direction: column;
+
+					.constDate {
+						display: flex;
+						margin-bottom: 6px;
+
+						span {
+							color: #00000066;
+							font-size: 24rpx;
+							font-weight: 400;
+
+							&.manage {
+								border: 1px #00B2B6 solid;
+								font-size: 10px;
+								display: flex;
+								white-space: nowrap;
+								justify-content: center;
+								align-items: center;
+								padding: 1px 6px;
+								border-radius: 3px;
+								margin-right: 10rpx;
+								color: #00B2B6;
+								font-weight: 600;
+							}
+
+							&:nth-child(2) {
+								color: #E7E7E7;
+								;
+								margin-left: 4px;
+							}
+
+							&:nth-child(3) {
+								margin-left: 6px;
+							}
+
+							&:nth-child(4) {
+								margin-left: 6px;
+							}
+						}
+					}
+
+					.classIntro {
+						width: 93%;
+
+						span {
+							color: #00000099;
+							font-size: 28rpx;
+							display: -webkit-box;
+							word-break: break-all;
+							text-overflow: ellipsis;
+							overflow: hidden;
+							-webkit-box-orient: vertical;
+							-webkit-line-clamp: 2;
+							/*设置 需要显示的行数*/
+							line-height: 23px;
+						}
+					}
+				}
+
+				.contentRight {
+					image {
+						width: 182rpx;
+						height: 132rpx;
+						border-radius: 8rpx;
+					}
+				}
+			}
+
+		}
+	}
+</style>

+ 324 - 0
pages/mineEdit/mineEdit.vue

@@ -0,0 +1,324 @@
+<template>
+	<view>
+		<statusBar :item="navBarData"></statusBar>
+
+		<view class="editBox">
+			<view class="edit_avatar">
+				<view class="edit_title">
+					<text>头像</text>
+				</view>
+				<view class="userAvatar">
+					<image src="http://43.139.158.220:5007/img/static/mine/Rectangle 1547.png" mode="aspectFill"></image>
+				</view>
+			</view>
+			<view class="setName">
+				<view class="edit_title">
+					<text>昵称</text>
+				</view>
+				<view class="input_details">
+					<view class="nickname">
+						<input type="text" style=" text-align: right;" maxlength="10" placeholder="请输入一个昵称"
+							placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="nickname" />
+					</view>
+				</view>
+			</view>
+			<view class="setPicker">
+				<picker mode="selector" :range="genderList" @change="handelGender">
+					<view class="content">
+						<view class="edit_title">
+							<text>性别</text>
+						</view>
+						<view class="input_details">
+							<view class="details">
+								<view class="uni-input text">{{gender}}</view>
+							</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right_gray.png" mode="aspectFill"></image>
+							</view>
+						</view>
+					</view>
+				</picker>
+			</view>
+			<view class="setPicker">
+				<picker mode="selector" :range="schoolList" @change="handelSchool">
+					<view class="content">
+						<view class="edit_title">
+							<text>学校</text>
+						</view>
+						<view class="input_details">
+							<view class="details">
+								<view class="uni-input text">{{school}}</view>
+							</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right_gray.png" mode="aspectFill"></image>
+							</view>
+						</view>
+					</view>
+				</picker>
+			</view>
+			<view class="setPicker">
+				<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
+					<view class="content">
+						<view class="edit_title">
+							<text>生日</text>
+						</view>
+						<view class="input_details">
+							<view class="details">
+								<view class="uni-input text">{{date}}</view>
+							</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right_gray.png" mode="aspectFill"></image>
+							</view>
+						</view>
+					</view>
+				</picker>
+			</view>
+			<view class="setPicker">
+				<picker mode="selector" :range="hobbyList" @change="handelHobby">
+					<view class="content">
+						<view class="edit_title">
+							<text>兴趣标签</text>
+						</view>
+						<view class="input_details">
+							<view class="details">
+								<view class="uni-input text">{{hobby}}</view>
+							</view>
+							<view class="arrow">
+								<image src="http://43.139.158.220:5007/img/static/mine/arrow-right_gray.png" mode="aspectFill"></image>
+							</view>
+						</view>
+					</view>
+				</picker>
+			</view>
+			<view class="setIntro">
+				<view class="edit_title">
+					<text>简介</text>
+				</view>
+				<view class="input_details">
+					<view class="selfdomIntro">
+						<textarea type="text" placeholder="请输入你的个性签名" maxlength="75"
+							placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="selfdomintro" />
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="btnBox">
+			<view class="btn">
+				<button>保存修改</button>
+				<button @click="gotoLogin">退出登录</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			const currentDate = this.getDate({
+				format: true
+			})
+			return {
+				navBarData: {
+					title: '个人资料',
+					btn: 1
+				},
+				nickname: '',
+				selfdomintro: '',
+
+				genderList: ['男', '女'],
+				gender: '男',
+
+				schoolList: ['xx学院', 'xx学院', 'xx学院'],
+				school: 'xx学院',
+
+				date: currentDate,
+
+				hobbyList: ['篮球'],
+				hobby: '篮球'
+			};
+		},
+		computed: {
+			startDate() {
+				return this.getDate('start');
+			},
+			endDate() {
+				return this.getDate('end');
+			}
+		},
+		methods: {
+			handelGender(e) {
+				this.gender = this.genderList[e.detail.value]
+			},
+			handelSchool(e) {
+				this.school = this.schoolList[e.detail.value]
+			},
+			handeHobby(e) {
+				this.hobby = this.hobbyList[e.detail.value]
+			},
+			bindDateChange: function(e) {
+				this.date = e.detail.value
+			},
+			getDate(type) {
+				const date = new Date();
+				let year = date.getFullYear();
+				let month = date.getMonth() + 1;
+				let day = date.getDate();
+
+				if (type === 'start') {
+					year = year - 60;
+				} else if (type === 'end') {
+					year = year + 2;
+				}
+				month = month > 9 ? month : '0' + month;
+				day = day > 9 ? day : '0' + day;
+				return `${year}-${month}-${day}`;
+			},
+			gotoLogin(){
+				uni.navigateTo({
+					url:'/pages/login/login'
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.edit_title {
+		display: flex;
+		align-items: center;
+		font-size: 32rpx;
+	}
+
+	.editBox {
+		width: 100%;
+		height: 840rpx;
+		display: flex;
+		flex-direction: column;
+		background-color: #fff;
+		border-top: 1px solid #E7E7E7;
+		padding: 0 18px;
+
+		.edit_avatar {
+			height: 164rpx;
+			display: flex;
+			justify-content: space-between;
+
+			.userAvatar {
+				display: flex;
+				align-items: center;
+
+				image {
+					width: 120rpx;
+					height: 120rpx;
+				}
+			}
+		}
+
+		.setName {
+			display: flex;
+			justify-content: space-between;
+			height: 92rpx;
+			border-top: 1px solid #E7E7E7;
+
+			.input_details {
+				display: flex;
+				align-items: center;
+				flex-direction: row;
+
+				.nickname {
+					width: 350rpx;
+					text-align: end;
+					// padding-right: 10rpx;
+					// margin-right: 10rpx;
+					font-size: 28rpx;
+					color: rgb(153, 153, 153);
+				}
+			}
+		}
+
+		.setPicker {
+			height: 92rpx;
+			border-top: 1px solid #E7E7E7;
+
+			.content {
+				height: 92rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.input_details {
+					display: flex;
+					align-items: center;
+
+					.details {
+						display: flex;
+						flex-direction: row;
+
+						.text {
+							font-size: 28rpx;
+							color: rgb(153, 153, 153);
+						}
+					}
+
+					.arrow {
+						display: flex;
+
+						image {
+							width: 32rpx;
+							height: 32rpx;
+						}
+					}
+				}
+			}
+		}
+		.setIntro {
+			display: flex;
+			flex-direction: column;
+			justify-content: space-evenly;
+			height: 216rpx;
+			border-top: 1px solid #E7E7E7;
+		
+			.input_details {
+				display: flex;
+				align-items: center;
+		
+				.selfdomIntro {
+					width: 100%;
+					height: 88rpx;
+					
+					textarea{
+						width: 100%;
+						height: 88rpx;
+						font-size: 28rpx;
+						color: rgb(153, 153, 153);
+					}
+				}
+			}
+		}
+	}
+	.btnBox{
+		position: absolute;
+		margin: 0 85rpx;
+		bottom: 40px;
+		.btn{
+			button{
+				width: 580rpx;
+				height: 88rpx;
+				border: none;
+				border-radius: 100rpx;
+				border: 1px solid lightgray;
+				font-size: 36rpx;
+				color: #545454;
+				text-align: center;
+				&:first-child{
+					background-color: rgb(0, 86, 168);
+					color: white;
+					margin-bottom: 24rpx;
+				}
+				&::after{
+					border: none;
+				}
+			}
+		}
+	}
+</style>

+ 396 - 0
pages/mineSubscribe/mineSubscribe.vue

@@ -0,0 +1,396 @@
+<template>
+	<view class="content">
+		<statusBar :item="navBarData"></statusBar>
+
+		<view class="" style="width: 750rpx;height: 60px;">
+			<view class="activeTitle">
+				<view class="left" @click="phoneLogin" :class="current==0?active:test">
+					<text>教研室活动</text>
+					<view :class="current==0?yun:test"></view>
+				</view>
+				<view class="right" @click="accountLogin" :class="current==1?active:test">
+					<text class="zw-font">特色活动</text>
+					<view :class="current==1?yun:test"></view>
+				</view>
+			</view>
+		</view>
+
+		<swiper class="scroll-view-height" @change="swipeIndex" :current="current" :duration="300">
+			<swiper-item>
+				<scroll-view scroll-y="true" style="height: 80vh;">
+					<view class="activeClass">
+						<view class="classBox" v-for="(item,index) in classList" :key="index">
+
+							<view class="classLeft">
+								<view class="class_Img">
+									<image :src="classList[index].img" mode="aspectFill"></image>
+								</view>
+								<view class="class_Text">
+									<view class="text_Title">
+										<text class="manage">类型</text>
+										<text>{{ item.className }}</text>
+
+									</view>
+									<view class="text_Intro">
+										<text>{{ item.intro }}</text>
+									</view>
+								</view>
+							</view>
+							<view class="classright">
+								<!-- <image src="../../static/mine/Union.png" mode="aspectFill"></image> -->
+								<image src="../../static/mine/Union.png" mode="aspectFill"></image>
+
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+
+
+			</swiper-item>
+			<swiper-item>
+				<scroll-view scroll-y="true" style="height: 80vh;">
+					<view class="activeClass">
+						<view class="classBox" v-for="(item,index) in activeList" :key="index">
+							<view class="classLeft">
+								<view class="class_Img">
+									<image :src="activeList[index].img" mode="aspectFill"></image>
+								</view>
+								<view class="class_Text">
+									<view class="text_Title">
+										<text class="manage">类型</text>
+										<text>{{ item.className }}</text>
+									</view>
+									<view class="text_Intro">
+										<text>{{ item.intro }}</text>
+									</view>
+								</view>
+							</view>
+							<view class="classright">
+								<image src="http://43.139.158.220:5007/img/static/mine/Union.png" mode=""></image>
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '我的订阅',
+					btn: 1
+				},
+				current: 0, //切换
+
+				aaa: `calc(100vh-60vh)`,
+
+				navheight: this.navheight, //导航栏高度
+
+				active: 'active', //类名
+				test: 'test',
+				yun: 'yun',
+				classList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img1.jpg',
+						className: '创业者管理能力训练基础',
+						intro: '《创业者管理能力训练基础》通过管理学、营销学、财税理论、创业基础知识及创业操作实务的提炼,以专题化的形式面向高职类所有专业的学生。本课程一共有三大部分、七个专题。分别为:第一部分,一般管理者能力训练基础,四个专题,即自我管理能力训练、团队管理能力训练、社会关系管理能力训练与团队建设能力训练。第二部分,创业者重要能力的领悟与训练,二个专题,即成功创业者的智力要素、成功创业者商务能力的领悟与训练。第三部分是咖啡厅实践训练。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img2.jpg',
+						className: '创业融资实务',
+						intro: '本课程是创业管理专业、创业班的核心课程,根据专业培养目标的定位,主要面向创投机构服务专员岗位,培养该岗位应具备的相关创业融资知识和技能。课程主要采用“做中学”体验式的设计理念,引入真实项目进行“理实一体实战训练”。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+						className: '创业基础',
+						intro: '《创业基础》是一门面向高等院校学生与社会青年开设一门必修的基础理论和易于实际操作的创业综合基础课程。旨激发学员创业激情,增强创业意识,培养学员具备创业基础知识与基本能力,为大学生自主创业、拓展就业及开创事业等提供系统的理论与实践支持。是顺应新时代社会经济与高校教育发展的要求,以市场变化及其趋势为前提,从人才培养机理与中小企业成长规律的角度出发,结合教师多年创业教育与企业家人才培养成功经验,运用企业现代管理新观念,让学员掌握中小企业开办与管理全过程的理论和实务的一门创业综合基础课程。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img4.jpg',
+						className: '打造无敌商业计划书',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img5.jpg',
+						className: '创新思维',
+						intro: '将创新思维意识与方法技能双元结合,综合微课学习与创造力实践训练融合演进,实现在线学习与配套教材混合驱动。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+						className: '创业经营',
+						intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img7.jpg',
+						className: '跨境电商创业',
+						intro: '跨境电商所有平台中利润最高、要求最高的就是亚马逊平台。 跨境电商企业需求最多的也是亚马逊运营人才。 《跨境电商创业》课程汇聚了一批有丰富亚马逊实战经验的高校创业导师、企业大卖家和大学生创业者,以经验分享、后台实操演示和创业案例剖析等形式,手把手教您亚马逊平台实操运营,带您开启跨境电商创业之路。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img8.jpg',
+						className: '精益创业方法论',
+						intro: '暂无简介'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img9.png',
+						className: '互联网营销策划实务',
+						intro: '课程开发以创业就业能力培养为导向;以培养学生职业生涯发展、专业技能、自主学习与创新能力、职业素质为指导。使课程实现“项目化、任务化、碎片化、实战化”。便于学生利用零碎时间、移动设备学习。课程配有成套微课程视频外,还提供全套的教学与自学材料的国家及省级精品在线开放课程。'
+					},
+				],
+				activeList: [{
+						img: 'http://43.139.158.220:5007/img/static/mine/img10.jpg',
+						count: '1790',
+						className: '创新思维开发与落地',
+						intro: '《暂无简介》'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img11.jpg',
+						count: '3842',
+						className: '创业意识与商机识别',
+						intro: '在创新创业的大氛围下,课堂上常常强调要以项目为中心,你却苦于迟迟无法最终确定具体的项目?那么,《创业意识与商机识别》这门课程可以帮助你。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img12.png',
+						count: '701',
+						className: '机电(机械)技术创新创业实务',
+						intro: '该课程是针对机电、机械行业、企业用户的一门关于创新创业的培训类课程。在国家“大众创业、万众创新”的新时代背景下,创新是引领一个企业发展的第一动力。为推动科技不断进步、促进企业快速健康发展,开发了《机电(机械)技术创新创业实务》课程。计划为36学时,理论讲授30学时,实践案例分析和操作6学时'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img13.jpg',
+						count: '823',
+						className: '打造黄金创始人团队',
+						intro: '如何摆正自己的工作态度和位置,清醒认识到自己的职责,学会选人用人,努力提高领导力和执行力,带好团队,并最终成为一个卓越的管理者呢?本课程提供给你建议'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img14.jpg',
+						count: '2287',
+						className: '创业素质测评与团队组建',
+						intro: '本课程采取案例分析、研讨、游戏的方式使同学们的聪明才智能够有发挥的空间,话语权能够得到满足。通过完成团队任务的方式使大家逐渐与陌生人建立良好沟通关系,掌握沟通技巧,使自己具有使命感、懂得感恩。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img15.jpg',
+						count: '2076',
+						className: '创业素质测评与团队组建',
+						intro: '《创业素质测评与团队建设课程》根据心理学者荣格所提的“人格特质”理论,围绕心智结构,以特质测评为基础,让同学们运用人格特质的分析了解不同人群之间的思维差异,学会根据不同特质的人才采取不同的行为沟通模式,确定其在创业团队的角色和地位,从而更好的促进创业团队建设及创业团队能力提升。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img16.jpg',
+						count: '11390',
+						className: '行业创业实践',
+						intro: '行业创业实践'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img17.jpg',
+						count: '1639',
+						className: '创业就业指导',
+						intro: '本课程是公共基础课和必修课。课程根据国务院、广东省教育厅关于高校双创教育改革实施意见的有关通知精神,结合提升学生就业、创业竞争力和发展力需求,突出就业知识与技能、创业发展及职业素养的培养。通过本课程的学习,能够使学生掌握     的基础知识,初步具备就业与创业的核心能力;并为学生在职业发展的阶段特点;较为清晰地认识自己的个性特性、职业特性;个性创业素养、个体创业能力等方面提供必要的知识。为个人的生涯发展和社会的创新推动、提高自身就业竞争力,展现良好职业素养,为今后职业发展与事业发展拓展通道。'
+					},
+					{
+						img: 'http://43.139.158.220:5007/img/static/mine/img18.jpg',
+						count: '2129',
+						className: '营销管理实务与创新',
+						intro: '课程基于线上线下协同的教学方式,注重提升学生自主学习、市场运营创新能力的培养,不断蓄积其专业底蕴;通过学练一体的教学模式,实现对学生营销技术素养与职业人格的协同培养,建立面向复杂市场的商业逻辑。课程线上部分共24学时,开课一学期 ;线下部分一般以24~36学时为宜。'
+					},
+				]
+			};
+		},
+		computed: {
+			dynamicStyle() {
+				return {
+					height: `calc(100vh - 10px)`
+				};
+			}
+		},
+		methods: {
+			swipeIndex(index) {
+				this.current = index.detail.current;
+			},
+			phoneLogin() {
+				this.current = 0
+			},
+			accountLogin() {
+				this.current = 1
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		height: 100vh;
+		width: 750rpx;
+		background-color: #ffffff;
+
+		.activeTitle {
+			position: fixed;
+			z-index: 9;
+			width: 100%;
+			height: 60px;
+			background-color: white;
+			border-top: 1px solid lightgray;
+			display: flex;
+			justify-content: center;
+			padding: 0 30px;
+			font-size: 34rpx;
+
+			.test {
+				// height: ;
+			}
+
+			.active {
+				position: relative;
+				font-weight: bold;
+
+				.yun {
+					width: 80rpx;
+					height: 0rpx;
+					position: absolute;
+					left: 50%;
+					top: 65%;
+					transform: translate(-50%, -50%);
+					box-shadow: 0px 0px 10px 2px #4a97f2;
+				}
+			}
+
+			.left {
+				width: 50%;
+				height: 100%;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+
+			.right {
+				width: 50%;
+				height: 100%;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+		}
+
+		.scroll-view-height {
+			// height: 200vmin;
+			height: 80vh;
+
+			// height: auto;
+			.activeClass {
+				width: 100%;
+
+				// height: auto;
+				.classBox {
+					display: flex;
+					justify-content: space-between;
+					padding: 0 47rpx;
+					background-color: #fff;
+					height: 144rpx;
+
+					.classLeft {
+						display: flex;
+						height: 100%;
+
+						.class_Img {
+							display: flex;
+							align-items: center;
+							flex-grow: 1;
+
+							image {
+								width: 80rpx;
+								height: 80rpx;
+								border-radius: 10rpx;
+							}
+						}
+
+						.class_Text {
+							display: flex;
+							justify-content: center;
+							flex-grow: 2;
+							flex-direction: column;
+							margin-left: 20rpx;
+
+							.text_Title {
+								display: flex;
+								margin-bottom: 6px;
+								align-items: center;
+
+								text {
+									&:last-child {
+										color: #000;
+										font-size: 28rpx;
+										font-weight: 600;
+									}
+
+									&.manage {
+										// border: 1px #00b2b6 solid;
+										// font-size: 10px;
+										// display: flex;
+										// white-space: nowrap;
+										// justify-content: center;
+										// align-items: center;
+										// padding: 1px 6px;
+										// border-radius: 3px;
+										// margin-right: 10rpx;
+										// color: #00b2b6;
+										// margin-left: 6px;
+										// font-weight: 600;
+										border: 1px #00b2b6 solid;
+										font-size: 20rpx;
+										width: 64rpx;
+										display: flex;
+										height: 32rpx;
+										white-space: nowrap;
+										justify-content: center;
+										align-items: center;
+										// padding: 4px 12px 4px 12px;
+										border-radius: 5rpx;
+										margin-right: 10rpx;
+										color: #00b2b6;
+									}
+								}
+							}
+
+							.text_Intro {
+								display: flex;
+
+								text {
+									font-size: 24rpx;
+									font-weight: 400;
+									color: rgb(191, 191, 191);
+									width: 90%;
+									letter-spacing: 2rpx;
+									display: -webkit-box;
+									word-break: break-all;
+									text-overflow: ellipsis;
+									overflow: hidden;
+									-webkit-box-orient: vertical;
+									-webkit-line-clamp: 1;
+									/*设置 需要显示的行数*/
+
+									// margin-left: 6px;
+								}
+							}
+						}
+					}
+
+					.classright {
+						display: flex;
+						height: 100%;
+						align-items: center;
+
+						image {
+							width: 38rpx;
+							height: 42rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 292 - 0
pages/publish/publish.vue

@@ -0,0 +1,292 @@
+<template>
+	<view class="publish">
+		<statusBar :item="navBarData"></statusBar>
+		
+		<view class="" style="background-color: #ffffff;">
+			
+		
+		<view class="pubTitle">
+			<input class="title" style="" placeholder="活动标题" />
+		</view>	
+		
+		<view class="pubMid">
+			<view class="mid">
+				<view class="txt">
+					<textarea class="txtClass" value="" placeholder="请输入内容" />
+				</view>
+				<view class="pic">
+					<view class="picCont">
+						<image src="../../static/publish/photo.png" mode="aspectFill"></image>
+						<view style="font-size: 24rpx;line-height: 40rpx;font-weight: 400;color: rgba(0, 0, 0, 0.6);">
+							添加图片
+						</view>
+						<view style="font-size: 20rpx;line-height: 36rpx;font-weight: 400;color: rgba(0, 0, 0, 0.4);">
+							(0/9)
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								招募人数
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动形式
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+			
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动地址
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+			
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动时间
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+			
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动费用
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+			
+				</view>
+			</view>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								报名截止
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+			
+				</view>
+			</view>
+			
+			
+		</view>
+			<view class="publish_now">
+				<button class="btn">立即发布</button>
+			</view>
+			<view class="liu">
+				
+			</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData:{
+					title:'发布', //导航栏标题
+					btn:1        //是否显示返回按钮 0不显示  1 显示
+				},
+			};
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.publish{
+		.liu{
+			//留白
+			width: 750rpx;
+			height: 68rpx;
+			position: absolute;
+			bottom: 0;
+			background-color: #ffffff;
+		}
+		.pubTitle{
+			width: 750rpx;
+			height: 96rpx;
+			padding: 24rpx 30rpx 0 30rpx;
+			.title{
+				font-size: 32rpx;
+				line-height: 48rpx;
+				font-weight: 500;
+			}
+		}
+		.pubMid{
+			width: 750rpx;
+			// height: 504rpx;
+			padding: 24rpx 30rpx 0 30rpx;
+			// background-color: #8BBEFF;
+			.mid{
+				width: 690rpx;
+				height: 440rpx;
+				// background-color: #f2f2f2;
+				.txt{
+					width: 690rpx;
+					height: 192rpx;
+					.txtClass{
+						width: 100%;
+						height: 100%;
+						font-size: 28rpx;
+						font-weight: 400;
+						line-height: 48rpx;
+					}
+				}
+				.pic{
+					width: 224rpx;
+					height: 224rpx;
+					background-color: rgba(242, 242, 242, 1);
+					display: flex;
+					
+					justify-content: center;
+					align-items: center;
+					.picCont{
+						display: flex;
+						flex-direction: column;
+						justify-content: center;
+						align-items: center;
+						image{
+							width: 56rpx;
+							height: 66rpx;
+						}
+					}
+				}
+			}
+		}
+		
+		
+		// background-color: #fff;
+		height: 100vh;
+		
+		
+		.textCont{
+			padding: 16px;
+		}
+		.addPhoto{
+			background-color: #f2f2f2;
+			width: 224rpx;
+			height: 224rpx;
+			display: flex;
+			color: #616161;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
+			margin-left: 30rpx;
+			image{
+				width: 50px;
+				height: 50px;
+				// margin-left: 48px;
+			}
+			.photo{
+				color: #000000A3;
+				// padding-left: 44px;
+				// font-size: 14px;
+			}
+			.num{
+				color:  #919191;
+				// padding-left: 56px;
+				// font-size: 14px;
+			}
+			
+		}
+		.userOptionsBox {
+			
+			width: 750rpx;
+			height: 96rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.optionsItemBox {
+				width: 690rpx;
+				.optionItem {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					.option_left {
+						display: flex;
+						align-items: center;
+						font-size: 28rpx;
+						line-height: 48rpx;
+						font-weight: 400;
+					}
+		
+					.option_right {
+						height: 40rpx;
+		
+						image {
+							height: 32rpx;
+							width: 32rpx;
+						}
+					}
+				}
+			}
+		}
+		.publish_now{
+			position: absolute;
+			bottom: 100rpx;
+			display: flex;
+			width: 750rpx;
+			justify-content: center;
+			
+			.btn{
+				width: 432rpx;
+				height: 88rpx;
+				background-color: #8BBEFF;
+				color: #fff;
+				margin-top: 20px;
+			}
+		}
+		
+	}
+</style>

+ 383 - 0
pages/resource/resource.vue

@@ -0,0 +1,383 @@
+<template>
+	<view class="resource">
+		<statusBar :item="navBarData"></statusBar>
+		<view class="search">
+			<view class="inpSer">
+				<!-- <input type="text" class="inpTxt" placeholder="搜索"> -->
+				<input type="text" class="inpTxt" placeholder-class="fwb-font" placeholder="请输入文本" />
+				<view class="ico">
+					<image src="http://43.139.158.220:5007/img/static/yym/union.png" style="width: 28rpx;height: 28rpx;"
+						mode="aspectFill"></image>
+					<!-- <text class="fwb-font">搜索</text> -->
+				</view>
+			</view>
+			<!-- <view class="inpSer">
+				
+			</view> -->
+			<!-- <uni-search-bar bgColor="#f0f2f5" placeholder="搜索" cancelButton="none" clearButton="none"></uni-search-bar> -->
+		</view>
+
+		<view class="top">
+			<view class="left" @click="phoneLogin" :class="current==0?info1:info2">
+				<text class="">资源库</text>
+				<view v-if="current==0" class="yun">
+					<image src="http://43.139.158.220:5007/img/static/yym/Ellipse 10.png" mode="aspectFill"></image>
+				</view>
+			</view>
+			<view class="right" @click="accountLogin" :class="current==1?info1:info2">
+				<text class="">精品慕课</text>
+				<view v-if="current==1" class="yun">
+					<image src="http://43.139.158.220:5007/img/static/yym/Ellipse 10.png" mode="aspectFill"></image>
+				</view>
+			</view>
+		</view>
+
+		<swiper class="scroll-view-height" :style="{height:swiper+'px'}" @change="swipeIndex" :current="current"
+			:duration="300">
+			<swiper-item>
+				<scroll-view scroll-y="true" :style="{height:swiper+'px'}">
+					<view class="contBox">
+						<!-- <view class="cont" v-for="i in 10"> -->
+						<view class="cont" v-for="(item, index) in classList" :index="index" :key="index">
+
+							<image class="image" :src="item.url" mode="aspectFill" />
+							<view class="tit btn-font">{{ item.className }}</view>
+							<view class="teacher fz-font">{{ item.th_name }}</view>
+						</view>
+					</view>
+				</scroll-view>
+
+			</swiper-item>
+
+			<swiper-item>
+				<scroll-view scroll-y="true" :style="{height:swiper+'px'}">
+					<view class="contBox">
+						<!-- <view class="cont" v-for="i in 10"> -->
+						<view class="cont" v-for="(item, index) in classList2" :index="index" :key="index">
+
+							<image class="image" :src="item.url" mode="aspectFill" />
+							<view class="tit btn-font">{{ item.className }}</view>
+							<view class="teacher fz-font">{{ item.th_name }}</view>
+						</view>
+					</view>
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData: {
+					title: '资源库',
+					btn: 0
+				},
+				current: 0, //登录方式切换
+				info1: 'info1', //类名
+				info2: 'info2',
+				swiper: 0,
+
+				classList: [{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img5.jpg',
+						className: '创新思维',
+						th_name: '主讲教师: 吴伟'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img4.jpg',
+						className: '打造无敌商业计划书',
+						th_name: '主讲教师: '
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img6.jpg',
+						className: '创业经营',
+						th_name: '主讲教师: 黄伟贤'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img1.jpg',
+						className: '创业者管理能力训练基础',
+						th_name: '主讲教师: 李芳'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img3.jpg',
+						className: '创业基础',
+						th_name: '主讲教师: 杨哲气'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img2.jpg',
+						className: '创业融资实务',
+						th_name: '主讲教师: 郑修'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img8.jpg',
+						className: '精益创业方法论',
+						th_name: '主讲教师: 陈旭华'
+					}, {
+						url: 'http://43.139.158.220:5007/img/static/pubic/img6.jpg',
+						className: '创业经营',
+						th_name: '主讲教师: 黄伟贤'
+					},
+
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img7.jpg',
+						className: '跨境电商创业',
+						th_name: '主讲教师: 陈旭华'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img8.jpg',
+						className: '精益创业方法论',
+						th_name: '主讲教师: 陈旭华'
+					},
+
+
+				],
+				classList2: [
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img1.jpg',
+						className: '创业者管理能力训练基础',
+						th_name: '主讲教师: 李芳'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img3.jpg',
+						className: '创业基础',
+						th_name: '主讲教师: 杨哲气'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img2.jpg',
+						className: '创业融资实务',
+						th_name: '主讲教师: 郑修'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img5.jpg',
+						className: '创新思维',
+						th_name: '主讲教师: 吴伟'
+					},
+					
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img7.jpg',
+						className: '跨境电商创业',
+						th_name: '主讲教师: 陈旭华'
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img4.jpg',
+						className: '打造无敌商业计划书',
+						th_name: '主讲教师: '
+					},
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img6.jpg',
+						className: '创业经营',
+						th_name: '主讲教师: 黄伟贤'
+					},
+					
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img8.jpg',
+						className: '精益创业方法论',
+						th_name: '主讲教师: 陈旭华'
+					}, {
+						url: 'http://43.139.158.220:5007/img/static/pubic/img6.jpg',
+						className: '创业经营',
+						th_name: '主讲教师: 黄伟贤'
+					},
+
+					{
+						url: 'http://43.139.158.220:5007/img/static/pubic/img8.jpg',
+						className: '精益创业方法论',
+						th_name: '主讲教师: 陈旭华'
+					},
+
+
+				],
+			};
+		},
+		methods: {
+			toggleActive1() {
+				this.isActive1 = true;
+				this.isActive2 = false;
+				this.tab = true;
+			},
+			toggleActive2() {
+				this.isActive1 = false;
+				this.isActive2 = true;
+				this.tab = false;
+			},
+			swipeIndex(index) {
+				this.current = index.detail.current;
+			},
+			phoneLogin() {
+				this.current = 0
+			},
+			accountLogin() {
+				this.current = 1
+			},
+		},
+		onReady() {
+
+		},
+		onLoad() {
+			// console.log(this.screenHeight);
+			// console.log(this.navheight);
+			console.log(this.tabBarHeight);
+			if (this.navheight) {
+				this.swiper = this.screenHeight - this.navheight - 140
+			} else {
+				this.swiper = this.screenHeight - this.customBar - 150
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.resource {
+		.search {
+			background-color: #ffffff;
+			position: relative;
+			display: flex;
+			width: 750rpx;
+			height: 88rpx;
+			justify-content: center;
+			align-items: center;
+
+			// background-color: rebeccapurple;
+			.inpSer {
+				width: 690rpx;
+				height: 65rpx;
+				margin: auto;
+				background-color: rgba(240, 242, 245, 1);
+				border-radius: 5rpx;
+				color: rgba(0, 0, 0, 0.26);
+				position: relative;
+
+				.inpTxt {
+					// padding: 0px, 12rpx, 0px, 12rpx;
+					color: #000;
+					padding-left: 60rpx;
+					height: 100%;
+					width: 100%;
+				}
+
+				input::placeholder {
+					color: #000;
+				}
+
+				.ico {
+					position: absolute;
+					top: 50%;
+					left: 20rpx;
+					transform: translate(0, -50%);
+					display: flex;
+					align-items: center;
+
+					image {
+						margin-right: 10rpx;
+					}
+				}
+			}
+		}
+
+		.top {
+			// width: 500rpx;
+			display: flex;
+			justify-content: space-between;
+			margin: auto;
+			background-color: #ffffff;
+			padding: 10px 150rpx;
+
+			// margin-bottom: 40px;
+			// font-size: 18px;
+			// padding-top: 0;
+			.info1 {
+				font-weight: bold !important;
+				position: relative;
+				color: rgba(0, 0, 0, 0.8);
+				font-size: 34rpx;
+				line-height: 48rpx;
+				width: 136rpx;
+				height: 48rpx;
+				text-align: center;
+
+				// font-family: PingFang SC;
+				// font-family: \9ed1\4f53;
+				.yun {
+					width: 134rpx;
+					height: 32rpx;
+					position: absolute;
+					left: 0;
+					bottom: -10rpx;
+
+					// transform: translate(-50%,0%);
+					// box-shadow: 0px 10rpx 30rpx 6rpx #4a97f2;
+					image {
+						width: 100%;
+						height: 100%;
+					}
+				}
+			}
+
+			.info2 {
+				color: rgba(0, 0, 0, 0.6);
+				font-size: 34rpx;
+				font-weight: 400;
+				line-height: 48rpx;
+				width: 136rpx;
+				height: 48rpx;
+				text-align: center;
+				font-family: 微软雅黑;
+
+			}
+		}
+
+		.scroll-view-height {
+
+			// background-color: ;
+			// height: 68vh;
+			// background-color: red;
+			// padding-bottom: 50px;
+			.contBox {
+				width: 100%;
+				padding: 10px 30rpx;
+				// height: 100%;
+				display: flex;
+				flex-wrap: wrap;
+				justify-content: space-between;
+				// background-color: greenyellow;
+				margin-bottom: 50px;
+
+				.cont {
+					background-color: #ffffff;
+					width: 332rpx;
+					padding: 20rpx 15rpx;
+					border-radius: 10px;
+					margin-bottom: 20rpx;
+
+					image {
+						width: 300rpx;
+						height: 170rpx;
+						border-radius: 10rpx;
+					}
+
+					.tit {
+						width: 257rpx;
+						margin: 10rpx 0;
+						// height: 80rpx;
+						font-weight: bold;
+						white-space: normal;
+						display: -webkit-box;
+						word-break: break-all;
+						text-overflow: ellipsis;
+						overflow: hidden;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 2;
+						/*设置 需要显示的行数*/
+					}
+
+					.teacher {
+						color: #999999;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 301 - 0
pages/teachingDetail/teachingDetail.vue

@@ -0,0 +1,301 @@
+<template>
+	<!-- 教研室详情 -->
+	<view class="teachingDetail">
+		<statusBar :item="navbar"></statusBar>
+		
+		<!-- 顶部 -->
+		<view class="backPic">
+			<image src="http://43.139.158.220:5007/img/static/yym/Rectangle 40.png" mode="aspectFill"></image>
+			<view class="card">
+				<view class="cardTop">
+					<view class="title three-font">xxxx虚拟教研教室</view>
+					<view class="icons">
+						<view class="icon">
+							<image src="http://43.139.158.220:5007/img/static/yym/Star 1 (Stroke) (2).png" style="width: 42rpx;height: 40rpx;" mode="aspectFill"></image>
+						</view>
+						<view class="icon">
+							<image src="http://43.139.158.220:5007/img/static/yym/Vector (Stroke) (1).png" style="width: 38rpx;height: 42rpx;" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+				<view class="col fz-font">
+					成立日期:2023.5.12
+				</view>
+				<view class="col fz-font">
+					人数:23人
+				</view>
+				<view class="tag col">
+					<view class="fz-font">教研标签:</view>
+					<view class="" style="display: flex;">
+						<view class="bqZ-font" style="color: #00b2b6; border: 1px #00b2b6 solid;padding: 2rpx 10rpx;border-radius: 5rpx;font-weight: 600;">
+							类型标签
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 两个大资料文件 -->
+		<view class="teaData">
+			<view class="cla">
+				<view class="tit1 three-font">课程资料</view>
+				<view class="tit2 fz-font">教研室专属课程</view>
+			</view>
+			<view class="cla2">
+				<view class="tit1 titColor three-font">资源文件</view>
+				<view class="tit2 titColor fz-font">教研室专属资源</view>
+			</view>
+		</view>
+		
+		<!-- 教研室详情 -->
+		<view class="" style="padding: 0 30rpx;">
+			<detailBlock></detailBlock>
+		</view>
+		
+		<!-- 创建者用户名 -->
+		<view style="padding: 0 30rpx;">
+			<view class="creator">
+				<image src="http://43.139.158.220:5007/img/static/mine/Avatar.png" mode="aspectFill"></image>
+				<view class="creName btn-font">
+					创建者用户名
+				</view>
+			</view>
+		</view>
+		
+		<!-- 当前成员 -->
+		<view style="padding: 0 30rpx;">
+			<view class="member">
+				<view class="memberTop">
+					<view class="btn-font" >当前成员</view>
+					<view class="fz-font" style="color: #666666;display: flex;align-items: center;" @click="gotoMorePer">
+						查看更多
+						<uni-icons type="right"></uni-icons>
+					</view>
+				</view>
+				
+				<view class="pers">
+					<view class="per" v-for="i in 6">
+						<image src="http://43.139.158.220:5007/img/static/mine/Avatar.png" mode="aspectFill"></image>
+						<view class="perName fz-font">
+							袁一鸣
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		
+		<!-- 申请加入 -->
+		<view class="btnBlock">
+			<button class="btn zw-font" @click="applyAdd">申请加入</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navbar:{
+					title:'教研室详情',
+					btn:1
+				}
+			};
+		},
+		methods:{
+			gotoMorePer(){
+				uni.navigateTo({
+					url:'/pages/dy/dy'
+				})
+			},
+			applyAdd(){
+				uni.navigateTo({
+					url:'/pages/jys/jys'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.teachingDetail{
+		padding-bottom: 80px;
+		.backPic{
+			width: 750rpx;
+			position: relative;
+			image{
+				width: 100%;
+				display: block;
+			}
+			.card{
+				position: absolute;
+				width: 690rpx;
+				height: 256rpx;
+				bottom: 10px;
+				left: 50%;
+				padding: 30rpx;
+				background-color: rgba(0, 0, 0, 0.26);
+				border-radius: 10px;
+				transform: translate(-50%,0);
+				border: 1rpx #667870 solid;
+				color: #ffffff;
+				// display: flex;
+				// flex-direction: column;
+				// justify-content: space-between;
+				.cardTop{
+					display: flex;
+					justify-content: space-between;
+					.title{
+						// padding-bottom: 20rpx;
+						margin-bottom: 20rpx;
+						width: 506rpx;
+						height: 48rpx;
+						color: #ffffff;
+						font-family: PingFang SC;
+						// font-weight: 550;
+						overflow: hidden;
+						text-overflow:ellipsis;
+						white-space: nowrap;
+					}
+					.icons{
+						flex: 1;
+						display: flex;
+						align-items: center;
+						justify-content: space-between;
+						.icon{
+							width: 48rpx;
+							height: 48rpx;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+						}
+					}
+					
+				}
+				.col{
+					margin-bottom: 10rpx;
+					font-weight: 100;
+					color: #f0edea;
+					// font-size: 30rpx;
+				}
+				.tag{
+					display: flex;
+				}
+			}
+			// background-image: url(http://43.139.158.220:5007/img/static/resource/jqr.png);
+		}
+		
+		.teaData{
+			width: 750rpx;
+			display: flex;
+			padding:20rpx 30rpx;
+			justify-content: space-between;
+			// padding: 20px 0;
+			.cla{
+				width: 49%;
+				background: linear-gradient(to bottom , #fcfcff 30%, #e8ecfd 100%);
+				border-radius: 10px;
+				padding: 35rpx 30rpx;
+				color: #424f85;
+				.tit1{
+					// font-size: 38rpx;
+					margin-bottom: 10rpx;
+					font-weight: bold;
+				}
+				.tit2{
+					// font-size: 22px;
+					// font-size: 30rpx;
+					// margin-bottom: 5px;
+				}
+			}
+			.cla2{
+				width: 45%;
+				background: linear-gradient(to bottom , #fcfcff 10%, #fef3ea 100%);
+				border-radius: 10px;
+				padding: 35rpx 30rpx;
+				color: #855e42;
+				.tit1{
+					// font-size: 38rpx;
+					margin-bottom: 10rpx;
+					font-weight: bold;
+				}
+				.tit2{
+					// font-size: 22px;
+					// margin-bottom: 5px;
+					// font-size: 30rpx;
+				}
+			}
+		}
+		
+		
+		.creator{
+			display: flex;
+			padding: 30rpx;
+			background-color: #ffffff;
+			align-items: center;
+			margin-top: 20rpx;
+			border-radius: 10px;
+			image{
+				width: 96rpx;
+				height: 96rpx;
+				border-radius: 50%;
+				margin-right: 20rpx;
+			}
+			.creName{
+				font-weight: bold;
+			}
+		}
+		
+		.member{
+			background-color: #ffffff;
+			margin-top: 20rpx;
+			padding: 30rpx;
+			border-radius: 10px;
+			.memberTop{
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 10px;
+			}
+				
+				.pers{
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					.per{
+						display: flex;
+						flex-direction: column;
+						image{
+							width: 72rpx;
+							height: 72rpx;
+							border-radius: 50%;
+						}
+						.perName{
+							// font-size: 14px;
+							text-align: center;
+						}
+					}
+					
+				}
+				
+		}
+		
+		.btnBlock{
+			position: fixed;
+			bottom: 0;
+			width: 750rpx;
+			background-color: #ffffff;
+			// padding: 20px 0;
+			padding: 2vh 0;
+			.btn{
+				width: 432rpx;
+				height: 88rpx;
+				font-weight: 500;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				margin: auto;
+				background-color: #0056a8;
+				color: #ffffff;
+			}
+		}
+	}
+</style>

+ 80 - 0
pages/teachingList/teachingList.vue

@@ -0,0 +1,80 @@
+<template>
+	<view class="teachingDetail">
+		<statusBar :item="navbarBata"></statusBar>
+		<!-- <teaching-case></teaching-case> -->
+		<view class="" style="padding-bottom: 50rpx;">
+			<teaching-case v-for="(item,index) in classList" :key="index" :classList='item'></teaching-case>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navbarBata: {
+					title: '教研室列表',
+					btn: 1
+				},
+				classList: [{
+										img: 'http://43.139.158.220:5007/img/static/mine/img1.jpg',
+										className: '创业者管理能力训练基础',
+										intro: '《创业者管理能力训练基础》通过管理学、营销学、财税理论、创业基础知识及创业操作实务的提炼,以专题化的形式面向高职类所有专业的学生。本课程一共有三大部分、七个专题。分别为:第一部分,一般管理者能力训练基础,四个专题,即自我管理能力训练、团队管理能力训练、社会关系管理能力训练与团队建设能力训练。第二部分,创业者重要能力的领悟与训练,二个专题,即成功创业者的智力要素、成功创业者商务能力的领悟与训练。第三部分是咖啡厅实践训练。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img2.jpg',
+										className: '创业融资实务',
+										intro: '本课程是创业管理专业、创业班的核心课程,根据专业培养目标的定位,主要面向创投机构服务专员岗位,培养该岗位应具备的相关创业融资知识和技能。课程主要采用“做中学”体验式的设计理念,引入真实项目进行“理实一体实战训练”。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img3.jpg',
+										className: '创业基础',
+										intro: '《创业基础》是一门面向高等院校学生与社会青年开设一门必修的基础理论和易于实际操作的创业综合基础课程。旨激发学员创业激情,增强创业意识,培养学员具备创业基础知识与基本能力,为大学生自主创业、拓展就业及开创事业等提供系统的理论与实践支持。是顺应新时代社会经济与高校教育发展的要求,以市场变化及其趋势为前提,从人才培养机理与中小企业成长规律的角度出发,结合教师多年创业教育与企业家人才培养成功经验,运用企业现代管理新观念,让学员掌握中小企业开办与管理全过程的理论和实务的一门创业综合基础课程。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img4.jpg',
+										className: '打造无敌商业计划书',
+										intro: '暂无简介'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img5.jpg',
+										className: '创新思维',
+										intro: '将创新思维意识与方法技能双元结合,综合微课学习与创造力实践训练融合演进,实现在线学习与配套教材混合驱动。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+										className: '创业经营',
+										intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img6.jpg',
+										className: '创业经营',
+										intro: '课程主要讲授初创企业负责人如何展开科学经营的基本知识和技能,通过“创业者说创业”、“经营原理讲解”、“企业家说经营”、“经营实训练习”四个板块,帮助学员了解创业的意义,树立正确的创业理念和经营意识,提高社会责任感、提升创业能力,培养企业家精神,促进质量创业。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img7.jpg',
+										className: '跨境电商创业',
+										intro: '跨境电商所有平台中利润最高、要求最高的就是亚马逊平台。 跨境电商企业需求最多的也是亚马逊运营人才。 《跨境电商创业》课程汇聚了一批有丰富亚马逊实战经验的高校创业导师、企业大卖家和大学生创业者,以经验分享、后台实操演示和创业案例剖析等形式,手把手教您亚马逊平台实操运营,带您开启跨境电商创业之路。'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img8.jpg',
+										className: '精益创业方法论',
+										intro: '暂无简介'
+									},
+									{
+										img: 'http://43.139.158.220:5007/img/static/mine/img9.png',
+										className: '互联网营销策划实务',
+										intro: '课程开发以创业就业能力培养为导向;以培养学生职业生涯发展、专业技能、自主学习与创新能力、职业素质为指导。使课程实现“项目化、任务化、碎片化、实战化”。便于学生利用零碎时间、移动设备学习。课程配有成套微课程视频外,还提供全套的教学与自学材料的国家及省级精品在线开放课程。'
+									},
+								],
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+	.teachingDetail {
+		// background-color: red;
+	}
+</style>

+ 29 - 0
project.config.json

@@ -0,0 +1,29 @@
+{
+  "compileType": "miniprogram",
+  "setting": {
+    "coverView": true,
+    "es6": true,
+    "postcss": true,
+    "minified": true,
+    "enhance": true,
+    "showShadowRootInWxmlPanel": true,
+    "packNpmRelationList": [],
+    "babelSetting": {
+      "ignore": [],
+      "disablePlugins": [],
+      "outputPath": ""
+    },
+    "ignoreUploadUnusedFiles": true
+  },
+  "condition": {},
+  "editorSetting": {
+    "tabIndent": "insertSpaces",
+    "tabSize": 2
+  },
+  "libVersion": "3.1.2",
+  "packOptions": {
+    "ignore": [],
+    "include": []
+  },
+  "appid": "wx9933d9929a941e56"
+}

+ 7 - 0
project.private.config.json

@@ -0,0 +1,7 @@
+{
+  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+  "projectname": "teaching-uniapp",
+  "setting": {
+    "compileHotReLoad": true
+  }
+}

BIN
static/activity/bg1.png


BIN
static/activity/bg2.png


BIN
static/jys/jys.png


BIN
static/logo.png


+ 6 - 0
static/message/notice.svg

@@ -0,0 +1,6 @@
+<svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="public/eg">
+<rect id="Rectangle 1" width="96" height="96" rx="48" fill="#FFA338" fill-opacity="0.1"/>
+<path id="Vector" d="M51.9851 68.0684C53.2018 68.0684 54.1881 69.0412 54.1881 70.2412V70.8271C54.1881 72.0272 53.2018 73 51.9851 73H44.0644C42.8477 73 41.8614 72.0272 41.8614 70.8271V70.2412C41.8614 69.0412 42.8477 68.0684 44.0644 68.0684H51.9851ZM48.1485 23C49.3515 23 50.3267 23.9619 50.3267 25.1484L50.3269 27.7971C59.0203 28.9535 65.7228 36.3009 65.7228 45.1924V59.1816H70.797C72.0137 59.1816 73 60.1544 73 61.3545V61.9404C73 63.1405 72.0137 64.1133 70.797 64.1133H65.7228V64.2109H30.1287V64.1133H25.203C23.9863 64.1133 23 63.1405 23 61.9404V61.3545C23 60.1544 23.9863 59.1816 25.203 59.1816H30.1287V45.1924C30.1287 36.3347 36.7803 29.0093 45.4256 27.8105L45.4257 25.1484C45.4257 23.9619 46.401 23 47.604 23H48.1485Z" fill="#FFA338"/>
+</g>
+</svg>

+ 7 - 0
static/message/subscribe.svg

@@ -0,0 +1,7 @@
+<svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="public/eg">
+<rect id="Rectangle 1" width="96" height="96" rx="48" fill="#00B2B6" fill-opacity="0.1"/>
+<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M31.961 25C29.6109 25 27.7058 26.7614 27.7058 28.9342V69.1842C27.7058 69.8179 28.0631 70.4057 28.6486 70.7352C29.234 71.0647 29.9629 71.0882 30.5718 70.7972L47.9999 62.4658L65.4281 70.7972C66.0369 71.0882 66.7658 71.0647 67.3513 70.7352C67.9367 70.4057 68.294 69.8179 68.294 69.1842V28.9342C68.294 26.7614 66.389 25 64.0388 25H31.961Z" fill="#00B2B6"/>
+<path id="Vector (Stroke)" d="M48 36C49.1046 36 50 36.7959 50 37.7778V42.2222H55C56.1046 42.2222 57 43.0182 57 44C57 44.9818 56.1046 45.7778 55 45.7778H50V50.2222C50 51.2041 49.1046 52 48 52C46.8954 52 46 51.2041 46 50.2222V45.7778H41C39.8954 45.7778 39 44.9818 39 44C39 43.0182 39.8954 42.2222 41 42.2222H46V37.7778C46 36.7959 46.8954 36 48 36Z" fill="white"/>
+</g>
+</svg>

+ 6 - 0
static/message/system.svg

@@ -0,0 +1,6 @@
+<svg width="96" height="96" viewBox="0 0 96 96" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="public/eg">
+<rect id="Rectangle 1" width="96" height="96" rx="48" fill="#3081E8" fill-opacity="0.1"/>
+<path id="Vector" d="M50.0882 26.2081C49.2943 25.8447 48.3571 25.9647 47.6827 26.5097L34.68 37.0401L24.3076 36.9995C23.7112 36.9995 23.1366 37.2288 22.7142 37.6398C22.2882 38.0508 22.0471 38.6099 22.0471 39.1956L22 56.7938C22 57.3794 22.2356 57.9404 22.6599 58.3531C23.0822 58.7694 23.6587 59.0004 24.2605 59.0004H34.7472L47.6846 69.492C48.0979 69.8271 48.6146 70 49.1312 70C49.4575 70 49.7838 69.9312 50.0901 69.7919C50.8841 69.4303 51.3917 68.6541 51.3917 67.8004V28.1995C51.3917 27.3475 50.8842 26.5714 50.0883 26.208L50.0882 26.2081ZM58.8546 37.2076C57.7398 36.6943 56.4147 37.1618 55.8727 38.2413C55.3325 39.3243 55.8002 40.6348 56.906 41.1764C57.0492 41.2487 60.4354 42.9614 60.4354 47.8386C60.4354 53.0491 57.2685 54.7759 57.1634 54.8324C56.0467 55.3757 55.5936 56.6986 56.1519 57.7851C56.5507 58.5577 57.3465 59.0022 58.1785 59.0022C58.5175 59.0022 58.8637 58.9281 59.1864 58.7712C59.422 58.6547 64.9563 55.8678 64.9563 47.8386C64.9563 40.0916 59.103 37.3223 58.8546 37.2076ZM65.8935 30.7465C64.8511 30.0957 63.4681 30.392 62.7864 31.4045C62.1085 32.417 62.4058 33.7786 63.4426 34.4454C63.6873 34.6024 69.479 38.4424 69.479 48.0009C69.479 57.5805 63.923 61.4241 63.7018 61.5705C62.6613 62.246 62.3822 63.6095 63.0746 64.622C63.5097 65.257 64.2276 65.601 64.9581 65.601C65.3877 65.601 65.8246 65.4793 66.2107 65.2305C66.5279 65.026 74 60.0412 74 47.9991C74 35.9342 66.2252 30.9529 65.8935 30.7466V30.7465Z" fill="#3081E8"/>
+</g>
+</svg>

BIN
static/mine/Avatar.png


BIN
static/mine/Avatar_default.png


BIN
static/mine/Collect_default.png


BIN
static/mine/Collect_yellow.png


BIN
static/mine/Rectangle 1547.png


BIN
static/mine/Rectangle 23.png


BIN
static/mine/Union.png


BIN
static/mine/active.png


BIN
static/mine/activeclass.png


BIN
static/mine/arrow-right-blue.png


BIN
static/mine/arrow-right.png


BIN
static/mine/arrow-right_gray.png


BIN
static/mine/setting.png


BIN
static/mine/title_bg.png


BIN
static/publish/photo.png


+ 187 - 0
static/publish/publish.vue

@@ -0,0 +1,187 @@
+<template>
+	<view class="publish">
+		<statusBar :item="navBarData"></statusBar>
+		
+		<input class="activity_title" placeholder="活动标题" />
+		<textarea class="text" placeholder="请输入内容"></textarea>
+		
+		<template>
+			<u-upload>
+				<view class="addPhoto">
+					<image src="../../static/publish/photo.png" mode="aspectFill"></image>
+					<view class="photo">添加图片</view>
+					<view class="num">(0/9)</view>
+				</view>
+			</u-upload>
+		</template>
+
+		<template>
+			<view class="userOptionsBox">
+				<view class="optionsItemBox">
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								招募人数
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动形式
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动地址
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动时间
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								活动费用
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+					<view class="optionItem">
+						<view class="option_left">
+							<text class="option_text">
+								报名截止
+							</text>
+						</view>
+						<view class="option_right">
+							<image src="../../static/mine/arrow-right.png" mode="aspectFill"></image>
+						</view>
+					</view>
+				</view>
+			</view>
+		</template>
+		<template>
+			<view class="publish_now">
+				<button class="btn">立即发布</button>
+			</view>
+		</template>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				navBarData:{
+					title:'发布', //导航栏标题
+					btn:0        //是否显示返回按钮 0不显示  1 显示
+				},
+				customStyle:{
+					width:'300rpx',
+					height:'80rpx',
+					backgroundColor:'#8BBEFF'
+				}
+			};
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.publish{
+		height: 80%;
+		background-color: #fff;
+		.activity_title{
+			padding: 16px;
+		}
+		.text{
+			font-size: 13px;
+			padding: 16px;
+		}
+		.addPhoto{
+			image{
+				width: 50px;
+				height: 50px;
+				margin-left: 48px;
+			}
+			.photo{
+				color: #000000A3;
+				padding-left: 44px;
+				font-size: 14px;
+			}
+			.num{
+				color:  #000000A3;
+				padding-left: 56px;
+				font-size: 14px;
+			}
+			
+		}
+		.userOptionsBox {
+			
+			width: 100%;
+			margin-top: 10px;
+		
+			.optionsItemBox {
+				width: 100%;
+				margin-bottom: 10px;
+				padding: 5px 23px;
+		
+				.optionItem {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					height: 81rpx;
+					font-size: 24rpx;
+		
+					.option_left {
+						display: flex;
+						align-items: center;
+						height: 40rpx;
+					}
+		
+					.option_right {
+						height: 40rpx;
+		
+						image {
+							height: 32rpx;
+							width: 32rpx;
+						}
+					}
+				}
+			}
+		}
+		.publish_now{
+			display: flex;
+			.btn{
+				width: 420rpx;
+				height: 70rpx;
+				background-color: #8BBEFF;
+				color: #fff;
+				margin-top: 20px;
+				margin-bottom: 100rpx;
+				line-height: 70rpx;
+			}
+		}
+		
+	}
+</style>

BIN
static/resource/bg.png


BIN
static/resource/jqr.png


BIN
static/tabbar/Fill 1.png


BIN
static/tabbar/Fill 2.png


BIN
static/tabbar/hd.png


BIN
static/tabbar/hd2.png


BIN
static/tabbar/wd.png


BIN
static/tabbar/wd2.png


BIN
static/tabbar/xx.png


BIN
static/tabbar/xx2.png


BIN
static/tabbar/zyk.png


BIN
static/tabbar/zyk2.png


BIN
static/yym/Ellipse 10.png


BIN
static/yym/Rectangle 1918.png


BIN
static/yym/Rectangle 40.png


BIN
static/yym/Rectangle23.png


BIN
static/yym/Rectangle25.png


BIN
static/yym/Star 1 (Stroke) (2).png


BIN
static/yym/Star 1 (Stroke).png


BIN
static/yym/Vector (Stroke) (1).png


BIN
static/yym/Vector (Stroke) (2).png


BIN
static/yym/Vector (Stroke).png


BIN
static/yym/jia.png


BIN
static/yym/union.png


+ 10 - 0
uni.promisify.adaptor.js

@@ -0,0 +1,10 @@
+uni.addInterceptor({
+  returnValue (res) {
+    if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) {
+      return res;
+    }
+    return new Promise((resolve, reject) => {
+      res.then((res) => res[0] ? reject(res[0]) : resolve(res[1]));
+    });
+  },
+});

+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #4cd964;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#f8f8f8;
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:12px;
+$uni-font-size-base:14px;
+$uni-font-size-lg:16;
+
+/* 图片尺寸 */
+$uni-img-size-sm:20px;
+$uni-img-size-base:26px;
+$uni-img-size-lg:40px;
+
+/* Border Radius */
+$uni-border-radius-sm: 2px;
+$uni-border-radius-base: 3px;
+$uni-border-radius-lg: 6px;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 5px;
+$uni-spacing-row-base: 10px;
+$uni-spacing-row-lg: 15px;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 4px;
+$uni-spacing-col-base: 8px;
+$uni-spacing-col-lg: 12px;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:20px;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:26px;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:15px;

+ 13 - 0
uni_modules/uni-grid/changelog.md

@@ -0,0 +1,13 @@
+## 1.4.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid)
+## 1.3.2(2021-11-09) 
+- 新增 提供组件设计资源,组件样式调整
+## 1.3.1(2021-07-30)
+- 优化 vue3下事件警告的问题
+## 1.3.0(2021-07-13)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.2.4(2021-05-12)
+- 新增 组件示例地址
+## 1.2.3(2021-02-05)
+- 调整为uni_modules目录规范

+ 127 - 0
uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue

@@ -0,0 +1,127 @@
+<template>
+	<view v-if="width" :style="'width:'+width+';'+(square?'height:'+width:'')" class="uni-grid-item">
+		<view :class="{ 'uni-grid-item--border': showBorder,  'uni-grid-item--border-top': showBorder && index < column, 'uni-highlight': highlight }"
+		 :style="{'border-right-color': borderColor ,'border-bottom-color': borderColor ,'border-top-color': borderColor }"
+		 class="uni-grid-item__box" @click="_onClick">
+			<slot />
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * GridItem 宫格
+	 * @description 宫格组件
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=27
+	 * @property {Number} index 子组件的唯一标识 ,点击gird会返回当前的标识
+	 */
+	export default {
+		name: 'UniGridItem',
+		inject: ['grid'],
+		props: {
+			index: {
+				type: Number,
+				default: 0
+			}
+		},
+		data() {
+			return {
+				column: 0,
+				showBorder: true,
+				square: true,
+				highlight: true,
+				left: 0,
+				top: 0,
+				openNum: 2,
+				width: 0,
+				borderColor: '#e5e5e5'
+			}
+		},
+		created() {
+			this.column = this.grid.column
+			this.showBorder = this.grid.showBorder
+			this.square = this.grid.square
+			this.highlight = this.grid.highlight
+			this.top = this.hor === 0 ? this.grid.hor : this.hor
+			this.left = this.ver === 0 ? this.grid.ver : this.ver
+			this.borderColor = this.grid.borderColor
+			this.grid.children.push(this)
+			// this.grid.init()
+			this.width = this.grid.width
+		},
+		beforeDestroy() {
+			this.grid.children.forEach((item, index) => {
+				if (item === this) {
+					this.grid.children.splice(index, 1)
+				}
+			})
+		},
+		methods: {
+			_onClick() {
+				this.grid.change({
+					detail: {
+						index: this.index
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-grid-item {
+		/* #ifndef APP-NVUE */
+		height: 100%;
+		display: flex;
+		/* #endif */
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+	}
+
+	.uni-grid-item__box {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		width: 100%;
+		/* #endif */
+		position: relative;
+		flex: 1;
+		flex-direction: column;
+		// justify-content: center;
+		// align-items: center;
+	}
+
+	.uni-grid-item--border {
+		position: relative;
+		/* #ifdef APP-NVUE */
+		border-bottom-color: #D2D2D2;
+		border-bottom-style: solid;
+		border-bottom-width: 0.5px;
+		border-right-color: #D2D2D2;
+		border-right-style: solid;
+		border-right-width: 0.5px;
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		z-index: 0;
+		border-bottom: 1px #D2D2D2 solid;
+		border-right: 1px #D2D2D2 solid;
+		/* #endif */
+	}
+	.uni-grid-item--border-top {
+		position: relative;
+		/* #ifdef APP-NVUE */
+		border-top-color: #D2D2D2;
+		border-top-style: solid;
+		border-top-width: 0.5px;
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		border-top: 1px #D2D2D2 solid;
+		z-index: 0;
+		/* #endif */
+	}
+
+
+	.uni-highlight:active {
+		background-color: #f1f1f1;
+	}
+</style>

+ 142 - 0
uni_modules/uni-grid/components/uni-grid/uni-grid.vue

@@ -0,0 +1,142 @@
+<template>
+	<view class="uni-grid-wrap">
+		<view :id="elId" ref="uni-grid" class="uni-grid" :class="{ 'uni-grid--border': showBorder }" :style="{ 'border-left-color':borderColor}">
+			<slot />
+		</view>
+	</view>
+</template>
+
+<script>
+	// #ifdef APP-NVUE
+	const dom = uni.requireNativePlugin('dom');
+	// #endif
+
+	/**
+	 * Grid 宫格
+	 * @description 宫格组件
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=27
+	 * @property {Number} column 每列显示个数
+	 * @property {String} borderColor 边框颜色
+	 * @property {Boolean} showBorder 是否显示边框
+	 * @property {Boolean} square 是否方形显示
+	 * @property {Boolean} Boolean 点击背景是否高亮
+	 * @event {Function} change 点击 grid 触发,e={detail:{index:0}},index 为当前点击 gird 下标
+	 */
+	export default {
+		name: 'UniGrid',
+		emits:['change'],
+		props: {
+			// 每列显示个数
+			column: {
+				type: Number,
+				default: 3
+			},
+			// 是否显示边框
+			showBorder: {
+				type: Boolean,
+				default: true
+			},
+			// 边框颜色
+			borderColor: {
+				type: String,
+				default: '#D2D2D2'
+			},
+			// 是否正方形显示,默认为 true
+			square: {
+				type: Boolean,
+				default: true
+			},
+			highlight: {
+				type: Boolean,
+				default: true
+			}
+		},
+		provide() {
+			return {
+				grid: this
+			}
+		},
+		data() {
+			const elId = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}`
+			return {
+				elId,
+				width: 0
+			}
+		},
+		created() {
+			this.children = []
+		},
+		mounted() {
+			this.$nextTick(()=>{
+				this.init()
+			})
+		},
+		methods: {
+			init() {
+				setTimeout(() => {
+					this._getSize((width) => {
+						this.children.forEach((item, index) => {
+							item.width = width
+						})
+					})
+				}, 50)
+			},
+			change(e) {
+				this.$emit('change', e)
+			},
+			_getSize(fn) {
+				// #ifndef APP-NVUE
+				uni.createSelectorQuery()
+					.in(this)
+					.select(`#${this.elId}`)
+					.boundingClientRect()
+					.exec(ret => {
+						this.width = parseInt((ret[0].width - 1) / this.column) + 'px'
+						fn(this.width)
+					})
+				// #endif
+				// #ifdef APP-NVUE
+				dom.getComponentRect(this.$refs['uni-grid'], (ret) => {
+					this.width = parseInt((ret.size.width - 1) / this.column) + 'px'
+					fn(this.width)
+				})
+				// #endif
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-grid-wrap {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: column;
+		/* #ifdef H5 */
+		width: 100%;
+		/* #endif */
+	}
+
+	.uni-grid {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		// flex: 1;
+		flex-direction: row;
+		flex-wrap: wrap;
+	}
+
+	.uni-grid--border {
+		position: relative;
+		/* #ifdef APP-NVUE */
+		border-left-color: #D2D2D2;
+		border-left-style: solid;
+		border-left-width: 0.5px;
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		z-index: 1;
+		border-left: 1px #D2D2D2 solid;
+		/* #endif */
+	}
+</style>

+ 86 - 0
uni_modules/uni-grid/package.json

@@ -0,0 +1,86 @@
+{
+  "id": "uni-grid",
+  "displayName": "uni-grid 宫格",
+  "version": "1.4.0",
+  "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "九宫格",
+    "表格"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss","uni-icons"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 11 - 0
uni_modules/uni-grid/readme.md

@@ -0,0 +1,11 @@
+
+
+## Grid 宫格
+> **组件名:uni-grid**
+> 代码块: `uGrid`
+
+
+宫格组件。
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 22 - 0
uni_modules/uni-icons/changelog.md

@@ -0,0 +1,22 @@
+## 1.3.5(2022-01-24)
+- 优化 size 属性可以传入不带单位的字符串数值
+## 1.3.4(2022-01-24)
+- 优化 size 支持其他单位
+## 1.3.3(2022-01-17)
+- 修复 nvue 有些图标不显示的bug,兼容老版本图标
+## 1.3.2(2021-12-01)
+- 优化 示例可复制图标名称
+## 1.3.1(2021-11-23)
+- 优化 兼容旧组件 type 值
+## 1.3.0(2021-11-19)
+- 新增 更多图标
+- 优化 自定义图标使用方式
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
+## 1.1.7(2021-11-08)
+## 1.2.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范

+ 1169 - 0
uni_modules/uni-icons/components/uni-icons/icons.js

@@ -0,0 +1,1169 @@
+export default {
+  "id": "2852637",
+  "name": "uniui图标库",
+  "font_family": "uniicons",
+  "css_prefix_text": "uniui-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "25027049",
+      "name": "yanse",
+      "font_class": "color",
+      "unicode": "e6cf",
+      "unicode_decimal": 59087
+    },
+    {
+      "icon_id": "25027048",
+      "name": "wallet",
+      "font_class": "wallet",
+      "unicode": "e6b1",
+      "unicode_decimal": 59057
+    },
+    {
+      "icon_id": "25015720",
+      "name": "settings-filled",
+      "font_class": "settings-filled",
+      "unicode": "e6ce",
+      "unicode_decimal": 59086
+    },
+    {
+      "icon_id": "25015434",
+      "name": "shimingrenzheng-filled",
+      "font_class": "auth-filled",
+      "unicode": "e6cc",
+      "unicode_decimal": 59084
+    },
+    {
+      "icon_id": "24934246",
+      "name": "shop-filled",
+      "font_class": "shop-filled",
+      "unicode": "e6cd",
+      "unicode_decimal": 59085
+    },
+    {
+      "icon_id": "24934159",
+      "name": "staff-filled-01",
+      "font_class": "staff-filled",
+      "unicode": "e6cb",
+      "unicode_decimal": 59083
+    },
+    {
+      "icon_id": "24932461",
+      "name": "VIP-filled",
+      "font_class": "vip-filled",
+      "unicode": "e6c6",
+      "unicode_decimal": 59078
+    },
+    {
+      "icon_id": "24932462",
+      "name": "plus_circle_fill",
+      "font_class": "plus-filled",
+      "unicode": "e6c7",
+      "unicode_decimal": 59079
+    },
+    {
+      "icon_id": "24932463",
+      "name": "folder_add-filled",
+      "font_class": "folder-add-filled",
+      "unicode": "e6c8",
+      "unicode_decimal": 59080
+    },
+    {
+      "icon_id": "24932464",
+      "name": "yanse-filled",
+      "font_class": "color-filled",
+      "unicode": "e6c9",
+      "unicode_decimal": 59081
+    },
+    {
+      "icon_id": "24932465",
+      "name": "tune-filled",
+      "font_class": "tune-filled",
+      "unicode": "e6ca",
+      "unicode_decimal": 59082
+    },
+    {
+      "icon_id": "24932455",
+      "name": "a-rilidaka-filled",
+      "font_class": "calendar-filled",
+      "unicode": "e6c0",
+      "unicode_decimal": 59072
+    },
+    {
+      "icon_id": "24932456",
+      "name": "notification-filled",
+      "font_class": "notification-filled",
+      "unicode": "e6c1",
+      "unicode_decimal": 59073
+    },
+    {
+      "icon_id": "24932457",
+      "name": "wallet-filled",
+      "font_class": "wallet-filled",
+      "unicode": "e6c2",
+      "unicode_decimal": 59074
+    },
+    {
+      "icon_id": "24932458",
+      "name": "paihangbang-filled",
+      "font_class": "medal-filled",
+      "unicode": "e6c3",
+      "unicode_decimal": 59075
+    },
+    {
+      "icon_id": "24932459",
+      "name": "gift-filled",
+      "font_class": "gift-filled",
+      "unicode": "e6c4",
+      "unicode_decimal": 59076
+    },
+    {
+      "icon_id": "24932460",
+      "name": "fire-filled",
+      "font_class": "fire-filled",
+      "unicode": "e6c5",
+      "unicode_decimal": 59077
+    },
+    {
+      "icon_id": "24928001",
+      "name": "refreshempty",
+      "font_class": "refreshempty",
+      "unicode": "e6bf",
+      "unicode_decimal": 59071
+    },
+    {
+      "icon_id": "24926853",
+      "name": "location-ellipse",
+      "font_class": "location-filled",
+      "unicode": "e6af",
+      "unicode_decimal": 59055
+    },
+    {
+      "icon_id": "24926735",
+      "name": "person-filled",
+      "font_class": "person-filled",
+      "unicode": "e69d",
+      "unicode_decimal": 59037
+    },
+    {
+      "icon_id": "24926703",
+      "name": "personadd-filled",
+      "font_class": "personadd-filled",
+      "unicode": "e698",
+      "unicode_decimal": 59032
+    },
+    {
+      "icon_id": "24923351",
+      "name": "back",
+      "font_class": "back",
+      "unicode": "e6b9",
+      "unicode_decimal": 59065
+    },
+    {
+      "icon_id": "24923352",
+      "name": "forward",
+      "font_class": "forward",
+      "unicode": "e6ba",
+      "unicode_decimal": 59066
+    },
+    {
+      "icon_id": "24923353",
+      "name": "arrowthinright",
+      "font_class": "arrow-right",
+      "unicode": "e6bb",
+      "unicode_decimal": 59067
+    },
+		{
+		  "icon_id": "24923353",
+		  "name": "arrowthinright",
+		  "font_class": "arrowthinright",
+		  "unicode": "e6bb",
+		  "unicode_decimal": 59067
+		},
+    {
+      "icon_id": "24923354",
+      "name": "arrowthinleft",
+      "font_class": "arrow-left",
+      "unicode": "e6bc",
+      "unicode_decimal": 59068
+    },
+		{
+		  "icon_id": "24923354",
+		  "name": "arrowthinleft",
+		  "font_class": "arrowthinleft",
+		  "unicode": "e6bc",
+		  "unicode_decimal": 59068
+		},
+    {
+      "icon_id": "24923355",
+      "name": "arrowthinup",
+      "font_class": "arrow-up",
+      "unicode": "e6bd",
+      "unicode_decimal": 59069
+    },
+		{
+		  "icon_id": "24923355",
+		  "name": "arrowthinup",
+		  "font_class": "arrowthinup",
+		  "unicode": "e6bd",
+		  "unicode_decimal": 59069
+		},
+    {
+      "icon_id": "24923356",
+      "name": "arrowthindown",
+      "font_class": "arrow-down",
+      "unicode": "e6be",
+      "unicode_decimal": 59070
+    },{
+      "icon_id": "24923356",
+      "name": "arrowthindown",
+      "font_class": "arrowthindown",
+      "unicode": "e6be",
+      "unicode_decimal": 59070
+    },
+    {
+      "icon_id": "24923349",
+      "name": "arrowdown",
+      "font_class": "bottom",
+      "unicode": "e6b8",
+      "unicode_decimal": 59064
+    },{
+      "icon_id": "24923349",
+      "name": "arrowdown",
+      "font_class": "arrowdown",
+      "unicode": "e6b8",
+      "unicode_decimal": 59064
+    },
+    {
+      "icon_id": "24923346",
+      "name": "arrowright",
+      "font_class": "right",
+      "unicode": "e6b5",
+      "unicode_decimal": 59061
+    },
+		{
+		  "icon_id": "24923346",
+		  "name": "arrowright",
+		  "font_class": "arrowright",
+		  "unicode": "e6b5",
+		  "unicode_decimal": 59061
+		},
+    {
+      "icon_id": "24923347",
+      "name": "arrowup",
+      "font_class": "top",
+      "unicode": "e6b6",
+      "unicode_decimal": 59062
+    },
+		{
+		  "icon_id": "24923347",
+		  "name": "arrowup",
+		  "font_class": "arrowup",
+		  "unicode": "e6b6",
+		  "unicode_decimal": 59062
+		},
+    {
+      "icon_id": "24923348",
+      "name": "arrowleft",
+      "font_class": "left",
+      "unicode": "e6b7",
+      "unicode_decimal": 59063
+    },
+		{
+		  "icon_id": "24923348",
+		  "name": "arrowleft",
+		  "font_class": "arrowleft",
+		  "unicode": "e6b7",
+		  "unicode_decimal": 59063
+		},
+    {
+      "icon_id": "24923334",
+      "name": "eye",
+      "font_class": "eye",
+      "unicode": "e651",
+      "unicode_decimal": 58961
+    },
+    {
+      "icon_id": "24923335",
+      "name": "eye-filled",
+      "font_class": "eye-filled",
+      "unicode": "e66a",
+      "unicode_decimal": 58986
+    },
+    {
+      "icon_id": "24923336",
+      "name": "eye-slash",
+      "font_class": "eye-slash",
+      "unicode": "e6b3",
+      "unicode_decimal": 59059
+    },
+    {
+      "icon_id": "24923337",
+      "name": "eye-slash-filled",
+      "font_class": "eye-slash-filled",
+      "unicode": "e6b4",
+      "unicode_decimal": 59060
+    },
+    {
+      "icon_id": "24923305",
+      "name": "info-filled",
+      "font_class": "info-filled",
+      "unicode": "e649",
+      "unicode_decimal": 58953
+    },
+    {
+      "icon_id": "24923299",
+      "name": "reload-01",
+      "font_class": "reload",
+      "unicode": "e6b2",
+      "unicode_decimal": 59058
+    },
+    {
+      "icon_id": "24923195",
+      "name": "mic_slash_fill",
+      "font_class": "micoff-filled",
+      "unicode": "e6b0",
+      "unicode_decimal": 59056
+    },
+    {
+      "icon_id": "24923165",
+      "name": "map-pin-ellipse",
+      "font_class": "map-pin-ellipse",
+      "unicode": "e6ac",
+      "unicode_decimal": 59052
+    },
+    {
+      "icon_id": "24923166",
+      "name": "map-pin",
+      "font_class": "map-pin",
+      "unicode": "e6ad",
+      "unicode_decimal": 59053
+    },
+    {
+      "icon_id": "24923167",
+      "name": "location",
+      "font_class": "location",
+      "unicode": "e6ae",
+      "unicode_decimal": 59054
+    },
+    {
+      "icon_id": "24923064",
+      "name": "starhalf",
+      "font_class": "starhalf",
+      "unicode": "e683",
+      "unicode_decimal": 59011
+    },
+    {
+      "icon_id": "24923065",
+      "name": "star",
+      "font_class": "star",
+      "unicode": "e688",
+      "unicode_decimal": 59016
+    },
+    {
+      "icon_id": "24923066",
+      "name": "star-filled",
+      "font_class": "star-filled",
+      "unicode": "e68f",
+      "unicode_decimal": 59023
+    },
+    {
+      "icon_id": "24899646",
+      "name": "a-rilidaka",
+      "font_class": "calendar",
+      "unicode": "e6a0",
+      "unicode_decimal": 59040
+    },
+    {
+      "icon_id": "24899647",
+      "name": "fire",
+      "font_class": "fire",
+      "unicode": "e6a1",
+      "unicode_decimal": 59041
+    },
+    {
+      "icon_id": "24899648",
+      "name": "paihangbang",
+      "font_class": "medal",
+      "unicode": "e6a2",
+      "unicode_decimal": 59042
+    },
+    {
+      "icon_id": "24899649",
+      "name": "font",
+      "font_class": "font",
+      "unicode": "e6a3",
+      "unicode_decimal": 59043
+    },
+    {
+      "icon_id": "24899650",
+      "name": "gift",
+      "font_class": "gift",
+      "unicode": "e6a4",
+      "unicode_decimal": 59044
+    },
+    {
+      "icon_id": "24899651",
+      "name": "link",
+      "font_class": "link",
+      "unicode": "e6a5",
+      "unicode_decimal": 59045
+    },
+    {
+      "icon_id": "24899652",
+      "name": "notification",
+      "font_class": "notification",
+      "unicode": "e6a6",
+      "unicode_decimal": 59046
+    },
+    {
+      "icon_id": "24899653",
+      "name": "staff",
+      "font_class": "staff",
+      "unicode": "e6a7",
+      "unicode_decimal": 59047
+    },
+    {
+      "icon_id": "24899654",
+      "name": "VIP",
+      "font_class": "vip",
+      "unicode": "e6a8",
+      "unicode_decimal": 59048
+    },
+    {
+      "icon_id": "24899655",
+      "name": "folder_add",
+      "font_class": "folder-add",
+      "unicode": "e6a9",
+      "unicode_decimal": 59049
+    },
+    {
+      "icon_id": "24899656",
+      "name": "tune",
+      "font_class": "tune",
+      "unicode": "e6aa",
+      "unicode_decimal": 59050
+    },
+    {
+      "icon_id": "24899657",
+      "name": "shimingrenzheng",
+      "font_class": "auth",
+      "unicode": "e6ab",
+      "unicode_decimal": 59051
+    },
+    {
+      "icon_id": "24899565",
+      "name": "person",
+      "font_class": "person",
+      "unicode": "e699",
+      "unicode_decimal": 59033
+    },
+    {
+      "icon_id": "24899566",
+      "name": "email-filled",
+      "font_class": "email-filled",
+      "unicode": "e69a",
+      "unicode_decimal": 59034
+    },
+    {
+      "icon_id": "24899567",
+      "name": "phone-filled",
+      "font_class": "phone-filled",
+      "unicode": "e69b",
+      "unicode_decimal": 59035
+    },
+    {
+      "icon_id": "24899568",
+      "name": "phone",
+      "font_class": "phone",
+      "unicode": "e69c",
+      "unicode_decimal": 59036
+    },
+    {
+      "icon_id": "24899570",
+      "name": "email",
+      "font_class": "email",
+      "unicode": "e69e",
+      "unicode_decimal": 59038
+    },
+    {
+      "icon_id": "24899571",
+      "name": "personadd",
+      "font_class": "personadd",
+      "unicode": "e69f",
+      "unicode_decimal": 59039
+    },
+    {
+      "icon_id": "24899558",
+      "name": "chatboxes-filled",
+      "font_class": "chatboxes-filled",
+      "unicode": "e692",
+      "unicode_decimal": 59026
+    },
+    {
+      "icon_id": "24899559",
+      "name": "contact",
+      "font_class": "contact",
+      "unicode": "e693",
+      "unicode_decimal": 59027
+    },
+    {
+      "icon_id": "24899560",
+      "name": "chatbubble-filled",
+      "font_class": "chatbubble-filled",
+      "unicode": "e694",
+      "unicode_decimal": 59028
+    },
+    {
+      "icon_id": "24899561",
+      "name": "contact-filled",
+      "font_class": "contact-filled",
+      "unicode": "e695",
+      "unicode_decimal": 59029
+    },
+    {
+      "icon_id": "24899562",
+      "name": "chatboxes",
+      "font_class": "chatboxes",
+      "unicode": "e696",
+      "unicode_decimal": 59030
+    },
+    {
+      "icon_id": "24899563",
+      "name": "chatbubble",
+      "font_class": "chatbubble",
+      "unicode": "e697",
+      "unicode_decimal": 59031
+    },
+    {
+      "icon_id": "24881290",
+      "name": "upload-filled",
+      "font_class": "upload-filled",
+      "unicode": "e68e",
+      "unicode_decimal": 59022
+    },
+    {
+      "icon_id": "24881292",
+      "name": "upload",
+      "font_class": "upload",
+      "unicode": "e690",
+      "unicode_decimal": 59024
+    },
+    {
+      "icon_id": "24881293",
+      "name": "weixin",
+      "font_class": "weixin",
+      "unicode": "e691",
+      "unicode_decimal": 59025
+    },
+    {
+      "icon_id": "24881274",
+      "name": "compose",
+      "font_class": "compose",
+      "unicode": "e67f",
+      "unicode_decimal": 59007
+    },
+    {
+      "icon_id": "24881275",
+      "name": "qq",
+      "font_class": "qq",
+      "unicode": "e680",
+      "unicode_decimal": 59008
+    },
+    {
+      "icon_id": "24881276",
+      "name": "download-filled",
+      "font_class": "download-filled",
+      "unicode": "e681",
+      "unicode_decimal": 59009
+    },
+    {
+      "icon_id": "24881277",
+      "name": "pengyouquan",
+      "font_class": "pyq",
+      "unicode": "e682",
+      "unicode_decimal": 59010
+    },
+    {
+      "icon_id": "24881279",
+      "name": "sound",
+      "font_class": "sound",
+      "unicode": "e684",
+      "unicode_decimal": 59012
+    },
+    {
+      "icon_id": "24881280",
+      "name": "trash-filled",
+      "font_class": "trash-filled",
+      "unicode": "e685",
+      "unicode_decimal": 59013
+    },
+    {
+      "icon_id": "24881281",
+      "name": "sound-filled",
+      "font_class": "sound-filled",
+      "unicode": "e686",
+      "unicode_decimal": 59014
+    },
+    {
+      "icon_id": "24881282",
+      "name": "trash",
+      "font_class": "trash",
+      "unicode": "e687",
+      "unicode_decimal": 59015
+    },
+    {
+      "icon_id": "24881284",
+      "name": "videocam-filled",
+      "font_class": "videocam-filled",
+      "unicode": "e689",
+      "unicode_decimal": 59017
+    },
+    {
+      "icon_id": "24881285",
+      "name": "spinner-cycle",
+      "font_class": "spinner-cycle",
+      "unicode": "e68a",
+      "unicode_decimal": 59018
+    },
+    {
+      "icon_id": "24881286",
+      "name": "weibo",
+      "font_class": "weibo",
+      "unicode": "e68b",
+      "unicode_decimal": 59019
+    },
+    {
+      "icon_id": "24881288",
+      "name": "videocam",
+      "font_class": "videocam",
+      "unicode": "e68c",
+      "unicode_decimal": 59020
+    },
+    {
+      "icon_id": "24881289",
+      "name": "download",
+      "font_class": "download",
+      "unicode": "e68d",
+      "unicode_decimal": 59021
+    },
+    {
+      "icon_id": "24879601",
+      "name": "help",
+      "font_class": "help",
+      "unicode": "e679",
+      "unicode_decimal": 59001
+    },
+    {
+      "icon_id": "24879602",
+      "name": "navigate-filled",
+      "font_class": "navigate-filled",
+      "unicode": "e67a",
+      "unicode_decimal": 59002
+    },
+    {
+      "icon_id": "24879603",
+      "name": "plusempty",
+      "font_class": "plusempty",
+      "unicode": "e67b",
+      "unicode_decimal": 59003
+    },
+    {
+      "icon_id": "24879604",
+      "name": "smallcircle",
+      "font_class": "smallcircle",
+      "unicode": "e67c",
+      "unicode_decimal": 59004
+    },
+    {
+      "icon_id": "24879605",
+      "name": "minus-filled",
+      "font_class": "minus-filled",
+      "unicode": "e67d",
+      "unicode_decimal": 59005
+    },
+    {
+      "icon_id": "24879606",
+      "name": "micoff",
+      "font_class": "micoff",
+      "unicode": "e67e",
+      "unicode_decimal": 59006
+    },
+    {
+      "icon_id": "24879588",
+      "name": "closeempty",
+      "font_class": "closeempty",
+      "unicode": "e66c",
+      "unicode_decimal": 58988
+    },
+    {
+      "icon_id": "24879589",
+      "name": "clear",
+      "font_class": "clear",
+      "unicode": "e66d",
+      "unicode_decimal": 58989
+    },
+    {
+      "icon_id": "24879590",
+      "name": "navigate",
+      "font_class": "navigate",
+      "unicode": "e66e",
+      "unicode_decimal": 58990
+    },
+    {
+      "icon_id": "24879591",
+      "name": "minus",
+      "font_class": "minus",
+      "unicode": "e66f",
+      "unicode_decimal": 58991
+    },
+    {
+      "icon_id": "24879592",
+      "name": "image",
+      "font_class": "image",
+      "unicode": "e670",
+      "unicode_decimal": 58992
+    },
+    {
+      "icon_id": "24879593",
+      "name": "mic",
+      "font_class": "mic",
+      "unicode": "e671",
+      "unicode_decimal": 58993
+    },
+    {
+      "icon_id": "24879594",
+      "name": "paperplane",
+      "font_class": "paperplane",
+      "unicode": "e672",
+      "unicode_decimal": 58994
+    },
+    {
+      "icon_id": "24879595",
+      "name": "close",
+      "font_class": "close",
+      "unicode": "e673",
+      "unicode_decimal": 58995
+    },
+    {
+      "icon_id": "24879596",
+      "name": "help-filled",
+      "font_class": "help-filled",
+      "unicode": "e674",
+      "unicode_decimal": 58996
+    },
+    {
+      "icon_id": "24879597",
+      "name": "plus-filled",
+      "font_class": "paperplane-filled",
+      "unicode": "e675",
+      "unicode_decimal": 58997
+    },
+    {
+      "icon_id": "24879598",
+      "name": "plus",
+      "font_class": "plus",
+      "unicode": "e676",
+      "unicode_decimal": 58998
+    },
+    {
+      "icon_id": "24879599",
+      "name": "mic-filled",
+      "font_class": "mic-filled",
+      "unicode": "e677",
+      "unicode_decimal": 58999
+    },
+    {
+      "icon_id": "24879600",
+      "name": "image-filled",
+      "font_class": "image-filled",
+      "unicode": "e678",
+      "unicode_decimal": 59000
+    },
+    {
+      "icon_id": "24855900",
+      "name": "locked-filled",
+      "font_class": "locked-filled",
+      "unicode": "e668",
+      "unicode_decimal": 58984
+    },
+    {
+      "icon_id": "24855901",
+      "name": "info",
+      "font_class": "info",
+      "unicode": "e669",
+      "unicode_decimal": 58985
+    },
+    {
+      "icon_id": "24855903",
+      "name": "locked",
+      "font_class": "locked",
+      "unicode": "e66b",
+      "unicode_decimal": 58987
+    },
+    {
+      "icon_id": "24855884",
+      "name": "camera-filled",
+      "font_class": "camera-filled",
+      "unicode": "e658",
+      "unicode_decimal": 58968
+    },
+    {
+      "icon_id": "24855885",
+      "name": "chat-filled",
+      "font_class": "chat-filled",
+      "unicode": "e659",
+      "unicode_decimal": 58969
+    },
+    {
+      "icon_id": "24855886",
+      "name": "camera",
+      "font_class": "camera",
+      "unicode": "e65a",
+      "unicode_decimal": 58970
+    },
+    {
+      "icon_id": "24855887",
+      "name": "circle",
+      "font_class": "circle",
+      "unicode": "e65b",
+      "unicode_decimal": 58971
+    },
+    {
+      "icon_id": "24855888",
+      "name": "checkmarkempty",
+      "font_class": "checkmarkempty",
+      "unicode": "e65c",
+      "unicode_decimal": 58972
+    },
+    {
+      "icon_id": "24855889",
+      "name": "chat",
+      "font_class": "chat",
+      "unicode": "e65d",
+      "unicode_decimal": 58973
+    },
+    {
+      "icon_id": "24855890",
+      "name": "circle-filled",
+      "font_class": "circle-filled",
+      "unicode": "e65e",
+      "unicode_decimal": 58974
+    },
+    {
+      "icon_id": "24855891",
+      "name": "flag",
+      "font_class": "flag",
+      "unicode": "e65f",
+      "unicode_decimal": 58975
+    },
+    {
+      "icon_id": "24855892",
+      "name": "flag-filled",
+      "font_class": "flag-filled",
+      "unicode": "e660",
+      "unicode_decimal": 58976
+    },
+    {
+      "icon_id": "24855893",
+      "name": "gear-filled",
+      "font_class": "gear-filled",
+      "unicode": "e661",
+      "unicode_decimal": 58977
+    },
+    {
+      "icon_id": "24855894",
+      "name": "home",
+      "font_class": "home",
+      "unicode": "e662",
+      "unicode_decimal": 58978
+    },
+    {
+      "icon_id": "24855895",
+      "name": "home-filled",
+      "font_class": "home-filled",
+      "unicode": "e663",
+      "unicode_decimal": 58979
+    },
+    {
+      "icon_id": "24855896",
+      "name": "gear",
+      "font_class": "gear",
+      "unicode": "e664",
+      "unicode_decimal": 58980
+    },
+    {
+      "icon_id": "24855897",
+      "name": "smallcircle-filled",
+      "font_class": "smallcircle-filled",
+      "unicode": "e665",
+      "unicode_decimal": 58981
+    },
+    {
+      "icon_id": "24855898",
+      "name": "map-filled",
+      "font_class": "map-filled",
+      "unicode": "e666",
+      "unicode_decimal": 58982
+    },
+    {
+      "icon_id": "24855899",
+      "name": "map",
+      "font_class": "map",
+      "unicode": "e667",
+      "unicode_decimal": 58983
+    },
+    {
+      "icon_id": "24855825",
+      "name": "refresh-filled",
+      "font_class": "refresh-filled",
+      "unicode": "e656",
+      "unicode_decimal": 58966
+    },
+    {
+      "icon_id": "24855826",
+      "name": "refresh",
+      "font_class": "refresh",
+      "unicode": "e657",
+      "unicode_decimal": 58967
+    },
+    {
+      "icon_id": "24855808",
+      "name": "cloud-upload",
+      "font_class": "cloud-upload",
+      "unicode": "e645",
+      "unicode_decimal": 58949
+    },
+    {
+      "icon_id": "24855809",
+      "name": "cloud-download-filled",
+      "font_class": "cloud-download-filled",
+      "unicode": "e646",
+      "unicode_decimal": 58950
+    },
+    {
+      "icon_id": "24855810",
+      "name": "cloud-download",
+      "font_class": "cloud-download",
+      "unicode": "e647",
+      "unicode_decimal": 58951
+    },
+    {
+      "icon_id": "24855811",
+      "name": "cloud-upload-filled",
+      "font_class": "cloud-upload-filled",
+      "unicode": "e648",
+      "unicode_decimal": 58952
+    },
+    {
+      "icon_id": "24855813",
+      "name": "redo",
+      "font_class": "redo",
+      "unicode": "e64a",
+      "unicode_decimal": 58954
+    },
+    {
+      "icon_id": "24855814",
+      "name": "images-filled",
+      "font_class": "images-filled",
+      "unicode": "e64b",
+      "unicode_decimal": 58955
+    },
+    {
+      "icon_id": "24855815",
+      "name": "undo-filled",
+      "font_class": "undo-filled",
+      "unicode": "e64c",
+      "unicode_decimal": 58956
+    },
+    {
+      "icon_id": "24855816",
+      "name": "more",
+      "font_class": "more",
+      "unicode": "e64d",
+      "unicode_decimal": 58957
+    },
+    {
+      "icon_id": "24855817",
+      "name": "more-filled",
+      "font_class": "more-filled",
+      "unicode": "e64e",
+      "unicode_decimal": 58958
+    },
+    {
+      "icon_id": "24855818",
+      "name": "undo",
+      "font_class": "undo",
+      "unicode": "e64f",
+      "unicode_decimal": 58959
+    },
+    {
+      "icon_id": "24855819",
+      "name": "images",
+      "font_class": "images",
+      "unicode": "e650",
+      "unicode_decimal": 58960
+    },
+    {
+      "icon_id": "24855821",
+      "name": "paperclip",
+      "font_class": "paperclip",
+      "unicode": "e652",
+      "unicode_decimal": 58962
+    },
+    {
+      "icon_id": "24855822",
+      "name": "settings",
+      "font_class": "settings",
+      "unicode": "e653",
+      "unicode_decimal": 58963
+    },
+    {
+      "icon_id": "24855823",
+      "name": "search",
+      "font_class": "search",
+      "unicode": "e654",
+      "unicode_decimal": 58964
+    },
+    {
+      "icon_id": "24855824",
+      "name": "redo-filled",
+      "font_class": "redo-filled",
+      "unicode": "e655",
+      "unicode_decimal": 58965
+    },
+    {
+      "icon_id": "24841702",
+      "name": "list",
+      "font_class": "list",
+      "unicode": "e644",
+      "unicode_decimal": 58948
+    },
+    {
+      "icon_id": "24841489",
+      "name": "mail-open-filled",
+      "font_class": "mail-open-filled",
+      "unicode": "e63a",
+      "unicode_decimal": 58938
+    },
+    {
+      "icon_id": "24841491",
+      "name": "hand-thumbsdown-filled",
+      "font_class": "hand-down-filled",
+      "unicode": "e63c",
+      "unicode_decimal": 58940
+    },
+    {
+      "icon_id": "24841492",
+      "name": "hand-thumbsdown",
+      "font_class": "hand-down",
+      "unicode": "e63d",
+      "unicode_decimal": 58941
+    },
+    {
+      "icon_id": "24841493",
+      "name": "hand-thumbsup-filled",
+      "font_class": "hand-up-filled",
+      "unicode": "e63e",
+      "unicode_decimal": 58942
+    },
+    {
+      "icon_id": "24841494",
+      "name": "hand-thumbsup",
+      "font_class": "hand-up",
+      "unicode": "e63f",
+      "unicode_decimal": 58943
+    },
+    {
+      "icon_id": "24841496",
+      "name": "heart-filled",
+      "font_class": "heart-filled",
+      "unicode": "e641",
+      "unicode_decimal": 58945
+    },
+    {
+      "icon_id": "24841498",
+      "name": "mail-open",
+      "font_class": "mail-open",
+      "unicode": "e643",
+      "unicode_decimal": 58947
+    },
+    {
+      "icon_id": "24841488",
+      "name": "heart",
+      "font_class": "heart",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    },
+    {
+      "icon_id": "24839963",
+      "name": "loop",
+      "font_class": "loop",
+      "unicode": "e633",
+      "unicode_decimal": 58931
+    },
+    {
+      "icon_id": "24839866",
+      "name": "pulldown",
+      "font_class": "pulldown",
+      "unicode": "e632",
+      "unicode_decimal": 58930
+    },
+    {
+      "icon_id": "24813798",
+      "name": "scan",
+      "font_class": "scan",
+      "unicode": "e62a",
+      "unicode_decimal": 58922
+    },
+    {
+      "icon_id": "24813786",
+      "name": "bars",
+      "font_class": "bars",
+      "unicode": "e627",
+      "unicode_decimal": 58919
+    },
+    {
+      "icon_id": "24813788",
+      "name": "cart-filled",
+      "font_class": "cart-filled",
+      "unicode": "e629",
+      "unicode_decimal": 58921
+    },
+    {
+      "icon_id": "24813790",
+      "name": "checkbox",
+      "font_class": "checkbox",
+      "unicode": "e62b",
+      "unicode_decimal": 58923
+    },
+    {
+      "icon_id": "24813791",
+      "name": "checkbox-filled",
+      "font_class": "checkbox-filled",
+      "unicode": "e62c",
+      "unicode_decimal": 58924
+    },
+    {
+      "icon_id": "24813794",
+      "name": "shop",
+      "font_class": "shop",
+      "unicode": "e62f",
+      "unicode_decimal": 58927
+    },
+    {
+      "icon_id": "24813795",
+      "name": "headphones",
+      "font_class": "headphones",
+      "unicode": "e630",
+      "unicode_decimal": 58928
+    },
+    {
+      "icon_id": "24813796",
+      "name": "cart",
+      "font_class": "cart",
+      "unicode": "e631",
+      "unicode_decimal": 58929
+    }
+  ]
+}

+ 96 - 0
uni_modules/uni-icons/components/uni-icons/uni-icons.vue

@@ -0,0 +1,96 @@
+<template>
+	<!-- #ifdef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" @click="_onClick">{{unicode}}</text>
+	<!-- #endif -->
+	<!-- #ifndef APP-NVUE -->
+	<text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick"></text>
+	<!-- #endif -->
+</template>
+
+<script>
+	import icons from './icons.js';
+	const getVal = (val) => {
+		const reg = /^[0-9]*$/g
+		return (typeof val === 'number' || reg.test(val) )? val + 'px' : val;
+	} 
+	// #ifdef APP-NVUE
+	var domModule = weex.requireModule('dom');
+	import iconUrl from './uniicons.ttf'
+	domModule.addRule('fontFace', {
+		'fontFamily': "uniicons",
+		'src': "url('"+iconUrl+"')"
+	});
+	// #endif
+
+	/**
+	 * Icons 图标
+	 * @description 用于展示 icons 图标
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=28
+	 * @property {Number} size 图标大小
+	 * @property {String} type 图标图案,参考示例
+	 * @property {String} color 图标颜色
+	 * @property {String} customPrefix 自定义图标
+	 * @event {Function} click 点击 Icon 触发事件
+	 */
+	export default {
+		name: 'UniIcons',
+		emits:['click'],
+		props: {
+			type: {
+				type: String,
+				default: ''
+			},
+			color: {
+				type: String,
+				default: '#333333'
+			},
+			size: {
+				type: [Number, String],
+				default: 16
+			},
+			customPrefix:{
+				type: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				icons: icons.glyphs
+			}
+		},
+		computed:{
+			unicode(){
+				let code = this.icons.find(v=>v.font_class === this.type)
+				if(code){
+					return unescape(`%u${code.unicode}`)
+				}
+				return ''
+			},
+			iconSize(){
+				return getVal(this.size)
+			}
+		},
+		methods: {
+			_onClick() {
+				this.$emit('click')
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	/* #ifndef APP-NVUE */
+	@import './uniicons.css';
+	@font-face {
+		font-family: uniicons;
+		src: url('./uniicons.ttf') format('truetype');
+	}
+
+	/* #endif */
+	.uni-icons {
+		font-family: uniicons;
+		text-decoration: none;
+		text-align: center;
+	}
+
+</style>

+ 663 - 0
uni_modules/uni-icons/components/uni-icons/uniicons.css

@@ -0,0 +1,663 @@
+.uniui-color:before {
+  content: "\e6cf";
+}
+
+.uniui-wallet:before {
+  content: "\e6b1";
+}
+
+.uniui-settings-filled:before {
+  content: "\e6ce";
+}
+
+.uniui-auth-filled:before {
+  content: "\e6cc";
+}
+
+.uniui-shop-filled:before {
+  content: "\e6cd";
+}
+
+.uniui-staff-filled:before {
+  content: "\e6cb";
+}
+
+.uniui-vip-filled:before {
+  content: "\e6c6";
+}
+
+.uniui-plus-filled:before {
+  content: "\e6c7";
+}
+
+.uniui-folder-add-filled:before {
+  content: "\e6c8";
+}
+
+.uniui-color-filled:before {
+  content: "\e6c9";
+}
+
+.uniui-tune-filled:before {
+  content: "\e6ca";
+}
+
+.uniui-calendar-filled:before {
+  content: "\e6c0";
+}
+
+.uniui-notification-filled:before {
+  content: "\e6c1";
+}
+
+.uniui-wallet-filled:before {
+  content: "\e6c2";
+}
+
+.uniui-medal-filled:before {
+  content: "\e6c3";
+}
+
+.uniui-gift-filled:before {
+  content: "\e6c4";
+}
+
+.uniui-fire-filled:before {
+  content: "\e6c5";
+}
+
+.uniui-refreshempty:before {
+  content: "\e6bf";
+}
+
+.uniui-location-filled:before {
+  content: "\e6af";
+}
+
+.uniui-person-filled:before {
+  content: "\e69d";
+}
+
+.uniui-personadd-filled:before {
+  content: "\e698";
+}
+
+.uniui-back:before {
+  content: "\e6b9";
+}
+
+.uniui-forward:before {
+  content: "\e6ba";
+}
+
+.uniui-arrow-right:before {
+  content: "\e6bb";
+}
+
+.uniui-arrowthinright:before {
+  content: "\e6bb";
+}
+
+.uniui-arrow-left:before {
+  content: "\e6bc";
+}
+
+.uniui-arrowthinleft:before {
+  content: "\e6bc";
+}
+
+.uniui-arrow-up:before {
+  content: "\e6bd";
+}
+
+.uniui-arrowthinup:before {
+  content: "\e6bd";
+}
+
+.uniui-arrow-down:before {
+  content: "\e6be";
+}
+
+.uniui-arrowthindown:before {
+  content: "\e6be";
+}
+
+.uniui-bottom:before {
+  content: "\e6b8";
+}
+
+.uniui-arrowdown:before {
+  content: "\e6b8";
+}
+
+.uniui-right:before {
+  content: "\e6b5";
+}
+
+.uniui-arrowright:before {
+  content: "\e6b5";
+}
+
+.uniui-top:before {
+  content: "\e6b6";
+}
+
+.uniui-arrowup:before {
+  content: "\e6b6";
+}
+
+.uniui-left:before {
+  content: "\e6b7";
+}
+
+.uniui-arrowleft:before {
+  content: "\e6b7";
+}
+
+.uniui-eye:before {
+  content: "\e651";
+}
+
+.uniui-eye-filled:before {
+  content: "\e66a";
+}
+
+.uniui-eye-slash:before {
+  content: "\e6b3";
+}
+
+.uniui-eye-slash-filled:before {
+  content: "\e6b4";
+}
+
+.uniui-info-filled:before {
+  content: "\e649";
+}
+
+.uniui-reload:before {
+  content: "\e6b2";
+}
+
+.uniui-micoff-filled:before {
+  content: "\e6b0";
+}
+
+.uniui-map-pin-ellipse:before {
+  content: "\e6ac";
+}
+
+.uniui-map-pin:before {
+  content: "\e6ad";
+}
+
+.uniui-location:before {
+  content: "\e6ae";
+}
+
+.uniui-starhalf:before {
+  content: "\e683";
+}
+
+.uniui-star:before {
+  content: "\e688";
+}
+
+.uniui-star-filled:before {
+  content: "\e68f";
+}
+
+.uniui-calendar:before {
+  content: "\e6a0";
+}
+
+.uniui-fire:before {
+  content: "\e6a1";
+}
+
+.uniui-medal:before {
+  content: "\e6a2";
+}
+
+.uniui-font:before {
+  content: "\e6a3";
+}
+
+.uniui-gift:before {
+  content: "\e6a4";
+}
+
+.uniui-link:before {
+  content: "\e6a5";
+}
+
+.uniui-notification:before {
+  content: "\e6a6";
+}
+
+.uniui-staff:before {
+  content: "\e6a7";
+}
+
+.uniui-vip:before {
+  content: "\e6a8";
+}
+
+.uniui-folder-add:before {
+  content: "\e6a9";
+}
+
+.uniui-tune:before {
+  content: "\e6aa";
+}
+
+.uniui-auth:before {
+  content: "\e6ab";
+}
+
+.uniui-person:before {
+  content: "\e699";
+}
+
+.uniui-email-filled:before {
+  content: "\e69a";
+}
+
+.uniui-phone-filled:before {
+  content: "\e69b";
+}
+
+.uniui-phone:before {
+  content: "\e69c";
+}
+
+.uniui-email:before {
+  content: "\e69e";
+}
+
+.uniui-personadd:before {
+  content: "\e69f";
+}
+
+.uniui-chatboxes-filled:before {
+  content: "\e692";
+}
+
+.uniui-contact:before {
+  content: "\e693";
+}
+
+.uniui-chatbubble-filled:before {
+  content: "\e694";
+}
+
+.uniui-contact-filled:before {
+  content: "\e695";
+}
+
+.uniui-chatboxes:before {
+  content: "\e696";
+}
+
+.uniui-chatbubble:before {
+  content: "\e697";
+}
+
+.uniui-upload-filled:before {
+  content: "\e68e";
+}
+
+.uniui-upload:before {
+  content: "\e690";
+}
+
+.uniui-weixin:before {
+  content: "\e691";
+}
+
+.uniui-compose:before {
+  content: "\e67f";
+}
+
+.uniui-qq:before {
+  content: "\e680";
+}
+
+.uniui-download-filled:before {
+  content: "\e681";
+}
+
+.uniui-pyq:before {
+  content: "\e682";
+}
+
+.uniui-sound:before {
+  content: "\e684";
+}
+
+.uniui-trash-filled:before {
+  content: "\e685";
+}
+
+.uniui-sound-filled:before {
+  content: "\e686";
+}
+
+.uniui-trash:before {
+  content: "\e687";
+}
+
+.uniui-videocam-filled:before {
+  content: "\e689";
+}
+
+.uniui-spinner-cycle:before {
+  content: "\e68a";
+}
+
+.uniui-weibo:before {
+  content: "\e68b";
+}
+
+.uniui-videocam:before {
+  content: "\e68c";
+}
+
+.uniui-download:before {
+  content: "\e68d";
+}
+
+.uniui-help:before {
+  content: "\e679";
+}
+
+.uniui-navigate-filled:before {
+  content: "\e67a";
+}
+
+.uniui-plusempty:before {
+  content: "\e67b";
+}
+
+.uniui-smallcircle:before {
+  content: "\e67c";
+}
+
+.uniui-minus-filled:before {
+  content: "\e67d";
+}
+
+.uniui-micoff:before {
+  content: "\e67e";
+}
+
+.uniui-closeempty:before {
+  content: "\e66c";
+}
+
+.uniui-clear:before {
+  content: "\e66d";
+}
+
+.uniui-navigate:before {
+  content: "\e66e";
+}
+
+.uniui-minus:before {
+  content: "\e66f";
+}
+
+.uniui-image:before {
+  content: "\e670";
+}
+
+.uniui-mic:before {
+  content: "\e671";
+}
+
+.uniui-paperplane:before {
+  content: "\e672";
+}
+
+.uniui-close:before {
+  content: "\e673";
+}
+
+.uniui-help-filled:before {
+  content: "\e674";
+}
+
+.uniui-paperplane-filled:before {
+  content: "\e675";
+}
+
+.uniui-plus:before {
+  content: "\e676";
+}
+
+.uniui-mic-filled:before {
+  content: "\e677";
+}
+
+.uniui-image-filled:before {
+  content: "\e678";
+}
+
+.uniui-locked-filled:before {
+  content: "\e668";
+}
+
+.uniui-info:before {
+  content: "\e669";
+}
+
+.uniui-locked:before {
+  content: "\e66b";
+}
+
+.uniui-camera-filled:before {
+  content: "\e658";
+}
+
+.uniui-chat-filled:before {
+  content: "\e659";
+}
+
+.uniui-camera:before {
+  content: "\e65a";
+}
+
+.uniui-circle:before {
+  content: "\e65b";
+}
+
+.uniui-checkmarkempty:before {
+  content: "\e65c";
+}
+
+.uniui-chat:before {
+  content: "\e65d";
+}
+
+.uniui-circle-filled:before {
+  content: "\e65e";
+}
+
+.uniui-flag:before {
+  content: "\e65f";
+}
+
+.uniui-flag-filled:before {
+  content: "\e660";
+}
+
+.uniui-gear-filled:before {
+  content: "\e661";
+}
+
+.uniui-home:before {
+  content: "\e662";
+}
+
+.uniui-home-filled:before {
+  content: "\e663";
+}
+
+.uniui-gear:before {
+  content: "\e664";
+}
+
+.uniui-smallcircle-filled:before {
+  content: "\e665";
+}
+
+.uniui-map-filled:before {
+  content: "\e666";
+}
+
+.uniui-map:before {
+  content: "\e667";
+}
+
+.uniui-refresh-filled:before {
+  content: "\e656";
+}
+
+.uniui-refresh:before {
+  content: "\e657";
+}
+
+.uniui-cloud-upload:before {
+  content: "\e645";
+}
+
+.uniui-cloud-download-filled:before {
+  content: "\e646";
+}
+
+.uniui-cloud-download:before {
+  content: "\e647";
+}
+
+.uniui-cloud-upload-filled:before {
+  content: "\e648";
+}
+
+.uniui-redo:before {
+  content: "\e64a";
+}
+
+.uniui-images-filled:before {
+  content: "\e64b";
+}
+
+.uniui-undo-filled:before {
+  content: "\e64c";
+}
+
+.uniui-more:before {
+  content: "\e64d";
+}
+
+.uniui-more-filled:before {
+  content: "\e64e";
+}
+
+.uniui-undo:before {
+  content: "\e64f";
+}
+
+.uniui-images:before {
+  content: "\e650";
+}
+
+.uniui-paperclip:before {
+  content: "\e652";
+}
+
+.uniui-settings:before {
+  content: "\e653";
+}
+
+.uniui-search:before {
+  content: "\e654";
+}
+
+.uniui-redo-filled:before {
+  content: "\e655";
+}
+
+.uniui-list:before {
+  content: "\e644";
+}
+
+.uniui-mail-open-filled:before {
+  content: "\e63a";
+}
+
+.uniui-hand-down-filled:before {
+  content: "\e63c";
+}
+
+.uniui-hand-down:before {
+  content: "\e63d";
+}
+
+.uniui-hand-up-filled:before {
+  content: "\e63e";
+}
+
+.uniui-hand-up:before {
+  content: "\e63f";
+}
+
+.uniui-heart-filled:before {
+  content: "\e641";
+}
+
+.uniui-mail-open:before {
+  content: "\e643";
+}
+
+.uniui-heart:before {
+  content: "\e639";
+}
+
+.uniui-loop:before {
+  content: "\e633";
+}
+
+.uniui-pulldown:before {
+  content: "\e632";
+}
+
+.uniui-scan:before {
+  content: "\e62a";
+}
+
+.uniui-bars:before {
+  content: "\e627";
+}
+
+.uniui-cart-filled:before {
+  content: "\e629";
+}
+
+.uniui-checkbox:before {
+  content: "\e62b";
+}
+
+.uniui-checkbox-filled:before {
+  content: "\e62c";
+}
+
+.uniui-shop:before {
+  content: "\e62f";
+}
+
+.uniui-headphones:before {
+  content: "\e630";
+}
+
+.uniui-cart:before {
+  content: "\e631";
+}

BIN
uni_modules/uni-icons/components/uni-icons/uniicons.ttf


+ 86 - 0
uni_modules/uni-icons/package.json

@@ -0,0 +1,86 @@
+{
+  "id": "uni-icons",
+  "displayName": "uni-icons 图标",
+  "version": "1.3.5",
+  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "icon",
+    "图标"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": "^3.2.14"
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

Some files were not shown because too many files changed in this diff