signup.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843
  1. <!--
  2. [报名] 样式3 - 报名
  3. http://localhost:5173/card/#/pages/bm/style4/signup
  4. https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
  5. -->
  6. <template>
  7. <view class="body">
  8. <view class="content uni-column">
  9. <view class="uni-column" :class="cssTop">
  10. <my-topbar :mcName="mcName" :class="cssTopbarColor" @btnBackClick="btnBack"
  11. @btnInfoClick="btnInfo"></my-topbar>
  12. <view class="topcontent uni-column uni-jcsa">
  13. <view class="logo"></view>
  14. <text class="top-acttime">{{fmtMcTime2(beginSecond, endSecond)}}</text>
  15. </view>
  16. </view>
  17. <view class="timebar uni-row">
  18. <image mode="aspectFit" class="clock" src="/static/default/clock.png"></image>
  19. <text class="acttime">{{acttime}}</text>
  20. </view>
  21. <view class="main uni-column uni-jct">
  22. <input class="uni-input" maxlength="20" :placeholder="'请填写'+configParam.labelName" placeholder-style="font-size: 14px;" v-model="nickName" />
  23. <e-select v-model="coiId" :options="coiRs" :props="eSelectionProps" clearable
  24. maxHeight="40vh" :placeholder="'请选择'+configParam.labelOrg+'(可输入关键字)'" @getText="getESelectText"
  25. @change="eSelectChange"></e-select>
  26. <view class="introduce uni-column">
  27. <text class="introduce-title">{{introduce.title}}</text>
  28. <text class="introduce-content" v-html="introduce.content"></text>
  29. </view>
  30. <view v-if="activityRules.content.length > 0" class="activityRules uni-column">
  31. <text class="activityRules-title">{{activityRules.title}}</text>
  32. <text class="activityRules-content" v-html="activityRules.content"></text>
  33. </view>
  34. <button class="btnSignup btnSignup-enable" v-if="mcState<=1" @click="btnSignup">报 名</button>
  35. <button class="btnSignup btnSignup-disable" v-if="mcState==2">活动已结束</button>
  36. </view>
  37. <my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
  38. <!-- <uni-popup ref="alertDialog" type="dialog">
  39. <uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="您填写的姓名:" @confirm="dialogConfirm"
  40. @close="dialogClose">
  41. <view class="dialog-content uni-column">
  42. <text class="dialog-content-1">{{nickName}}</text>
  43. </view>
  44. </uni-popup-dialog>
  45. </uni-popup> -->
  46. <uni-popup ref="alertDialog" type="dialog">
  47. <uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="你的报名信息:" @confirm="dialogConfirm"
  48. @close="dialogClose">
  49. <view class="dialog-content uni-column">
  50. <text class="dialog-content-1">{{mcName}}</text>
  51. <view class="uni-column uni-ais">
  52. <text class="dialog-content-2">{{configParam.labelName}}: {{nickName}}</text>
  53. <text class="dialog-content-2">{{configParam.labelOrg}}: {{coiName}}</text>
  54. <!-- <text class="dialog-content-2">{{teamName}}</text> -->
  55. </view>
  56. </view>
  57. </uni-popup-dialog>
  58. </uni-popup>
  59. </view>
  60. </view>
  61. </template>
  62. <script>
  63. import tools from '../../../common/tools';
  64. import {
  65. defaultPopUpDataList
  66. } from '../../../common/define';
  67. import {
  68. token,
  69. apiCardDetailQuery,
  70. apiOnlineMcSignUpDetail,
  71. apiOnlineMcSignUp,
  72. apiCardConfigQuery,
  73. apiMatchRsDetailQuery,
  74. checkResCode,
  75. checkToken
  76. } from '../../../common/api';
  77. export default {
  78. data() {
  79. return {
  80. pageName: "signup",
  81. firstEnterKey: 'firstEnter-bm-style4',
  82. rankKey: "rank-bm-style4",
  83. queryObj: {},
  84. queryString: "",
  85. from: "", // 来源页面
  86. token: "",
  87. ecId: 0, // 卡片id
  88. mcId: 0, // 赛事id
  89. mcType: 0, // 赛事类型 1 普通活动 2 线下赛 3 线上赛
  90. mcName: "", // 赛事名称
  91. acttime: "", // 活动时间
  92. beginSecond: null, // 活动或赛事开始时间戳,单位秒
  93. endSecond: null, // 活动或赛事结束时间戳,单位秒
  94. coiId: 0, // 已报名单位id
  95. coiName: "", // 已报名单位名称,可为空
  96. teamNum: 0, // 已报名队伍编号,可为0
  97. nickName: "", // 昵称
  98. coiRs: [], // 组织信息集合
  99. // orgList: [], // 分组下拉列表数据源
  100. // teamList: [], //
  101. interval: null,
  102. mcState: 0, // 赛事/活动状态 0: 未开始 1: 进行中 2: 已结束
  103. // teamType: 0, // 队伍类型 0: 红黄蓝紫 1: 学生/家长
  104. cssTop: "",
  105. cssTopbarColor: "",
  106. cssLogo: "",
  107. introduce: {
  108. title: "",
  109. content: ""
  110. },
  111. activityRules: {
  112. title: "",
  113. content: ""
  114. },
  115. popupRuleConfig: {}, // 规则弹窗配置
  116. popupDataList: [],
  117. configParam: {
  118. labelName: "昵称",
  119. labelOrg: "组织",
  120. },
  121. eSelectionProps: {
  122. text: 'coiName',
  123. value: 'coiId',
  124. // disabled: 'noallowed'
  125. },
  126. }
  127. },
  128. computed: {},
  129. onLoad(query) { // 类型非必填,可自动推导
  130. // console.log(query);
  131. this.queryObj = query;
  132. this.queryString = tools.objectToQueryString(this.queryObj);
  133. // console.log(queryString);
  134. this.from = query["from"] ?? "";
  135. this.token = query["token"] ?? token;
  136. this.ecId = query["id"] ?? 0;
  137. this.firstEnterKey += "-" + this.ecId;
  138. console.log("firstEnterKey:", this.firstEnterKey);
  139. this.rankKey += "-" + this.ecId;
  140. console.log("rankKey:", this.rankKey);
  141. tools.removeCssCode();
  142. this.getCardConfigQuery();
  143. this.getCardDetailQuery();
  144. this.matchRsDetailQuery();
  145. },
  146. // 页面初次渲染完成,此时组件已挂载完成,DOM 树($el)已可用
  147. onReady() {
  148. // this.dealFirstEnter();
  149. },
  150. onUnload() {
  151. this.clear();
  152. },
  153. methods: {
  154. dealNotice(rank) {
  155. // console.log('[dealNotice]');
  156. let that = this;
  157. uni.getStorage({
  158. key: that.rankKey,
  159. success: (res) => {
  160. console.log('[getStorage]', that.rankKey, res.data);
  161. const oldRank = res.data;
  162. if (oldRank != rank) {
  163. // that.notice = true;
  164. that.setRankValue(rank);
  165. }
  166. },
  167. fail: (e) => {
  168. console.log('[getStorage] fail', that.rankKey, e);
  169. // that.notice = false;
  170. that.setRankValue(rank);
  171. },
  172. })
  173. },
  174. setRankValue(data) {
  175. let that = this;
  176. uni.setStorage({
  177. key: that.rankKey,
  178. data: data,
  179. success: () => {
  180. console.log('[setStorage] success', that.rankKey, data);
  181. },
  182. fail: (e) => {
  183. console.log('[setStorage] fail', that.rankKey, e);
  184. },
  185. })
  186. },
  187. dealFirstEnter() {
  188. // console.log('[dealFirstEnter]');
  189. let that = this;
  190. uni.getStorage({
  191. key: that.firstEnterKey,
  192. success: (res) => {
  193. console.log('[getStorage]', that.firstEnterKey, res.data);
  194. },
  195. fail: (e) => {
  196. console.log('[getStorage] fail', that.firstEnterKey, e);
  197. that.btnInfo();
  198. that.setFirstEnterValue(true);
  199. },
  200. })
  201. },
  202. setFirstEnterValue(data) {
  203. let that = this;
  204. uni.setStorage({
  205. key: that.firstEnterKey,
  206. data: data,
  207. success: () => {
  208. console.log('[setStorage] success', that.firstEnterKey, data);
  209. },
  210. fail: (e) => {
  211. console.log('[setStorage] fail', that.firstEnterKey, e);
  212. },
  213. })
  214. },
  215. clear() {
  216. if (this.interval != null) {
  217. clearInterval(this.interval);
  218. this.interval = null;
  219. }
  220. },
  221. loadConfig(config) {
  222. // console.log("config", config);
  223. // 加载CSS样式
  224. const css = config.css;
  225. if (css != undefined && css.length > 0) {
  226. tools.loadCssCode(css);
  227. if (css.indexOf(".top{") >= 0) {
  228. this.cssTop = "top";
  229. }
  230. if (css.indexOf(".topbar-color{") >= 0) {
  231. this.cssTopbarColor = "topbar-color";
  232. }
  233. }
  234. if (this.cssTop == "") {
  235. this.cssTop = "top-default";
  236. }
  237. if (this.cssTopbarColor == "") {
  238. this.cssTopbarColor = "topbar-color-default";
  239. }
  240. console.log("[loadConfig] cssTop:", this.cssTop);
  241. console.log("[loadConfig] cssTopbarColor:", this.cssTopbarColor);
  242. // 加载队伍类型 0: 红黄蓝紫 1: 学生/家长
  243. /* if (config.teamType != undefined && config.teamType >= 0) {
  244. this.teamType = config.teamType;
  245. } */
  246. // 加载介绍内容
  247. const introduce = config.introduce;
  248. if (introduce != undefined) {
  249. if (introduce.title != undefined) {
  250. this.introduce.title = introduce.title;
  251. }
  252. if (introduce.content != undefined) {
  253. this.introduce.content = introduce.content;
  254. }
  255. }
  256. // 加载活动规则
  257. const activityRules = config.activityRules;
  258. if (activityRules != undefined) {
  259. if (activityRules.title != undefined) {
  260. this.activityRules.title = activityRules.title;
  261. }
  262. if (activityRules.content != undefined) {
  263. this.activityRules.content = activityRules.content;
  264. }
  265. }
  266. // 加载规则弹窗配置
  267. const popupRuleConfig = config.popupRuleConfig;
  268. if (popupRuleConfig != undefined) {
  269. this.popupRuleConfig = popupRuleConfig;
  270. }
  271. // console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
  272. // 加载弹窗数据
  273. const popupDataList = config.popupDataList;
  274. // console.log("[loadConfig] popupDataList:", popupDataList);
  275. if (popupDataList != undefined && popupDataList.length > 0) {
  276. for (var i = 0; i < popupDataList.length; i++) {
  277. // console.log("[loadConfig] popupDataList", i, popupDataList[i]);
  278. if (popupDataList[i] == 'default') {
  279. for (var j = 0; j < defaultPopUpDataList.length; j++) {
  280. this.popupDataList.push(defaultPopUpDataList[j]);
  281. }
  282. } else {
  283. this.popupDataList.push(popupDataList[i]);
  284. }
  285. }
  286. } else {
  287. this.popupDataList = defaultPopUpDataList;
  288. console.log("[loadConfig] popupDataList 加载默认列表");
  289. }
  290. // console.log("[loadConfig] popupDataList:", this.popupDataList);
  291. // 加载页面参数
  292. const param = config.param;
  293. if (param != undefined) {
  294. if (param.labelName != undefined && param.labelName.length > 0) {
  295. this.configParam.labelName = param.labelName;
  296. }
  297. if (param.labelOrg != undefined && param.labelOrg.length > 0) {
  298. this.configParam.labelOrg = param.labelOrg;
  299. }
  300. }
  301. // console.log("[loadConfig] param:", this.configParam);
  302. },
  303. fmtMcTime(timestamp) {
  304. return tools.fmtMcTime(timestamp);
  305. },
  306. // 获取倒计时
  307. getActtime() {
  308. this.acttime = tools.getActtime(this.beginSecond, this.endSecond);
  309. },
  310. fmtMcTime2(timestamp1, timestamp2) {
  311. return tools.fmtMcTime2(timestamp1, timestamp2);
  312. },
  313. getCardConfigQuery() {
  314. uni.request({
  315. url: apiCardConfigQuery,
  316. header: {
  317. "Content-Type": "application/x-www-form-urlencoded",
  318. "token": this.token,
  319. },
  320. method: "POST",
  321. data: {
  322. ecId: this.ecId,
  323. pageName: this.pageName
  324. },
  325. success: (res) => {
  326. // console.log("getCardConfigQuery", res)
  327. const data = res.data.data;
  328. const config = data.configJson != "" ? JSON.parse(data.configJson) : "";
  329. // console.log("configJson", data.configJson);
  330. /* const config = {
  331. "css": `
  332. .top{
  333. width: 100%;
  334. height: 220px;
  335. padding-top: 36px;
  336. justify-content: space-between;
  337. background-image: url('static/backgroud/top_bg_sddx.png');
  338. background-repeat: no-repeat;
  339. background-position: center;
  340. background-size: cover;
  341. }
  342. .logo{
  343. background-image: url('static/logo/sddx.png');
  344. }
  345. .top-acttime{
  346. display: flex !important;
  347. }
  348. .topbar-color{
  349. color: #ffffff;
  350. }
  351. .btnSignup-enable {
  352. background-color: #a43a07 !important;
  353. }
  354. .swiper-item-button {
  355. background-color: #a43a07 !important;
  356. }
  357. .uni-swiper-dot-active {
  358. background: #a43a07 !important;
  359. }
  360. `,
  361. "popupDataList": [{
  362. "type": 1,
  363. "data": {
  364. "title": "山大校园定向赛",
  365. "img": "/static/logo/sddx.png",
  366. "content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
  367. }
  368. },
  369. "default"
  370. ],
  371. "introduce": {
  372. "title": "介绍:",
  373. "content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
  374. },
  375. "activityRules": {
  376. "title": "活动规则:",
  377. "content": "<li>随时参赛、不限完赛次数、起点任选、实时排名 <li>起点 -各途经点 -结束点完整打卡为一次有效完赛"
  378. },
  379. "param": {
  380. "labelName": "姓名",
  381. "labelOrg": "院系"
  382. }
  383. }; */
  384. this.loadConfig(config);
  385. setTimeout(this.dealFirstEnter, 500);
  386. },
  387. fail: (err) => {
  388. console.log("getCardConfigQuery err", err)
  389. },
  390. });
  391. },
  392. // 卡片信息查询
  393. getCardDetailQuery() {
  394. uni.request({
  395. url: apiCardDetailQuery,
  396. header: {
  397. "Content-Type": "application/x-www-form-urlencoded",
  398. "token": this.token
  399. },
  400. method: "POST",
  401. data: {
  402. ecId: this.ecId
  403. },
  404. success: (res) => {
  405. // console.log("getCardDetailQuery", res);
  406. const data = res.data.data;
  407. this.mcType = data.mcType;
  408. this.mcId = data.mcId;
  409. this.mcName = data.mcName;
  410. this.beginSecond = data.beginSecond;
  411. this.endSecond = data.endSecond;
  412. this.coiId = data.coiId;
  413. this.coiName = data.coiName;
  414. this.teamNum = data.teamNum;
  415. this.nickName = data.nickName;
  416. this.mcState = tools.checkMcState(this.beginSecond, this.endSecond);
  417. this.getActtime();
  418. this.getOnlineMcSignUpDetail();
  419. this.clear();
  420. this.interval = setInterval(this.getActtime, 60000);
  421. },
  422. fail: (err) => {
  423. console.log("getCardDetailQuery err", err)
  424. },
  425. });
  426. },
  427. // 卡片对应线上赛多个活动查询
  428. matchRsDetailQuery() {
  429. uni.request({
  430. url: apiMatchRsDetailQuery,
  431. header: {
  432. "Content-Type": "application/x-www-form-urlencoded",
  433. "token": this.token,
  434. },
  435. method: "POST",
  436. data: {
  437. ecId: this.ecId
  438. },
  439. success: (res) => {
  440. // console.log("matchRsDetailQuery", res);
  441. if (res.data.code == 0) {
  442. const data = res.data.data;
  443. const rank = JSON.stringify(data);
  444. this.dealNotice(rank);
  445. }
  446. },
  447. fail: (err) => {
  448. console.log("matchRsDetailQuery err", err)
  449. },
  450. });
  451. },
  452. // 卡片用户当前排名查询
  453. // getUserCurrentRankNumQuery() {
  454. // uni.request({
  455. // url: apiUserCurrentRankNumQuery,
  456. // header: {
  457. // "Content-Type": "application/x-www-form-urlencoded",
  458. // "token": this.token,
  459. // },
  460. // method: "POST",
  461. // data: {
  462. // ecId: this.ecId
  463. // },
  464. // success: (res) => {
  465. // // console.log("getUserCurrentRankNumQuery", res)
  466. // if (res.data.code == 0) {
  467. // const data = res.data.data;
  468. // const rankNum = data.rankNum;
  469. // this.dealNotice(rankNum);
  470. // }
  471. // },
  472. // fail: (err) => {
  473. // console.log("getUserCurrentRankNumQuery err", err)
  474. // },
  475. // });
  476. // },
  477. // 线上赛报名页面信息详情
  478. getOnlineMcSignUpDetail() {
  479. uni.request({
  480. url: apiOnlineMcSignUpDetail,
  481. header: {
  482. "Content-Type": "application/x-www-form-urlencoded",
  483. "token": this.token,
  484. },
  485. method: "POST",
  486. data: {
  487. mcId: this.mcId,
  488. },
  489. success: (res) => {
  490. console.log("getOnlineMcSignUpDetail", res);
  491. this.coiRs = res.data.data.coiRs;
  492. if (this.nickName == undefined || this.nickName == '') {
  493. this.nickName = res.data.data.name;
  494. }
  495. /* const rsNum = this.coiRs.length;
  496. this.orgList = [];
  497. for (let i = 0; i < rsNum; i++) {
  498. this.orgList[i] = {};
  499. this.orgList[i].value = this.coiRs[i].coiId;
  500. this.orgList[i].text = this.coiRs[i].coiName;
  501. this.orgList[i].teamNum = this.coiRs[i].teamNum;
  502. }
  503. // console.log("orgList", this.orgList);
  504. if (this.coiId > 0) {
  505. this.orgChange(this.coiId, false);
  506. } */
  507. },
  508. fail: (err) => {
  509. console.log("getOnlineMcSignUpDetail err", err)
  510. },
  511. });
  512. },
  513. // 线上赛报名
  514. onlineMcSignUp() {
  515. uni.request({
  516. url: apiOnlineMcSignUp,
  517. header: {
  518. "Content-Type": "application/x-www-form-urlencoded",
  519. "token": this.token,
  520. },
  521. method: "POST",
  522. data: {
  523. mcId: this.mcId,
  524. coiId: this.coiId,
  525. selectTeam: this.teamNum,
  526. nickName: this.nickName
  527. },
  528. success: (res) => {
  529. // console.log("onlineMcSignUp", res);
  530. if (checkResCode(res)) {
  531. uni.showToast({
  532. title: '比赛报名成功!',
  533. icon: 'none',
  534. duration: 3000
  535. });
  536. // uni.navigateTo({
  537. // // url: '/pages/bm/style4/rankOverview?' + this.queryString
  538. // url: '/pages/bm/style4/rankList?' + this.queryString
  539. // });
  540. const url = '/pages/bm/style4/rankList?' + this.queryString;
  541. tools.appAction(url, "uni.navigateTo");
  542. }
  543. },
  544. fail: (err) => {
  545. console.log("onlineMcSignUp err", err);
  546. uni.showToast({
  547. title: '出错了,报名失败',
  548. icon: 'none',
  549. duration: 3000
  550. });
  551. },
  552. });
  553. },
  554. btnBack() {
  555. // console.log("from:", this.from)
  556. if (this.from != '') {
  557. // window.history.back();
  558. // uni.navigateTo({
  559. // url: '/pages/bm/style4/' + this.from + '?' + this.queryString
  560. // });
  561. const url = '/pages/bm/style4/' + this.from + '?' + this.queryString;
  562. tools.appAction(url, "uni.navigateTo");
  563. } else {
  564. const url = `action://to_home/`;
  565. tools.appAction(url);
  566. }
  567. },
  568. btnInfo() {
  569. this.$refs.mypopup.popupOpen();
  570. },
  571. btnSignup() {
  572. if (!checkToken(this.token)) {
  573. return;
  574. }
  575. if (!(this.nickName.trim().length > 0)) {
  576. uni.showToast({
  577. title: `请填写${this.configParam.labelName}`,
  578. icon: 'none',
  579. duration: 2000
  580. });
  581. return;
  582. }
  583. if (!(this.coiId > 0)) {
  584. uni.showToast({
  585. title: `请选择${this.configParam.labelOrg}`,
  586. icon: 'none',
  587. duration: 2000
  588. });
  589. return;
  590. }
  591. this.nickName = this.nickName.trim();
  592. // this.coiName = tools.getSelectedText(this.orgList, this.coiId);
  593. // this.teamName = tools.getSelectedText(this.teamList, this.teamNum);
  594. this.$refs.alertDialog.open();
  595. },
  596. dialogConfirm() {
  597. this.onlineMcSignUp();
  598. },
  599. dialogClose() {},
  600. // 获取输入框中值
  601. getESelectText(data) {
  602. // console.log("getESelectText:", data);
  603. this.coiName = data;
  604. },
  605. // 获取选择选项值
  606. eSelectChange(data) {
  607. // console.log("eSelectChange:", data);
  608. },
  609. }
  610. }
  611. </script>
  612. <style scoped>
  613. .content {
  614. width: 100vw;
  615. min-height: 100vh;
  616. }
  617. .top-default {
  618. width: 100%;
  619. height: 220px;
  620. padding-top: 36px;
  621. justify-content: space-between;
  622. background-image: url('static/backgroud/top_bg_sddx.png');
  623. background-repeat: no-repeat;
  624. background-position: center;
  625. background-size: cover;
  626. }
  627. .topbar-color-default {
  628. color: #333333;
  629. }
  630. .topcontent {
  631. height: 90%;
  632. margin-bottom: 30px;
  633. }
  634. .logo {
  635. width: 80px;
  636. height: 80px;
  637. margin-top: 10px;
  638. /* background-image: url('/static/logo/sddx.png'); */
  639. background-repeat: no-repeat;
  640. background-position-x: center;
  641. background-position-y: center;
  642. background-size: contain;
  643. }
  644. .top-acttime {
  645. display: none;
  646. text-shadow: 3px 3px 0px #640008;
  647. font-family: YouSheBiaoTiHei;
  648. /* font-family: Arial, Helvetica, sans-serif; */
  649. font-weight: bold;
  650. color: #ffee0b;
  651. font-size: 26px;
  652. }
  653. .mcName {
  654. font-size: 40rpx;
  655. font-weight: 550;
  656. }
  657. .main {
  658. width: 76%;
  659. /* min-height: 800rpx; */
  660. /* margin-top: 20rpx; */
  661. /* justify-content: space-around; */
  662. flex-grow: 1;
  663. }
  664. .timebar {
  665. width: 68%;
  666. height: 32px;
  667. margin-top: -17px;
  668. padding: 0 15px;
  669. justify-content: center;
  670. background: #ffffff;
  671. border: 0.5px solid;
  672. border-color: #e7e7e7;
  673. border-radius: 20px;
  674. box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.13);
  675. }
  676. .acttime {
  677. font-weight: 550;
  678. color: #333333;
  679. font-size: 15px;
  680. }
  681. .clock {
  682. width: 15px;
  683. height: 15px;
  684. margin-right: 10px;
  685. }
  686. .uni-input {
  687. width: 90%;
  688. height: 34px;
  689. margin-top: 15px;
  690. margin-bottom: 15px;
  691. padding: 0 13px;
  692. /* background: #f1f1f1; */
  693. border: 1px solid #dcdfe6;
  694. border-radius: 4px;
  695. font-size: 14px;
  696. }
  697. .input-placeholder {
  698. color: #333333;
  699. font-size: 16px;
  700. }
  701. .introduce {
  702. width: 100%;
  703. margin-top: 12px;
  704. margin-bottom: 10px;
  705. align-items: flex-start;
  706. justify-content: space-around;
  707. }
  708. .introduce-title {
  709. color: #333333;
  710. font-size: 15px;
  711. line-height: 30px;
  712. font-family: Source Han Sans CN;
  713. }
  714. .introduce-content {
  715. color: #333333;
  716. font-size: 14px;
  717. line-height: 23px;
  718. font-family: Source Han Sans CN;
  719. }
  720. .activityRules {
  721. width: 100%;
  722. margin-top: 5px;
  723. margin-bottom: 10px;
  724. padding: 10px 15px;
  725. align-items: flex-start;
  726. justify-content: space-around;
  727. border-radius: 9px;
  728. background: #EBEBEB;
  729. }
  730. .activityRules-title {
  731. color: #333333;
  732. font-size: 14px;
  733. line-height: 25px;
  734. font-weight: 500;
  735. font-family: Source Han Sans CN;
  736. }
  737. .activityRules-content {
  738. color: #333333;
  739. font-size: 13px;
  740. line-height: 23px;
  741. font-family: Source Han Sans CN;
  742. }
  743. .btnSignup {
  744. width: 100%;
  745. height: 100rpx;
  746. margin-top: 30rpx;
  747. margin-bottom: 30rpx;
  748. color: white;
  749. font-weight: bold;
  750. line-height: 100rpx;
  751. border-radius: 55rpx;
  752. }
  753. .btnSignup-enable {
  754. background-color: #81cd00;
  755. }
  756. .btnSignup-disable {
  757. background-color: #c3c3c3;
  758. }
  759. .dialog-content {
  760. width: 280px;
  761. height: 110px;
  762. padding: 0 20px;
  763. background: #f1f1f1;
  764. border-radius: 9px;
  765. justify-content: center;
  766. text-align: center;
  767. font-weight: 550;
  768. color: #333333;
  769. }
  770. .dialog-content-1 {
  771. font-size: 34rpx;
  772. margin-bottom: 30rpx;
  773. }
  774. .dialog-content-2 {
  775. font-size: 28rpx;
  776. margin-bottom: 10rpx;
  777. text-align: left;
  778. }
  779. </style>