lex-xin 3 years ago
parent
commit
7ce54d1a52

File diff suppressed because it is too large
+ 0 - 0
dist/assets/about-legacy.8059f104.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/about.0df26d92.js


+ 0 - 0
dist/assets/index.94995ff5.css → dist/assets/about.3e63dd93.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/about.bb98efa9.js


+ 1 - 0
dist/assets/create-legacy.482885d5.js

@@ -0,0 +1 @@
+;(function(){System.register(['./index-legacy.7d5257fe.js','./vendor-legacy.e75a5958.js','./index-legacy.f25f109a3.js','./vueFilter-legacy.e4429ca3.js'],function(exports){'use strict';var ColUpload,defineComponent,createVNode;return{setters:[function(module){ColUpload=module.C;},function(module){defineComponent=module.d;createVNode=module.a;},function(){},function(){}],execute:function execute(){var create=exports('default',defineComponent({name:'Create',render:function render(){return createVNode("div",null,[createVNode(ColUpload,null,null)]);}}));}};});})();

+ 1 - 0
dist/assets/create.ee005ec1.js

@@ -0,0 +1 @@
+import{C as r}from"./index.e75395ac.js";import{d as a,a as e}from"./vendor.0ee3b598.js";/* empty css               */import"./vueFilter.991d8df4.js";var l=a({name:"Create",render(){return e("div",null,[e(r,null,null)])}});export{l as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy.7d5257fe.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy.88a21a8e.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-legacy.c0e79d1f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.0780009a.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.6d94ff5e.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.7e0bcd54.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.ac14ef97.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index.e75395ac.js


+ 1 - 1
dist/index.html

@@ -37,7 +37,7 @@
     <link rel="modulepreload" href="./assets/vueFilter.991d8df4.js">
     <link rel="stylesheet" href="./assets/vendor.04eead6e.css">
     <link rel="stylesheet" href="./assets/vueFilter.cbcb13c8.css">
-    <link rel="stylesheet" href="./assets/index.94995ff5.css">
+    <link rel="stylesheet" href="./assets/about.3e63dd93.css">
     <script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
   </head>
   <body>

+ 3 - 3
dist/teacher.html

@@ -32,12 +32,12 @@
     <meta name="msapplication-tap-highlight" content="no">
     <title>酷乐秀-老师端</title>
     <script src="./flexible.js" charset="UTF-8"></script>
-    <script type="module" crossorigin src="./assets/about.0df26d92.js"></script>
+    <script type="module" crossorigin src="./assets/about.bb98efa9.js"></script>
     <link rel="modulepreload" href="./assets/vendor.0ee3b598.js">
     <link rel="modulepreload" href="./assets/vueFilter.991d8df4.js">
     <link rel="stylesheet" href="./assets/vueFilter.cbcb13c8.css">
     <link rel="stylesheet" href="./assets/vendor.04eead6e.css">
-    <link rel="stylesheet" href="./assets/index.94995ff5.css">
+    <link rel="stylesheet" href="./assets/about.3e63dd93.css">
     <script type="module">!function(){try{new Function("m","return import(m)")}catch(o){console.warn("vite: loading legacy build because dynamic import is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}}();</script>
   </head>
   <body>
@@ -45,6 +45,6 @@
     
     <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
     <script nomodule id="vite-legacy-polyfill" src="./assets/polyfills-legacy.c9ec7f5c.js"></script>
-    <script nomodule id="vite-legacy-entry" data-src="./assets/about-legacy.772eb16f.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
+    <script nomodule id="vite-legacy-entry" data-src="./assets/about-legacy.8059f104.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
   </body>
 </html>

+ 5 - 0
package-lock.json

@@ -6955,6 +6955,11 @@
         "@vue/shared": "3.2.26"
       }
     },
+    "vue-cropper": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/vue-cropper/-/vue-cropper-1.0.3.tgz",
+      "integrity": "sha512-yDrZkE4H5vOiMA9WQHE+6rmXrZ1S9TMZasEPAZPKg/2I/nySHL4ECD1lNxt7+ofTPKT+9+2sQkCwagPqEqiqJg=="
+    },
     "vue-eslint-parser": {
       "version": "8.0.1",
       "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-8.0.1.tgz",

+ 1 - 0
package.json

@@ -31,6 +31,7 @@
     "umi-request": "^1.4.0",
     "vant": "^3.3.7",
     "vue": "^3.2.26",
+    "vue-cropper": "^1.0.3",
     "vue-router": "^4.0.12",
     "vuex": "^4.0.2"
   },

+ 28 - 16
src/components/col-upload/index.tsx

@@ -1,5 +1,6 @@
 import { Icon, Image, Toast, Uploader } from "vant";
 import { defineComponent } from "vue";
+import vueCropper from 'vue-cropper';
 import styles from "./index.module.less";
 
 import iconUploader from '@common/images/icon_uploader.png';
@@ -16,6 +17,10 @@ export default defineComponent({
     deletable: {
       type: Boolean,
       default: true
+    },
+    cropper: { // 是否进行裁切
+      type: Boolean,
+      default: false
     }
   },
   mounted() {
@@ -25,14 +30,14 @@ export default defineComponent({
     beforeRead(file: any) {
       const isLt2M = file.size / 1024 / 1024 < 5
       if (!isLt2M) {
-          Toast('上传文件大小不能超过 5MB')
-          return false
+        Toast('上传文件大小不能超过 5MB')
+        return false
       }
       return true
     },
     beforeDelete(file: any, detail: { index: any; }) {
-        // this.dataModel.splice(detail.index, 1)
-        return true
+      // this.dataModel.splice(detail.index, 1)
+      return true
     },
     async afterRead(file: any, detail: any) {
       try {
@@ -56,18 +61,25 @@ export default defineComponent({
   render() {
     return (
       <div class={styles['uploader-section']}>
-        {/* @ts-ignore */}
-        <Uploader afterRead={this.afterRead} beforeRead={this.beforeRead} beforeDelete={this.beforeDelete}
-          v-slots={{
-            default: () => (this.value ? <div class={styles['img-section']} onClick={this.onClose}>
-              { this.deletable ? <Icon name="cross" class={styles["img-close"]} /> : null }
-              <Image fit="cover" class={styles.uploadImg} src={this.value} />
-            </div> : <div class={styles.uploader}>
-            <Icon name={iconUploader} size="32" />
-            <p class={styles.uploaderText}>{this.tips}</p>
-          </div> )
-          }}
-        />
+        {this.cropper ? <vueCropper
+          ref="cropper"
+          img="option.img"
+          outputSize="option.size"
+          outputType="option.outputType"
+        ></vueCropper> : (
+          // @ts-ignore
+          <Uploader afterRead={this.afterRead} beforeRead={this.beforeRead} beforeDelete={this.beforeDelete}
+            v-slots={{
+              default: () => (this.value ? <div class={styles['img-section']} onClick={this.onClose}>
+                {this.deletable ? <Icon name="cross" class={styles["img-close"]} /> : null}
+                <Image fit="cover" class={styles.uploadImg} src={this.value} />
+              </div> : <div class={styles.uploader}>
+                <Icon name={iconUploader} size="32" />
+                <p class={styles.uploaderText}>{this.tips}</p>
+              </div>)
+            }}
+          />
+        )}
       </div>
     )
   }

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

@@ -47,6 +47,14 @@ export default [
         meta: {
           title: '音乐人认证'
         }
+      },
+      {
+        path: 'videoCreate',
+        name: 'videoCreate',
+        component: () => import('@/teacher/video-class/create'),
+        meta: {
+          title: '创建视频课'
+        }
       }
     ]
   },

+ 2 - 1
src/shims-vue.d.ts

@@ -6,10 +6,11 @@ declare module '*.vue' {
   export default component;
 }
 
-declare module 'js-storage';
 
 declare module '@vue/runtime-core' {
   export interface ComponentCustomProperties {
     $dayjs: dayjs.Dayjs
   }
 }
+
+declare module 'vue-cropper-h5';

+ 1 - 1
src/student/member-center/index.tsx

@@ -1,5 +1,5 @@
 import ColHeader from "@/components/col-header";
-import { Button, Cell, Col, Grid, GridItem, Icon, Image, Row } from "vant";
+import { Button, Cell, Col, Grid, GridItem, Icon, Image, Row, Swipe, SwipeItem } from "vant";
 import { defineComponent } from "vue";
 import styles from './index.module.less';
 import ColProtocol from "@/components/col-protocol";

+ 1 - 4
src/teacher/teacher-cert/cert-info.tsx

@@ -5,9 +5,6 @@ import { teacherState } from "./teacherState";
 
 export default defineComponent({
   name: 'cert-info',
-  props: {
-    authStatus: String
-  },
   methods: {
     onClick() {
       teacherState.authStatus = true
@@ -59,7 +56,7 @@ export default defineComponent({
         </p>
 
         <div class={styles["btn-group"]}>
-          <Button round block type="primary" disabled={this.authStatus === '1'} onClick={this.onClick}>立即认证</Button>
+          <Button round block type="primary" disabled={teacherState.authStatus} onClick={this.onClick}>立即认证</Button>
         </div>
       </div>
     )

+ 11 - 4
src/teacher/teacher-cert/index.tsx

@@ -13,20 +13,22 @@ import { checkIDCard } from "@/helpers/validate";
 import request from "@/helpers/request";
 import ColResult from "@/components/col-result";
 import { state } from "@/state";
+import { stat } from "fs";
 
 export default defineComponent({
   name: 'teacherCert',
   data() {
     const query = this.$route.query;
     return {
-      authStatus: query.authStatus || null as any,
       agreeStatus: false,
     }
   },
   async mounted() {
     try {
-      // 判断是否已经认证
-      teacherState.authStatus = !state.user.data?.entryStatus ? true : false
+      // 判断是否已经认证 1、审核中 2、通过 3、不通过
+      const entryStatus = state.user.data?.entryStatus || 0
+      teacherState.authStatus = entryStatus === 1 || entryStatus === 2 ? true : false
+      console.log(teacherState.authStatus)
       // 如果已经认证,则不用获取声部信息
       if(teacherState.authStatus) {
         teacherState.active = teacherState.authStatus ? 4 : 1
@@ -45,6 +47,11 @@ export default defineComponent({
       //
     }
   },
+  computed: {
+    authStatus(): Boolean {
+      return !!teacherState.authStatus
+    }
+  },
   methods: {
     async next() {
       const realName = teacherState.teacherCert.realName
@@ -106,7 +113,7 @@ export default defineComponent({
   render() {
     return (
       <div class={styles['teacher-cert']}>
-        {!teacherState.authStatus ? <CertInfo authStatus={this.authStatus} /> : <div>
+        {!teacherState.authStatus ? <CertInfo /> : <div>
           {teacherState.active != 4 ? <Steps style={{ marginBottom: '12px' }} /> : null}
           {teacherState.active === 1 ? (
             <>

+ 1 - 1
src/teacher/teacher-cert/teacherState.ts

@@ -1,7 +1,7 @@
 import { reactive } from 'vue';
 
 export const teacherState = reactive({
-  authStatus: false, // 是否立即认证
+  authStatus: false as boolean, // 是否立即认证
   subjectList: [], // 声部列表
   active: 1,
   teacherCert: {

+ 0 - 0
src/teacher/video-class/create.module.less


+ 14 - 0
src/teacher/video-class/create.tsx

@@ -0,0 +1,14 @@
+import ColUpload from "@/components/col-upload";
+import { defineComponent } from "vue";
+import styles from './create.module.less';
+
+export default defineComponent({
+  name: 'Create',
+  render() {
+    return (
+      <div>
+        <ColUpload cropper />
+      </div>
+    )
+  }
+})

Some files were not shown because too many files changed in this diff