ZhaoJing преди 2 години
родител
ревизия
50a621f3e8
променени са 2 файла, в които са добавени 112 реда и са изтрити 19 реда
  1. 24 5
      src/pages/stxkjs/index.vue
  2. 88 14
      src/pages/stxkjs/stxk_js_classdetail/index.vue

+ 24 - 5
src/pages/stxkjs/index.vue

@@ -253,8 +253,9 @@
               </template>
             </div>
           </div>
-          <div v-if="sign" class="submit mb-4" @click="submitSign(c)">
-            <button>提交</button>
+          <div v-if="sign" class="submit mb-4" >
+            <van-button :disabled=isButton type="primary" color="#003eee" @click="submitSign(c)" round>提交</van-button>
+            <!-- <button v-bind:disabled=isButton @click="submitSign(c)">提交</button> -->
           </div>
           <div v-else class="submit submited">
             <button>已签到</button>
@@ -277,7 +278,7 @@ import {
 } from "./api";
 import { user } from "../../store/user";
 import { ref, reactive, onMounted } from "vue";
-import { showToast, Dialog } from "vant";
+import { showToast, Dialog,showConfirmDialog } from "vant";
 import getTeamInfo from "~/store/team";
 let https = ref(window.GLOBAL_CONFIG.api);
 const fileList = ref([]);
@@ -424,8 +425,21 @@ function applied() {
   showToast("等待审核");
 }
 function jaDelete(item) {
-  stxkjs_sc({ kkj_id: item.kkj_id }).then((res) => {
-    getlb();
+  showConfirmDialog({
+  title: '删除教案',
+  message:
+    '确认删除?',
+})
+  .then(() => {
+    stxkjs_sc({ kkj_id: item.kkj_id }).then((res) => {
+      if(res.code=='1'){
+        showToast(res.msg)
+        getlb();
+      }
+  });
+  })
+  .catch(() => {
+    showToast('取消操作~')
   });
 }
 let pos = ref({});
@@ -435,6 +449,7 @@ let kkb_id = "";
 let kkbk_sszt = "";
 let kkq_zt = "";
 let kkq_img = [];
+let isButton = $ref(false);
 // 开始签到,缓存签到参数
 function beginSign(c) {
   pos.value = "";
@@ -446,6 +461,7 @@ function beginSign(c) {
   signItem.value = c;
   kkq_img = [];
   sign.value = true;
+  isButton = true;
 }
 function endSign(c) {
   kkq_id = c.is_qd.kkq_id;
@@ -462,11 +478,13 @@ const afterRead = (fileList) => {
     if(res.code=='1'){
       kkq_img.push(res.data.file_name + "," + res.data.url);
       file.status = "done";
+      isButton = false;
     }
   });
 };
 function beforeDelate(file, detail) {
   kkq_img.splice(detail.index, 1);
+  isButton = true;
   return true;
 }
 
@@ -686,6 +704,7 @@ getColor();
               color: #ff2e2e;
               line-height: 0.41 * 13.3vw;
               margin-left: 0.5 * 13.3vw;
+              padding: 5px;
             }
           }
         }

+ 88 - 14
src/pages/stxkjs/stxk_js_classdetail/index.vue

@@ -10,7 +10,8 @@
         <span>地点:{{ classdetail.teach_info.kj_name }}</span>
       </p>
       <p class="date">
-        <span>{{ classdetail.kkbk_starttime }} - {{ classdetail.kkbk_endtime }}</span>  <span class="ml-2">课时: {{ classdetail.khfw_kcgl.kk_kss }}</span>
+        <span>{{ classdetail.kkbk_starttime }} - {{ classdetail.kkbk_endtime }}</span> <span class="ml-2">课时: {{
+          classdetail.khfw_kcgl.kk_kss }}</span>
       </p>
       <div v-for="ja in classdetail.ja" :key="ja" class="plan-file">
         <a :href="resolveSingleFileString(ja.kkj_fj).url">课程教案:{{ resolveSingleFileString(ja.kkj_fj).name }}
@@ -47,11 +48,28 @@
           <div class="unback" v-if="Object.keys(classdetail.fk).length == 0">
             <textarea v-model="textMessage" placeholder="请输入课程情况反馈内容..." class="textarea"></textarea>
             <p class="up-pic">上传照片</p>
-            <van-uploader v-model="fileList" :after-read="afterRead">
+            <div class="relative w-25vw h-25vw">
+              <div class="w-full h-full bg-gray-100 text-center leading-25vw text-30px text-gray-500">
+                <van-loading class="absolute loading_center" v-if="img_loading" color="#1989fa" />
+                <span v-else>+</span>
+              </div>
+              <input ref="fileRef" title="上传文件" type='file' multiple name="file"
+                class="file-input absolute top-0 left-0 w-25vw h-25vw" @change="fkUpload($event)"
+                accept="image/png, image/jpeg, .svs" />
+            </div>
+            <div v-if="kkk_img.length > 0" class="flex flex-wrap">
+              <div class="w-30vw mr-2 my-2 relative" v-for="(m, i) in kkk_img" :key="i">
+                <img class="w-full" :src="https + m.split(',')[1]" alt="">
+                <div
+                  class="w-20px h-20px border-red-500 border-1 rounded-1/2 bg-red-500 text-white absolute -top-5px -right-5px text-center text-25px leading-16px cursor-pointer"
+                  @click="deleteFkimg(i)">×</div>
+              </div>
+            </div>
+            <!-- <van-uploader v-model="fileList" :after-read="afterRead">
               <template #preview-cover="{ file }">
                 <div class="preview-cover van-ellipsis">{{ file.name }}</div>
               </template>
-            </van-uploader>
+            </van-uploader> -->
             <div @click="(back = false), fkback()" class="submit">
               <button>提交</button>
             </div>
@@ -157,7 +175,7 @@ import {
 import { stxk_up } from "../api";
 import { ref, reactive, nextTick } from "vue";
 import { useRoute } from "vue-router";
-import { showToast } from "vant";
+import { showConfirmDialog, showToast } from "vant";
 import { user } from "../../../store/user";
 import getTeamInfo from "~/store/team";
 import { resolveSingleFileString, resolveFileString } from "~/utils/helper";
@@ -188,7 +206,7 @@ function getDetail() {
 }
 getDetail();
 
-// 点名
+//#region 点名
 let user_ids = [];
 let checked = $ref([]);
 function checkChange(e) {
@@ -221,7 +239,7 @@ function submitDM(member) {
     });
   });
   if (checked.length == '0') {
-    if (user_ids.length == '0' && classdetail.value.dm?.qdqk?.length == 0 && classdetail.value.member.length>0) {
+    if (user_ids.length == '0' && classdetail.value.dm?.qdqk?.length == 0 && classdetail.value.member.length > 0) {
       return showToast('所有学生已到!')
     } else {
       return showToast('请选择未到或补卡');
@@ -242,9 +260,9 @@ function submitDM(member) {
       });
     } else if (checked == "2") {
       console.log(classdetail.value.dm.qdqk.length);
-      if(classdetail.value.dm.qdqk.length > 0){
+      if (classdetail.value.dm.qdqk.length > 0) {
         console.log(111111111);
-        classdetail.value.dm?.qdqk.forEach(val=>{
+        classdetail.value.dm?.qdqk.forEach(val => {
           user_ids.push(val.kkbm_s_user_id)
         })
       }
@@ -266,18 +284,56 @@ function submitDM(member) {
   }
 
 }
+// #endregion
 
 // 课堂反馈图片上传
+let img_loading = $ref(false);
 let kkq_id = "";
-let kkk_img = [];
+let kkk_img = $ref([]);
+function fkUpload(e) {
+  img_loading = true;
+  console.log('上传文件列表', e.target.files)
+  let file = [];
+  console.log(typeof e.target.files);
+  Array.from(e.target.files).forEach(item => {
+    stxk_up({ file: item }).then((res) => {
+      if (res.code == '1') {
+        showToast(res.msg)
+        kkk_img.push(res.data.file_name + "," + res.data.url);
+        console.log(kkk_img);
+        img_loading = false;
+      }else{
+        showToast(res.msg)
+      }
+    });
+  })
+  // kkk_img = [];
+  // 
+}
+function deleteFkimg(i) {
+  showConfirmDialog({
+    title: '删除该图片',
+    message:
+      '确认删除?',
+  })
+    .then(() => {
+      kkk_img.splice(i, 1);
+      showToast('操作成功~')
+    })
+    .catch(() => {
+      showToast('取消操作~')
+    });
+
+}
 const afterRead = (fileList) => {
   const { file } = fileList;
+  console.log(file);
   file.status = "uploading";
-  stxk_up({ file: file}).then((res) => {
-    if(res.code=='1'){
+  stxk_up({ file: file }).then((res) => {
+    if (res.code == '1') {
       kkk_img.push(res.data.file_name + "," + res.data.url);
       file.status = "done";
-    } 
+    }
   });
 };
 // 课堂反馈提交
@@ -460,6 +516,25 @@ function delCd(c) {
   --van-padding-xs: 0;
 }
 
+.file-input {
+  display: inline-block;
+  color: #fff;
+  // padding: 8px 10px 0px 30px;
+  // width: 40px;
+  font-size: 20px;
+  background: url();
+  opacity: 0;
+  z-index: 100;
+}
+
+.loading_center {
+  top: 0;
+  bottom: 0;
+  right: 0;
+  left: 0;
+  margin: auto;
+}
+
 .class-detail {
   background-color: #fff;
   min-width: 3.75 * 13.3vw;
@@ -847,5 +922,4 @@ function delCd(c) {
   position: absolute;
   top: 0.32 * 13.3vw;
   right: 0.3 * 13.3vw;
-}
-</style>
+}</style>