liyongli 2 tahun lalu
induk
melakukan
bbe03cfc1c
6 mengubah file dengan 103 tambahan dan 46 penghapusan
  1. 1 0
      package.json
  2. 31 6
      pnpm-lock.yaml
  3. 2 1
      public/index.html
  4. 11 11
      src/view/Soundbyte/index.js
  5. 56 28
      src/view/Soundbyte/index.vue
  6. 2 0
      vue.config.js

+ 1 - 0
package.json

@@ -8,6 +8,7 @@
     "gitPush": "node ./saveOSSAGitte.js"
   },
   "dependencies": {
+    "axios": "^1.1.3",
     "core-js": "^3.6.5",
     "vant": "^3.6.4",
     "vue": "^3.0.0"

+ 31 - 6
pnpm-lock.yaml

@@ -5,6 +5,7 @@ specifiers:
   '@vue/cli-plugin-eslint': ~4.5.15
   '@vue/cli-service': ~4.5.15
   '@vue/compiler-sfc': ^3.0.0
+  axios: ^1.1.3
   babel-eslint: ^10.1.0
   core-js: ^3.6.5
   eslint: ^6.7.2
@@ -14,6 +15,7 @@ specifiers:
   vue: ^3.0.0
 
 dependencies:
+  axios: registry.npmmirror.com/axios/1.1.3
   core-js: registry.npmmirror.com/core-js/3.26.0
   vant: registry.npmmirror.com/vant/3.6.4_vue@3.2.41
   vue: registry.npmmirror.com/vue/3.2.41
@@ -2968,7 +2970,6 @@ packages:
     resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz}
     name: asynckit
     version: 0.4.0
-    dev: true
 
   registry.npmmirror.com/atob/2.1.2:
     resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz}
@@ -3005,6 +3006,18 @@ packages:
     version: 1.11.0
     dev: true
 
+  registry.npmmirror.com/axios/1.1.3:
+    resolution: {integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-1.1.3.tgz}
+    name: axios
+    version: 1.1.3
+    dependencies:
+      follow-redirects: registry.npmmirror.com/follow-redirects/1.15.2_debug@4.3.4
+      form-data: registry.npmmirror.com/form-data/4.0.0
+      proxy-from-env: registry.npmmirror.com/proxy-from-env/1.1.0
+    transitivePeerDependencies:
+      - debug
+    dev: false
+
   registry.npmmirror.com/babel-eslint/10.1.0_eslint@6.8.0:
     resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-eslint/-/babel-eslint-10.1.0.tgz}
     id: registry.npmmirror.com/babel-eslint/10.1.0
@@ -3885,7 +3898,6 @@ packages:
     engines: {node: '>= 0.8'}
     dependencies:
       delayed-stream: registry.npmmirror.com/delayed-stream/1.0.0
-    dev: true
 
   registry.npmmirror.com/commander/2.17.1:
     resolution: {integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.17.1.tgz}
@@ -4583,7 +4595,6 @@ packages:
     name: delayed-stream
     version: 1.0.0
     engines: {node: '>=0.4.0'}
-    dev: true
 
   registry.npmmirror.com/depd/1.1.2:
     resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz}
@@ -5636,7 +5647,6 @@ packages:
         optional: true
     dependencies:
       debug: registry.npmmirror.com/debug/4.3.4
-    dev: true
 
   registry.npmmirror.com/for-in/1.0.2:
     resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz}
@@ -5662,6 +5672,17 @@ packages:
       mime-types: registry.npmmirror.com/mime-types/2.1.35
     dev: true
 
+  registry.npmmirror.com/form-data/4.0.0:
+    resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz}
+    name: form-data
+    version: 4.0.0
+    engines: {node: '>= 6'}
+    dependencies:
+      asynckit: registry.npmmirror.com/asynckit/0.4.0
+      combined-stream: registry.npmmirror.com/combined-stream/1.0.8
+      mime-types: registry.npmmirror.com/mime-types/2.1.35
+    dev: false
+
   registry.npmmirror.com/forwarded/0.2.0:
     resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz}
     name: forwarded
@@ -7556,7 +7577,6 @@ packages:
     name: mime-db
     version: 1.52.0
     engines: {node: '>= 0.6'}
-    dev: true
 
   registry.npmmirror.com/mime-types/2.1.35:
     resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz}
@@ -7565,7 +7585,6 @@ packages:
     engines: {node: '>= 0.6'}
     dependencies:
       mime-db: registry.npmmirror.com/mime-db/1.52.0
-    dev: true
 
   registry.npmmirror.com/mime/1.6.0:
     resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz}
@@ -9049,6 +9068,12 @@ packages:
       ipaddr.js: registry.npmmirror.com/ipaddr.js/1.9.1
     dev: true
 
+  registry.npmmirror.com/proxy-from-env/1.1.0:
+    resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz}
+    name: proxy-from-env
+    version: 1.1.0
+    dev: false
+
   registry.npmmirror.com/prr/1.0.1:
     resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz}
     name: prr

+ 2 - 1
public/index.html

@@ -4,7 +4,7 @@
 <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
     <script src="https://cdn.bootcdn.net/ajax/libs/eruda/2.5.0/eruda.min.js"></script>
     <script>
         window.eruda.init({
@@ -12,6 +12,7 @@
         });
     </script>
     <script src="https://cxzx.smcic.net/topic/highSpeed/index.min.js"></script>
+    <script src="https://cxzx.smcic.net/topic/tool/js/shareWinxin.js"></script>
 </head>
 
 <body>

+ 11 - 11
src/view/Soundbyte/index.js

@@ -8,6 +8,7 @@ import {
   isIphone,
   isWindows,
   isMac,
+  isWechat,
 } from "../../utils/isTerminal";
 // 判断环境
 environment();
@@ -17,10 +18,11 @@ document.title = window.$originData.orginParames.title || "";
 const getUser = () => {
   window.$shanshipin = {};
   // 判断闪视频登录状态
-  if (isWindows || isMac) return createApp(App).mount("#app");
+  if (isWindows || isMac || isWechat) return createApp(App).mount("#app");
   // 获取登录信息
   if (isIpad || isIpod || isIphone) {
-    if (!window.webkit) return createApp(App).mount("#app");
+    if (!window.webkit || !window.webkit.messageHandlers)
+      return createApp(App).mount("#app");
     window.setUser = user => {
       if (user == "{}")
         return window.webkit.messageHandlers.iosJumpLogin.postMessage([]);
@@ -32,7 +34,7 @@ const getUser = () => {
           ...u1,
           ...u2,
         };
-        u1.UserId && createApp(App).mount("#app");
+        createApp(App).mount("#app");
       };
     };
 
@@ -48,7 +50,7 @@ const getUser = () => {
       ...u1,
       ...u2,
     };
-    u1.UserId && createApp(App).mount("#app");
+    createApp(App).mount("#app");
   }
 };
 getUser();
@@ -59,13 +61,11 @@ window.setUserSession = () => {
 };
 
 // 分享
-document.addEventListener("weixin_Share_Init", () => {
-  window.weixin_Share_Init(
-    "战马音浪,非同凡响",
-    "",
-    "https://cxzx.smcic.net/topic/highSpeed/img/logo3.png"
-  );
-});
+window.weixin_Share_Init(
+  "战马音浪 · 校园歌手大赛",
+  "线上连麦PK报名通道已开通,火热报名中...",
+  "https://cxzx.smcic.net/topic/highSpeed/img/logo3.png"
+);
 
 var SL = new window.SmcicLogger("shanshipin", "c6124d95");
 SL.Util.SetUrl("https://collect.smcic.net:8443/");

+ 56 - 28
src/view/Soundbyte/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="Soundbyte">
     <van-image :width="topWidth" :height="topWidth / 1.7" :src="soundbyteJpg" />
+    <br />
     <van-cell-group inset>
       <van-nav-bar title="活动介绍" />
       <p
@@ -37,6 +38,19 @@
           placeholder="请输入用户名"
           :rules="[{ validator: isString, message: '请输入正确内容' }]"
         />
+        <van-field
+          name="radio"
+          label="参赛方式"
+          required
+          :rules="[{ validator: isString, message: '请输入正确内容' }]"
+        >
+          <template #input>
+            <van-radio-group v-model="from.isOnLine" direction="horizontal">
+              <van-radio name="线上" checked-color="#ff2c2c">线上</van-radio>
+              <van-radio name="线下" checked-color="#ff2c2c">线下</van-radio>
+            </van-radio-group>
+          </template>
+        </van-field>
         <van-field
           required
           v-model.number="from.tel"
@@ -66,6 +80,7 @@
               :max-count="1"
               :max-size="524288000"
               @oversize="filesize"
+              result-type="file"
             >
               <template #preview-cover>
                 <van-icon
@@ -76,6 +91,7 @@
                 />
               </template>
             </van-uploader>
+            <p style="font-size:12px; color: #666">支持上传MP4、MOV格式的视频,视频时长三分钟以内,视频大小500M以内</p>
           </template>
         </van-field>
         <div style="padding: 5px">
@@ -108,6 +124,7 @@
 // import { onMounted, reactive } from "vue";
 import { ref, reactive } from "vue";
 import { Toast, Dialog } from "vant";
+import axios from "axios";
 import soundbyteJpg from "../../assets/img/soundbyte.jpg";
 /**
  * window.$originData.orginParames.title 页面标题
@@ -125,6 +142,7 @@ const from = reactive({
       ? shanshipin.Phone
       : "",
   university: "",
+  isOnLine: "线上",
   file: [],
 });
 
@@ -156,7 +174,7 @@ const showGuize = () => {
     messageAlign: "left",
     confirmButtonText: "关闭",
     message:
-      "1、报名时间:即日起至2022年11月26日。\n2、活动时间:11月16日 20:00--22:00。\n3、赛事举办形式:闪视频APP线上直播参赛。\n4、参与对象:西安各高校学生。\n5、参赛要求:曲风不限,自行准备演唱伴奏。\n6、评比规则:唱功为基本要求,结合现场舞台表现,演唱发挥进行综合评分。每所高校报名推选15-20人(组)进入半决赛,每场半决赛产生前五强,并根据个人综合表现评出“战马人物”,评委拥有1张决赛PASS卡。\n7、嘉宾评委:陕西广播电台音乐类主播/西安知名音乐人/歌手。",
+      "1、报名时间:即日起至2022年11月25日。\n2、参与对象:陕西各高校学生。\n3、参赛要求:曲风不限,自行准备演唱伴奏。\n4、嘉宾评委:陕西广播电视台音乐类主播/西安知名音乐人/歌手。\n5、评比规则:唱功为基本要求,结合现场表现、演唱发挥进行综合评分,优秀选手将直接进入总决赛(决赛时间:2022年11月26日),线上将评出人气选手。\n6、线上比赛时间:11月16日 19:00--21:00、11月23日 19:00--21:00。\n7、线下比赛时间:11月12日 14:00--16:00、11月13日 14:00--16:00、11月19日 14:00--16:00、11月20日 14:00--16:00。",
   });
 };
 
@@ -170,40 +188,49 @@ const isFile = () => {
   return from.file && from.file.length;
 };
 
+window.appLoginSuccess = () => {
+  console.log("登录");
+};
+
 const onSubmit = () => {
   if (!isFile) Toast("请上传作品");
-  console.log("--", from);
   const oriData = new FormData();
   oriData.append("name", from.name);
-  oriData.append("tel", from.tel);
+  oriData.append("phone", from.tel);
   oriData.append("university", from.university);
-  oriData.append("file", from.file[0]);
-
-  var xhttp;
+  oriData.append("isOnLine", from.isOnLine);
+  oriData.append("file", from.file[0].file);
+  
   Toast.loading({
-    message: "加载中...",
-    forbidClick: true,
-    duration: 0,
+      message: '加载中...',
+      forbidClick: true,
+      duration: 0
+    });
+  axios({
+    method: "post",
+    url: "http://topic.smcic.net/xian-song/store",
+    headers: {
+      "Content-Type": "multipart/form-data",
+    },
+    data: oriData,
+  }).then(r => {
+    console.log(r);
+    Toast.clear()
+    Dialog.alert({
+      title: "报名成功",
+      messageAlign: "left",
+      confirmButtonText: "关闭",
+      message: () => (
+        <img
+          src="https://cxzx.smcic.net/topic/tool/img/er.jpg"
+          style="width: 100%"
+        />
+      ),
+    });
+  }).catch(()=>{
+    Toast.clear()
+    Toast('报名失败');
   });
-  if (window.XMLHttpRequest) xhttp = new XMLHttpRequest();
-  else if (window.ActiveXObject)
-    xhttp = new window.ActiveXObject("Microsoft.XMLHTTP");
-  xhttp.open("POST", "", true);
-  xhttp.setRequestHeader("Content-type", "application/json");
-  xhttp.send(JSON.stringify(oriData));
-  xhttp.onreadystatechange = function () {
-    if (this.readyState != 4) return;
-    Toast.clear();
-    if (this.status != 200) return Toast("请求失败 " + this.status);
-    let data = {};
-    try {
-      data = this.responseText || "";
-      console.log("--->", data);
-    } catch (err) {
-      Toast("请求失败");
-      console.error(err);
-    }
-  };
 };
 </script>
 <style>
@@ -220,6 +247,7 @@ const onSubmit = () => {
   background-image: url("../../assets/img/title.png");
   background-size: 100% 100%;
   background-repeat: no-repeat;
+  overflow: hidden;
 }
 .Soundbyte .van-nav-bar__title {
   color: #f63634;

+ 2 - 0
vue.config.js

@@ -4,6 +4,8 @@ const ComponentsPlugin = require("unplugin-vue-components/webpack");
 const page = require("./page.config");
 module.exports = {
   pages: page.output,
+  productionSourceMap: false,
+  publicPath: "./",
   configureWebpack: {
     plugins: [
       ComponentsPlugin({