国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Django+Vue】英文成績(jī)管理平臺(tái)--20230727

這篇具有很好參考價(jià)值的文章主要介紹了【Django+Vue】英文成績(jī)管理平臺(tái)--20230727。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

能夠滿足大部分核心需求(標(biāo)綠):報(bào)表部分應(yīng)該比較難。
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

項(xiàng)目地址

前端編譯 https://gitlab.com/m7840/toeic_vue_dist
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

Vue源碼 https://gitlab.com/m7840/toeic_vue
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

Django源碼 https://gitlab.com/m7840/toeic_python
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

項(xiàng)目架構(gòu)

【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

流程

【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

項(xiàng)目效果

學(xué)員界面:前后端分離
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python
管理員界面:前后端不分離
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python

項(xiàng)目經(jīng)驗(yàn):

1. vue.js的坑

Django的vue.js用axios請(qǐng)求數(shù)據(jù),只適用于Django為API數(shù)據(jù)接口;不適用于再訪問(wèn)Django以外的數(shù)據(jù)接口,訪問(wèn)Django以外的數(shù)據(jù)接口會(huì)遇到跨域(百度無(wú)法解決)。最后我采用前后端分離。

2. session.storage是非響應(yīng)式數(shù)據(jù),需要reload來(lái)刷新網(wǎng)頁(yè)。

3.前后端分離才是Django項(xiàng)目首選,因?yàn)閿?shù)據(jù)來(lái)源一般是其他網(wǎng)頁(yè)的API。

4. JS還是不熟悉

項(xiàng)目重構(gòu):

將session.storage改成Vuex(Vuex三連要寫(xiě)完,否則會(huì)報(bào)錯(cuò))

【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python
【Django+Vue】英文成績(jī)管理平臺(tái)--20230727,django,Vue,django,vue.js,python文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-621321.html

<template>
  <el-row>
    <el-col :span="24" v-for="(o, index) in 1" :key="o" :offset="index > 0 ? 2 : 0">
      

<div class="container"  v-loading="loading">
  <div class="row py-5">

    <div id="pnl1View">

      <div style="line-height: 30px;">
        {{ remark }}
      </div>

      <div style="line-height: 30px;">
        你好,英文成績(jī)?nèi)缦拢?      </div>

      <div id="Content" style="width: 80%;">

        <div id="Content_R">
          <div>
            <table class="table table-striped table-bordered" style="border-color:#31B6FD;border-width:1px;border-style:Solid;border-collapse:collapse;text-align: center">
              <tbody>
                <tr style="font-family:微軟正黑體,Tahoma,Arial,微軟雅黑體;font-size:15px;">
                  <th scope="col">Course</th>
                  <th align="center">英文類別</th>
                  <th align="center">Range</th>
                  <th align="center">英文標(biāo)準(zhǔn)</th>
                  <th align="center">最高成績(jī)</th>
                  <th align="center">兩年內(nèi)最高成績(jī)</th>
                  <th scope="col">Test</th>
                </tr>
                <tr style="font-family:微軟正黑體,Tahoma,Arial,微軟雅黑;font-size:14px;">
                  <td align="center" valign="middle" rowspan="4" style="width:250px;">
                    <a>EN-0001.LiveABC考試</a>
                  </td>
                  <td align="center" valign="middle" rowspan="4" style="width:65px;white-space:nowrap;">{{ UserEnglishCategory.Category }}</td>
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">R1</td> 
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">{{ UserEnglishCategory.R1_score }}</td>
                  <td align="center" valign="middle" rowspan="4" style="width:65px;white-space:nowrap;">{{ UserScore.highest_score }}</td>
                  <td class="tdbr" align="center" valign="middle" rowspan="4" style="width:65px;white-space:nowrap;">{{ UserScore.two_years_highest_score }}<br>({{ UserScore.two_years_highest_score_date }})</td>
                  <td align="center" valign="middle" rowspan="4" style="width:65px;white-space:nowrap;">
                    <input id="apply" title="點(diǎn)擊查看詳情" @click="showApplyTable" value="查看考試排程"  class="btn btn-white border" role="button">
                  </td>
                </tr>
                <tr style="font-family:微軟正黑體,Tahoma,Arial,微軟雅黑;font-size:14px;">
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">R2</td>
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">{{ UserEnglishCategory.R2_score }}</td>
                </tr>
                <tr style="font-family:微軟正黑體,Tahoma,Arial,微軟雅黑;font-size:14px;">
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">R3</td>
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">{{ UserEnglishCategory.R3_score }}</td>
                </tr>
                <tr style="font-family:微軟正黑體,Tahoma,Arial,微軟雅黑;font-size:14px;">
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">R4</td>
                  <td align="center" valign="middle" style="width:65px;white-space:nowrap;">{{ UserEnglishCategory.R4_score }}</td>
                </tr>
              </tbody>
            </table>
          </div><br>

        </div>

        <div :class="collapseClass" id="collapseExample">

          <table class="table table-striped table-sm table-bordered">
            <thead>
              <tr align="center" valign="middle" style="color:White;background-color:#6480d3;font-family:微軟正黑體,Tahoma,Arial,微軟雅黑體;font-size:8px;">
                <th scope="col">Schedule_Code</th>
                <th scope="col">Start_Date</th>
                <th scope="col">End_Date</th>
                <th scope="col">location</th>
                <th scope="col">Max Headcount</th>
                <th scope="col" style="width:10%">App Num</th>
                <th scope="col" style="width:20%">Apply</th>
              </tr>
            </thead>
            
            <tr align="center" valign="middle" v-for="item in UserSchedule.new_schedule" style="color:Black;border-color:#E0E0E0;font-size:10px;height: 50px;">
              <td>{{ item.schedule.Schedule_Code }}</td>
              <td>{{ item.schedule.Start_Date }}</td>
              <td>{{ item.schedule.End_Date}}</td>
              <td>{{ item.schedule.location}}</td>
              <td>{{ item.schedule.max_hc}}</td>
              <td>{{ item.schedule.applied_hc}}</td>

              <td class="p-2">
                <button v-if="item.NotApplyAllowTest" class="btn btn-primary btn-outline-primary border" @click="Apply_Test(myEmployeeID,item.schedule.Schedule_Code,mydeptCode,myname,myemail)"  role="button" style="color:Black;font-size:8px;"><i class="el-icon-check"></i>點(diǎn)擊申請(qǐng)</button>
                <button v-if="item.AppliedCancelTest" class="btn btn-danger btn-outline-danger border" @click="Cancel_Test(myEmployeeID,item.schedule.Schedule_Code,mydeptCode,myname,myemail)" role="button" style="color:Black;font-size:8px;"><i class="el-icon-delete"></i>點(diǎn)擊取消</button>
                <span v-if="item.NotApplyAllowTest || item.AppliedCancelTest"></span>
                <span v-else>考場(chǎng)人數(shù)已滿,或未達(dá)到考試時(shí)間</span>
              </td>
            </tr>
  
          </table>
  
        </div>



      </div>

    </div>


  </div>

</div>


    </el-col>
  </el-row>
</template>
  

<script>
import axios from "axios";
import { mapState } from 'vuex'

export default {
  name: "MyContainer",
  data() {
    return {
      currentDate: new Date(),
      collapseClass:'collapse',
      loading:false,
    };
  },
  computed:{
    ...mapState({
        UserScore: (state) => state.home.UserScore || '',
        UserSchedule: (state) => state.home.UserSchedule,
        UserEnglishCategory: (state) => state.home.EnglishCategory || '',
        mydeptCode: (state) => state.home.deptid,
        myname: (state) => state.home.cname,
        myEmployeeID: (state) => state.home.user_decode_sub || '',
        EnglishCategory: (state) => state.home.EnglishCategory,
        myemail: (state) => state.home.user_decode_email,
        testMsg: (state) => state.home.testMsg,
      }),
    remark(){
      let UserScore = JSON.parse(sessionStorage.getItem('UserScore'))
      if (UserScore){
          return UserScore["remark"] || ''
      }else{
        return  ''
      }
    }
  },

  mounted() {
    setTimeout(() =>{
      this.GetUserScoreDjango(this.myEmployeeID),
      this.GetUserScheduleDjango(this.myEmployeeID)
    }, 1000);
    this.set_loading_to_false()
    console.log('myEmployeeID123',this.myEmployeeID)
  },

  watch: {
      UserSchedule: {
          handler: function () {
            console.log('UserSchedule改變了')
          },
          deep: true
        }
      },
  methods: {
    set_loading_to_false(){
      setTimeout(() =>this.loading=false, 200);
    },
    showApplyTable(){
      if(this.collapseClass=='collapse'){
        this.collapseClass = 'false'
      }else{
        this.collapseClass ='collapse'
      }
    },
    GetUserScoreDjango(emID){
        // axios({
        //         method: "GET",
        //         url: "/api/api_user_score/" + emID,
        //     }).then(res => {
        //         console.log('GetUserScoreDjango',res);
        //         sessionStorage.setItem('UserScore',JSON.stringify(res.data))
        //     }).catch(error => {
        //         console.log('GetUserScoreDjango',error);
        //     })

        this.$store.dispatch("getUserScoreDjangoData", {
          myemployeeID: emID,
        });
      },

    GetUserScheduleDjango(emID){
        //脫去""的外殼
        // let employeeID = emID.replace('"', '').replace('"', ''); 

        // axios({
        //         method: "GET",
        //         url: "/api/api_user_schedule_show/" + employeeID,
        //     }).then(res => {
        //         console.log('GetUserScheduleDjango',res);
        //         sessionStorage.removeItem('UserSchedule'),
        //         sessionStorage.setItem('UserSchedule',JSON.stringify(res.data))
        //         console.log('UserSchedule',this.UserSchedule)
        //     }).catch(error => {
        //         console.log('GetUserScheduleDjango',error);
        //     })

        this.$store.dispatch("getUserScheduleDjangoData", {
          myemployeeID: emID,
        });

      },

    Apply_Test(myemployeeID,mySchedule_Code,mydeptCode,myname,myemail,){
      // //脫去""的外殼
      // let employeeID = myemployeeID.replace('"', '').replace('"', ''); 
      // let Schedule_Code = mySchedule_Code.replace('"', '').replace('"', ''); 
      // let deptCode = mydeptCode.replace('"', '').replace('"', ''); 
      // let name = myname.replace('"', '').replace('"', ''); 
      // // let Test_Msg = ''
      // let email = myemail.replace('"', '').replace('"', ''); 

      this.loading=true;

      // axios({
      //           method: "GET",
      //           url: "/api/api_test_apply/" + employeeID + '/' + Schedule_Code + '/' + deptCode + '/' + name + '/' + email + '/',
      //       }).then(res => {
      //           console.log('Apply_Test',res);
      //           this.GetUserScheduleDjango(employeeID)
      //           this.loading=false
      //           alert('報(bào)名成功')

      //       }).catch(error => {
      //           console.log('Apply_Test',error);
      //           this.loading=false
      //           alert('報(bào)名失敗,請(qǐng)查看考場(chǎng)人數(shù)或考試日期間隔')
      //       })
      
      // this.$store.dispatch("getApplyTest", {
      //     myemployeeID : myemployeeID,
      //     mySchedule_Code : mySchedule_Code,
      //     mydeptCode : mydeptCode,
      //     myname : myname,
      //     myemail : myemail,
      //   })
      // this.GetUserScheduleDjango(myemployeeID)
      // this.loading=false;
      // alert('報(bào)名成功')

      try {
        this.$store.dispatch("getApplyTest", {
          myemployeeID : myemployeeID,
          mySchedule_Code : mySchedule_Code,
          mydeptCode : mydeptCode,
          myname : myname,
          myemail : myemail,
        })

        setTimeout(() => {
          this.GetUserScheduleDjango(myemployeeID)
        }, 3000);

        
        setTimeout(() => {
          this.loading=false;
          console.log('testMsg',this.testMsg)
          if(this.testMsg.apply_result[0]==='申請(qǐng)成功'){
            alert('報(bào)名成功')
          }else{
            alert('報(bào)名失敗,請(qǐng)查看考場(chǎng)人數(shù)或考試日期間隔')
          }
        }, 4000);
        
      } catch (error) {
        console.log('Apply_Test',error);
        this.loading=false;
      }
    },

    Cancel_Test(myemployeeID,mySchedule_Code,mydeptCode,myname,myemail){
      // //脫去""的外殼
      // let employeeID = myemployeeID.replace('"', '').replace('"', '');
      // let Schedule_Code = mySchedule_Code.replace('"', '').replace('"', '');
      // let deptCode = mydeptCode.replace('"', '').replace('"', ''); 
      // let name = myname.replace('"', '').replace('"', ''); 
      // // let Test_Msg = ''
      // let email = myemail.replace('"', '').replace('"', ''); 

      this.loading=true;

      // axios({
      //         method: "GET",
      //         url: "/api/api_test_cancel/" + employeeID + '/' + Schedule_Code + '/'+ deptCode + '/' + name + '/' + email + '/',
      //       }).then(res => {
      //           console.log('Cancel_Test',res);
      //           // Test_Msg = JSON.stringify(res.data)
      //           // sessionStorage.setItem('Test_Msg',Test_Msg)
      //           this.GetUserScheduleDjango(employeeID)
      //           this.loading=false
      //           alert('取消成功')
      //       }).catch(error => {
      //           console.log('Cancel_Test',error);
      //           this.loading=false
      //           alert('取消失敗')
      //       })
     
      try {
        this.$store.dispatch("getCancelTest", {
          myemployeeID : myemployeeID,
          mySchedule_Code : mySchedule_Code,
          mydeptCode : mydeptCode,
          myname : myname,
          myemail : myemail,
        })

        setTimeout(() => {
          this.GetUserScheduleDjango(myemployeeID)
        }, 3000);

        setTimeout(() => {
          this.loading=false;
          console.log('testMsg',this.testMsg)
          if(this.testMsg.apply_result[0]==='取消成功'){
            alert('取消成功')
          }else{
            alert('取消失敗')
          }
        }, 4000);

      } catch (error) {
        console.log('Apply_Test',error);
        this.loading=false;
      }

    },
    
  },
};
</script>

<style scoped>
.time {
  font-size: 13px;
  color: #999;
}

.bottom {
  margin-top: 13px;
  line-height: 12px;
}

.button {
  float: right;
  color: #999999;
}

.image {
  width: 100%;
  display: block;
}

.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}

.clearfix:after {
  clear: both;
}
</style>

到了這里,關(guān)于【Django+Vue】英文成績(jī)管理平臺(tái)--20230727的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python+django在線借閱圖書(shū)管理系統(tǒng)vue

    python+django在線借閱圖書(shū)管理系統(tǒng)vue

    本論文是以構(gòu)建圖書(shū)借閱為目標(biāo),使用 ?django框架制作,由系統(tǒng)前臺(tái)、讀者和管理員三大部分組成。著重論述了系統(tǒng)設(shè)計(jì)分析,系統(tǒng)的實(shí)現(xiàn)(讀者注冊(cè)模塊,讀者登錄,讀者瀏覽圖書(shū)模塊,圖書(shū)借閱模塊,圖書(shū)歸還模塊,管理員登錄等)以及后臺(tái)數(shù)據(jù)庫(kù)管理。從網(wǎng)站設(shè)計(jì)到具

    2024年02月07日
    瀏覽(99)
  • Vue_Django 登錄注冊(cè)+圖書(shū)管理系統(tǒng)

    點(diǎn)擊查看代碼 點(diǎn)擊查看代碼 點(diǎn)擊查看代碼 點(diǎn)擊查看代碼 點(diǎn)擊查看代碼

    2024年02月08日
    瀏覽(16)
  • Django+vue自動(dòng)化測(cè)試平臺(tái)(7)-- 使用Selenium+vue實(shí)現(xiàn)WebUI自動(dòng)化及結(jié)果展示

    Django+vue自動(dòng)化測(cè)試平臺(tái)(7)-- 使用Selenium+vue實(shí)現(xiàn)WebUI自動(dòng)化及結(jié)果展示

    Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。這個(gè)工具的主要功能包括:測(cè)試與瀏覽器的兼容性——測(cè)試應(yīng)用程序看是否能夠很好得

    2024年02月14日
    瀏覽(27)
  • 基于 HttpRunner + Django + Vue + Element UI 的接口自動(dòng)化測(cè)試平臺(tái)

    基于 HttpRunner + Django + Vue + Element UI 的接口自動(dòng)化測(cè)試平臺(tái)

    https://github.com/tahitimoon/LunarLink https://lunar-link-docs.fun 基于HttpRunner + Django + Vue + Element UI 的接口自動(dòng)化測(cè)試平臺(tái),生產(chǎn)可用。 此外,非常感謝 花菜。沒(méi)有 AnotherFasterRunner 就不會(huì)有 LunarLink ?? ?? Django ?? Django Rest framework ?? Vue.js ?? Element UI ?? django-celery-beat(定時(shí)任務(wù)) ??

    2024年04月11日
    瀏覽(23)
  • Python+django+vue開(kāi)發(fā)的家教信息管理系統(tǒng)

    Python+django+vue開(kāi)發(fā)的家教信息管理系統(tǒng)

    一直想做一款管理系統(tǒng),看了很多優(yōu)秀的開(kāi)源項(xiàng)目但是發(fā)現(xiàn)沒(méi)有合適的。 于是利用空閑休息時(shí)間開(kāi)始自己寫(xiě)了一套管理系統(tǒng)。 功能介紹 平臺(tái)采用B/S結(jié)構(gòu),后端采用主流的Python+django進(jìn)行開(kāi)發(fā),前端采用主流的Vue.js進(jìn)行開(kāi)發(fā)。 整個(gè)平臺(tái)包括前臺(tái)和后臺(tái)兩個(gè)部分。 前臺(tái)功能包括

    2024年04月16日
    瀏覽(26)
  • 基于Django+Vue開(kāi)發(fā)的社區(qū)疫情管理系統(tǒng)(附源碼)

    基于Django+Vue開(kāi)發(fā)的社區(qū)疫情管理系統(tǒng)(附源碼)

    基于Django、Django Rest framework、Vue的前后端分離的社區(qū)疫情管理系統(tǒng)。 用戶管理(只有管理員有權(quán)限) 用戶注冊(cè) 用戶登錄 修改用戶信息 刪除用戶 修改密碼 權(quán)限管理 首頁(yè)數(shù)據(jù)展示 國(guó)內(nèi)疫情數(shù)據(jù)展示 國(guó)內(nèi)疫情新聞 近30日的感染人數(shù)(柱狀圖) 中高風(fēng)險(xiǎn)地區(qū)(餅圖) 通知信息

    2024年02月21日
    瀏覽(23)
  • 一步步完整搭建一個(gè)圖紙管理系統(tǒng)(Django+Vue3)

    一步步完整搭建一個(gè)圖紙管理系統(tǒng)(Django+Vue3)

    需要將終端改成虛擬環(huán)境的解釋器后,簡(jiǎn)單試運(yùn)行: 由于我們把子項(xiàng)目都放在apps里面了(方便統(tǒng)一管理)所以注冊(cè)要加入一段配置 一定要注意格式 (1)安裝pymysql (2)gveInformationSystem/settings中進(jìn)行相關(guān)配置 (3)需要在init.py導(dǎo)入pymysql (在:apps/DrawingManagementSystem/models.py)

    2024年02月06日
    瀏覽(29)
  • 基于python+django+vue.js開(kāi)發(fā)的停車(chē)管理系統(tǒng)

    功能介紹 平臺(tái)采用B/S結(jié)構(gòu),后端采用主流的Python語(yǔ)言進(jìn)行開(kāi)發(fā),前端采用主流的Vue.js進(jìn)行開(kāi)發(fā)。 功能包括:車(chē)位管理、會(huì)員管理、停車(chē)場(chǎng)管理、違規(guī)管理、用戶管理、日志管理、系統(tǒng)信息模塊。 源碼地址 https://github.com/geeeeeeeek/python_parking 演示地址 http://parking.gitapp.cn 演示帳

    2024年02月20日
    瀏覽(25)
  • 基于python+django+vue.js開(kāi)發(fā)的社區(qū)養(yǎng)老管理系統(tǒng)

    功能介紹 平臺(tái)采用B/S結(jié)構(gòu),后端采用主流的Python語(yǔ)言進(jìn)行開(kāi)發(fā),前端采用主流的Vue.js進(jìn)行開(kāi)發(fā)。 功能包括:老人管理、護(hù)工管理、親屬管理、病史管理、房間管理、活動(dòng)管理、用戶管理、日志管理、系統(tǒng)信息模塊。 源碼地址 https://github.com/geeeeeeeek/python_yanglao 演示地址 http

    2024年02月20日
    瀏覽(58)
  • 基于python+django+vue.js開(kāi)發(fā)的醫(yī)院門(mén)診管理系統(tǒng)/醫(yī)療管理系統(tǒng)

    功能介紹 平臺(tái)采用B/S結(jié)構(gòu),后端采用主流的Python語(yǔ)言進(jìn)行開(kāi)發(fā),前端采用主流的Vue.js進(jìn)行開(kāi)發(fā)。 功能包括:醫(yī)生管理、科室管理、護(hù)士管理、住院管理、藥品管理、用戶管理、日志管理、系統(tǒng)信息模塊。 源碼地址 https://github.com/geeeeeeeek/python_hospital 演示地址 http://hospital.gi

    2024年02月21日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包