index.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. <template>
  2. <div class="CalligraphyAndPaintingCompetition">
  3. <div class="bottom">
  4. <div class="bottom_item">
  5. <div class="btn" @click="toDetail = true">活动详情</div>
  6. </div>
  7. <div class="bottom_item" style="flex: 3">
  8. <div class="btn" @click="tougao">我要投稿</div>
  9. </div>
  10. <div class="bottom_item">
  11. <div class="btn" @click="()=>openShanshipinDetail('https://ssp.sxtvs.com.cn/wap/waplist.shtml?shareurl=/a/a/w/m/list_1_0.shtml')">优秀选手</div>
  12. </div>
  13. </div>
  14. <van-overlay
  15. :custom-style="{ 'background-color': 'rgba(0, 0, 0, .4)' }"
  16. :show="toShanshipin"
  17. >
  18. <div class="dialogBody">
  19. <van-image width="100" height="100" :src="logoImage" round />
  20. <div class="title">请打开闪视频投稿或查看我的作品</div>
  21. <br />
  22. <van-button
  23. round
  24. type="default"
  25. color="linear-gradient(90deg, #0038ad, #004fd9)"
  26. block
  27. @click="toShanshipinFunc"
  28. >打开闪视频</van-button
  29. >
  30. <div class="closeBtn" @click="toShanshipin = false">
  31. <img
  32. style="width: 20px; height: 20px"
  33. src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAWhJREFUOBG1lL1OwzAUheuEIUJMDAwwMLEhRQkTG7xKaYFXgkIfhyk/ikQmBl6ADcYo4Zxgu0lrOxYCD7Xje87Xe28cz2YYWZbtl2V5xvVvRlVV53VdH9IrCBNCvHddd4T5MU3Te8ydDxgeURTFA+YlPF9RFJ0GYRieEEYA5lsIniicAlIjtUvpPWia5jhIkuSNmSkAhPMp6AA2Vz4wVnEcvwbckGWuVdAFtcDWYNzRr0tzCBeqpz4aDSTdZWBctmJYJjPTf0jNCMgNG1TGnDBqdoDSqN6gBnBfDbRgJzMdU4vt2ZQpNS4Y4/1b5uKvxv+XbCqVZbICxHRPbaXvDUu1wXg0qMOx0VDC5bP52LhgyKa/LHw0fQ99hKqSKW1fcp7nKxgm+0Mos8VYmMpH+IYH+LJt2xeKOWzN/olufk2Z4iq8DgD4UD2C/Hn729wgxit6pFbfUkjss1fx+memY4v/E/xXaNsFHd9CLmBlRyZwLQAAAABJRU5ErkJggg=="
  34. />
  35. </div>
  36. </div>
  37. </van-overlay>
  38. <!-- confirm-button-color="linear-gradient(90deg, #0038ad, #004fd9)" -->
  39. <van-dialog
  40. theme="round-button"
  41. confirm-button-text="关 闭"
  42. v-model:show="toDetail"
  43. title="详情"
  44. confirm-button-color="#cc0003"
  45. >
  46. <div class="DetailMain">
  47. <p class="DetailLine">活动说明</p>
  48. <p class="DetailLine">1.活动名称:2023“我心中的黄帝陵”青少年书画活动</p>
  49. <p class="DetailLine">
  50. 2.主办单位:陕西省委网信办、共青团陕西省委、陕西省祭陵办
  51. </p>
  52. <p class="DetailLine">
  53. 3.参与对象:全省各单位青年、高校学生、中小学学生
  54. </p>
  55. <p class="DetailLine">
  56. 4.征集主题:以书法、绘画作品的形式表现自己对“黄帝”文化的理解、对“黄帝”形象的领悟。
  57. </p>
  58. <p class="DetailLine">5.征稿时间:2023年4月</p>
  59. <p class="DetailLine">
  60. 6.评选方式:评选阶段分为初评和终评。通过初评的作品在“闪视频”、“西部网教育”微信公众号展示。通过初评的选手将参加现场创作活动,由专家评审团现场评审选出优秀作品,评审结果将在“西部网教育”微信公众号发布。
  61. </p>
  62. <p class="DetailLine">活动规则</p>
  63. <p class="DetailLine">
  64. 1.全省各单位青年、高校学生、中小学学生均可投稿;投稿作品需符合主题要求,内容应健康、积极向上,具有艺术感、想象力和创造性,拒绝模版化作品。
  65. </p>
  66. <p class="DetailLine">
  67. 2.投稿者应保证其为所投作品的作者,并对该作品的整体及局部均拥有独立、完整、明确、无争议的著作权;作者还应保证其所投送的作品不侵犯第三人的包括著作权、肖像权、名誉权、隐私权等在内的合法权益。
  68. </p>
  69. <p class="DetailLine">
  70. 3.主办方有权免费使用本次书画活动的作品,包括出版画册、举办展览和相关宣传推广等。
  71. </p>
  72. </div>
  73. </van-dialog>
  74. <van-dialog
  75. theme="round-button"
  76. confirm-button-text="关 闭"
  77. v-model:show="toJianjie"
  78. title="详情"
  79. confirm-button-color="#cc0003"
  80. >
  81. <div class="DetailMain">
  82. 5月即将开启,敬请关注!届时,我们将组织标准评委团对线上线下提交的作品进行初评,评选出优秀选手,通过初评的优秀选手将参加现场绘画、书法环节,现场所画作品直接参与专家评审团现场评审,最终选出各类优秀作品,并进行表彰。
  83. </div>
  84. </van-dialog>
  85. <img v-if="showWixin" src="../../assets/img/weixin.jpg" class="Down" />
  86. </div>
  87. </template>
  88. <script setup>
  89. import { ref } from 'vue';
  90. // import { onMounted, reactive } from "vue";
  91. import {
  92. isIpad,
  93. isIpod,
  94. isIphone,
  95. isAndroid,
  96. isWechat,
  97. } from '../../utils/isTerminal';
  98. import { getToupiaoUrl } from '@/api/SilkRoadSpringGala.js';
  99. /**
  100. * window.$originData.orginParames.title 页面标题
  101. * window.$originData.orginParames.parameters 固定参数值
  102. * window.$originData.urlParames url参数
  103. */
  104. import logoImage from '@/assets/img/logp.png';
  105. const toShanshipin = ref(false);
  106. const toDetail = ref(false);
  107. const showWixin = ref(false);
  108. const toJianjie = ref(false);
  109. function getDownloadUrl() {
  110. let url = 'https://ssp.sxtvs.com.cn';
  111. if (isIpad || isIpod || isIphone)
  112. url =
  113. 'https://apps.apple.com/cn/app/%E9%97%AA%E8%A7%86%E9%A2%91/id1498056575';
  114. if (isAndroid) url = 'tideapp://scheme';
  115. return url;
  116. }
  117. function toShanshipinFunc() {
  118. if (isIpad || isIpod || isIphone) return (location.href = getDownloadUrl());
  119. if (isWechat) showWixin.value = true;
  120. else location.href = getDownloadUrl();
  121. if (!isWechat && isAndroid)
  122. window.setTimeout(function () {
  123. window.location.href =
  124. 'https://ssp.sxtvs.com.cn'; /***打开app的协议,有安卓同事提供***/
  125. }, 2000);
  126. }
  127. function tougao() {
  128. getToupiaoUrl().then(r => {
  129. const res = r || { toxuanshouurl: '' };
  130. if (res.toxuanshouurl) openShanshipinDetail(res.toxuanshouurl);
  131. else toJianjie.value = true;
  132. });
  133. }
  134. function openShanshipinDetail(url = '') {
  135. const contentId = '',
  136. shareTitle = '',
  137. shareSummary = '',
  138. shareIcon = '',
  139. shareUrl = '';
  140. try {
  141. if (isIphone || isIpad || isIpod) {
  142. window.webkit.messageHandlers.TideAppStartNewsDetail.postMessage([
  143. url,
  144. contentId,
  145. shareTitle,
  146. shareSummary,
  147. shareIcon,
  148. shareUrl,
  149. ]);
  150. } else {
  151. window.TideApp.startNewsDetail(
  152. url,
  153. contentId,
  154. shareTitle,
  155. shareSummary,
  156. shareIcon,
  157. shareUrl
  158. );
  159. }
  160. } catch (e) {
  161. console.log(e);
  162. window.location.href = url;
  163. }
  164. }
  165. </script>
  166. <style lang="scss">
  167. .CalligraphyAndPaintingCompetition {
  168. width: 100vw;
  169. height: 100vh;
  170. background-image: url('../../assets/img/hdl.jpg');
  171. background-size: 100% 100%;
  172. position: relative;
  173. .bottom {
  174. position: absolute;
  175. bottom: 0;
  176. width: 100vw;
  177. display: flex;
  178. padding: 1em 0;
  179. .bottom_item {
  180. flex: 2;
  181. text-align: center;
  182. padding: 0 0.5em;
  183. }
  184. }
  185. .btn {
  186. display: inline-block;
  187. font-weight: 500;
  188. font-size: 16px;
  189. background: -webkit-gradient(
  190. linear,
  191. left top,
  192. right top,
  193. from(#0038ad),
  194. to(#004fd9)
  195. );
  196. background: #cc0003;
  197. // background: linear-gradient(90deg, #0038ad, #004fd9);
  198. width: 100%;
  199. height: 2.5em;
  200. line-height: 2.5em;
  201. border-radius: 2.5em;
  202. text-align: center;
  203. color: #fff;
  204. vertical-align: middle;
  205. }
  206. .dialogBody {
  207. position: absolute;
  208. top: 50%;
  209. left: 50%;
  210. transform: translate(-50%, -50%);
  211. padding: 1em 1em 1em 1em;
  212. width: 90%;
  213. margin: 0 auto;
  214. border-radius: 15px;
  215. background-color: #ffffff;
  216. .closeBtn {
  217. width: 40px;
  218. height: 40px;
  219. padding-top: 10px;
  220. border-radius: 50%;
  221. left: 50%;
  222. bottom: -4em;
  223. transform: translateX(-50%);
  224. position: absolute;
  225. background-color: rgba(0, 0, 0, 0.4);
  226. text-align: center;
  227. }
  228. .van-image {
  229. margin: 0 auto;
  230. display: block;
  231. }
  232. .title {
  233. transition: opacity 0.5s;
  234. color: #666;
  235. border-radius: 0.5rem;
  236. padding: 0.45rem 0.6rem 0 0.6rem;
  237. text-align: center;
  238. }
  239. }
  240. .DetailMain {
  241. padding: 0 26px;
  242. max-height: 250px;
  243. overflow: auto;
  244. .DetailLine {
  245. padding-bottom: 1em;
  246. color: #666;
  247. line-height: 1.5em;
  248. }
  249. }
  250. .Down {
  251. position: fixed;
  252. z-index: 100000;
  253. width: 100vw;
  254. height: 100vh;
  255. }
  256. }
  257. </style>