| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-     <meta charset="utf-8">
 
-     <title>考试</title>
 
-     <link rel="apple-touch-icon" href="apple-touch-icon.png">
 
-     <meta name="viewport" content="initial-scale=1.0, maximum-scale=1, user-scalable=no">
 
-     <link rel="icon" href="favicon.ico" type="image/x-icon"/>
 
-     <script>
 
-         window.addEventListener('resize', setHtmlFontSize)
 
-         setHtmlFontSize();
 
-         function setHtmlFontSize() {
 
-             // 根据屏幕的宽度来改变根元素的字体大小的值
 
-             // 当前屏幕 / 标准的375屏幕 求得你当前屏幕是标准屏幕的多少倍 * 标准屏幕根元素的字体大小
 
-             // 当前屏幕的宽度 / 375 * 100
 
-             // 假如当前750/375 = 2 * 100 == 200px
 
-             // 1. 当前屏幕的宽度
 
-             var windowWidth = document.documentElement.offsetWidth;
 
-             // 限制最大屏幕 和最小屏幕
 
-             if(windowWidth > 1200){
 
-                 document.querySelector('html').style.fontSize = 10 + 'px';
 
-                 return;
 
-             }
 
-             else if (windowWidth > 750) {
 
-                 windowWidth = 750;
 
-             } else if (windowWidth < 375) {
 
-                 windowWidth = 375;
 
-             }
 
-             //2. 标准屏幕的宽度
 
-             var StandardWidth = 375;
 
-             // 标准屏幕的html的字体大小
 
-             var StandardHtmlFontSize = 10;
 
-             //3. 当前屏幕需要设置的根元素的字体大小
 
-             var htmlFontSize = windowWidth / StandardWidth * StandardHtmlFontSize;
 
-             //4. 把当前计算的html 字体大小设置到页面的html元素上就可以
 
-             document.querySelector('html').style.fontSize = htmlFontSize + 'px';
 
-         }
 
-     </script>
 
-     <style>
 
-         html,body{
 
-             font-size: 1.6rem;
 
-         }
 
-         html,body {
 
-             padding: 0;
 
-             margin: 0;
 
-             width: 100%;
 
-             height: 100%;
 
-             background: #fff;
 
-         }
 
-         #app {
 
-             position: relative;
 
-             margin: 0 auto;
 
-             background: #fff;
 
-         }
 
-         .arc1{
 
-             background: #fff;
 
-         }
 
-         .arc-title{
 
-             font-size: 16px;
 
-             font-weight: bold;
 
-             background: #00A8FF;
 
-             padding: 0.5rem 1rem;
 
-         }
 
-         .topic{
 
-             padding-bottom: 1rem;
 
-             border-bottom: 0.1rem solid #efefef;
 
-             padding: 0rem 1.6rem;
 
-         }
 
-         .topic:last-child{
 
-             border-bottom:none;
 
-         }
 
-         .topic-title{
 
-             font-size: 1.4rem;
 
-         }
 
-         .topic .van-radio{
 
-             display: flex;
 
-             align-items: center;
 
-             margin-bottom: 1rem;
 
-             font-size: 1.4rem;
 
-         }
 
-         .topic .van-checkbox{
 
-             display: flex;
 
-             align-items: center;
 
-             margin-bottom: 1rem;
 
-             font-size: 1.4rem;
 
-         }
 
-         [v-cloak] {
 
-             display: none;
 
-         }
 
-         .header{
 
-             width: 100%;
 
-             height: 4.6rem;
 
-             position: fixed;
 
-             top: 0rem;
 
-             left: 0rem;
 
-             z-index: 1000;
 
-         }
 
-         .clear-header{
 
-             width: 100%;
 
-             height: 8rem;
 
-         }
 
-         .btn{
 
-             /*width: 100%;*/
 
-             margin-top: 5rem;
 
-             margin-bottom: 5rem;
 
-             /*position: fixed;*/
 
-             /*bottom: 0rem;*/
 
-         }
 
-         .tip-box{
 
-             padding: 1rem;
 
-         }
 
-         .tip-box h3{
 
-             color: red;
 
-         }
 
-     </style>
 
- </head>
 
- <body>
 
- <div id="app" v-cloak>
 
-     <div class="header" v-if="paper && user != 1" >
 
-         <van-nav-bar left-text="返回" left-arrow  @click-left="onClickLeft">
 
-             <div slot="title">
 
-                 <span>{{paper.paperName}}</span>
 
-             </div>
 
-             <!--<div  slot="right">-->
 
-                 <!--{{paper.useTime}}-->
 
-             <!--</div>-->
 
-         </van-nav-bar>
 
-         <div v-if="num == 1">
 
-             <van-notice-bar :scrollable="false">
 
-                 <div style="display: flex;align-items: center">
 
-                     <span>剩余考试时间:</span>
 
-                     <van-count-down
 
-                             style="color: red"
 
-                             :time="time"
 
-                             format=" mm 分 ss 秒"
 
-                             @finish="finish"
 
-                     >
 
-                     </van-count-down>
 
-                 </div>
 
-             </van-notice-bar>
 
-         </div>
 
-     </div>
 
-     <div class="clear-header" v-if="num == 1 && user != 1">
 
-     </div>
 
-     <div class="arc1">
 
-       <p class="arc-title" v-if="paper">
 
-           单选题
 
-           ({{paper.radioNumber}}个,
 
-           每个{{paper.radioScore}}分)
 
-       </p>
 
-       <div class="topic" v-for="(item,index) in radioList">
 
-           <p class="topic-title">
 
-               {{index+1}}.
 
-              {{item.questionsName}}
 
-           </p>
 
-           <van-radio-group v-model="radioList1[index]">
 
-               <van-radio v-for="key in Object.keys(JSON.parse(item.answerContent)) " :name="key">{{key}}{{JSON.parse(item.answerContent)[key]}}</van-radio>
 
-           </van-radio-group>
 
-       </div>
 
-     </div>
 
-     <div class="arc1">
 
-       <p class="arc-title" v-if="paper">
 
-           多选题
 
-           ({{paper.selectNumber}}个,
 
-           全对{{paper.selectScore}}分,选不全给{{paper.selectLessScore}}分)
 
-       </p>
 
-       <div class="topic" v-for="(item,index) in selectList">
 
-           <p class="topic-title">
 
-               {{index+1}}.
 
-               {{item.questionsName}}
 
-           </p>
 
-           <van-checkbox-group  v-model="selectList1[index]">
 
-               <van-checkbox shape="square" v-for="key in Object.keys(JSON.parse(item.answerContent)) " :name="key">{{key}}{{JSON.parse(item.answerContent)[key]}}</van-checkbox>
 
-           </van-checkbox-group>
 
-       </div>
 
-     </div>
 
-     <div class="arc1">
 
-       <p class="arc-title" v-if="paper">
 
-           判断题
 
-           ({{paper.trueFalseItem}}个,
 
-           每个{{paper.trueFalseScore}}分)
 
-       </p>
 
-       <div class="topic" v-for="(item,index) in trueFalseList">
 
-           <p class="topic-title">
 
-               {{index+1}}.
 
-               {{item.questionsName}}
 
-           </p>
 
-           <van-radio-group v-model="trueFalseList1[index]">
 
-               <van-radio name="T">是</van-radio>
 
-               <van-radio name="F">否</van-radio>
 
-           </van-radio-group>
 
-       </div>
 
-     </div>
 
-     <div class="tip-box" v-if="arr1.length > 0 || arr2.length > 0 || arr3.length > 0">
 
-         <h3>以下题目还未做完</h3>
 
-         <p v-if="arr1.length > 0">
 
-             单选题:{{arr1.join(',')}}
 
-         </p>
 
-         <p v-if="arr2.length > 0">
 
-             多选题:{{arr2.join(',')}}
 
-         </p>
 
-         <p v-if="arr3.length > 0">
 
-             判断题:{{arr3.join(',')}}
 
-         </p>
 
-     </div>
 
-     <div class="btn">
 
-         <van-button type="primary" size="large" @click="subFn(1)">开始提交</van-button>
 
-     </div>
 
-     <van-loading type="spinner" color="#1989fa"  v-if="loading"/>
 
- </div>
 
- <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
 
- <script src="../../../assets/module/vue.js"></script>
 
- <script src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
 
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.2/lib/index.css">
 
- <script src="https://cdn.jsdelivr.net/npm/vant@2.2/lib/vant.min.js"></script>
 
- <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
 
- <script>
 
-     new Vue({
 
-         el: "#app",
 
-         data: {
 
-             post: {
 
-                 name:1,
 
-             },
 
-             time:45 * 60 * 1000,
 
-             radio:1,
 
-             result: ['a', 'b'],
 
-             paperId:'',
 
-             num:'',
 
-             user:'',
 
-             paper:null,   //试题介绍
 
-             arr1:[],
 
-             radioList1:[],  //单选题
 
-             radioList:[],  //单选题
 
-             arr2:[],
 
-             selectList1:[],  //多选题
 
-             selectList:[],  //多选题
 
-             arr3:[],
 
-             trueFalseList1:[],  //判断题
 
-             trueFalseList:[],  //判断题
 
-             loading:false
 
-         },
 
-         mounted(){
 
-             this.paperId = this.getUrlParam("paperId");
 
-             this.num = this.getUrlParam("num");
 
-             this.user = this.getUrlParam("user");
 
-             //获取试卷
 
-             this.myListFn();
 
-         },
 
-         methods:{
 
-             //获取试卷
 
-             myListFn(){
 
-                 // Authorization
 
-                 let _this = this;
 
-                 layui.use(['uParas','admin'], () => {
 
-                     let admin = layui.admin;
 
-                     let uParas = layui.uParas;
 
-                     let url = uParas.baseUrl + '/ol/testPaper/getDetail';
 
-                     $.ajax({
 
-                         type: 'get',
 
-                         url: url,
 
-                         data: {
 
-                             paperId:this.paperId,
 
-                             testType:this.num,
 
-                         },
 
-                         headers: {
 
-                             'accept':'application/json, text/javascript, */*; q=0.01',
 
-                             'Authorization': localStorage.getItem('atoken')
 
-                         },
 
-                         success: function (res) {
 
-                             console.log(res);
 
-                             _this.paper = res.data.paper;
 
-                             _this.radioList = res.data.radioList;
 
-                             _this.selectList = res.data.selectList;
 
-                             _this.trueFalseList = res.data.trueFalseList;
 
-                             var str = res.data.startTime; // 日期字符串
 
-                             str = str.replace(/-/g,'/'); // 将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串
 
-                             let time1 = (new Date(str)).getTime(); // 构造一个日期型数据,值为传入的字符串
 
-                             let time2 = (new Date()).getTime(); // 构造一个日期型数据,值为传入的字符串
 
-                             _this.time = res.data.paper.useTime*60*1000-(time2-time1);
 
-                             // _this.time = 20*60*1000-(time2-time1);
 
-                         },
 
-                     });
 
-                 })
 
-             },
 
-             //提交试卷
 
-             subFn(type){
 
-                 let _this = this;
 
-                 let objs = [];
 
-                 function arrFn(obj,objArr) {
 
-                     let length1 = obj.length;
 
-                     let arr = [];
 
-                     let param = {};
 
-                     for(let i=0;i<length1;i++ ){
 
-                         if(objArr[i] == undefined){
 
-                             arr.push(i+1);
 
-                             param['userAnswer'] = '';
 
-                         }else{
 
-                             if((typeof objArr[i]) == "string"){
 
-                                 console.log( objArr[i])
 
-                                 param['userAnswer'] = objArr[i];
 
-                             }else{
 
-                                 param['userAnswer'] = objArr[i].join(",");
 
-                             }
 
-                         }
 
-                         param['questionsId'] = obj[i].questionsId;
 
-                         objs.push(param);
 
-                     }
 
-                     return arr;
 
-                 }
 
-                 if(type == 1){
 
-                     vant.Dialog.confirm({
 
-                         title: this.paper.paperName,
 
-                         message: '请确认提交试卷'
 
-                     }).then(() => {
 
-                         this.arr1 = arrFn(this.radioList,this.radioList1);
 
-                         this.arr2 = arrFn(this.selectList,this.selectList1);
 
-                         this.arr3 = arrFn(this.trueFalseList,this.trueFalseList1);
 
-                         if(this.arr1.length > 0 || this.arr2.length > 0 || this.arr3.length > 0){
 
-                             vant.Notify({ type: 'warning', message: '请完成所有题目后提交' });
 
-                             return;
 
-                             // onfirmFn();
 
-                         }else {
 
-                             vant.Toast.loading({
 
-                                 message: '正在考试统计...',
 
-                                 forbidClick: true,
 
-                                 duration: 20000
 
-                             });
 
-                             onfirmFn();
 
-                         }
 
-                     }).catch(() => {
 
-                     });
 
-                 }else{
 
-                     this.arr1 = arrFn(this.radioList,this.radioList1);
 
-                     this.arr2 = arrFn(this.selectList,this.selectList1);
 
-                     this.arr3 = arrFn(this.trueFalseList,this.trueFalseList1);
 
-                     onfirmFn();
 
-                 }
 
-                function onfirmFn(){
 
-                    layui.use(['uParas','admin'], () => {
 
-                        let admin = layui.admin;
 
-                        let uParas = layui.uParas;
 
-                        let url = uParas.baseUrl + '/ol/testPaper/submitPaper';
 
-                        let paperTypeId = _this.getUrlParam('paperTypeId');
 
-                        $.ajax({
 
-                            type: 'post',
 
-                            url: url,
 
-                            data: {
 
-                                paperId:_this.paperId,
 
-                                testType:_this.num,
 
-                                paperType:paperTypeId,
 
-                                questions:JSON.stringify(objs),
 
-                            },
 
-                            headers: {
 
-                                'accept':'application/json, text/javascript, */*; q=0.01',
 
-                                'Authorization': localStorage.getItem('atoken')
 
-                            },
 
-                            success: function (res) {
 
-                                console.log(res);
 
-                                vant.Toast(res.msg);
 
-                                if(_this.user == 1){
 
-                                    let zindex = $(window.parent.document).find('.layui-layer-iframe').css('z-index');
 
-                                    $(window.parent.document).find('.layui-layer-iframe').css({
 
-                                        zIndex: zindex,
 
-                                        width: '500px',
 
-                                        height: '90%',
 
-                                        position: 'absolute',
 
-                                        top: '40px',
 
-                                        left: '50px',
 
-                                    })
 
-                                }
 
-                                window.history.back(-1);
 
-                            }
 
-                        });
 
-                    })
 
-                }
 
-             },
 
-             finish() {
 
-                 this.subFn(2);
 
-             },
 
-             onClickLeft() {
 
-                 window.history.back(-1);
 
-             },
 
-             getUrlParam(name) {
 
-                 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
 
-                 //如果地址栏中出现中文则进行编码
 
-                 var r = encodeURI(window.location.search).substr(1).match(reg);
 
-                 if (r != null) {
 
-                     //将中文编码的字符重新变成中文
 
-                     return decodeURI(unescape(r[2]));
 
-                 }
 
-                 return null;
 
-             },
 
-         }
 
-     })
 
- </script>
 
- </body>
 
- </html>
 
 
  |