Browse Source

添加曲谱

wolyshaw 3 years ago
parent
commit
1baca7b891

+ 6 - 0
src/components/col-area/index.tsx

@@ -0,0 +1,6 @@
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+  name: 'ColArea',
+
+})

+ 18 - 5
src/helpers/native-message.ts

@@ -29,7 +29,7 @@ type CallBack = (evt?: IPostMessage) => void;
 // eslint-disable-next-line @typescript-eslint/no-empty-function
 const loop = () => {};
 
-const calls: { [key: string]: CallBack } = {};
+const calls: { [key: string]: CallBack | CallBack[] } = {};
 
 const browserInfo = browser();
 
@@ -58,13 +58,13 @@ if (browserInfo.isApp) {
         );
         for (const key of keys) {
           const callback = calls[key] || loop;
-          callback(data);
+          typeof callback === 'function' && callback(data);
         }
         return;
       }
       const callId = data.content?.uuid || data.uuid || data.api + data.uuid;
       const callback = calls[callId] || loop;
-      callback(data);
+      typeof callback === 'function' && callback(data);
     } catch (error) {
       console.error('通信消息解析错误', error);
     }
@@ -86,8 +86,21 @@ export const postMessage = (data: IPostMessage, callback?: CallBack) => {
 
 export const listenerMessage = (api: string, callback: CallBack) => {
   if (browserInfo.isApp) {
-    const uuid = api + getRandomKey();
-    calls[uuid] = callback || loop;
+    const uuid = api;
+    if (!calls[uuid]) {
+      calls[uuid] = [];
+    }
+    (calls[uuid] as CallBack[]).push(callback || loop);
+  }
+};
+
+export const removeListenerMessage = (api: string, callback: CallBack) => {
+  if (browserInfo.isApp) {
+    const uuid = api;
+    if (Array.isArray(calls[uuid])) {
+      const indexOf = (calls[uuid] as CallBack[]).indexOf(callback);
+      (calls[uuid] as CallBack[]).splice(indexOf, 1);
+    }
   }
 };
 

+ 7 - 0
src/router/routes-teacher.ts

@@ -29,6 +29,13 @@ export default [
         meta: {
           title: '老师认证'
         }
+      },
+      {
+        path: '/music-upload',
+        component: () => import('@/teacher/music/upload'),
+        meta: {
+          title: '上传曲谱'
+        }
       }
     ]
   },

+ 3 - 1
src/styles/index.less

@@ -75,6 +75,8 @@
   // --van-border-radius-md: 4px;
   // --van-border-radius-lg: 8px;
   // --van-border-radius-max: 999px;
+
+  --col-background-color: #F6F8F9;
 }
 
 * {
@@ -92,4 +94,4 @@
 
 body {
   background-color: #F6F8F9;
-}
+}

+ 4 - 0
src/teacher/music/upload/index.module.less

@@ -0,0 +1,4 @@
+.container{
+  background-color: var(--col-background-color);
+  min-height: 100vh;
+}

+ 19 - 0
src/teacher/music/upload/index.tsx

@@ -0,0 +1,19 @@
+import { defineComponent } from 'vue'
+import { Field } from 'vant'
+import ColField from '@/components/col-field'
+import styles from './index.module.less'
+
+export default defineComponent({
+  name: 'MusicUpload',
+  render() {
+    return (
+      <div class={styles.container}>
+        <ColField
+          title="曲目名称"
+        >
+          <Field placeholder="请输入曲目名称"/>
+        </ColField>
+      </div>
+    )
+  }
+})