WINDOWS-7IFQK7E\EDY 2 år sedan
förälder
incheckning
94c1a25633
8 ändrade filer med 474 tillägg och 314 borttagningar
  1. 93 0
      package-lock.json
  2. 2 1
      package.json
  3. 66 49
      src/pages/_user/stkzqk.vue
  4. 119 95
      src/pages/stxk/jz/kcxq.vue
  5. 1 0
      src/pages/stxkbzr/api.js
  6. 77 85
      src/pages/stxkbzr/index.vue
  7. 76 76
      src/store/user.js
  8. 40 8
      yarn.lock

+ 93 - 0
package-lock.json

@@ -12,6 +12,7 @@
         "axios": "^0.27.2",
         "default-passive-events": "^2.0.0",
         "vant": "4.0.0-beta.0",
+        "vconsole": "^3.15.0",
         "vue": "^3.2.37",
         "vue-router": "^4.1.4"
       },
@@ -60,6 +61,17 @@
         "node": ">=6.0.0"
       }
     },
+    "node_modules/@babel/runtime": {
+      "version": "7.21.0",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
+      "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+      "dependencies": {
+        "regenerator-runtime": "^0.13.11"
+      },
+      "engines": {
+        "node": ">=6.9.0"
+      }
+    },
     "node_modules/@esbuild/android-arm": {
       "version": "0.15.13",
       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
@@ -566,6 +578,27 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/copy-text-to-clipboard": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz",
+      "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==",
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/core-js": {
+      "version": "3.28.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.28.0.tgz",
+      "integrity": "sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==",
+      "hasInstallScript": true,
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/core-js"
+      }
+    },
     "node_modules/cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -1386,6 +1419,11 @@
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
       "dev": true
     },
+    "node_modules/mutation-observer": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz",
+      "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
+    },
     "node_modules/nanoid": {
       "version": "3.3.4",
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -1576,6 +1614,11 @@
         "node": ">=8.10.0"
       }
     },
+    "node_modules/regenerator-runtime": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+    },
     "node_modules/resolve": {
       "version": "1.22.1",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -1957,6 +2000,17 @@
         "vue": "^3.0.0"
       }
     },
+    "node_modules/vconsole": {
+      "version": "3.15.0",
+      "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.0.tgz",
+      "integrity": "sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==",
+      "dependencies": {
+        "@babel/runtime": "^7.17.2",
+        "copy-text-to-clipboard": "^3.0.1",
+        "core-js": "^3.11.0",
+        "mutation-observer": "^1.0.3"
+      }
+    },
     "node_modules/vite": {
       "version": "3.2.3",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz",
@@ -2127,6 +2181,14 @@
       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz",
       "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ=="
     },
+    "@babel/runtime": {
+      "version": "7.21.0",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
+      "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+      "requires": {
+        "regenerator-runtime": "^0.13.11"
+      }
+    },
     "@esbuild/android-arm": {
       "version": "0.15.13",
       "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz",
@@ -2516,6 +2578,16 @@
         "delayed-stream": "~1.0.0"
       }
     },
+    "copy-text-to-clipboard": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz",
+      "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
+    },
+    "core-js": {
+      "version": "3.28.0",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.28.0.tgz",
+      "integrity": "sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw=="
+    },
     "cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3015,6 +3087,11 @@
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
       "dev": true
     },
+    "mutation-observer": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz",
+      "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
+    },
     "nanoid": {
       "version": "3.3.4",
       "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@@ -3133,6 +3210,11 @@
         "picomatch": "^2.2.1"
       }
     },
+    "regenerator-runtime": {
+      "version": "0.13.11",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+    },
     "resolve": {
       "version": "1.22.1",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -3358,6 +3440,17 @@
         "@vant/use": "^1.4.1"
       }
     },
+    "vconsole": {
+      "version": "3.15.0",
+      "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.0.tgz",
+      "integrity": "sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==",
+      "requires": {
+        "@babel/runtime": "^7.17.2",
+        "copy-text-to-clipboard": "^3.0.1",
+        "core-js": "^3.11.0",
+        "mutation-observer": "^1.0.3"
+      }
+    },
     "vite": {
       "version": "3.2.3",
       "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.3.tgz",

+ 2 - 1
package.json

@@ -13,6 +13,7 @@
     "axios": "^0.27.2",
     "default-passive-events": "^2.0.0",
     "vant": "4.0.0-beta.0",
+    "vconsole": "^3.15.0",
     "vue": "^3.2.37",
     "vue-router": "^4.1.4"
   },
@@ -27,4 +28,4 @@
     "vite-plugin-windicss": "^1.8.7",
     "windicss": "^3.5.6"
   }
-}
+}

+ 66 - 49
src/pages/_user/stkzqk.vue

@@ -2,16 +2,31 @@
   <div class="content">
     <van-nav-bar title="社团开展情况" left-arrow @click-left="onClickLeft" />
     <van-cell-group>
-      <select @change="getListData" class="w-full bg-light-100" v-model="kxq_code">
+      <select
+        @change="getListData"
+        class="w-full bg-light-100"
+        v-model="kxq_code"
+      >
         <!-- <option :label="kxq_code">
         </option> -->
-        <option v-for="t in teamData" :key="t.kxq_code" :value="t.kxq_code" :label="t.kxq_name">
+        <option
+          v-for="t in teamData"
+          :key="t.kxq_code"
+          :value="t.kxq_code"
+          :label="t.kxq_name"
+        >
+          {{ t.kxq_name }}
         </option>
       </select>
       <select @change="getListData" class="w-full bg-light-100" v-model="week">
         <!-- <option value="" label="">请选择周</option> -->
-        <option v-for="w in weekData" :key="w.weeknum" :value="w.weeknum" :label="w.weekname">
-          第{{i}}周
+        <option
+          v-for="w in weekData"
+          :key="w.weeknum"
+          :value="w.weeknum"
+          :label="w.weekname"
+        >
+          {{ w.weekname }}
         </option>
       </select>
     </van-cell-group>
@@ -20,58 +35,61 @@
       <div class="course-num flex">
         <div class="img-1 w-180px mr-10px">
           <div class="title">社团正常开班数</div>
-          <div class="num">{{kcqkData.zc}}</div>
+          <div class="num">{{ kcqkData.zc }}</div>
         </div>
         <div class="img-2 w-180px">
           <div class="title">社团非正常开班数</div>
-          <div class="num">{{kcqkData.fzc}}</div>
+          <div class="num">{{ kcqkData.fzc }}</div>
         </div>
       </div>
       <div class="flex justify-between">
         <h3 class="h-3">异常学生情况</h3>
-        <span>共{{ycxsqkData.total}}次</span>
+        <span>共{{ ycxsqkData.total }}次</span>
       </div>
       <div class="level">
         <van-collapse v-model="activeNames">
           <van-collapse-item name="1">
             <template #title>
-              <div style="border-left:5px solid #FF0000;padding-left:16px">一级
-                <span class="text-hex-FF0000  ml-14px">未到校未请假</span>
+              <div style="border-left: 5px solid #ff0000; padding-left: 16px">
+                一级
+                <span class="text-hex-FF0000 ml-14px">未到校未请假</span>
               </div>
             </template>
-            <div class="list" v-for=" i in ycxsqkData.level_1">
-              <span class="one">{{i.realname}}</span>
-              <span class="two">{{i.classname}}</span>
+            <div class="list" v-for="i in ycxsqkData.level_1">
+              <span class="one">{{ i.realname }}</span>
+              <span class="two">{{ i.classname }}</span>
               <div class="three">
-                <div class="ellipsis" v-for="j in i.desc">{{j}}</div>
+                <div class="ellipsis" v-for="j in i.desc">{{ j }}</div>
               </div>
             </div>
           </van-collapse-item>
           <van-collapse-item name="2">
             <template #title>
-              <div style="border-left:5px solid #003EEE;padding-left:16px">二级
-                <span class="text-hex-003EEE  ml-14px">未到校已请假</span>
+              <div style="border-left: 5px solid #003eee; padding-left: 16px">
+                二级
+                <span class="text-hex-003EEE ml-14px">未到校已请假</span>
               </div>
             </template>
-            <div class="list" v-for=" i in ycxsqkData.level_2">
-              <span class="one">{{i.realname}}</span>
-              <span class="two">{{i.classname}}</span>
+            <div class="list" v-for="i in ycxsqkData.level_2">
+              <span class="one">{{ i.realname }}</span>
+              <span class="two">{{ i.classname }}</span>
               <div class="three">
-                <div class="ellipsis" v-for="j in i.desc">{{j}}</div>
+                <div class="ellipsis" v-for="j in i.desc">{{ j }}</div>
               </div>
             </div>
           </van-collapse-item>
           <van-collapse-item name="3">
             <template #title>
-              <div style="border-left:5px solid #00A25C;padding-left:16px">三级
-                <span class="text-hex-00A25C  ml-14px">未进入指定社团</span>
+              <div style="border-left: 5px solid #00a25c; padding-left: 16px">
+                三级
+                <span class="text-hex-00A25C ml-14px">未进入指定社团</span>
               </div>
             </template>
-            <div class="list" v-for=" i in ycxsqkData.level_3">
-              <span class="one">{{i.realname}}</span>
-              <span class="two">{{i.classname}}</span>
+            <div class="list" v-for="i in ycxsqkData.level_3">
+              <span class="one">{{ i.realname }}</span>
+              <span class="two">{{ i.classname }}</span>
               <div class="three">
-                <div class="ellipsis" v-for="j in i.desc">{{j}}</div>
+                <div class="ellipsis" v-for="j in i.desc">{{ j }}</div>
               </div>
             </div>
           </van-collapse-item>
@@ -82,7 +100,6 @@
 </template>
 
 <script>
-
 import { stkz_list, team_list } from "./api";
 
 export default {
@@ -94,50 +111,50 @@ export default {
       bj: [],
       stu: [],
       student: "",
-      activeNames: ['1'],
+      activeNames: ["1"],
       collapse: null,
       kcqkData: {},
       ycxsqkData: {},
       teamData: [],
-      curTeam:"",    
-      weekData:[],
-      curTeamCode:"",
+      curTeam: "",
+      weekData: [],
+      curTeamCode: "",
       kxq_code: "",
-      week: "1"
-    }
+      week: "1",
+    };
   },
   methods: {
-    getTeamData(){
-           team_list().then((res) => {
+    getTeamData() {
+      team_list().then((res) => {
         this.teamData = res.data.page_data;
-        this.teamData.map(item=>{
-          if(item.kxq_sfdqxq_option_k=='1'){
-          //  this.curTeam=item.kxq_name;
-            this.kxq_code=item.kxq_code;
-    this.getListData();
-          }      
-        })
+        this.teamData.map((item) => {
+          if (item.kxq_sfdqxq_option_k == "1") {
+            //  this.curTeam=item.kxq_name;
+            this.kxq_code = item.kxq_code;
+            this.getListData();
+            console.log(this.teamData, 123);
+          }
+        });
       });
     },
-       getListData() {
+    getListData() {
       let data = {
-        kxq_code:this.kxq_code,
+        kxq_code: this.kxq_code,
         week: this.week,
-      }; 
-      console.log(this.curTeam,34)
+      };
+      console.log(this.curTeam, 34);
       stkz_list(data).then((res) => {
         this.kcqkData = res.data.kcqk;
         this.ycxsqkData = res.data.ycxsqk;
-        this.weekData=res.data.xq_week
-      });    
+        this.weekData = res.data.xq_week;
+      });
     },
     onClickLeft() {
       this.$router.push({ name: "user" });
     },
   },
   mounted() {
-     this.getTeamData();
-
+    this.getTeamData();
   },
 };
 </script>

+ 119 - 95
src/pages/stxk/jz/kcxq.vue

@@ -1,50 +1,48 @@
 <script setup>
-import { getCountDownTime } from '~/utils/day';
-import { user } from '~/store/user';
-import { child } from '~/store/child';
-import { showFailToast, showSuccessToast } from 'vant';
-const oss = window.GLOBAL_CONFIG.oss
+import { getCountDownTime } from "~/utils/day";
+import { user } from "~/store/user";
+import { child } from "~/store/child";
+import { showFailToast, showSuccessToast } from "vant";
+const oss = window.GLOBAL_CONFIG.oss;
 const props = defineProps({
   id: {
     type: String,
     required: true,
   },
-})
+});
 
-const router = useRouter()
+const router = useRouter();
 function handleNavLeftClick() {
-  router.replace('/stxk/jz')
+  router.replace("/stxk/jz");
 }
 
 // 当前学生是否可报名
-let isOpen = $ref(false)
+let isOpen = $ref(false);
 
-let loading = $ref(true)
-let detailInfo = $ref()
+let loading = $ref(true);
+let detailInfo = $ref();
 request({
-  url: '/khfw/kcgl/detail',
+  url: "/khfw/kcgl/detail",
   data: {
     token: child.token,
     kk_id: props.id,
-  }
-}).then(res => {
-  if (res.code === '1') {
-    detailInfo = res.data.one_info
-    detailInfo.$kk_kcfy = detailInfo.kk_kcfy * 100
+  },
+}).then((res) => {
+  if (res.code === "1") {
+    detailInfo = res.data.one_info;
+    detailInfo.$kk_kcfy = detailInfo.kk_kcfy * 100;
 
-    isOpen = detailInfo.khfw_kcbmxx.kkbm_id === '0'
+    isOpen = detailInfo.khfw_kcbmxx.kkbm_id === "0";
   } else {
-
   }
-  loading = false
-})
-
+  loading = false;
+});
 
 function handleSubmitbarClick() {
-  console.log('handleSubmitbarClick', child);
+  console.log("handleSubmitbarClick", isOpen, child);
 
   request({
-    url: '/khfw/kcbmxx/add',
+    url: "/khfw/kcbmxx/add",
     data: {
       token: child.token,
       khfw_kcbmxx: {
@@ -60,90 +58,97 @@ function handleSubmitbarClick() {
         kkbm_s_grade_id: child.cm_info[0].grade,
         // kkbm_s_grade_name: '',
         kkbm_s_class_id: child.cm_info[0].cm_id,
-        kkbm_s_class_name: child.cm_info[0].pre + child.cm_info[0].cm_name
-      }
-    }
+        kkbm_s_class_name: child.cm_info[0].pre + child.cm_info[0].cm_name,
+      },
+    },
   }).then((res) => {
-    if (res.code === '1') {
-      const _href = encodeURIComponent(location.href)
-      location.replace(`http://wx.bozedu.net/get-weixin-code.html?appid=${window.GLOBAL_CONFIG.appid}&redirect_uri=${_href}&state=1`)
+    if (res.code === "1") {
+      const _href = encodeURIComponent(location.href);
+      if (detailInfo.$kk_kcfy != "0") {
+        location.replace(
+          `http://wx.bozedu.net/get-weixin-code.html?appid=${window.GLOBAL_CONFIG.appid}&redirect_uri=${_href}&state=1`
+        );
+      }
     }
-  })
+  });
 }
 
 function onBridgeReady(data) {
   return new Promise((resolve, reject) => {
     WeixinJSBridge.invoke(
-      'getBrandWCPayRequest',
+      "getBrandWCPayRequest",
       {
-        "appId": data.appid,
-        "timeStamp": data.timestamp,
-        "nonceStr": data.noncestr,
-        "package": data.package,
-        "signType": data.signtype,
-        "paySign": data.paysign
+        appId: data.appid,
+        timeStamp: data.timestamp,
+        nonceStr: data.noncestr,
+        package: data.package,
+        signType: data.signtype,
+        paySign: data.paysign,
       },
       function (res) {
         // 使用以上方式判断前端返回,微信团队郑重提示:
         // res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
         switch (res.err_msg) {
           case "get_brand_wcpay_request:ok":
-            showSuccessToast("支付成功")
-            return resolve(true)
+            showSuccessToast("支付成功");
+            return resolve(true);
           case "get_brand_wcpay_request:ok":
-            showFailToast('取消支付')
-            return resolve(false)
+            showFailToast("取消支付");
+            return resolve(false);
           case "get_brand_wcpay_request:ok":
-            showFailToast("支付失败")
-            return resolve(false)
+            showFailToast("支付失败");
+            return resolve(false);
           default:
-            return resolve(false)
+            return resolve(false);
         }
       }
-    )
-  })
-
+    );
+  });
 }
 
-
-const searchObj = new URLSearchParams(location.search)
-const code = searchObj.get('code')
+const searchObj = new URLSearchParams(location.search);
+const code = searchObj.get("code");
 // 微信支付跳转过来
 if (code) {
   request({
-    url: '/khfw/jfgl/gotopay',
+    url: "/khfw/jfgl/gotopay",
     data: {
       token: child.token,
-      client: 'wx',
+      client: "wx",
       code,
       khfw_jfgl: {
         kkbm_s_user_id: child.user_id,
         kk_id: props.id,
+      },
+    },
+  })
+    .then((res) => {
+      if (res.code === "1") {
+        // isOpen = false
+        if (typeof WeixinJSBridge == "undefined") {
+          console.log("WeixinJSBridge is not ready");
+          document.addEventListener(
+            "WeixinJSBridgeReady",
+            onBridgeReady(res.data),
+            false
+          );
+        } else {
+          return onBridgeReady(res.data);
+        }
       }
-    }
-  }).then(res => {
-    if (res.code === '1') {
-      // isOpen = false
-      if (typeof WeixinJSBridge == "undefined") {
-        console.log('WeixinJSBridge is not ready');
-        document.addEventListener('WeixinJSBridgeReady', onBridgeReady(res.data), false);
+    })
+    .then((res) => {
+      location.search = "";
+      if (res) {
+        isOpen = false;
+        // router.replace('/stsk/jz/wd')
       } else {
-        return onBridgeReady(res.data);
       }
-    }
-  }).then(res => {
-    location.search = ''
-    if (res) {
-      isOpen = false
-      // router.replace('/stsk/jz/wd')
-    } else {
-    }
-  })
+    });
 }
 </script>
 
 <template>
-
   <van-sticky>
     <van-nav-bar title="课程详情" left-arrow @click-left="handleNavLeftClick">
     </van-nav-bar>
@@ -155,19 +160,23 @@ if (code) {
 
       <div class="text-sm">
         <div class="flex text-lg py-1">
-          <div class="mr-4 font-bold">{{  detailInfo.kk_name  }}</div>
-          <van-tag type="primary">{{  detailInfo.ksgl_list.length  }}课时</van-tag>
+          <div class="mr-4 font-bold">{{ detailInfo.kk_name }}</div>
+          <van-tag type="primary"
+            >{{ detailInfo.ksgl_list.length }}课时</van-tag
+          >
         </div>
         <div class="flex py-1">
-          <div class="mr-4"><span>讲师:</span><span>{{  detailInfo.kk_teacher.name  }}</span></div>
+          <div class="mr-4">
+            <span>讲师:</span><span>{{ detailInfo.kk_teacher.name }}</span>
+          </div>
           <div class="flex">
             <span>报名倒计时:</span>
             <van-count-down :time="getCountDownTime(detailInfo.kk_bmkssj)">
               <template #default="timeData">
                 <span>
-                  {{  paddingLeft(timeData.days * 24 + timeData.hours)  }}小时{{  paddingLeft(timeData.minutes)  }}分钟{{
-                   paddingLeft(timeData.seconds) 
-                  }}秒
+                  {{ paddingLeft(timeData.days * 24 + timeData.hours) }}小时{{
+                    paddingLeft(timeData.minutes)
+                  }}分钟{{ paddingLeft(timeData.seconds) }}
                 </span>
               </template>
             </van-count-down>
@@ -175,43 +184,58 @@ if (code) {
         </div>
         <div class="flex py-1">
           <div>开课时间:</div>
-          <div>{{  detailInfo.kk_skqjkssj  }} - {{  detailInfo.kk_skqjjwsj  }}(请在开课前报名)</div>
+          <div>
+            {{ detailInfo.kk_skqjkssj }} -
+            {{ detailInfo.kk_skqjjwsj }}(请在开课前报名)
+          </div>
         </div>
-        <div class="flex py-1"  v-show="detailInfo.kk_skdd!=''">
+        <div class="flex py-1" v-show="detailInfo.kk_skdd != ''">
           <div>上课地点:</div>
-          <div>{{detailInfo.kk_skdd}}</div>
+          <div>{{ detailInfo.kk_skdd }}</div>
         </div>
       </div>
       <van-divider />
 
       <div class="mb-4">
         <div class="pre font-bold mb-2">课程简介</div>
-        <div class="text-sm" v-html="detailInfo.kk_kcjj">
-        </div>
+        <div class="text-sm" v-html="detailInfo.kk_kcjj"></div>
       </div>
 
       <div class="mb-10">
         <div class="pre font-bold mb-2">教师简介</div>
-     <div v-if="detailInfo.kk_teachers!=''">
-         <div class="flex text-sm shadow-md p-2 mb-4"  v-for="item in detailInfo.kk_teachers">
-          <div class="w-1/3 flex-none flex flex-col items-center" >
-            <van-image :src=" item.avatar" width="100" height="100" round fit="cover"></van-image>
-            <div>
-              <div>{{ item.name  }}</div>
+        <div v-if="detailInfo.kk_teachers != ''">
+          <div
+            class="flex text-sm shadow-md p-2 mb-4"
+            v-for="item in detailInfo.kk_teachers"
+          >
+            <div class="w-1/3 flex-none flex flex-col items-center">
+              <van-image
+                :src="item.avatar"
+                width="100"
+                height="100"
+                round
+                fit="cover"
+              ></van-image>
+              <div>
+                <div>{{ item.name }}</div>
+              </div>
             </div>
-          </div>
-          <div>{{  item.intro  }}</div>
-          <!-- <ul class="list-disc list-inside">
+            <div>{{ item.intro }}</div>
+            <!-- <ul class="list-disc list-inside">
             <li>{{ detailInfo.kk_teacher.intro }}</li>
           </ul> -->
+          </div>
         </div>
-     </div>
         <div v-else>暂无数据</div>
       </div>
 
-      <van-submit-bar :price="detailInfo.$kk_kcfy" :button-text="isOpen ? '立即报名' : '已报名'" :disabled="!isOpen"
-        @submit="handleSubmitbarClick" placeholder />
+      <van-submit-bar
+        :price="detailInfo.$kk_kcfy"
+        :button-text="isOpen ? '立即报名' : '已报名'"
+        :disabled="!isOpen"
+        @submit="handleSubmitbarClick"
+        placeholder
+      />
     </van-skeleton>
   </div>
-
 </template>

+ 1 - 0
src/pages/stxkbzr/api.js

@@ -5,6 +5,7 @@ export const bzr_list = (data = {}) =>
     data: {
       ex: "byweek",
       cm_id: data.cm_id,
+      kxq_code:data.kxq_code
     }
   })
 

+ 77 - 85
src/pages/stxkbzr/index.vue

@@ -134,8 +134,8 @@
 <script>
 import { showToast } from "vant";
 import { bzr_list, kc_detail, stxkjs_check, ydm_list } from "./api";
-import getTeamInfo from '~/store/team';
-import { isSameValue } from 'vant/lib/utils';
+import getTeamInfo from "~/store/team";
+import { isSameValue } from "vant/lib/utils";
 export default {
   props: ["isShowbar"],
   data() {
@@ -160,36 +160,35 @@ export default {
       xsxx: { m1: "", m2: "" },
       kxq_code: "",
       stateData: [],
-      weekname:"",
-      index:""
+      weekname: "",
+      index: "",
+      cm_id: "",
     };
   },
   methods: {
     getListData() {
-      let data = {
-        ex: "byweek",
-        kxq_code: this.kxq_code
-      };
-         this.userInfo.cm_info.forEach((item) => {
-        data = {
-          cm_id: item.cm_id,
-        };
+      this.userInfo.cm_info.forEach((item) => {
+        this.cm_id = item.cm_id;
       });
+
       getTeamInfo.then((res) => {
-        this.kxq_code = res.kxq_code
-      }),
+        this.kxq_code = res.kxq_code;
+        let data = {
+          ex: "byweek",
+          cm_id: this.cm_id,
+          kxq_code: this.kxq_code,
+        };
         bzr_list(data).then((res) => {
           this.classWeek = res.data;
           this.ydmStu = res.class_member;
-          this.classWeek.map(item => {
-            this.weekname=item.name;
+          this.classWeek.map((item) => {
+            this.weekname = item.name;
             this.stateData = item.dmxx.yichang_stu;
-          this.getWeek();
-          })
-
-        })
-
-   },
+            this.getWeek();
+          });
+        });
+      });
+    },
     detailData(id) {
       this.kkbk_id = id;
       let data = {
@@ -210,32 +209,31 @@ export default {
     changeWeek(week, index) {
       this.state.week = week.name;
       this.state.showIndex = index;
-      console.log(this.state.showIndex,33);
+      console.log(this.state.showIndex, 33);
       this.courseNum = week.course.length;
       this.xsxx.m1 = week.dmxx.xsqd;
-      this.xsxx.m2 =week.dmxx.xszs;
+      this.xsxx.m2 = week.dmxx.xszs;
       this.stateData = week.dmxx.yichang_stu;
-      this.ydmStu.map(j => {
-        j.statue = "0"
-        j.isCheck=false
-        
-        this.stateData.map(i => {
+      this.ydmStu.map((j) => {
+        j.statue = "0";
+        j.isCheck = false;
+
+        this.stateData.map((i) => {
           if (i.uid == j.uid) {
-            j.statue = i.statue
+            j.statue = i.statue;
           }
-        })
-      })
+        });
+      });
       this.absentStu = [];
     },
     getWeek() {
-    var day = new Date().getDay();
-    var weeks = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
-     this.index = this.classWeek.findIndex(item => item.name == weeks[day]);
-    console.log(this.classWeek[this.index], this.index,678);
-    this.changeWeek(this.classWeek[this.index], this.index);
-    // this.state.week = weeks[day];
-    // this.state.showIndex = weeks.indexOf(this.state.week);
-
+      var day = new Date().getDay();
+      var weeks = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
+      this.index = this.classWeek.findIndex((item) => item.name == weeks[day]);
+      console.log(this.classWeek[this.index], this.index, 678);
+      this.changeWeek(this.classWeek[this.index], this.index);
+      // this.state.week = weeks[day];
+      // this.state.showIndex = weeks.indexOf(this.state.week);
     },
 
     //点名
@@ -246,35 +244,36 @@ export default {
           kccq_cqycxsxm: stu.realname,
           kccq_cqycxsbh: stu.uid,
         });
-        console.log(stu.isCheck,456)
+        console.log(stu.isCheck, 456);
       } else {
-        let i = this.absentStu.findIndex(item => stu.uid == item.kccq_cqycxsbh);
+        let i = this.absentStu.findIndex(
+          (item) => stu.uid == item.kccq_cqycxsbh
+        );
         this.absentStu.splice(i, 1);
-        console.log(stu.isCheck,567)
+        console.log(stu.isCheck, 567);
+      }
+      if (this.state.showIndex != this.index) {
+        showToast("只有当天才能点名呦~");
       }
-    if(this.state.showIndex!=this.index){
-    showToast("只有当天才能点名呦~");
-    }
     },
     initClass(data) {
       let className = "";
       if (data.statue == 0) {
-        className = "blueBg"
+        className = "blueBg";
       } else if (data.statue == "1") {
-        className = "orangeBg"
+        className = "orangeBg";
       } else if (data.statue == 2) {
-        className = "redBg"
+        className = "redBg";
       }
       if (data.isCheck) {
-        className += " blueName"
+        className += " blueName";
       }
-      return className
+      return className;
     },
     submitDM(type) {
-   
-      this.absentStu.map(item => {
+      this.absentStu.map((item) => {
         item.kccq_cqycztbh = type;
-      })
+      });
       let data = {
         kccq_sfydm: 1,
         member: this.absentStu,
@@ -283,33 +282,28 @@ export default {
       stxkjs_check(data).then((res) => {
         showToast("预点名成功!");
         this.xsxx.m1 = 0;
-         this.ydmStu.map(j => {
-
-            this.absentStu.map(i => {
-          if (i.kccq_cqycxsbh == j.uid) {
-            j.statue = type
-          }
- 
-       
-        })
-             if(j.statue == 0) {
-            this.xsxx.m1++
+        this.ydmStu.map((j) => {
+          this.absentStu.map((i) => {
+            if (i.kccq_cqycxsbh == j.uid) {
+              j.statue = type;
+            }
+          });
+          if (j.statue == 0) {
+            this.xsxx.m1++;
           }
-           j.isCheck=false
-      })
-      this.$forceUpdate()
+          j.isCheck = false;
+        });
+        this.$forceUpdate();
         this.absentStu = [];
-     //   this.isCheck=
+        //   this.isCheck=
       });
-    
     },
-    close() { 
-       this.getListData();
-      this.toSignUp = false,
-        this.ydmStu.map(item => {
-          item.isCheck = false
-        })
-       
+    close() {
+      this.getListData();
+      (this.toSignUp = false),
+        this.ydmStu.map((item) => {
+          item.isCheck = false;
+        });
     },
   },
   mounted() {
@@ -414,7 +408,7 @@ export default {
     font-family: SimHei;
     text-align: left;
     color: #000000;
-     margin-bottom: 0.2 * 13.3vw;
+    margin-bottom: 0.2 * 13.3vw;
   }
   p:last-of-type {
     margin-left: 0.325 * 13.3vw;
@@ -426,8 +420,7 @@ export default {
     color: #a0a0a0;
     line-height: 0.48 * 13.3vw;
     padding-right: 0.325 * 13.3vw;
-    .ydmBtn{
-   
+    .ydmBtn {
       width: 1.3 * 13.3vw;
       height: 0.48 * 13.3vw;
       line-height: 0.48 * 13.3vw;
@@ -438,7 +431,7 @@ export default {
       font-weight: 400;
       text-align: center;
       color: #ffffff;
-     // margin-left: 2.2 * 13.3vw;
+      // margin-left: 2.2 * 13.3vw;
     }
   }
 
@@ -471,7 +464,7 @@ export default {
       height: 2 * 13.3vw;
 
       vertical-align: top;
-      margin: 0.3* 13.3vw 0 0 0.27 * 13.3vw;
+      margin: 0.3 * 13.3vw 0 0 0.27 * 13.3vw;
 
       h1 {
         font-size: 0.32 * 13.3vw;
@@ -557,12 +550,11 @@ export default {
     top: 0.23 * 13.3vw;
   }
   h3 {
-   
     width: 1 * 13.3vw;
     height: 0.4 * 13.3vw;
     font-size: 0.3 * 13.3vw;
     position: relative;
-    margin:0 0.15 * 13.3vw;
+    margin: 0 0.15 * 13.3vw;
   }
   h3::before {
     position: absolute;
@@ -655,7 +647,7 @@ export default {
         color: #7f7f7f;
         line-height: 0.4 * 13.3vw;
         letter-spacing: 0.024 * 13.3vw;
-        margin-top:0.15*13.3vw;
+        margin-top: 0.15 * 13.3vw;
         .icon {
           display: inline-block;
           width: 0.1 * 13.3vw;

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 76 - 76
src/store/user.js


+ 40 - 8
yarn.lock

@@ -20,6 +20,13 @@
   "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz"
   "version" "7.18.11"
 
+"@babel/runtime@^7.17.2":
+  "integrity" "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw=="
+  "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz"
+  "version" "7.21.0"
+  dependencies:
+    "regenerator-runtime" "^0.13.11"
+
 "@iconify/json@^2.1.98":
   "integrity" "sha512-4814e7M8guSRxGeM73+CrNhRL1+gpbNwX/NLLCEHkwwGKWIuzxiF0Z/9GFpZ4ronmwEKhuYyua4mirn78NTVxg=="
   "resolved" "https://registry.npmjs.org/@iconify/json/-/json-2.1.137.tgz"
@@ -317,6 +324,16 @@
   dependencies:
     "delayed-stream" "~1.0.0"
 
+"copy-text-to-clipboard@^3.0.1":
+  "integrity" "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
+  "resolved" "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz"
+  "version" "3.0.1"
+
+"core-js@^3.11.0":
+  "integrity" "sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw=="
+  "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.28.0.tgz"
+  "version" "3.28.0"
+
 "cross-spawn@^7.0.3":
   "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
   "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
@@ -348,9 +365,9 @@
   "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
   "version" "1.0.0"
 
-"esbuild-darwin-arm64@0.15.13":
-  "integrity" "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A=="
-  "resolved" "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz"
+"esbuild-windows-64@0.15.13":
+  "integrity" "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ=="
+  "resolved" "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz"
   "version" "0.15.13"
 
 "esbuild@^0.15.9", "esbuild@>=0.13":
@@ -453,11 +470,6 @@
     "combined-stream" "^1.0.8"
     "mime-types" "^2.1.12"
 
-"fsevents@~2.3.2":
-  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
-  "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
-  "version" "2.3.2"
-
 "function-bind@^1.1.1":
   "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
   "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
@@ -631,6 +643,11 @@
   "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
   "version" "2.1.2"
 
+"mutation-observer@^1.0.3":
+  "integrity" "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
+  "resolved" "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz"
+  "version" "1.0.3"
+
 "nanoid@^3.3.4":
   "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
   "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
@@ -729,6 +746,11 @@
   dependencies:
     "picomatch" "^2.2.1"
 
+"regenerator-runtime@^0.13.11":
+  "integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+  "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
+  "version" "0.13.11"
+
 "resolve@^1.22.1":
   "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
   "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
@@ -918,6 +940,16 @@
     "@vant/popperjs" "^1.2.1"
     "@vant/use" "^1.4.1"
 
+"vconsole@^3.15.0":
+  "integrity" "sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ=="
+  "resolved" "https://registry.npmjs.org/vconsole/-/vconsole-3.15.0.tgz"
+  "version" "3.15.0"
+  dependencies:
+    "@babel/runtime" "^7.17.2"
+    "copy-text-to-clipboard" "^3.0.1"
+    "core-js" "^3.11.0"
+    "mutation-observer" "^1.0.3"
+
 "vite-plugin-windicss@^1.8.7":
   "integrity" "sha512-/zwQ8+RV+MSkbG0IGqsEma6r2R01NzN/aNpNjJD7VVAkxAptNznqDXOObFTskkWfZ+9m6KJZCOuCPgAFtQIzEA=="
   "resolved" "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-1.8.7.tgz"