activityPage.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <template>
  2. <view class="activity">
  3. <statusBar :item="navBarData"></statusBar>
  4. <viewX-Case class="mid">
  5. <template #title>
  6. <view class="title three-font">直播活动</view>
  7. </template>
  8. <template #lookMore>
  9. <view class="lookMore fz-font"> 查看更多 </view>
  10. </template>
  11. <template #activeBlock>
  12. <view
  13. class="activeData"
  14. v-for="(item, index) in liveList"
  15. :key="index"
  16. @click="gotoAnnoun(index)"
  17. >
  18. <!-- <image src="http://43.139.158.220:5007/img/static/activity/bg1.png" mode="aspectFill"></image> -->
  19. <image :src="liveList[index].img" mode="aspectFill"></image>
  20. <view class="liveBroadcast">
  21. <view class="title">
  22. <view class="tag bqZ-font">类型</view>
  23. <text three-font>{{ item.className }}</text>
  24. </view>
  25. <view class="operate">
  26. <view class="left">
  27. <view class="img">
  28. <image
  29. :src="liveList[index].imgName"
  30. mode="aspectFill"
  31. ></image>
  32. </view>
  33. <view class="user fwb-font">{{ item.name }}</view>
  34. </view>
  35. <view class="collection">
  36. <!-- <view class="" style="display: flex;margin-right: 10rpx;align-items: center;"> -->
  37. <view class="img">
  38. <image
  39. src="http://43.139.158.220:5007/img/static/yym/Vector (Stroke) (2).png"
  40. mode="aspectFill"
  41. ></image>
  42. </view>
  43. <text class="fz-font">收藏</text>
  44. </view>
  45. </view>
  46. </view>
  47. </view>
  48. </template>
  49. </viewX-Case>
  50. <viewX-Case style="margin-top: 10px">
  51. <template #title>
  52. <view class="title three-font">常规教研活动</view>
  53. </template>
  54. <template #lookMore>
  55. <view class="lookMore fz-font" @click="lookMore">查看更多</view>
  56. </template>
  57. <template #activeBlock>
  58. <!-- <activity-case v-for="i in 10" :key="i"></activity-case> -->
  59. <teaching-case
  60. v-for="(item, index) in activeList"
  61. :item="actData"
  62. :key="index"
  63. :activeList="item"
  64. :indexId="index"
  65. ></teaching-case>
  66. </template>
  67. </viewX-Case>
  68. <!-- <uni-fab ref="fab"
  69. :pattern="pattern"
  70. :horizontal="horizontal"
  71. :vertical="vertical"
  72. :direction="direction"
  73. buttonColor="#0056a8"
  74. @fabClick="fabClick" /> -->
  75. <view class="" style="height: 30rpx; width: 100%"> </view>
  76. <view class="qiu" @click="fabClick">
  77. <image src="/static/yym/jia.png" mode="aspectFill"></image>
  78. </view>
  79. </view>
  80. </template>
  81. <script>
  82. export default {
  83. data() {
  84. return {
  85. navBarData: {
  86. title: "活动", //导航栏标题
  87. btn: 0, //是否显示返回按钮 0不显示 1 显示
  88. },
  89. actData: {
  90. btn: 1,
  91. },
  92. title: "uni-fab",
  93. liveList: [
  94. {
  95. img: "http://43.139.158.220:5007/img/static/img/img1.png",
  96. className: "丽湖职教双创教育国际虚拟教研室2023年常规教研活动安排",
  97. imgName: "http://43.139.158.220:5007/img/static/activity/Name1.png",
  98. name: "李芳",
  99. },
  100. {
  101. img: "http://43.139.158.220:5007/img/static/img/img2.png",
  102. className: "创业融资实务",
  103. className:
  104. "赛创融合、协同育人—高职院校双创大赛赛事组织| 丽湖职教双创教育国际虚拟教研室常规教研活动第3期顺利举",
  105. name: "郑秀",
  106. },
  107. {
  108. img: "http://43.139.158.220:5007/img/static/img/img3.png",
  109. className:
  110. "产教融合情境下的双创通识课程建设 | 丽湖职教双创教育国际虚拟教研室常规教研活动第2期顺利举行",
  111. imgName: "http://43.139.158.220:5007/img/static/activity/Name3.png",
  112. name: "杨哲旗",
  113. },
  114. {
  115. img: "http://43.139.158.220:5007/img/static/img/img4.png",
  116. className:
  117. "打造双创“金课” | 丽湖职教双创教育国际虚拟教研室常规教研活动第1期顺利举行",
  118. imgName: "http://43.139.158.220:5007/img/static/activity/Name2.png",
  119. name: "杨广",
  120. },
  121. ],
  122. activeList: [
  123. {
  124. img: "http://43.139.158.220:5007/img/static/img/img1.png",
  125. count: "17",
  126. className: "丽湖职教双创教育国际虚拟教研室2023年常规教研活动安排",
  127. intro:
  128. "丽湖职教双创教育国际虚拟教研室为立足全国,辐射海外的国际化教研室,围绕创新创业教育的人才培养与课程建设开展深度研究。教研室以贯彻落实立德树人根本任务,通过加强跨专业、跨校、跨地域的教研交流,推动高校协同打造国际化的精品教学资",
  129. },
  130. {
  131. img: "http://43.139.158.220:5007/img/static/img/img2.png",
  132. count: "6",
  133. className:
  134. "赛创融合、协同育人—高职院校双创大赛赛事组织| 丽湖职教双创教育国际虚拟教研室常规教研活动第3期顺利举",
  135. intro:
  136. " 为全面落实双创教育“以赛促教、以赛促学、以赛促创”,提升学校双创大赛的组织效果和参赛成绩,促进更多教育成果落地,实现赛创融合育人的目标,丽湖职教双创教育国际虚拟教研室于4月26日组织举办了第3期线上教研活动,活动主题为“赛",
  137. },
  138. {
  139. img: "http://43.139.158.220:5007/img/static/img/img3.png",
  140. count: "1",
  141. className:
  142. "产教融合情境下的双创通识课程建设 | 丽湖职教双创教育国际虚拟教研室常规教研活动第2期顺利举行",
  143. intro:
  144. "【图片】为提升职业院校双创课程建设水平,促进双创课程的改革与发展,丽湖职教双创教育国际虚拟教研室于3月29日组织举办了以“产教融合情境下的双创通识课程建设”为主题的第2期线上教研活动,来自全国各职业院校的60多位教师参会。本",
  145. },
  146. {
  147. img: "http://43.139.158.220:5007/img/static/img/img4.png",
  148. count: "0",
  149. className:
  150. "打造双创“金课” | 丽湖职教双创教育国际虚拟教研室常规教研活动第1期顺利举行",
  151. intro:
  152. "为推动高职院校双创课程建设,打造更多的双创精品课程和金课,丽湖职教双创教育国际虚拟教研室于2月22日组织举办了以“如何打造高职双创金课”为主题的第1期教研活动,来自全国各高职院校的80多位教师参会。本次活动由",
  153. },
  154. ],
  155. };
  156. },
  157. methods: {
  158. lookMore() {
  159. const value = uni.getStorageSync("login");
  160. if (value == 0) {
  161. uni.navigateTo({
  162. url: "/pages/login/login",
  163. });
  164. } else {
  165. uni.navigateTo({
  166. url: "/pages/activityList/activityList",
  167. });
  168. }
  169. },
  170. fabClick() {
  171. const value = uni.getStorageSync("login");
  172. if (value == 0) {
  173. uni.navigateTo({
  174. url: "/pages/login/login",
  175. });
  176. } else {
  177. uni.navigateTo({
  178. url: "/pages/publish/publish",
  179. });
  180. }
  181. },
  182. gotoAnnoun(index) {
  183. const value = uni.getStorageSync("login");
  184. if (value == 0) {
  185. uni.navigateTo({
  186. url: "/pages/login/login",
  187. });
  188. } else {
  189. const urls = [
  190. "https://szptxnjys.yuketang.cn/pro/portal/announcementdetail/1183",
  191. "https://szptxnjys.yuketang.cn/pro/portal/announcementdetail/1211",
  192. "https://szptxnjys.yuketang.cn/pro/portal/announcementdetail/1210",
  193. "https://szptxnjys.yuketang.cn/pro/portal/announcementdetail/1209",
  194. ];
  195. if (index >= 0 && index < urls.length) {
  196. const url = urls[index];
  197. uni.navigateTo({
  198. url: "/pages/skipone/skipone?url=" + encodeURIComponent(url),
  199. });
  200. }
  201. }
  202. },
  203. onChange: function (e) {
  204. this.old.x = e.detail.x;
  205. this.old.y = e.detail.y;
  206. },
  207. },
  208. };
  209. </script>
  210. <style lang="scss">
  211. .activity {
  212. .qiu {
  213. width: 90rpx;
  214. height: 90rpx;
  215. position: fixed;
  216. z-index: 19;
  217. right: 30rpx;
  218. bottom: 10vh;
  219. border-radius: 50%;
  220. background-color: rgba(0, 86, 168, 1);
  221. display: flex;
  222. justify-content: center;
  223. align-items: center;
  224. image {
  225. position: absolute;
  226. width: 36rpx;
  227. height: 36rpx;
  228. }
  229. }
  230. .mid {
  231. // margin:20px 0;
  232. .activeData {
  233. width: 460rpx;
  234. display: inline-block;
  235. margin-right: 20px;
  236. image {
  237. width: 100%;
  238. height: 120px;
  239. border-radius: 10px;
  240. margin-bottom: 10px;
  241. }
  242. .liveBroadcast {
  243. flex: 1;
  244. width: 460rpx;
  245. display: flex;
  246. flex-direction: column;
  247. align-content: flex-end;
  248. .title {
  249. display: flex;
  250. align-items: center;
  251. margin-bottom: 10rpx;
  252. .tag {
  253. // border: 1px #00b2b6 solid;
  254. // // font-size: 12px;
  255. // width: 64rpx;
  256. // height: 38rpx;
  257. // display: flex;
  258. // white-space: nowrap;
  259. // justify-content: center;
  260. // align-items: center;
  261. // // padding: 2px 4px;
  262. // padding: 1rpx 4rpx;
  263. // border-radius: 3px;
  264. // margin-right: 10rpx;
  265. // color: #00b2b6;
  266. border: 1px #00b2b6 solid;
  267. font-size: 20rpx;
  268. width: 64rpx;
  269. display: flex;
  270. height: 34rpx;
  271. white-space: nowrap;
  272. justify-content: center;
  273. align-items: center;
  274. // padding: 4px 12px 4px 12px;
  275. border-radius: 5rpx;
  276. margin-right: 10rpx;
  277. color: #00b2b6;
  278. }
  279. text {
  280. // display: -webkit-box;//对象作为弹性伸缩盒子模型显示
  281. // overflow: hidden;//溢出隐藏
  282. // -webkit-box-orient: vertical;//设置伸缩盒子对象的子元素的排列方式
  283. // -webkit-line-clamp: 2;//设置 块元素包含的文本行数
  284. overflow: hidden;
  285. text-overflow: ellipsis;
  286. white-space: nowrap;
  287. }
  288. }
  289. .operate {
  290. display: flex;
  291. justify-content: space-between;
  292. align-items: center;
  293. padding: 20rpx 0;
  294. color: #666666;
  295. // margin-bottom: 20rpx;
  296. // padding-bottom: 20rpx;
  297. .left {
  298. display: flex;
  299. align-items: center;
  300. .img {
  301. width: 48rpx;
  302. height: 48rpx;
  303. margin-right: 10rpx;
  304. image {
  305. width: 100%;
  306. height: 100%;
  307. border-radius: 50%;
  308. }
  309. }
  310. .user {
  311. }
  312. }
  313. .collection {
  314. display: flex;
  315. align-items: center;
  316. justify-content: space-between;
  317. width: 88rpx;
  318. height: 32rpx;
  319. position: relative;
  320. .img {
  321. position: absolute;
  322. left: 0;
  323. top: 6rpx;
  324. transform: translate(-130%, 0);
  325. }
  326. image {
  327. width: 27rpx;
  328. height: 25rpx;
  329. display: block;
  330. }
  331. // float: right;
  332. // font-size: 14px;
  333. // padding-top: 10px;
  334. }
  335. }
  336. }
  337. }
  338. .activeData:nth-child(1) {
  339. margin-left: 15px;
  340. }
  341. }
  342. .title {
  343. font-weight: bold;
  344. // color: #999999;
  345. }
  346. .lookMore {
  347. color: #666666;
  348. // font-size: 14px;
  349. }
  350. }
  351. </style>