فهرست منبع

自考考生端-前端

haogh 2 ماه پیش
والد
کامیت
ec2540923c

BIN
public/image/logo/top.png


+ 2 - 0
public/index.html

@@ -4,6 +4,8 @@
     <meta charset="utf-8">
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <meta http-equiv="Content-Security-Policy" content="form-action 'self';">
+
     <!-- <link rel="icon" href="<%= BASE_URL %>icon.ico"> -->
     <!-- <link rel="icon" href="<%= BASE_URL %>icon.ico"> -->
     <title>广西自学考试网上系统</title>
     <title>广西自学考试网上系统</title>
     <link rel="shortcut icon" type="image/x-icon" href="./login/img/favicon.png"/>
     <link rel="shortcut icon" type="image/x-icon" href="./login/img/favicon.png"/>

+ 95 - 0
public/login/examNotice.html

@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
+  <link rel="stylesheet" href="./css/icons.css">
+
+  <link href="./vendor/step/bootstrap.min.css" rel="stylesheet">
+  <link href="./vendor/step/gloab.css" rel="stylesheet">
+
+  
+ 
+
+</head>
+
+<body>
+  <center>
+  <div id="app" style="width:65%;">
+    <table width="100%" height="200" border="0" align="center" cellpadding="0" cellspacing="0">
+      <tr>
+        <td>
+          <div class="modal-dialog" style="width: 100%">
+            <div class="modal-content" style="background-color: #F7F7F7;">
+             
+              <div class="modal-body">
+                   <div style="margin-bottom: 8px;font-size: 18px;">
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    全区高等教育自学考试考生须知<br>
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    为帮助大家顺利、安全参加考试,现就考试有关注意事项提示如下:
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    一、及时打印准考证。考生可于准考证打印时间登录广西自考网上系统(https://www.gxeea.cn/lstd/zk/index.htm)或“广西自考”手机APP,自行打印准考证。须用普通A4纸,双面打印(黑白、彩色均可),准考证上的考试时间、考点地址、考生须知、填报志愿等内容都十分重要,请认真阅读、仔细核对,严格遵守考试要求,
+                    <span style="font-weight: bold;">严禁在《准考证》正反面做任何标记。</span>
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    二、备好个人证件及考试物品。本次考试入场的指定证件为准考证、有效期内的居民身份证(二代居民身份证、临时身份证、公安机关开具的临时身份证明)。。除自治区招生考试院规定的考试用品,如黑色签字笔、水性笔、2B铅笔、尺子、橡皮等,允许使用计算器的课程,考生可携带不具有字典存储、通讯和编程功能的计算器。不得携带各种通讯功能工具(如手机、智能手表、智能眼镜等设备)或者有存储、编程、查询、摄影功能的电子用品(如照相机、扫描仪、电子手环等)、计时工具、书籍、报纸、稿纸、图片、资料、涂改液、修正带、透明胶带等非考试物品进入考场。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                
+                    三、按时参加考试。请考生根据准考证上的考点信息,提前熟悉考点周边情况,合理规划交通住宿事宜,做好出行安排,提前到达考点,留足入场检查、身份验证时间。为确保安全, 
+                    <span style="font-weight: bold;">考生到达考点后不得在封闭区周围逗留、聚集,应尽快有序入场。</span>
+                    主动按考点要求,自觉接受安检,提前将手机等具有发送或者接收信息功能的设备存放在指定区域。所有考试科目开考15分钟后,不得进入考点,考试结束前30分钟可交卷。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    四、诚信守纪考试。考生应严守考试纪律,杜绝考试作弊行为。考试期间,全部考场均实行全覆盖、全时段网上监控和录像,监控视频和后期的录像回放都将作为认定考试违规的依据。 
+                    <span style="font-weight: bold;">请遵守考点统一发出的考试指令完成考试(考场内挂钟时间仅供参考), </span>
+                    开考信号发出前和结束信号发出后,切勿动笔答题。试题、答题卡、草稿纸等均属于涉考材料,不允许以任何形式拍照传出或带离考场。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    五、违纪作弊严惩。《中华人民共和国刑法修正案(九)》《国家教育考试违规处理办法》等法律法规均对考试违纪作弊行为有严厉的处罚规定。考试作弊后果严重,将导致本次考试所有科目的成绩无效,并记入国家教育考试考生诚信档案。 
+                    <span style="font-weight: bold;">需要特别注意,考试过程中考生如携带手机、电子手环、耳机等具有发送或者接收信息功能的设备,无论使用与否,均将认定为考试作弊。</span>
+                    三、考试过程中使用手机等设备拍摄试题、答题卡等,通过QQ、微信及其他网络平台发布信息、传播试题及答案,涉嫌违法犯罪的,将由相关部门依法严肃处理。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
+                                                  广西招生考试院
+                                                  <br>
+                                                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                                                 
+                   
+                    <br>
+
+                      
+
+                    
+                      </div>
+
+                   
+     
+              </div>
+
+
+            </div>
+
+  </div>
+</center>
+</body>
+
+</html>

BIN
public/login/img/zk_app.png


+ 3 - 1
public/login/index.html

@@ -35,7 +35,9 @@
             <div class="modal-content" style="background-color: #F7F7F7;">
             <div class="modal-content" style="background-color: #F7F7F7;">
               <div class="modal-header">
               <div class="modal-header">
                     <a style="color:blue;position: absolute;right: 20px;top: 20px;" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage" target="_new">关于设置与调整自考专业的通知</a>
                     <a style="color:blue;position: absolute;right: 20px;top: 20px;" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage" target="_new">关于设置与调整自考专业的通知</a>
-                <center>
+                    <a style="color:blue;position: absolute;right: 20px;top: 45px;" href="https://www.gxeea.cn/view/content_1148_30196.htm" target="_new">关于调整广西高等教育自学考试专业的公告</a>
+
+                    <center>
                     <font color='#81A1B5' style="font-size: 18px;">广西自学考试网上系统</font>
                     <font color='#81A1B5' style="font-size: 18px;">广西自学考试网上系统</font>
                 </center>
                 </center>
                 <span style="text-align: right">
                 <span style="text-align: right">

+ 84 - 0
public/login/letterofcommitment.html

@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
+  <link rel="stylesheet" href="./css/icons.css">
+
+  <link href="./vendor/step/bootstrap.min.css" rel="stylesheet">
+  <link href="./vendor/step/gloab.css" rel="stylesheet">
+
+  
+ 
+
+</head>
+
+<body>
+  <center>
+  <div id="app" style="width:65%;">
+    <table width="100%" height="200" border="0" align="center" cellpadding="0" cellspacing="0">
+      <tr>
+        <td>
+          <div class="modal-dialog" style="width: 100%">
+            <div class="modal-content" style="background-color: #F7F7F7;">
+              <div class="modal-header">
+                    <center>
+                    <font  style="font-size: 20px;">考生诚信考试承诺书</font>
+                </center>
+                
+              </div>
+              <div class="modal-body">
+                   <div style="margin-bottom: 8px;font-size: 18px;">
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本人报名参加广西高等教育自学考试,愿意遵守广西高等教育自学考试有关规定,现作如下承诺:
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一、填写和提交的本人所有信息真实、准确、有效,如提供虚假信息,本人愿承担一切责任。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;二、保证持真实有效身份证件(二代居民身份证或公安部门开具的临时身份证明)和《准考证》参加考试。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三、自觉服从考试管理部分和考试工作人员安排,不以任何理由妨碍监考员等考试工作人员履行职责,不扰乱考场及其他考试工作地点的秩序。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;四、主动配合考试工作人员按规定进行的身份验证及违规物品检查,除自治区招生考试院规定的考试用品,如签字笔、水性笔,2B铅笔、尺子、橡皮等,允许使用计算器的课程,可携带不具有程序储存、记事、影音播放、无线通讯等功能的计算器。主动将将各种通讯工具(如手机、电子手环、蓝牙耳机及其他无线接收、传送设备等)、计时工具(机械手表、电子手表等)、电子存储记忆录放设备、书籍、资料、书包等非考试用品放置到指定物品暂放处。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;五、认真核对考点、考场及座位信息,进入考场后,对号入座,将《准考证》、二代居民身份证(或公安部门开具的临时身份证明)放在桌上左上角以便核验。领到试卷、答题卡(卷)或笔迹信息采集卡后,在指定位置和规定时间内准确、清楚地填涂姓名、准考证号、座位号等,按要求粘贴条形码,并主动配合课程笔迹信息采集。凡漏贴条形码、漏填(涂)、错填(涂)或书写字迹不清的答题卡(卷)或笔迹信息采集卡,影响评卷结果的,责任自负。
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;六、在考场内,保持安静,不吸烟,不喧哗,不交头接耳、左顾右盼、打手势、做暗号,不得夹带、旁窥、抄袭或有意让他人抄袭,不传抄答案或交换试卷、答题卡(卷)、笔迹信息采集卡、草稿纸,不传递文具、物品等,不将试卷、答题卡(卷)、笔迹信息采集卡或草稿纸带出考场。
+                    <br>
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;七、本人已知晓《国家教育考试违规处理办法》(教育部第33号令)、《最高人民法院、最高人民检察院关于办理组织考试作弊等刑事案件适用法律若干问题的解释》、《中华人民共和国刑法》(修正案九)涉及考试的相关规定,如有违纪、违规或者违法行为,自觉接受司法机关、教育考试机构依照国家法律、法规处理。
+
+                    <br>
+                    <br>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                   
+                    承 &nbsp;诺 人:_______________________             
+                    <br>
+                    <br>
+                   
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    
+                    年   &nbsp;&nbsp; &nbsp;&nbsp;月    &nbsp;&nbsp;&nbsp;&nbsp;日
+                    <br>
+
+                      
+
+                    
+                      </div>
+
+                   
+     
+              </div>
+
+
+            </div>
+
+  </div>
+</center>
+</body>
+
+</html>

+ 6 - 4
public/login/majorPlanQuery.html

@@ -30,6 +30,8 @@
           <a style="color:blue;position: absolute;right: 20px;top: 15px;font-size: 14px;" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage" target="_new">关于设置与调整自考专业的通知</a>
           <a style="color:blue;position: absolute;right: 20px;top: 15px;font-size: 14px;" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage" target="_new">关于设置与调整自考专业的通知</a>
          <!-- <a style="color:blue;position: absolute;right: 20px;top: 50px;font-size: 14px;" href="https://www.gxeea.cn/view/content_633_15806.htm" target="_new">《关于高等教育自学考试英语和数学等课程由必考课改为选考课有关事项的通知》(桂考委办[2010]21号文件)</a>
          <!-- <a style="color:blue;position: absolute;right: 20px;top: 50px;font-size: 14px;" href="https://www.gxeea.cn/view/content_633_15806.htm" target="_new">《关于高等教育自学考试英语和数学等课程由必考课改为选考课有关事项的通知》(桂考委办[2010]21号文件)</a>
          -->
          -->
+          <a style="text-align:left;color:blue;position: absolute;top: 50px;font-size: 14px;" href="https://www.gxeea.cn/view/content_1148_30196.htm" target="_new">关于调整广西高等教育自学考试专业的公告</a>
+
           <a style="color:blue;position: absolute;right: 20px;top: 50px;font-size: 14px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
           <a style="color:blue;position: absolute;right: 20px;top: 50px;font-size: 14px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
 
 
 
 
@@ -176,9 +178,9 @@
           :data="textBookList"
           :data="textBookList"
           style="width: 100%">
           style="width: 100%">
           <el-table-column
           <el-table-column
-            prop="year_code"
-            label="启用批次"
-            width="80">
+            prop="exam_year_month"
+            label="考试批次"
+            width="120">
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             prop="textbook_outline"
             prop="textbook_outline"
@@ -197,7 +199,7 @@
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             prop="textbook_writer"
             prop="textbook_writer"
-            label="作者"
+            label="编著"
             width="120">
             width="120">
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column

+ 2 - 2
public/login/note.html

@@ -90,8 +90,8 @@
                     24考生如何办理免考?<br>
                     24考生如何办理免考?<br>
                     答:考生登陆广西自学考试网上系统,在免考规定时间范围之内,点击页面左上方“免考管理”,申请免考业务;
                     答:考生登陆广西自学考试网上系统,在免考规定时间范围之内,点击页面左上方“免考管理”,申请免考业务;
                     申请免考后,携带相关证件到相关市考办或者助学机构办理免考审核。<br>
                     申请免考后,携带相关证件到相关市考办或者助学机构办理免考审核。<br>
-                    25考生设置密码时,提示密码中必须包含字母、数字、特殊字符至少8个字符!怎么办?<br>
-                    答:考生设置密码时,密码需要符合一定的复杂度,密码中必须包含字母(大或小写),如A或者a等字母,同时必须包含数字和特殊字符(如@、!等),且密码的长度必须大于等于8个字。<br>
+                    25考生设置密码时,提示密码中必须包含字母、数字、特殊字符至少10个字符!怎么办?<br>
+                    答:考生设置密码时,密码需要符合一定的复杂度,密码中必须包含字母(大或小写),如A或者a等字母,同时必须包含数字和特殊字符(如@、!等),且密码的长度必须大于等于10个字。<br>
                     26转考、免考的现场审核在哪里办理?<br>
                     26转考、免考的现场审核在哪里办理?<br>
                     答:社会考生可以在就近的市考办办理现场确认工作,助学考生在报名的主考学校办理现场确认工作。<br>
                     答:社会考生可以在就近的市考办办理现场确认工作,助学考生在报名的主考学校办理现场确认工作。<br>
                     27考生什么时候无法在报考服务平台修改照片信息?<br>
                     27考生什么时候无法在报考服务平台修改照片信息?<br>

+ 7 - 7
public/login/password.html

@@ -88,7 +88,7 @@
                       <el-row v-show="canSubmit==true">
                       <el-row v-show="canSubmit==true">
                         <el-col :span="24">
                         <el-col :span="24">
                           <el-form-item label="新密码:" prop="std_pass1">
                           <el-form-item label="新密码:" prop="std_pass1">
-                            <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少8个字符"  style="width:400px;"></el-input>
+                            <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少10个字符"  style="width:400px;"></el-input>
                           </el-form-item>
                           </el-form-item>
                         </el-col>
                         </el-col>
                       </el-row>
                       </el-row>
@@ -208,7 +208,7 @@
             <el-row v-show="canSubmit==true">
             <el-row v-show="canSubmit==true">
               <el-col :span="24">
               <el-col :span="24">
                 <el-form-item label="新密码:" prop="std_pass1">
                 <el-form-item label="新密码:" prop="std_pass1">
-                  <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少8个字符"  style="width:400px;"></el-input>
+                  <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少10个字符"  style="width:400px;"></el-input>
                 </el-form-item>
                 </el-form-item>
               </el-col>
               </el-col>
             </el-row>
             </el-row>
@@ -298,7 +298,7 @@
               <el-row v-show="canSubmit==true">
               <el-row v-show="canSubmit==true">
                 <el-col :span="24">
                 <el-col :span="24">
                   <el-form-item label="新密码:" prop="std_pass1">
                   <el-form-item label="新密码:" prop="std_pass1">
-                    <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少8个字符"  style="width:400px;"></el-input>
+                    <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="包含字母,数字,特殊字符至少10个字符"  style="width:400px;"></el-input>
                   </el-form-item>
                   </el-form-item>
                 </el-col>
                 </el-col>
               </el-row>
               </el-row>
@@ -363,14 +363,14 @@
     data: function () {
     data: function () {
       var validateConfirmPass1 = function(rule, value, callback) {
       var validateConfirmPass1 = function(rule, value, callback) {
         var this_ = window['Vue'];
         var this_ = window['Vue'];
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         
         
         if (this_.stdRegInfo.std_pass1 === '') {
         if (this_.stdRegInfo.std_pass1 === '') {
           callback(new Error('请输入密码'));
           callback(new Error('请输入密码'));
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
-          callback(new Error('密码中必须包含字母、数字、特殊字符至少8个字符!'));
+          callback(new Error('密码中必须包含字母、数字、特殊字符至少10个字符!'));
           // callback();
           // callback();
         } else {
         } else {
           //密码复杂度检查
           //密码复杂度检查
@@ -379,7 +379,7 @@
       };
       };
       var validateConfirmPass = function(rule, value, callback) {
       var validateConfirmPass = function(rule, value, callback) {
         var this_ = window['Vue'];
         var this_ = window['Vue'];
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex = new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex = new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         if (this_.stdRegInfo.std_pass2 === '') {
         if (this_.stdRegInfo.std_pass2 === '') {
@@ -387,7 +387,7 @@
         } else if (this_.stdRegInfo.std_pass2 !== this_.stdRegInfo.std_pass1) {
         } else if (this_.stdRegInfo.std_pass2 !== this_.stdRegInfo.std_pass1) {
           callback(new Error('两次输入密码不一致!'));
           callback(new Error('两次输入密码不一致!'));
         } else if (!regex.test(this_.stdRegInfo.std_pass2)) {
         } else if (!regex.test(this_.stdRegInfo.std_pass2)) {
-          callback(new Error('密码中必须包含字母、数字、特殊字符至少8个字符!'));
+          callback(new Error('密码中必须包含字母、数字、特殊字符至少10个字符!'));
           // callback();
           // callback();
         } else {
         } else {
           //密码复杂度检查
           //密码复杂度检查

+ 205 - 13
public/login/reg.html

@@ -76,7 +76,7 @@
         </div>
         </div>
       </div>
       </div>
       <div style="margin-bottom: 8px;font-size: 16px">
       <div style="margin-bottom: 8px;font-size: 16px">
-        <el-alert title="请考生认真如实填写有关个人档案信息。其中的姓名、性别、身份证号,一旦确认即不可以随意更改。更改需要到自考办现场申请并需提交公安部门证明。" type="warning":closable="false">
+        <el-alert title="请考生认真如实填写有关个人档案信息。其中的姓名、证,一旦确认即不可以随意更改。更改需要到自考办现场申请并需提交公安部门证明。" type="warning":closable="false">
         </el-alert>
         </el-alert>
 
 
       </div>
       </div>
@@ -135,6 +135,7 @@
                         </el-row>
                         </el-row>
                         -->
                         -->
                         <!-- v-if="isSFZ" -->
                         <!-- v-if="isSFZ" -->
+                        <!--
                         <el-row>
                         <el-row>
                           <el-col :span="24">
                           <el-col :span="24">
                             <el-form-item label="性别" prop="std_sex">
                             <el-form-item label="性别" prop="std_sex">
@@ -144,6 +145,47 @@
                             </el-form-item>
                             </el-form-item>
                           </el-col>
                           </el-col>
                         </el-row>
                         </el-row>
+-->
+                        <el-row>
+                          <el-col :span="24">
+                            <el-form-item label="地(市)" prop="std_city">
+                              <el-select v-model="stdRegInfo.std_city" filterable placeholder="请选择地(市)" @change="countyChange">
+                                <el-option v-for="item in cityArray" :label="item.city_code+' | '+item.city_name" :value="item.city_code"></el-option>
+                              </el-select>
+                            </el-form-item>
+                          </el-col>
+                        </el-row>
+
+                        <el-row>
+                          <el-col :span="24">
+                            <el-form-item label="区(县)" prop="std_county">
+                              <el-select v-model="stdRegInfo.std_county" filterable placeholder="请选择区(县)">
+                                <el-option v-for="item in countyArray" :label="item.country_code+' | '+item.country_name" :value="item.country_code"></el-option>
+                              </el-select>
+                            </el-form-item>
+                          </el-col>
+                        </el-row>
+
+                        <el-row> 
+                          <el-col :span="24">
+                            <el-form-item label="手机号" prop="std_mobile">
+                              <el-input v-model="stdRegInfo.std_mobile" placeholder="请填写手机号"></el-input>
+                            </el-form-item>
+                          </el-col>
+                        </el-row>
+
+                        <el-row> 
+                          <el-col :span="24">
+                            <el-form-item label="短信验证码" prop="code">
+                                <input v-model="stdRegInfo.code" maxlength="6"
+                                type="text" autocomplete="off" placeholder="请填写短信验证码" class="el-input__inner">
+                                <a style="cursor:pointer; position: absolute;top: 2px;right: 15px;height: 80%;" href="javascript:void(0)" :disabled="secCountDown>0" @click="sendSmsForReg()">{{secCountDownInfo}}</a>
+
+                                
+                            </el-form-item>
+                          </el-col>
+                        </el-row>
+
 <!--
 <!--
                         <el-row v-if="isSFZ && stdRegInfo.cert_no.length ==18">
                         <el-row v-if="isSFZ && stdRegInfo.cert_no.length ==18">
                           <el-col :span="24">
                           <el-col :span="24">
@@ -158,7 +200,7 @@
                         <el-row>
                         <el-row>
                           <el-col :span="24">
                           <el-col :span="24">
                             <el-form-item label="密码" prop="std_pass1">
                             <el-form-item label="密码" prop="std_pass1">
-                              <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="密码必须包含字母、数字、特殊字符至少8个字符!"></el-input>
+                              <el-input type="password" v-model="stdRegInfo.std_pass1" placeholder="密码必须包含字母、数字、特殊字符至少10个字符!"></el-input>
                             </el-form-item>
                             </el-form-item>
                           </el-col>
                           </el-col>
                         </el-row>
                         </el-row>
@@ -206,7 +248,7 @@
                         <el-row>
                         <el-row>
                             <el-col :span="24">
                             <el-col :span="24">
                                 <el-form-item label="老准考证号">
                                 <el-form-item label="老准考证号">
-                                    <el-input type="input" v-model="ticket_no_old"></el-input>
+                                    <el-input type="input" v-model="ticket_no_old" placeholder="请输入非十二位准考证号"></el-input>
                                  </el-form-item>
                                  </el-form-item>
                                  <div style="width: 230px; position: absolute; left: 418px; top: 0px;">
                                  <div style="width: 230px; position: absolute; left: 418px; top: 0px;">
                                    <el-button type="primary" @click="check()">验证</el-button>
                                    <el-button type="primary" @click="check()">验证</el-button>
@@ -405,7 +447,7 @@
 
 
       var validateConfirmPass = function(rule, value, callback) {
       var validateConfirmPass = function(rule, value, callback) {
         var this_ = window['Vue'];
         var this_ = window['Vue'];
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         
         
@@ -414,7 +456,7 @@
         } else if (value !== this_.stdRegInfo.std_pass1) {
         } else if (value !== this_.stdRegInfo.std_pass1) {
           callback(new Error('两次输入密码不一致!'));
           callback(new Error('两次输入密码不一致!'));
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
-          callback(new Error('密码必须包含字母、数字、特殊字符至少8个字符!'));
+          callback(new Error('密码必须包含字母、数字、特殊字符至少10个字符!'));
           // callback();
           // callback();
         } else {
         } else {
           //密码复杂度检查
           //密码复杂度检查
@@ -424,7 +466,7 @@
 
 
       var validateConfirmPass1 = function(rule, value, callback) {
       var validateConfirmPass1 = function(rule, value, callback) {
         var this_ = window['Vue'];
         var this_ = window['Vue'];
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex = /^[A-Za-z0-9]{8,20}$/;
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         
         
@@ -433,7 +475,7 @@
         } else if (this_.stdRegInfo.std_pass2 && value !== this_.stdRegInfo.std_pass2) {
         } else if (this_.stdRegInfo.std_pass2 && value !== this_.stdRegInfo.std_pass2) {
           callback(new Error('两次输入密码不一致!'));
           callback(new Error('两次输入密码不一致!'));
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
         } else if (!regex.test(this_.stdRegInfo.std_pass1)) {
-          callback(new Error('密码中必须包含字母、数字、特殊字符至少8个字符!'));
+          callback(new Error('密码中必须包含字母、数字、特殊字符至少10个字符!'));
           // callback();
           // callback();
         } else {
         } else {
           //密码复杂度检查
           //密码复杂度检查
@@ -497,7 +539,8 @@
           std_pass2: "",
           std_pass2: "",
           cert_no: "",
           cert_no: "",
           std_sex: "",
           std_sex: "",
-
+          std_city: "",
+          std_county: "",
 
 
           std_eng_name: "",
           std_eng_name: "",
           political_status: "",
           political_status: "",
@@ -512,6 +555,7 @@
           major_code: "",
           major_code: "",
           major_name: "",
           major_name: "",
           std_mobile: "",
           std_mobile: "",
+          code: "",
           std_postcode: "",
           std_postcode: "",
           std_address: "",
           std_address: "",
           email: "",
           email: "",
@@ -536,14 +580,29 @@
             { validator: validateCertNo, trigger: ['blur', 'change'] },
             { validator: validateCertNo, trigger: ['blur', 'change'] },
           ],
           ],
           std_sex: [
           std_sex: [
-            { required: true, message: '请输入性别', trigger: 'blur' },
+            { required: true, message: '请选择性别', trigger: 'blur' },
+          ],
+          std_city: [
+            { required: true, message: '请选择地(市)', trigger: 'blur' },
+          ],
+          std_county: [
+            { required: true, message: '请选择区(县)', trigger: 'blur' },
+          ],
+          std_mobile: [
+            { required: true, message: '请选择区(县)', trigger: 'blur' },
+          ],
+          code: [
+            { required: true, message: '请选择区(县)', trigger: 'blur' },
           ],
           ],
           // std_birth: [
           // std_birth: [
           //   { required: true, message: '请输入出生日期', trigger: 'blur' },
           //   { required: true, message: '请输入出生日期', trigger: 'blur' },
           // ]
           // ]
         },
         },
         sexArray: [],
         sexArray: [],
-  
+        cityArray: [],
+        countyArray: [],
+        secCountDown: 0,
+        secCountDownInfo:"发送验证码",
       }
       }
     },
     },
     mounted: function() {
     mounted: function() {
@@ -567,6 +626,14 @@
       //   })
       //   })
 
 
       this.sexArray = [{ dict_name: "StdSexType", dict_value: "1", dict_text: "男", dict_order: 1 },{ dict_name: "StdSexType", dict_value: "2", dict_text: "女", dict_order: 2 }];
       this.sexArray = [{ dict_name: "StdSexType", dict_value: "1", dict_text: "男", dict_order: 1 },{ dict_name: "StdSexType", dict_value: "2", dict_text: "女", dict_order: 2 }];
+       
+      ajaxRequest("",'/std/stdRegInfo/queryCity.htm',{},function(map){
+        
+           if(map.success){
+             _this.cityArray = map.array;
+           }
+         });
+      
       this.loading = false;
       this.loading = false;
 
 
       // this.dialogVisible = true;
       // this.dialogVisible = true;
@@ -579,6 +646,67 @@
       }, 500);
       }, 500);
     },
     },
     methods: {
     methods: {
+      sendSmsForReg: function(){
+            var _this = this;
+
+            if(!_this.stdRegInfo.std_mobile){
+              $.Pop("请填写手机号!", 'alert', function () {});
+              return;
+            }
+
+
+            ajaxRequest("", '/std/sendSmsForReg.htm', {std_mobile:_this.stdRegInfo.std_mobile }, function (resp) {
+             
+              
+              if(resp.success==true){ 
+                _this.stdRegInfo.code = "";
+                _this.secCountDown = 60;
+                var int = setInterval(function(){
+                  _this.secCountDown--;
+                  if(_this.secCountDown == 0){
+                    clearInterval(int);
+                    //恢复 发送按钮
+                    _this.secCountDownInfo = "发送验证码";
+                  }else{
+                    //倒计时提示
+                    _this.secCountDownInfo = _this.secCountDown+"秒后可重新发送";
+                  }
+                },1000);
+
+                $.Pop("验证码发送成功,请填写短信验证码!", 'alert', function () {});
+            
+              }else if(resp.success==false && resp.errorMsg){
+                $.Pop(resp.errorMsg, 'alert', function () {});
+
+              
+              }else{
+                $.Pop("验证码发送失败,请重新尝试!", 'alert', function () {});
+
+                
+              
+              }
+
+              //_this.freshImg();
+              //_this.validateCode = "";  
+
+            })
+          },
+          
+      countyChange:function(parent_id){
+
+        if(!parent_id) return;
+          let _this = this;
+          
+          ajaxRequest("", '/std/stdRegInfo/queryCityCounty.htm', {std_city:parent_id}, function (resp) {
+          if (resp.success) {
+            _this.stdRegInfo.std_county='';
+
+            _this.countyArray = resp.array; 
+          }
+
+          });
+      },
+      
       
       
       uploadIndentify:function(){
       uploadIndentify:function(){
        
        
@@ -746,7 +874,72 @@
           
           
           return;
           return;
         }
         }
+
+        if(!this.stdRegInfo.std_name){
+          $.Pop("请填写姓名!", 'alert', function () {});
+          return;
+        }else{
+          if(this.stdRegInfo.std_name.length>15){
+            $.Pop("请输入正确中文姓名且长度在15个字范围内!", 'alert', function () {});
+            return;
+          }
+
+          var regEn =/^((?![\u3000-\u303F])[\u2E80-\uFE4F]|\·)*(?![\u3000-\u303F])[\u2E80-\uFE4F](\·)*$/;
+          if (!regEn.test(this.stdRegInfo.std_name)) {
+            $.Pop("请输入正确中文姓名且长度在15个字范围内!", 'alert', function () {});
+            return;
+          } 
+
+        }
+
+        
+
+        if(!this.stdRegInfo.std_city){
+          $.Pop("请选择地(市)!", 'alert', function () {});
+          return;
+        }
+
+        if(!this.stdRegInfo.std_county){
+          $.Pop("请选择区(县)!", 'alert', function () {});
+          return;
+        }
+
+        if(!this.stdRegInfo.std_mobile){
+          $.Pop("请填写手机号!", 'alert', function () {});
+          return;
+        }else if(this.stdRegInfo.std_mobile.length != 11){
+          $.Pop("请填写11位手机号!", 'alert', function () {});
+          return;
+        }
+
+        if(!this.stdRegInfo.code){
+          $.Pop("请填写短信验证码!", 'alert', function () {});
+          return;
+        }
+
+        if(!this.stdRegInfo.std_pass1){
+          $.Pop("请填写密码!", 'alert', function () {});
+          return;
+        }
+
+        if(!this.stdRegInfo.std_pass2){
+          $.Pop("请填写确认密码!", 'alert', function () {});
+          return;
+        }
+
+        if (this.stdRegInfo.std_pass1 !== this.stdRegInfo.std_pass2) {
+          $.Pop("两次输入密码不一致!", 'alert', function () {});
+          return;
+        }
+
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
+        if (!regex.test(this.stdRegInfo.std_pass1)) {
+          $.Pop('密码必须包含字母、数字、特殊字符至少10个字符!', 'alert', function () {});
+          return;
+        }
+
         this.$refs['stdRegInfo'].validate(function(valid) {
         this.$refs['stdRegInfo'].validate(function(valid) {
+          
           var this_ = window['Vue'];
           var this_ = window['Vue'];
           if (valid) {
           if (valid) {
             //clone对象
             //clone对象
@@ -775,7 +968,7 @@
             }
             }
 
 
             $('#sbt').hide();
             $('#sbt').hide();
-            ajaxRequest("", '/std/stdRegInfo/reg.htm', stdRegInfo, function (resp) {
+            ajaxRequest("", '/std/stdRegInfo/regForApp.htm', stdRegInfo, function (resp) {
               
               
               if (resp.success) {
               if (resp.success) {
                 $('#sbt').show();
                 $('#sbt').show();
@@ -881,11 +1074,10 @@
     width: 50% !important
     width: 50% !important
   }
   }
   .el-input__icon{
   .el-input__icon{
-    height:14px !important
+    height:25px !important
   }
   }
 
 
   .el-icon-arrow-up{
   .el-icon-arrow-up{
-    background: url(../image/icon/up.png) !important;
     background-repeat: no-repeat !important;
     background-repeat: no-repeat !important;
     margin-right: 2px !important;
     margin-right: 2px !important;
     background-position: center !important;
     background-position: center !important;

+ 3 - 0
src/menu/aside.js

@@ -15,6 +15,9 @@ export default [
        { path: '/examLocationSpec', title: '特殊考场安排', icon: 'sitemap' },
        { path: '/examLocationSpec', title: '特殊考场安排', icon: 'sitemap' },
      ]
      ]
   },
   },
+  { path: '/stdBreakDisciplineFile', title: '违纪告知书和决定书', icon: 'list-alt' },
+
+  
   { path: '/score', title: '成绩查询'},
   { path: '/score', title: '成绩查询'},
   { path: '/turninScore', title: '转入成绩查询'},
   { path: '/turninScore', title: '转入成绩查询'},
   
   

+ 1 - 0
src/pages/features/byApply/index.vue

@@ -104,6 +104,7 @@
 
 
           <el-table-column
           <el-table-column
             label="操作" align="left"
             label="操作" align="left"
+            fixed="right"
             width="350">
             width="350">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <!-- 驳回 -->
                 <!-- 驳回 -->

+ 17 - 11
src/pages/features/byCertificate/index.vue

@@ -19,16 +19,19 @@
         </div>
         </div>
         <el-table v-loading="loading" :data="applyList" style="width: 100%">
         <el-table v-loading="loading" :data="applyList" style="width: 100%">
           <el-table-column prop="diaplma_no" label="毕业证书号" width="180"></el-table-column>
           <el-table-column prop="diaplma_no" label="毕业证书号" width="180"></el-table-column>
-          <el-table-column prop="std_name" label="姓名" width="120"></el-table-column>
+          <el-table-column prop="std_name" label="姓名" width="100"></el-table-column>
           <el-table-column prop="cert_no" label="证件号" width="160">
           <el-table-column prop="cert_no" label="证件号" width="160">
             <template slot-scope="scope">{{scope.row.cert_no? scope.row.cert_no.replace(/^(.{6})(?:\w+)(.{4})$/, "\$1********\$2"):""}}</template>
             <template slot-scope="scope">{{scope.row.cert_no? scope.row.cert_no.replace(/^(.{6})(?:\w+)(.{4})$/, "\$1********\$2"):""}}</template>
           </el-table-column>
           </el-table-column>
           <el-table-column prop="ticket_no" label="准考证号" width="120"></el-table-column>
           <el-table-column prop="ticket_no" label="准考证号" width="120"></el-table-column>
-          <el-table-column label="专业名称" width="100">
+          <el-table-column label="专业名称" width="180">
             <template slot-scope="scope">{{scope.row.major_name}}</template>
             <template slot-scope="scope">{{scope.row.major_name}}</template>
           </el-table-column>
           </el-table-column>
-          <el-table-column label="主考学校" width="100">
+          <el-table-column label="主考学校" width="180">
             <template slot-scope="scope">{{scope.row.school_name}}</template>
             <template slot-scope="scope">{{scope.row.school_name}}</template>
+          </el-table-column>
+           <el-table-column label="毕业时间" width="100">
+            <template slot-scope="scope">{{scope.row.by_date}}</template>
           </el-table-column>
           </el-table-column>
           <!-- <el-table-column label="受理单位" width="100">
           <!-- <el-table-column label="受理单位" width="100">
             <template slot-scope="scope">{{scope.row.org_code}}-{{scope.row.org_name}}</template>
             <template slot-scope="scope">{{scope.row.org_code}}-{{scope.row.org_name}}</template>
@@ -48,7 +51,7 @@
             </template>
             </template>
           </el-table-column>
           </el-table-column>
           <el-table-column prop="remark" label="审核意见" width="160"></el-table-column>
           <el-table-column prop="remark" label="审核意见" width="160"></el-table-column>
-          <el-table-column label="操作" width="280">
+          <el-table-column label="操作" fixed="right" width="280">
             <template slot-scope="scope" v-if="scope.row.status==0&&!scope.row.pro_id">
             <template slot-scope="scope" v-if="scope.row.status==0&&!scope.row.pro_id">
               <el-button @click="doReApply(scope.row)">重新申请</el-button>
               <el-button @click="doReApply(scope.row)">重新申请</el-button>
               <el-button @click="del(scope.row)">删除</el-button>
               <el-button @click="del(scope.row)">删除</el-button>
@@ -73,12 +76,14 @@
                   </template>
                   </template>
               </el-table-column>-->
               </el-table-column>-->
               <el-table v-loading="loading" :data="byList">
               <el-table v-loading="loading" :data="byList">
-                <el-table-column prop="diaplma_no" label="毕业证书号" width="170"></el-table-column>
+                <el-table-column prop="diaplma_no" label="毕业证书号" width="160"></el-table-column>
                 <el-table-column prop="ticket_no" label="准考证" width="120"></el-table-column>
                 <el-table-column prop="ticket_no" label="准考证" width="120"></el-table-column>
-                <el-table-column prop="major_name" label="专业名称" width="200"></el-table-column>
+                <el-table-column prop="major_name" label="专业名称" width="260"></el-table-column>
                 <el-table-column prop="major_level" label="专业层次" width="80"></el-table-column>
                 <el-table-column prop="major_level" label="专业层次" width="80"></el-table-column>
-                <el-table-column prop="school_name" label="主考院校" width="160"></el-table-column>
-                <el-table-column label="操作" width="280">
+                <el-table-column prop="school_name" label="主考院校" width="150"></el-table-column>
+                <el-table-column prop="by_date" label="毕业时间" width="100"></el-table-column>
+
+                <el-table-column label="操作" width="160">
                   <template slot-scope="scope">
                   <template slot-scope="scope">
                     <!-- <el-button
                     <!-- <el-button
                       @click="toUploadByImg(scope.row)"
                       @click="toUploadByImg(scope.row)"
@@ -94,8 +99,9 @@
           <!-- <el-button
           <!-- <el-button
             type="primary"
             type="primary"
             @click="byDialogVisible=false;idisabled=false;byManuyVisible=true"
             @click="byDialogVisible=false;idisabled=false;byManuyVisible=true"
-          >手动输入</el-button> -->
-          <el-button type="alert" @click="byDialogVisible=false;">关闭</el-button>
+          >手动输入</el-button> 
+          <el-button type="alert" style="margin-top:10px;" @click="byDialogVisible=false;">关闭</el-button>
+        -->
         </el-dialog>
         </el-dialog>
         <!-- 手工输入  -->
         <!-- 手工输入  -->
         <el-dialog width="900px" title="毕业证明书申请" :visible.sync="byManuyVisible">
         <el-dialog width="900px" title="毕业证明书申请" :visible.sync="byManuyVisible">
@@ -232,7 +238,7 @@
                         v-model="byInfo.by_date"
                         v-model="byInfo.by_date"
                         placeholder="选择毕业时间"
                         placeholder="选择毕业时间"
                         style="width: 100%;"
                         style="width: 100%;"
-                        v-bind:readonly="(idisabled&&byInfo.by_date)"
+                        v-bind:disabled="idisabled"
                         :picker-options="pickerOptions1"
                         :picker-options="pickerOptions1"
                       ></el-date-picker>
                       ></el-date-picker>
                     </el-form-item>
                     </el-form-item>

+ 1 - 0
src/pages/features/byPaperApply/index.vue

@@ -54,6 +54,7 @@
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             label="操作"
             label="操作"
+            fixed="right"
             width="140">
             width="140">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <el-button @click="showAuditInfo(scope.row)">查看审批意见</el-button>
                 <el-button @click="showAuditInfo(scope.row)">查看审批意见</el-button>

+ 1 - 0
src/pages/features/byTurnIn/index.vue

@@ -111,6 +111,7 @@
           </el-table-column>
           </el-table-column>
            <el-table-column
            <el-table-column
             label="操作"
             label="操作"
+            fixed="right"
             width="120">
             width="120">
               <template slot-scope="scope">
               <template slot-scope="scope">
                
                

+ 1 - 0
src/pages/features/byTurnOut/index.vue

@@ -111,6 +111,7 @@
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             label="操作"
             label="操作"
+            fixed="right"
             width="140">
             width="140">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <div v-if="scope.row.status == 0"> 
                 <div v-if="scope.row.status == 0"> 

+ 1 - 0
src/pages/features/eduApply/index.vue

@@ -112,6 +112,7 @@
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             label="操作"
             label="操作"
+            fixed="right"
             width="140">
             width="140">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <div v-if="scope.row.status == 0 && scope.row.is_overtime !='已过期'"> 
                 <div v-if="scope.row.status == 0 && scope.row.is_overtime !='已过期'"> 

+ 119 - 7
src/pages/features/enrol/index.vue

@@ -62,6 +62,8 @@
                                 :value="opt.org_id">
                                 :value="opt.org_id">
                               </el-option>
                               </el-option>
                             </el-select>
                             </el-select>
+                            &nbsp;<span style="font-size: 12px;" v-html="selectedMajorCourse.calculator[index]"></span>
+
             </div>
             </div>
 
 
           </el-tab-pane>
           </el-tab-pane>
@@ -84,6 +86,41 @@
                                 :value="opt.org_id">
                                 :value="opt.org_id">
                               </el-option>
                               </el-option>
                             </el-select>
                             </el-select>
+                             &nbsp;<span style="font-size: 12px;" v-html="selectedOtherCourse.calculator[index]"></span>
+
+
+            </div>
+
+            
+
+          </el-tab-pane>
+
+          <el-tab-pane label="选考课程" style="padding: 10px 10px">
+            <div v-for="(item,index ) in selectedCouse" :key="index" class="text item" style="margin-bottom: 5px;">
+              {{item.key}}: <el-select size="medium" v-model="selectedSelectedCourse.id[index]" @change="courseChange('selectedSelectedCourse',index,selectedSelectedCourse.id[index])" clearable filterable placeholder="请选择课程">
+                              <el-option
+                                v-for="opt in item.data"
+                                :key="'selectedCouse_'+item.key+opt.id"
+                                :label="opt.course_code + '-' +opt.course_name"
+                                :value="opt.id">
+                              </el-option>
+                            </el-select>
+                            &nbsp;--&nbsp;
+                            <el-select size="medium" v-model="selectedSelectedCourse.examAreaId[index]" clearable filterable placeholder="请选择考区">
+                              <el-option
+                                v-for="opt in selectedSelectedCourse[`examAreaArray${index+1}`]"
+                                :key="'selectedCouse_examAreaArray'+item.key+opt.org_id+index"
+                                :label="opt.org_code+'-'+opt.org_name+'('+opt.city_name+')'"
+                                :value="opt.org_id">
+                              </el-option>
+                            </el-select>
+                            &nbsp;<span style="font-size: 12px;" v-html="selectedSelectedCourse.calculator[index]"></span>
+
+            </div>
+
+             <div style="margin: 20px 10px;font-size:  16px;">
+              公告:<a style="color:blue;font-size: 16px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
+
             </div>
             </div>
 
 
           </el-tab-pane>
           </el-tab-pane>
@@ -170,6 +207,7 @@ export default {
   },
   },
   data() {
   data() {
     return {
     return {
+      calculator:"",
       loading: false,
       loading: false,
       year: null,
       year: null,
       month: null,
       month: null,
@@ -177,6 +215,7 @@ export default {
       enrolControl:null,
       enrolControl:null,
       selectedMajorCourse: {
       selectedMajorCourse: {
         id: [],
         id: [],
+        calculator: [],
         examAreaId: [],
         examAreaId: [],
         // examAreaArray:[[],[],[],[]]
         // examAreaArray:[[],[],[],[]]
         examAreaArray1: [],
         examAreaArray1: [],
@@ -189,6 +228,20 @@ export default {
 
 
       selectedOtherCourse: {
       selectedOtherCourse: {
         id: [],
         id: [],
+        calculator: [],
+        examAreaId: [],
+        // examAreaArray:[[],[],[],[]]
+        examAreaArray1: [],
+        examAreaArray2: [],
+        examAreaArray3: [],
+        examAreaArray4: [],
+        examAreaArray5: [],
+        examAreaArray6: []
+      },
+
+       selectedSelectedCourse: {
+        id: [],
+        calculator: [],
         examAreaId: [],
         examAreaId: [],
         // examAreaArray:[[],[],[],[]]
         // examAreaArray:[[],[],[],[]]
         examAreaArray1: [],
         examAreaArray1: [],
@@ -202,6 +255,7 @@ export default {
       timeControl: {},
       timeControl: {},
       majorCouse: [],
       majorCouse: [],
       otherCouse: [],
       otherCouse: [],
+      selectedCouse: [],
       inTime:false
       inTime:false
     };
     };
   },
   },
@@ -216,15 +270,20 @@ export default {
     }
     }
     
     
     if (!temp_std) return "";
     if (!temp_std) return "";
-    let uploadedPic = temp_std.photo_url ? true : false;
+    let uploadedPic = temp_std.photo_path ? true : false;
    
    
 
 
     if (!String(temp_std.major_id)) {
     if (!String(temp_std.major_id)) {
-       this.alert("请完善个人基本信息,提交生成准考证,现在处理?", "信息提示", {
-            confirm:function(){
-              this.goUrl("/personalInfo");
-            }
-          });
+      this.confirm(
+        "请完善基本信息再进行课程报考,现在处理?",
+        "提示",
+        {
+          confirm: () => {
+            this.goUrl("/personalInfo");
+          }
+        }
+      );
+
       return;
       return;
     }
     }
 
 
@@ -322,22 +381,60 @@ export default {
       let res = await this.$http.post("/std/stdEnrol/detail.htm");
       let res = await this.$http.post("/std/stdEnrol/detail.htm");
       this.majorCouse = this.transData(res.data.map.majorCouse);
       this.majorCouse = this.transData(res.data.map.majorCouse);
       this.otherCouse = this.transData(res.data.map.otherCouse);
       this.otherCouse = this.transData(res.data.map.otherCouse);
+      this.selectedCouse = this.transData(res.data.map.selectedCouse);
       this.loading = false;
       this.loading = false;
     },
     },
     async courseChange(type, index, val) {
     async courseChange(type, index, val) {
       
       
-      if (!val) return;
+      if (!val) {
+          if (type == "selectedMajorCourse") {
+          this.selectedMajorCourse.examAreaId[index] = "";
+          this.selectedMajorCourse.calculator[index] = "";
+        } else if (type == "selectedOtherCourse") {
+          this.selectedOtherCourse.examAreaId[index] = "";
+          this.selectedOtherCourse.calculator[index] = "";
+        }else if (type == "selectedSelectedCourse") {
+          this.selectedSelectedCourse.examAreaId[index] = "";
+          this.selectedSelectedCourse.calculator[index] = "";
+        }
+        return;
+      }
+     
       let loading = this.showLoading();
       let loading = this.showLoading();
       let res = await this.$http.post(
       let res = await this.$http.post(
         "/pl/plExamAreaCourse/list.htm",
         "/pl/plExamAreaCourse/list.htm",
         this.Qs.stringify({ course_id: val })
         this.Qs.stringify({ course_id: val })
       );
       );
+
+       let res_calculator = await this.$http.post(
+        "/pl/plExamAreaCourse/queryCourseCalculator.htm",
+        this.Qs.stringify({ course_id: val })
+      );
+
       if (type == "selectedMajorCourse") {
       if (type == "selectedMajorCourse") {
         this.selectedMajorCourse[`examAreaArray${index + 1}`] = res.data.array;
         this.selectedMajorCourse[`examAreaArray${index + 1}`] = res.data.array;
         this.selectedMajorCourse.examAreaId[index] = "";
         this.selectedMajorCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedMajorCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedMajorCourse.calculator[index] = "";
+        }
       } else if (type == "selectedOtherCourse") {
       } else if (type == "selectedOtherCourse") {
         this.selectedOtherCourse[`examAreaArray${index + 1}`] = res.data.array;
         this.selectedOtherCourse[`examAreaArray${index + 1}`] = res.data.array;
         this.selectedOtherCourse.examAreaId[index] = "";
         this.selectedOtherCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedOtherCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedOtherCourse.calculator[index] = "";
+        }
+      }else if (type == "selectedSelectedCourse") {
+        this.selectedSelectedCourse[`examAreaArray${index + 1}`] = res.data.array;
+        this.selectedSelectedCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedSelectedCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedSelectedCourse.calculator[index] = "";
+        }
       }
       }
       this.hideLoading(loading);
       this.hideLoading(loading);
     },
     },
@@ -393,6 +490,21 @@ export default {
       });
       });
       if (!validate) return;
       if (!validate) return;
 
 
+      this.selectedSelectedCourse.id.forEach((id, index) => {
+        if (id != null && id != "") {
+          let examAreaId = this.selectedSelectedCourse.examAreaId[index];
+
+          if (examAreaId != null && examAreaId != "") {
+            courseIdArray.push(id);
+            examAreaIdArray.push(examAreaId);
+          } else {
+            this.alert("每个课程必须选择考区!", "信息提示");
+            validate = false;
+          }
+        }
+      });
+      if (!validate) return;
+
       if (courseIdArray.length == 0) {
       if (courseIdArray.length == 0) {
         this.alert("请选择报考课程", "信息提示");
         this.alert("请选择报考课程", "信息提示");
         return;
         return;

+ 162 - 9
src/pages/features/enrolGuid/index.vue

@@ -35,7 +35,7 @@
         <el-button type="primary" icon="el-icon-refresh" style="margin-bottom:1px;" @click="refresh()">刷新列表</el-button><br>
         <el-button type="primary" icon="el-icon-refresh" style="margin-bottom:1px;" @click="refresh()">刷新列表</el-button><br>
 
 
         <!-- <el-button type="alert" @click="payOk()">完成支付后请点击确认</el-button> -->
         <!-- <el-button type="alert" @click="payOk()">完成支付后请点击确认</el-button> -->
-        <el-table 
+        <el-table
           v-loading="loading"
           v-loading="loading"
           ref="dataTable"
           ref="dataTable"
           :data="courseList"
           :data="courseList"
@@ -122,6 +122,11 @@
             label="缴费单号 "
             label="缴费单号 "
             width="180">
             width="180">
           </el-table-column>
           </el-table-column>
+          <el-table-column
+            prop="calculator"
+            label="备注 "
+            width="180">
+          </el-table-column>
           <el-table-column
           <el-table-column
                 fixed="right"
                 fixed="right"
                 label="操作"
                 label="操作"
@@ -341,7 +346,7 @@
           </el-table-column>
           </el-table-column>
      </el-table>
      </el-table>
     </el-dialog>
     </el-dialog>
-    <el-dialog title="修改报考课程" width="950px" :visible.sync="editCourseDialogVisible">
+    <el-dialog title="修改报考课程" width="1300px" :visible.sync="editCourseDialogVisible">
         <div v-if="stdReg && stdMajor" style="margin: 0px 10px;font-size:  16px;">
         <div v-if="stdReg && stdMajor" style="margin: 0px 10px;font-size:  16px;">
           <table v-if="selectedEditItem" style="margin-left:120px" width="750px">
           <table v-if="selectedEditItem" style="margin-left:120px" width="750px">
             <tr style="height:35px">
             <tr style="height:35px">
@@ -387,7 +392,7 @@
 
 
         </div>
         </div>
         <h3 style="margin-bottom:5px;padding-bottom:0px;border-bottom: 2px solid #0090ff;"></h3>
         <h3 style="margin-bottom:5px;padding-bottom:0px;border-bottom: 2px solid #0090ff;"></h3>
-        <el-tabs tab-position="left" style="height: 200px;" v-if="timeControl" :value="majorTab">
+        <el-tabs tab-position="left" style="height: 250px;" v-if="timeControl" :value="majorTab">
           <el-tab-pane label="本专业课程" style="padding: 10px 10px" name="major">
           <el-tab-pane label="本专业课程" style="padding: 10px 10px" name="major">
             <div v-for="(item,index ) in majorCouse" :key="index" class="text item" style="margin-bottom: 5px;">
             <div v-for="(item,index ) in majorCouse" :key="index" class="text item" style="margin-bottom: 5px;">
               <!-- v-if="showIndex==index" -->
               <!-- v-if="showIndex==index" -->
@@ -409,6 +414,8 @@
                                 :value="opt.org_id">
                                 :value="opt.org_id">
                               </el-option>
                               </el-option>
                             </el-select>
                             </el-select>
+                             &nbsp;<span style="font-size: 12px;" v-html="selectedMajorCourse.calculator[index]"></span>
+
                 </div>
                 </div>
             </div>
             </div>
 
 
@@ -434,10 +441,44 @@
                                 :value="opt.org_id">
                                 :value="opt.org_id">
                               </el-option>
                               </el-option>
                             </el-select>
                             </el-select>
+                            &nbsp;<span style="font-size: 12px;" v-html="selectedOtherCourse.calculator[index]"></span>
+
               </div>
               </div>
             </div>
             </div>
 
 
           </el-tab-pane>
           </el-tab-pane>
+
+          <el-tab-pane label="选考课程" style="padding: 10px 10px" name="sMajor">
+            <div v-for="(item,index ) in selectedCouse" :key="index" class="text item" style="margin-bottom: 5px;">
+               <!-- v-if="showIndex==index" -->
+              <div>
+              {{item.key}}: <el-select size="medium" v-model="selectedSelectedCourse.id[index]" @change="courseChange('selectedSelectedCourse',index,selectedSelectedCourse.id[index])" clearable filterable placeholder="请选择课程">
+                              <el-option
+                                v-for="opt in item.data"
+                                :key="'selectedCouse_'+item.key+opt.id"
+                                :label="opt.course_code + '-' +opt.course_name"
+                                :value="opt.id">
+                              </el-option>
+                            </el-select>
+                            &nbsp;--&nbsp;
+                            <el-select size="medium" v-model="selectedSelectedCourse.examAreaId[index]" clearable filterable placeholder="请选择考区">
+                              <el-option
+                                v-for="opt in selectedSelectedCourse[`examAreaArray${index+1}`]"
+                                :key="'selectedCouse_examAreaArray'+item.key+opt.org_id+index"
+                                :label="opt.org_code+'-'+opt.org_name+'('+opt.city_name+')'"
+                                :value="opt.org_id">
+                              </el-option>
+                            </el-select>
+                            &nbsp;<span style="font-size: 12px;" v-html="selectedSelectedCourse.calculator[index]"></span>
+
+              </div>
+            </div>
+            <div style="margin: 20px 10px;font-size:  16px;">
+              公告:<a style="color:blue;font-size: 16px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
+
+            </div>
+      
+          </el-tab-pane>
         </el-tabs>
         </el-tabs>
          <el-row>
          <el-row>
       <center>
       <center>
@@ -513,6 +554,7 @@ export default {
       isOtherCity: false,
       isOtherCity: false,
       selectedMajorCourse:{
       selectedMajorCourse:{
         id:[],
         id:[],
+        calculator: [],
         examAreaId:[],
         examAreaId:[],
         // examAreaArray:[[],[],[],[]]
         // examAreaArray:[[],[],[],[]]
         examAreaArray1:[],
         examAreaArray1:[],
@@ -524,6 +566,19 @@ export default {
       },
       },
       selectedOtherCourse:{
       selectedOtherCourse:{
         id:[],
         id:[],
+        calculator: [],
+        examAreaId:[],
+        // examAreaArray:[[],[],[],[]]
+        examAreaArray1:[],
+        examAreaArray2:[],
+        examAreaArray3:[],
+        examAreaArray4:[],
+        examAreaArray5:[],
+        examAreaArray6:[]
+      },
+      selectedSelectedCourse:{
+        id:[],
+        calculator: [],
         examAreaId:[],
         examAreaId:[],
         // examAreaArray:[[],[],[],[]]
         // examAreaArray:[[],[],[],[]]
         examAreaArray1:[],
         examAreaArray1:[],
@@ -535,6 +590,7 @@ export default {
       },
       },
       majorCouse:[],
       majorCouse:[],
       otherCouse:[],
       otherCouse:[],
+      selectedCouse:[],
       edit_examDate: null,
       edit_examDate: null,
       edit_enrolArea: null,
       edit_enrolArea: null,
       multipleSelection: [],
       multipleSelection: [],
@@ -862,6 +918,7 @@ async goPayUnionBatchForPhoneCode() {
       let res = await this.$http.post("/std/stdEnrol/detail.htm");
       let res = await this.$http.post("/std/stdEnrol/detail.htm");
       this.majorCouse = this.transData(res.data.map.majorCouse);
       this.majorCouse = this.transData(res.data.map.majorCouse);
       this.otherCouse = this.transData(res.data.map.otherCouse);
       this.otherCouse = this.transData(res.data.map.otherCouse);
+      this.selectedCouse = this.transData(res.data.map.selectedCouse);
 
 
       
       
       let editRes = await this.$http.post("/std/stdEnrol/editDetail.htm", 
       let editRes = await this.$http.post("/std/stdEnrol/editDetail.htm", 
@@ -879,6 +936,7 @@ async goPayUnionBatchForPhoneCode() {
       setTimeout(() => {
       setTimeout(() => {
         this.selectedMajorCourse={
         this.selectedMajorCourse={
           id:[],
           id:[],
+          calculator: [],
           examAreaId:[],
           examAreaId:[],
           examAreaArray1:[],
           examAreaArray1:[],
           examAreaArray2:[],
           examAreaArray2:[],
@@ -890,6 +948,7 @@ async goPayUnionBatchForPhoneCode() {
 
 
         this.selectedOtherCourse={
         this.selectedOtherCourse={
           id:[],
           id:[],
+          calculator: [],
           examAreaId:[],
           examAreaId:[],
           examAreaArray1:[],
           examAreaArray1:[],
           examAreaArray2:[],
           examAreaArray2:[],
@@ -899,14 +958,35 @@ async goPayUnionBatchForPhoneCode() {
           examAreaArray6:[]
           examAreaArray6:[]
         },
         },
 
 
-        this.initEditData(majorFlag,res.data.map.majorCouse , res.data.map.otherCouse);
+        this.selectedSelectedCourse={
+          id:[],
+          calculator: [],
+          examAreaId:[],
+          examAreaArray1:[],
+          examAreaArray2:[],
+          examAreaArray3:[],
+          examAreaArray4:[],
+          examAreaArray5:[],
+          examAreaArray6:[]
+        },
+        
+
+        this.initEditData(majorFlag,res.data.map.majorCouse , res.data.map.otherCouse, res.data.map.selectedCouse);
       }, 50);
       }, 50);
 
 
     },
     },
 
 
     //初始化修改回显
     //初始化修改回显
-    async initEditData(majorFlag,majorCouse,otherCouse){
-        this.majorTab = majorFlag==1?"major":"nMajor"
+    async initEditData(majorFlag,majorCouse,otherCouse,selectedCouse){
+        //this.majorTab = majorFlag==1?"major":"nMajor";
+
+        if(majorFlag==1){
+            this.majorTab='major';
+          }else if(majorFlag==2){
+            this.majorTab='sMajor';
+          }else{
+            this.majorTab='nMajor';
+          }
         //专业课程
         //专业课程
         if(majorFlag == 1){
         if(majorFlag == 1){
 
 
@@ -924,6 +1004,22 @@ async goPayUnionBatchForPhoneCode() {
             }
             }
             index++;
             index++;
           }
           }
+        }else if(majorFlag == 2){
+          // 选考课程
+          let index = 0;
+          for (const key in selectedCouse) {
+            if (majorCouse.hasOwnProperty(key) && key == this.edit_examDate) {
+              this.$set(this.selectedSelectedCourse.id,index,this.edit_courseInfo.id);
+              await this.courseChange("selectedSelectedCourse",index,this.edit_courseInfo.id);
+              this.$set(this.selectedSelectedCourse.examAreaId,index,this.edit_enrolArea);
+           
+            }
+            else{
+              this.$set(this.selectedSelectedCourse.id,index,"");
+              this.$set(this.selectedSelectedCourse.examAreaId,index,"");
+            }
+            index++;
+          }
         }
         }
         //非专业
         //非专业
         else{
         else{
@@ -960,15 +1056,52 @@ async goPayUnionBatchForPhoneCode() {
 
 
     
     
     async courseChange(type,index,val){
     async courseChange(type,index,val){
-      if(!val) return;
+       if (!val) {
+          if (type == "selectedMajorCourse") {
+          this.selectedMajorCourse.examAreaId[index] = "";
+          this.selectedMajorCourse.calculator[index] = "";
+        } else if (type == "selectedOtherCourse") {
+          this.selectedOtherCourse.examAreaId[index] = "";
+          this.selectedOtherCourse.calculator[index] = "";
+        }else if (type == "selectedSelectedCourse") {
+          this.selectedSelectedCourse.examAreaId[index] = "";
+          this.selectedSelectedCourse.calculator[index] = "";
+        }
+        return;
+      }
+
       let loading = this.showLoading();
       let loading = this.showLoading();
       let res = await this.$http.post("/pl/plExamAreaCourse/list.htm",this.Qs.stringify({course_id:val}));
       let res = await this.$http.post("/pl/plExamAreaCourse/list.htm",this.Qs.stringify({course_id:val}));
+     let res_calculator = await this.$http.post(
+        "/pl/plExamAreaCourse/queryCourseCalculator.htm",
+        this.Qs.stringify({ course_id: val })
+      );
+
       if(type == "selectedMajorCourse"){
       if(type == "selectedMajorCourse"){
         this.selectedMajorCourse[`examAreaArray${index+1}`] = res.data.array;
         this.selectedMajorCourse[`examAreaArray${index+1}`] = res.data.array;
         this.selectedMajorCourse.examAreaId[index] = "";
         this.selectedMajorCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedMajorCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedMajorCourse.calculator[index] = "";
+        }
       } else if(type == "selectedOtherCourse"){
       } else if(type == "selectedOtherCourse"){
         this.selectedOtherCourse[`examAreaArray${index+1}`] = res.data.array;
         this.selectedOtherCourse[`examAreaArray${index+1}`] = res.data.array;
         this.selectedOtherCourse.examAreaId[index] = "";
         this.selectedOtherCourse.examAreaId[index] = "";
+        this.selectedOtherCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedOtherCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedOtherCourse.calculator[index] = "";
+        }
+      } else if(type == "selectedSelectedCourse"){
+        this.selectedSelectedCourse[`examAreaArray${index+1}`] = res.data.array;
+        this.selectedSelectedCourse.examAreaId[index] = "";
+        if(res_calculator.data.entity){
+          this.selectedSelectedCourse.calculator[index] = res_calculator.data.entity.calculator;
+        }else{
+          this.selectedSelectedCourse.calculator[index] = "";
+        }
       }
       }
       this.hideLoading(loading);
       this.hideLoading(loading);
 
 
@@ -992,7 +1125,7 @@ async goPayUnionBatchForPhoneCode() {
         }
         }
       });
       });
       if(courseIdArray.length >1){
       if(courseIdArray.length >1){
-        this.alert("只允许变更一个课程。请切换“本专业课程”或“其他专业课程”,删除其他课程后再修改。");
+        this.alert("只允许变更一个课程。请切换“本专业课程”或“其他专业课程”或“选考课程”,删除其他课程后再修改。");
         return;
         return;
       }
       }
 
 
@@ -1012,7 +1145,27 @@ async goPayUnionBatchForPhoneCode() {
         }
         }
       });
       });
       if(courseIdArray.length >1){
       if(courseIdArray.length >1){
-        this.alert("只允许变更一个课程。请切换“本专业课程”或“其他专业课程”,删除其他课程后再修改。");
+        this.alert("只允许变更一个课程。请切换“本专业课程”或“其他专业课程”或“选考课程”,删除其他课程后再修改。");
+        return;
+      }
+      if(!validate) return;
+
+      validate = true;
+      this.selectedSelectedCourse.id.forEach((id,index) => {
+        if(id != null && id != ''){
+          let examAreaId = this.selectedSelectedCourse.examAreaId[index]
+          if(examAreaId != null && examAreaId != ''){
+            courseIdArray.push(id);
+            examAreaIdArray.push(examAreaId);
+          }
+          else{
+            this.alert("每个课程必须选择考区!","信息提示");
+            validate = false;
+          }
+        }
+      });
+      if(courseIdArray.length >1){
+        this.alert("只允许变更一个课程。请切换“本专业课程”或“其他专业课程”或“选考课程”,删除其他课程后再修改。");
         return;
         return;
       }
       }
       if(!validate) return;
       if(!validate) return;

+ 159 - 2
src/pages/features/examPlan/index.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <d2-container class="page" v-loading="loading">
   <d2-container class="page" v-loading="loading">
     <el-tabs value="first">
     <el-tabs value="first">
-      <el-tab-pane label="考试计划" name="first">
+      <el-tab-pane label="专业课程考试计划" name="first">
          <div style="margin-bottom: 8px; border-left: 3px solid; color: rgb(230, 162, 60);">
          <div style="margin-bottom: 8px; border-left: 3px solid; color: rgb(230, 162, 60);">
           <div role="alert" class="el-alert el-alert--warning" v-if="timeControl">
           <div role="alert" class="el-alert el-alert--warning" v-if="timeControl">
             <div class="el-alert__content">
             <div class="el-alert__content">
@@ -114,6 +114,118 @@
           </el-col>
           </el-col>
         </el-row>
         </el-row>
      
      
+      </el-tab-pane>
+       <el-tab-pane label="选考课程考试计划" name="second">
+         <div style="margin-bottom: 8px; border-left: 3px solid; color: rgb(230, 162, 60);">
+          <div role="alert" class="el-alert el-alert--warning" v-if="timeControl">
+            <div class="el-alert__content">
+              <span class="el-alert__title">{{year}}年{{month}}月份考试考场查询时间:{{timeControl.start_time}} 到 {{timeControl.end_time}}</span>
+            </div>
+          </div>
+        </div>
+        
+       
+        <el-select size="medium" v-model="exam_time_id2" filterable clearable placeholder="请选择批次" @change="timesChange2()" style="width:180px;">
+          <el-option v-for="item in exam_times" :key="item.id" :label="item.exam_year_month" :value="item.id"></el-option>
+        </el-select>
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;公告:<a style="color:blue;font-size: 16px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
+
+
+        <br>
+        <div style="border-bottom: 2px solid #eee;">&nbsp;</div>
+        <el-row style="margin-top: 10px;">
+          <div v-if="welcome">
+              <center>无课程考试计划信息</center>
+          </div>
+          <div v-if=" !welcome && secondcourseListIsEmpty()">
+              <center>无课程考试计划信息</center>
+          </div>
+          <el-col v-for="(course) in secondcourseList" :key="course.id" :span="6">
+            <el-card class="box-card" shadow="hover" style="margin-right: 10px;">
+              <div slot="header" class="clearfix" style="font-size:15px;font-weight: 600;">
+                <span>{{course.key}}</span>
+              </div>
+              <div v-if="course.data.length > 0" v-for="(item,index) in course.data" :key="index" class="text item" style="font-size:14px">
+                  {{item.course_code}} - {{item.course_name }} <span v-if="item.is_social_enrol == 0" style="color:red;">*</span> - {{item.course_score}}
+
+                  <div style="border-color:#ebeef5;border:1px solid;margin: 5px;padding:5px">
+                    <table>
+                       <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px;vertical-align: top;">教材大纲:</td>
+                        <td style="font-size:10px">{{item.textbook_outline}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px;vertical-align: top;">教材:</td>
+                        <td style="font-size:10px">{{item.textbook_name}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">主编:</td>
+                        <td style="font-size:10px">{{item.textbook_writer}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">出版社:</td>
+                        <td style="font-size:10px">{{item.textbook_publisher}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">版次:</td>
+                        <td style="font-size:10px">{{item.textbook_revision}}</td>
+                      </tr>
+                    </table>
+                  </div>
+              </div>
+              <div v-if="course.data.length == 0">
+                  <center>不安排考试计划</center>
+              </div>
+            </el-card>
+          </el-col>
+        </el-row>
+
+        <h3 v-if="secondcourseList2.length>0" style="margin-bottom:0px;padding-bottom:0px;margin-top:0px;padding-top:0px;height: 32px;border-bottom: 1px solid #0090ff;">
+        </h3>
+
+         <el-row style="margin-top: 10px;">
+          
+          <el-col v-if="secondcourseList2.length>0" v-for="(course) in secondcourseList2" :key="course.id" :span="6">
+            <el-card class="box-card" shadow="hover" style="margin-right: 10px;">
+              <div slot="header" class="clearfix" style="font-size:15px;font-weight: 600;">
+                <span>{{course.key}}</span>
+              </div>
+              <div v-if="course.data.length > 0" v-for="(item,index) in course.data" :key="index" class="text item" style="font-size:14px">
+                  {{item.course_code}} - {{item.course_name }} <span v-if="item.is_social_enrol == 0" style="color:red;">*</span> - {{item.course_score}}
+
+                  <div style="border-color:#ebeef5;border:1px solid;margin: 5px;padding:5px">
+                    <table>
+                       <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px;vertical-align: top;">教材大纲:</td>
+                        <td style="font-size:10px">{{item.textbook_outline}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px;vertical-align: top;">教材:</td>
+                        <td style="font-size:10px">{{item.textbook_name}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">主编:</td>
+                        <td style="font-size:10px">{{item.textbook_writer}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">出版社:</td>
+                        <td style="font-size:10px">{{item.textbook_publisher}}</td>
+                      </tr>
+                      <tr>
+                        <td style="width:70px;font-weight:550;font-size:13px">版次:</td>
+                        <td style="font-size:10px">{{item.textbook_revision}}</td>
+                      </tr>
+                    </table>
+                  </div>
+              </div>
+              <div v-if="course.data.length == 0">
+                  <center>不安排考试计划</center>
+              </div>
+            </el-card>
+          </el-col>
+        </el-row>
+
+     
       </el-tab-pane>
       </el-tab-pane>
     </el-tabs>
     </el-tabs>
   </d2-container>
   </d2-container>
@@ -134,12 +246,15 @@ export default {
       welcome:true,
       welcome:true,
       major:"",
       major:"",
       exam_time_id: "",
       exam_time_id: "",
+      exam_time_id2: "",
       exam_times:[],
       exam_times:[],
       loading: false,
       loading: false,
       timeControl:null,
       timeControl:null,
       majorList:[],
       majorList:[],
       courseList:[],
       courseList:[],
       courseList2:[],
       courseList2:[],
+      secondcourseList:[],
+      secondcourseList2:[],
       year: null,
       year: null,
       month: null
       month: null
     };
     };
@@ -183,8 +298,10 @@ export default {
 
 
          if(element.currentYearCode == true){
          if(element.currentYearCode == true){
            this.exam_time_id = element.id;
            this.exam_time_id = element.id;
+           this.exam_time_id2 = element.id;
            this.$nextTick(() => {
            this.$nextTick(() => {
              this.majorChange(this.major);
              this.majorChange(this.major);
+             this.timesChange2();
            });
            });
 
 
            break;
            break;
@@ -231,6 +348,36 @@ export default {
     async timesChange(){
     async timesChange(){
       await this.majorChange(this.major_id);
       await this.majorChange(this.major_id);
     },
     },
+    async timesChange2(){
+      this.welcome = false;
+      this.secondcourseList = [];
+      this.secondcourseList2 = [];
+      this.loading = true;
+      let res = await this.$http.post("/std/stdEnrol/listPublishCouseForSelected.htm", this.Qs.stringify({
+        exam_time_id: this.exam_time_id2
+      }));
+      this.secondcourseList = this.transData(res.data.entity);
+
+      //考试计划超过4条记录,则分两个数组存放,用于展示
+      if(this.secondcourseList && this.secondcourseList.length>4){
+        let array1 = [];
+        let array2 = [];
+        for (let index = 0; index < this.secondcourseList.length; index++) {
+            if(index<=3){
+              array1.push(this.secondcourseList[index])
+            }else{
+              array2.push(this.secondcourseList[index])
+            }
+        }
+
+        this.secondcourseList = array1;
+        this.secondcourseList2 = array2;
+      
+      }
+
+      // this.hideLoading(loading);
+       this.loading = false;
+    },
     transData(mapData){
     transData(mapData){
       
       
       let array = [];
       let array = [];
@@ -264,7 +411,17 @@ export default {
         }
         }
       }
       }
       return true;
       return true;
-    }
+    },
+
+    secondcourseListIsEmpty(){
+      for (let index = 0; index < this.secondcourseList.length; index++) {
+        const element = this.secondcourseList[index];
+        if(element.data.length > 0){
+          return false
+        }
+      }
+      return true;
+    },
   }
   }
 };
 };
 </script>
 </script>

+ 9 - 5
src/pages/features/majorQuery/index.vue

@@ -20,9 +20,13 @@
         &nbsp;&nbsp;
         &nbsp;&nbsp;
           <el-button @click="query()" type="primary" size="small" plain>查询</el-button> 
           <el-button @click="query()" type="primary" size="small" plain>查询</el-button> 
           -->
           -->
-          &nbsp;&nbsp;<a style="color:blue;font-size: 14px;" target="_new" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage">关于设置与调整自考专业的通知</a>
-         &nbsp;&nbsp;&nbsp;&nbsp;
-           <a style="color:blue;font-size: 14px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
+          &nbsp;&nbsp;<a style="color:blue;font-size: 12px;" target="_new" href="http://www.gxeea.cn/view/content_1013_24985.htm?from=singlemessage">关于设置与调整自考专业的通知</a>
+           &nbsp;&nbsp;
+
+          <a style="color:blue;font-size: 12px;" href="https://www.gxeea.cn/view/content_1148_30196.htm" target="_new">关于调整广西高等教育自学考试专业的公告</a>
+
+         &nbsp;&nbsp;
+           <a style="color:blue;font-size: 12px;" href="https://www.gxeea.cn/view/content_1148_15806.htm" target="_new">我区高等教育自学考试英语和数学等课程由必考课改为选考课</a>
 
 
         <br>
         <br>
         <br>
         <br>
@@ -141,7 +145,7 @@
         style="width: 100%">
         style="width: 100%">
         <el-table-column
         <el-table-column
           prop="exam_year_month"
           prop="exam_year_month"
-          label="启用批次"
+          label="考试批次"
           width="120">
           width="120">
         </el-table-column>
         </el-table-column>
         <el-table-column
         <el-table-column
@@ -162,7 +166,7 @@
         
         
         <el-table-column
         <el-table-column
           prop="textbook_writer"
           prop="textbook_writer"
-          label="作者"
+          label="编著"
           width="120">
           width="120">
         </el-table-column>
         </el-table-column>
         <el-table-column
         <el-table-column

+ 1 - 0
src/pages/features/neduApply/index.vue

@@ -112,6 +112,7 @@
           </el-table-column>
           </el-table-column>
           <el-table-column
           <el-table-column
             label="操作"
             label="操作"
+            fixed="right"
             width="140">
             width="140">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <div v-if="scope.row.status == 0 && scope.row.is_overtime !='已过期'"> 
                 <div v-if="scope.row.status == 0 && scope.row.is_overtime !='已过期'"> 

+ 5 - 5
src/pages/features/password/index.vue

@@ -12,7 +12,7 @@
           <el-row>
           <el-row>
             <el-col :span="24">
             <el-col :span="24">
               <el-form-item label="新密码:" required prop="password_new1">
               <el-form-item label="新密码:" required prop="password_new1">
-                <el-input type="password" v-model="stdRegInfo.password_new1" placeholder="包含字母、数字、特称字符,至少8个字符"></el-input>
+                <el-input type="password" v-model="stdRegInfo.password_new1" placeholder="包含字母、数字、特称字符,至少10个字符"></el-input>
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
           </el-row>
           </el-row>
@@ -57,28 +57,28 @@ export default {
     //    }
     //    }
     }
     }
     var validateConfirmPass1 = (rule, value, callback) => {
     var validateConfirmPass1 = (rule, value, callback) => {
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         if (value === '') {
         if (value === '') {
             callback(new Error('请再次输入密码'));
             callback(new Error('请再次输入密码'));
         } else if (window['VM'].stdRegInfo.password_new2 && value !== window['VM'].stdRegInfo.password_new2) {
         } else if (window['VM'].stdRegInfo.password_new2 && value !== window['VM'].stdRegInfo.password_new2) {
             callback(new Error('两次输入密码不一致!'));
             callback(new Error('两次输入密码不一致!'));
         } else if(!regex.test(value)){
         } else if(!regex.test(value)){
-            callback(new Error('密码中必须包含字母、数字、特殊字符至少8个字符!'));
+            callback(new Error('密码中必须包含字母、数字、特殊字符至少10个字符!'));
         } else {
         } else {
             //密码复杂度检查
             //密码复杂度检查
             callback();
             callback();
         }
         }
     };
     };
     var validateConfirmPass = (rule, value, callback) => {
     var validateConfirmPass = (rule, value, callback) => {
-        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}');
+        var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{10,30}');
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         // var regex =   new RegExp("^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,}$");
         if (value === '') {
         if (value === '') {
             callback(new Error('请再次输入密码'));
             callback(new Error('请再次输入密码'));
         } else if (value !== window['VM'].stdRegInfo.password_new1) {
         } else if (value !== window['VM'].stdRegInfo.password_new1) {
             callback(new Error('两次输入密码不一致!'));
             callback(new Error('两次输入密码不一致!'));
         } else if(!regex.test(value)){
         } else if(!regex.test(value)){
-            callback(new Error('密码中必须包含字母、数字、特殊字符至少8个字符!'));
+            callback(new Error('密码中必须包含字母、数字、特殊字符至少10个字符!'));
         } else {
         } else {
             //密码复杂度检查
             //密码复杂度检查
             callback();
             callback();

+ 2 - 2
src/pages/features/personalInfo/index.vue

@@ -265,14 +265,14 @@
                   <el-col :span="12">
                   <el-col :span="12">
                      <el-form-item label="地(市)" prop="std_city">
                      <el-form-item label="地(市)" prop="std_city">
                         <el-select v-model="stdRegInfo.std_city" filterable  placeholder="请选择地(市)" @change="cityChange" style="width:200px;">
                         <el-select v-model="stdRegInfo.std_city" filterable  placeholder="请选择地(市)" @change="cityChange" style="width:200px;">
-                          <el-option v-for="(item) in city_county_data" :key="item.city_code" :label="item.city_name" :value="item.city_code"></el-option>
+                          <el-option v-for="(item) in city_county_data" :key="item.city_code" :label="item.full_name" :value="item.city_code"></el-option>
                         </el-select>
                         </el-select>
                       </el-form-item>
                       </el-form-item>
                   </el-col>
                   </el-col>
                   <el-col :span="12">
                   <el-col :span="12">
                     <el-form-item label="区(县)" prop="std_county">
                     <el-form-item label="区(县)" prop="std_county">
                       <el-select v-model="stdRegInfo.std_county" filterable  placeholder="请选择区(县)" @change="countyChange" style="width:200px;">
                       <el-select v-model="stdRegInfo.std_county" filterable  placeholder="请选择区(县)" @change="countyChange" style="width:200px;">
-                        <el-option v-for="(item) in county_data" :key="item.country_code" :label="item.country_name" :value="item.country_code"></el-option>
+                        <el-option v-for="(item) in county_data" :key="item.country_code" :label="item.full_name" :value="item.country_code"></el-option>
                       </el-select>
                       </el-select>
                     </el-form-item>
                     </el-form-item>
                     
                     

+ 181 - 0
src/pages/features/stdBreakDisciplineFile/index.vue

@@ -0,0 +1,181 @@
+<template>
+  <d2-container class="page" v-loading="loading">
+    <el-tabs value="first">
+      <el-tab-pane label="违纪告知书和决定书" name="first">
+        
+        <div style="border-bottom: 2px solid #eee;">&nbsp;</div>
+        <el-table
+          v-loading="loading"
+          :data="examCourseLocation"
+         
+          style="width: 100%">
+          <el-table-column
+            prop="exam_year_month"
+            label="考试批次"
+            width="160">
+          </el-table-column>
+          <el-table-column
+            prop="ticket_no"
+            label="准考证号"
+            width="120">
+          </el-table-column>
+          <el-table-column
+            prop="std_name"
+            label="姓名"
+            width="160">
+           
+          </el-table-column>
+           <el-table-column
+            prop="cert_no"
+            label="证件号码"
+            width="180">
+            <template slot-scope="scope">{{scope.row.cert_no? scope.row.cert_no.replace(/^(.{6})(?:\w+)(.{4})$/, "\$1********\$2"):""}}</template>
+          </el-table-column>
+
+          
+          <el-table-column
+            prop="file_type"
+            label="文书类型"
+            width="100">
+          </el-table-column>
+          <el-table-column
+           
+            label="操作"
+            width="150">
+            <template slot-scope="cope">
+             <a v-if="cope.row.file_type == '告知书'" style="color:blue;cursor:pointer" title="点击下载违纪告知书" @click="downStdBreakDisciplineFile(cope.row.exam_time_id,cope.row.ticket_no,cope.row.file_type,cope.row.file_url)">下载违纪告知书 </a>
+             <a v-if="cope.row.file_type == '决定书'"  style="color:blue;cursor:pointer" title="点击下载违纪决定书" @click="downStdBreakDisciplineFile(cope.row.exam_time_id,cope.row.ticket_no,cope.row.file_type,cope.row.file_url)">下载违纪决定书 </a>
+
+              </template>
+
+          </el-table-column>
+          
+        </el-table>
+       
+      </el-tab-pane>
+    </el-tabs>
+
+  </d2-container>
+</template>
+
+<script>
+import { mapState, mapActions } from "vuex";
+import { Loading } from 'element-ui';
+
+export default {
+  components: {},
+  computed: {
+    ...mapState({
+      stdReg: state => state.enrol.StdReg,
+    })
+  },
+  data() {
+    return {
+      loading: false,
+      examCourseLocation:[],
+
+    };
+  },
+  async mounted() {
+    this.init();
+  },
+  methods: {
+    async init(){
+     
+      let loadingInstance = Loading.service({ fullscreen: true });
+
+      let res = await this.$http.post("/std/stdBreakDiscipline/queryStdBreakDisciplineFile.htm",
+      this.Qs.stringify({
+          
+        })
+      )
+      
+      this.examCourseLocation = res.data.array;
+
+      this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
+        loadingInstance.close();
+      });
+    },
+
+    async downStdBreakDisciplineFile(exam_time_id,ticket_no,file_type,file_url) {
+    
+      let res = await this.$http({
+        method: "post",
+        url: `/std/stdBreakDiscipline/downStdBreakDisciplineFile.htm?exam_time_id=`+exam_time_id+`&file_type=`+file_type,
+        responseType: "blob"
+      });
+      let fileName = null;
+      let fileExtension = file_url.split('.').pop();
+
+      if(file_type=='告知书'){
+        fileName = `${ticket_no}违纪告知书.`+fileExtension;
+      }else{
+        fileName = `${ticket_no}违纪决定书.`+fileExtension;
+      }
+      if (window.navigator.msSaveBlob) {
+        try {
+          var blobObject = new Blob([res.data]);
+          window.navigator.msSaveBlob(blobObject, fileName);
+        } catch (e) {
+          console.log(e);
+        }
+      } else {
+        let loading = this.showLoading();
+        let url = window.URL.createObjectURL(new Blob([res.data]));
+        let link = document.createElement("a");
+        link.style.display = "none";
+        link.href = url;
+        link.setAttribute("download", fileName);
+
+        document.body.appendChild(link);
+        link.click();
+        this.hideLoading(loading);
+      }
+    }
+  }
+};
+</script>
+
+<style lang="scss">
+#enrol_guid_index_scoped {
+  .el-card__body {
+    padding: 9px !important;
+  }
+  .el-card__header {
+    padding: 11px 20px;
+  }
+  .cell {
+    margin-left: 10px;
+    border-bottom: 1px;
+  }
+  .el-table td,
+  .el-table th {
+    padding: 5px 0;
+  }
+  .el-card__header {
+    padding-top: 10px;
+    padding-right: 20px;
+    padding-bottom: 10px;
+    padding-left: 20px;
+  }
+  .el-card__body {
+    padding: 0px;
+  }
+  .redBold {
+    color: red;
+    font-size: 15px;
+    font-weight: 200;
+    font-weight: bold;
+  }
+  .el-button-group {
+    margin-top: 10px;
+  }
+  .el-button {
+    margin-right: 10px;
+  }
+  .title{
+    color: #409EFF;
+    margin-bottom: 15px;
+  }
+}
+</style>

+ 1 - 0
src/pages/features/stdInfoModify/index.vue

@@ -87,6 +87,7 @@
              <el-table-column
              <el-table-column
                 prop=""
                 prop=""
                 label="操作"
                 label="操作"
+                fixed="right"
                 width="100">
                 width="100">
                 <template slot-scope="scope">
                 <template slot-scope="scope">
                     <div v-if="scope.row.status == 0"> 
                     <div v-if="scope.row.status == 0"> 

+ 4 - 4
src/pages/index/home.vue

@@ -16,6 +16,8 @@
               <a v-if="item.more_url" :href="item.more_url" target="_blank" class="x" style="font-size:14px;">{{item.title}}</a>
               <a v-if="item.more_url" :href="item.more_url" target="_blank" class="x" style="font-size:14px;">{{item.title}}</a>
               <a v-if="!item.more_url" href="http://www.gxeea.cn/zxks/tzgg.htm" target="_blank" class="x" style="font-size:14px;">{{item.title}}</a>
               <a v-if="!item.more_url" href="http://www.gxeea.cn/zxks/tzgg.htm" target="_blank" class="x" style="font-size:14px;">{{item.title}}</a>
               <img :src="`${$baseUrl}image/logo/new.png`" v-if="item.is_new == 1 " style="margin: 0;padding: 0;vertical-align: top;width:29px;height:12px;"/>
               <img :src="`${$baseUrl}image/logo/new.png`" v-if="item.is_new == 1 " style="margin: 0;padding: 0;vertical-align: top;width:29px;height:12px;"/>
+              <img :src="`${$baseUrl}image/logo/top.png`" v-if="item.is_new != 1 && item.topup==1" style="margin: 0;padding: 0;vertical-align: top;width:36px;height:16px;"/>
+
                <span>{{item.published_at|formatDate('yyyy-MM-dd')}}</span>
                <span>{{item.published_at|formatDate('yyyy-MM-dd')}}</span>
             </li>
             </li>
      
      
@@ -550,7 +552,7 @@ export default {
       this.loading = true;
       this.loading = true;
 
 
       let res = await this.$http.post("/sys/sysAppNews/page.htm",this.Qs.stringify({
       let res = await this.$http.post("/sys/sysAppNews/page.htm",this.Qs.stringify({
-              limit: 5,
+              limit: 8,
               start: 0
               start: 0
           }));
           }));
           
           
@@ -1380,9 +1382,7 @@ export default {
   margin-left: 10px;
   margin-left: 10px;
   margin-right: 10px;
   margin-right: 10px;
 }
 }
-.m-wrap-content2 {
-  /*margin-top: 30px;*/
-}
+
 .J_sideTest {
 .J_sideTest {
   height: 40px;
   height: 40px;
   border-bottom: 2px solid #0090ff;
   border-bottom: 2px solid #0090ff;

+ 7 - 0
src/router/routes.js

@@ -54,6 +54,13 @@ const frameIn = [
         meta: { meta, title: '统考考场安排' },
         meta: { meta, title: '统考考场安排' },
         component: () => import('@/pages/features/examLocation')
         component: () => import('@/pages/features/examLocation')
       },
       },
+      {
+        path: 'stdBreakDisciplineFile',
+        name: 'stdBreakDisciplineFile',
+        meta: { meta, title: '违纪告知书和决定书' },
+        component: () => import('@/pages/features/stdBreakDisciplineFile')
+      },
+
       {
       {
         path: 'examLocationSpec',
         path: 'examLocationSpec',
         name: 'examLocationSpec',
         name: 'examLocationSpec',