index.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. {extend name="public/base_el"/}
  2. {block name="css"}
  3. <style>
  4. .box {
  5. margin: 0 auto;
  6. width: 1200px;
  7. }
  8. .countdown {
  9. text-align: right;
  10. color: red;
  11. }
  12. .title {
  13. margin-top: 50px;
  14. }
  15. .title p {
  16. margin: 10px auto;
  17. padding: 0 20px;
  18. text-align: center;
  19. font-size: 24px;
  20. font-weight: 700;
  21. }
  22. .font-bold {
  23. font-weight: bold;
  24. }
  25. .exam-title {
  26. font-family: "黑体";
  27. }
  28. .content, .exam-title {
  29. text-indent: 2em;
  30. line-height: 28px;
  31. font-size: 18px;
  32. font-family: "仿宋_GB2312";
  33. }
  34. </style>
  35. {/block}
  36. {block name="body"}
  37. <div class="box">
  38. <div class="countdown">结束倒计时 {{second_text}}</div>
  39. <div class="title">
  40. <p>2025年晋江市AI政务应用技能竞赛</p>
  41. <p>决赛考题</p>
  42. </div>
  43. <div class="exam-title font-bold">
  44. 题目:利用AI工具设计“晋青拼搏”年轻干部培养品牌宣传作品
  45. </div>
  46. <div class="content">
  47. 年轻干部是党的事业薪火相传的生力军,肩负着时代赋予的重任。近年来,晋江市委组织部、市直机关工委深入学习贯彻习近平总书记关于年轻干部工作的重要论述,抓实后继有人根本大计,聚焦抓学习、比业务、重实践等方面,搭建多元载体,打造了“晋青拼搏”年轻干部培养品牌,努力锻造一支政治过硬、作风扎实、本领高强的年轻干部队伍。
  48. </div>
  49. <div class="content">
  50. 请围绕“晋青拼搏”年轻干部培养品牌,运用AI技术设计一份具有创新性和吸引力的宣传作品,展现晋江市委组织部、市直机关工委在年轻干部教育培养路径的探索和实践,突出在思想淬炼、本领锤炼、实践历练等方面的系列举措,如,开设“青马成才”训练营,常态化开展辩论赛、诵读比赛、政务技能竞赛等活动,组建应急先锋队、强企先锋队等等,助推营造“晋青拼搏”的干事创业氛围。
  51. </div>
  52. <div class="content">具体要求:</div>
  53. <div class="content">
  54. <span class="font-bold">1.设计宣传作品:</span>
  55. <span>(1)请利用AI技术,创作一份针对“晋青拼搏”主题的宣传作品,要求内容积极向上,能够准确传达“晋青拼搏”的品牌理念和价值。(2)作品格式限定为图片、动图或短视频(其中,①图片为JPG格式,色彩模式为RGB,分辨率不低于300dpi;②动图为GIF格式,时长不低于5秒,不超过15秒,分辨率不低于1242px*2208px;③短视频格式不限,清晰度不低于1080P,时长不低于30秒,不超过3分钟),选手根据自身AI工具运用水平自行选择,应保证作品原创。</span>
  56. </div>
  57. <div class="content">
  58. <span class="font-bold">2.生成创作思路PPT:</span>
  59. <span>(1)制作一个PPT,阐述创作思路、操作过程及作品亮点,展现AI工具在提升设计效率与创意实现方面的作用。(2)PPT控制在5页以内,内容精炼,条理清晰。</span>
  60. </div>
  61. <div class="content">
  62. <span class="font-bold">3.命名要求:</span>
  63. <span>作品完成后,将宣传作品文件命名为“单位+选手姓名+作品”,将创作思路PPT文件命名为“单位+选手姓名+思路PPT”,上传至考试指定页面,并点击“交卷”按钮完成提交。</span>
  64. </div>
  65. <div style="margin-top:50px;">
  66. <el-upload
  67. v-model:file-list="fileList"
  68. class="upload-demo"
  69. action="{:url('upload')}"
  70. :before-remove="removeFile"
  71. multiple
  72. >
  73. <el-button type="success">点击上传文件</el-button>
  74. </el-upload>
  75. </div>
  76. <div style="margin-top:50px;text-align: center;">
  77. <el-button type="primary" @click="toSuccess">交卷</el-button>
  78. </div>
  79. </div>
  80. {/block}
  81. {block name="script"}
  82. <script>
  83. function v_setup() {
  84. let base = {};
  85. base.fileList = Vue.ref([]);
  86. base.removeFile = (res) => {
  87. postJson("{:url('ai_exam/deleteFile')}", {name: res.name}).then(() => {
  88. ElementPlus.ElMessage.success('删除成功');
  89. });
  90. }
  91. base.toSuccess = () => {
  92. location.href = "{:url('examSuccess')}";
  93. }
  94. base.second = Vue.ref({$second});
  95. base.second_text = Vue.ref('');
  96. base.set = setInterval(function () {
  97. base.dealTime();
  98. base.second.value--;
  99. if (base.second.value < 0) {
  100. clearInterval(base.set);
  101. }
  102. }, 1000);
  103. base.dealTime = () => {
  104. if (base.second.value < 0) {
  105. return;
  106. }
  107. const hour = Math.floor(base.second.value / 3600);
  108. const minute = Math.floor((base.second.value - 3600 * hour) / 60);
  109. const second = base.second.value - 3600 * hour - minute * 60;
  110. base.second_text.value = String(hour).padStart(2,'0') + ':' + String(minute).padStart(2,'0') + ':' + String(second).padStart(2,'0')
  111. }
  112. Vue.onMounted(() => {
  113. base.dealTime();
  114. });
  115. Vue.onUnmounted(()=> {
  116. clearInterval(base.set);
  117. })
  118. return base;
  119. }
  120. </script>
  121. {/block}