ui top attached header" id="repo-read-file"> ExaminationPayment.vue 5.2KB
History Raw
    <template> <div class="pay"> <div v-show="showMain"> <p>考试缴费</p> <el-table ref="multipleTable" border :header-cell-style="headStyle" :data="tableData" > <el-table-column prop="number" label="序号" width="50"> <template slot-scope="scope">{{ scope.$index+1 }}</template> </el-table-column> <el-table-column prop="exam_name" label="考试名称" width="180"> </el-table-column> <el-table-column prop="series_name" label="考试系列" width="120"> </el-table-column> <el-table-column prop="level_name" label="考试级别" width="80"> </el-table-column> <el-table-column prop="subject_name" label="考试科目" width="120"> </el-table-column> <el-table-column prop="create_time" label="申请日期" width="160"> </el-table-column> <el-table-column prop="pay_state" label="缴费状态" width="100"> </el-table-column> <el-table-column label="操作" width="80"> <template slot-scope="scope"> <el-button size="mini" type="primary" @click="check(scope.row)"> 查看 </el-button> </template> </el-table-column> </el-table> </div> <div v-show="!showMain"> <el-form class="myform" ref="form" :model="form" label-width="90px" status-icon> <el-form-item label="姓名:"> <el-input class="myinput" v-model="studentData.name" :disabled="true"></el-input> </el-form-item> <el-form-item label="身份证号:"> <el-input class="myinput" v-model="studentData.card_num" :disabled="true"></el-input> </el-form-item> <el-form-item label="考试名称:"> <el-input class="myinput" v-model="form.exam_name" :disabled="true"></el-input> </el-form-item> <el-form-item label="考试系列:"> <el-input class="myinput" v-model="form.series_name" :disabled="true"></el-input> </el-form-item> <el-form-item label="考试级别:"> <el-input class="myinput" v-model="form.level_name" :disabled="true"></el-input> </el-form-item> <el-form-item label="考试科目:"> <el-input class="myinput" v-model="form.subject_name" :disabled="true"></el-input> </el-form-item> <el-form-item label="考试时间:"> <el-input class="myinput" v-model="form.time" :disabled="true"></el-input> </el-form-item> <el-form-item label="申请时间:"> <el-input class="myinput" v-model="form.create_time" :disabled="true"></el-input> </el-form-item> <el-form-item label="拟报考点:"> <el-input class="myinput" v-model="form.want_place_name" :disabled="true"></el-input> </el-form-item> <el-form-item label="缴费方式:"> <el-select class="myinput" v-model="form.year" placeholder="请选择"> <el-option label="11" value="11"></el-option> </el-select> </el-form-item> </el-form> <div class="myfooter"> <img src="../../assets/img/erweima.svg"> <el-button type="primary" @click="printChange">已完成缴费</el-button> </div> </div> </div> </template> <script> import { getStudentInfo, //个人资料 getPayList, //列表 } from "@/api/home"; export default { data() { return { tableData: [], studentData: [], form: {}, showMain: true, } }, created() { this.getStudent(); this.getPay(); }, methods: { // 获取考生个人资料 async getStudent() { let res = await getStudentInfo({ student_id: 2, }); // 解构数据 let { code, data } = res; // 赋值渲染 if (code === 200) { this.studentData = data.res.student; } }, // 获取列表 async getPay() { let res = await getPayList({ student_id: 2, }); // 解构数据 let { code, data } = res; // 赋值渲染 if (code === 200) { this.tableData = data.myEnroll; } }, // 表格头部样式回调 headStyle() { return "backgroundColor:#ddd;fontSize:14px;color:#666;fontWeight:700"; }, printChange() { this.$emit('print',true); this.showMain = true; }, check(row) { this.showMain = false; for(let item in this.tableData){ if(row.uuid == this.tableData[item].uuid){ this.form = this.tableData[item] } } }, } } </script> <style lang="less" scoped> .pay { width: 100%; padding: 20px; .el-table::before { height: 0; } .el-table--border, .el-table--group { border: 0; } .el-table--border::after, .el-table--group::after { height: 0; } p{ font-size: 18px; margin: 0 0 20px 0; } } .myform{ display: flex; flex-direction: column; justify-content: center; align-items: center; } .myinput{ width: 200px; } .myfooter{ width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; img{ width: 200px; height: 200px; margin-bottom: 20px; } } </style>
client_web - Gogs: Go Git Service

报名考试前端页面(红色页面)

PrintAdmissionCard.vue 11KB

    <template> <!--startprint--><!--注意要加上html里star和end的这两个标记--> <div class="card"> <div class="r-main" v-if="showMain"> <div class="r-top"> <div> <p>身份证号:{{ studentData.card_num }}</p> <p>考生姓名:{{ studentData.name }}</p> </div> </div> <el-table ref="multipleTable" border :header-cell-style="headStyle" :data="admData" > <el-table-column prop="number" label="序号" width="50"> <template slot-scope="scope">{{ scope.$index + 1 }}</template> </el-table-column> <el-table-column prop="exam_name" label="考试名称" width="180"> </el-table-column> <el-table-column prop="series_name" label="考试系列" width="150"> </el-table-column> <el-table-column prop="level_name" label="考试级别" width="120"> </el-table-column> <el-table-column prop="subject_name" label="考试科目" width="150"> </el-table-column> <el-table-column prop="time" label="考试时间" width="120"> </el-table-column> <el-table-column label="操作" show-overflow-tooltip> <template slot-scope="scope"> <el-button size="mini" type="primary" @click="lookAdm(scope.$index)"> 查看准考证 </el-button> </template> </el-table-column> </el-table> </div> <div class="show-adm-card" v-else> <div class="show-adm-card-body"> <div class="show-adm-card-body-div"> <h2 class="title">{{ this.currAdm.title }}</h2> <div class="left-top"> <div class="left-top-left"> <span class="left-top-left-span"> <h3 class="key">姓名<i></i></h3> <div class="value">: <font>小小文</font> </div> </span> <span class="left-top-left-span"> <h3 class="key">准考证号<i></i></h3> <div class="value">: <font>32163546</font> </div> </span> <span class="left-top-left-span"> <h3 class="key">系列级别<i></i></h3> <div class="value">: <font>工程理论中高级</font> </div> </span> <span class="left-top-left-span"> <h3 class="key">座位号<i></i></h3> <div class="value">: <font>32</font> </div> </span> </div> <div class="avatar"> <img src="../../assets/img/dog.jpeg"/> </div> </div> <span class="left-top-left-span"> <h3 class="key">考场<i></i></h3> <div class="value">: <font>北京大学海淀校区美术学院第四教学楼5层302教室</font> </div> </span> <span class="left-top-left-span"> <h3 class="key">身份证号<i></i></h3> <div class="value">: <font>1302832200000</font> </div> </span> </div> <div class="show-adm-card-body-right"> <h3 class="title">考试时间及科目</h3> <h3 class="date">2021年11月09日 星期六</h3> <h3 class="time">9:00-11:00 水利专业理论</h3> <h3 class="place">考试地点:南水北调中线考场(河北分局)</h3> <h3 class="unit">水利部职改办制</h3> </div> </div> <div class="show-exam-content"> <p class="show-exam-content-title">考试须知:</p> <p>1、考生必须带齐准考证、身份证,方可进入考场。</p> <p>2、笔试题一律用黑色笔记的钢笔、签字笔或圆珠笔作答。考生自备黑色字迹的钢笔、签字笔或圆珠笔。</p> <p>3、严禁将移动电话、电子笔记本、计算器等带有记忆性的、有运算功能的或有通讯功能的电子设备带至座位。</p> <p>4、考生需提前10分钟进入考场,考试开始30分钟后,不得入场;考试开始半小时内,不得退场。</p> <p>5、考生必须遵守考场规则,若有作弊行为,将被取消考试资格。</p> </div> <div class="show-adm-card-footer"> <el-button class="show-adm-card-footer-btn" type="primary" @click="showMain = true">返回</el-button> <el-button class="show-adm-card-footer-btn" type="primary" @click="print()">打印准考证</el-button> </div> </div> </div> <!--endprint--> </template> <script> import { getStudentInfo, //个人资料 getAdmissionList, //列表 } from "@/api/home"; export default { data() { return { admData: [], studentData: [], form: {}, showMain: true, currAdm: { title: '2000年考试准考证' } } }, //props: ["printValue"], watch: {}, mounted() { this.getStudent(); this.getAdmission(); }, methods: { // 获取考生个人资料 async getStudent() { let res = await getStudentInfo({ student_id: 2, }); // 解构数据 let {code, data} = res; // 赋值渲染 if (code === 200) { this.studentData = data.res.student; } }, // 获取列表 async getAdmission() { let res = await getAdmissionList({ student_id: 2, }); // 解构数据 let {code, data} = res; // 赋值渲染 if (code === 200) { this.admData = data.myAdm.list; } console.log('this.admData = ', this.admData) }, // 表格头部样式回调 headStyle() { return "backgroundColor:#ddd;fontSize:14px;color:#666;fontWeight:700"; }, lookAdm(ind) { console.log('点击了 : ', ind) this.showMain = false this.currAdm = this.admData[ind] let year = this.currAdm.time.substring(0, 4) this.currAdm.title = year + this.currAdm.exam_name + '准考证' }, print() { var bdhtml=window.document.body.innerHTML; var sprnstr="<!--startprint-->"; var eprnstr="<!--endprint-->"; var prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); // window.document.body.innerHTML=prnhtml; //window.open(prnhtml); //window.print(); } } } </script> <style lang="less" scoped> .card { padding: 20px; width: 100%; } .r-main { .r-top { background-color: #F6F7F9; height: 100px; display: flex; align-items: center; justify-content: center; p { margin: 20px 0 20px 0; } } .el-table::before { height: 0; } .el-table--border::after, .el-table--group::after { height: 0; } .el-table--border, .el-table--group { border: 0; } } .show-adm-card { display: flex; flex-direction: column; //justify-content: center; //align-items: center; width: 100%; .show-exam-content p{ font-size: 16px; margin: 15px 0; } .show-exam-content .show-exam-content-title { font-size: 24px; } .show-adm-card-body { width: 100%; display: flex; flex-direction: row; //justify-content: center; //align-items: center; border: double; .show-adm-card-body-div { //background-color: #6ab5f6; height: 600px; width: 50%; display: flex; flex-direction: column; //justify-content: center; //align-items: center; padding-top: 40px; padding-left: 20px; //准考证标题 .title { font-size: 20px; font-weight: bold; display: flex; justify-content: center; align-items: center; } .left-top { display: flex; flex-direction: row; //justify-content: center; //align-items: center; //width: 100%; margin-top: 30px; min-width: 300px; .left-top-left { display: flex; flex-direction: column; align-items: start; justify-content: center; //width: 200px; .key { //width: 70px; text-align: justify; } .value font { //width: 90px; border-bottom: 1px solid #333333; padding-bottom: 4px; } } } } } .show-adm-card-footer { display: flex; flex-direction: row; justify-content: center; align-items: center; width: 100%; margin-top: 20px; margin-bottom: 20px; .show-adm-card-footer-btn { width: 120px; } } } .left-top-left-span { display: flex; flex-direction: row; min-width: 200px; height: 40px; line-height: 30px; font-weight: bold; margin-bottom: 20px; h3 { width: 70px; //border:1px solid red; text-align: justify; } h3 i { display: inline-block; /*padding-left: 100%;*/ width: 100%; } .value font { border-bottom: 1px solid #333333; padding-bottom: 4px; } } //头像 .avatar { display: flex; justify-content: center; height: 100%; flex-grow: 1; img{ width: 150px; height: 200px; } } .show-adm-card-body-right { width: 49%; border-left: double; display: flex; flex-direction: column; //justify-content: center; align-items: center; .title{ font-size: 16px; font-weight: bold; } h3{ margin-top: 80px; } .unit{ font-size: 16px; font-weight: bold; } } </style>
zeropay - Gogs: Go Git Service

0元购Android端

proguard-rules.pro 8.7KB

    # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile # 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数,在Android里面默认是5,这条指令也只有在可以优化时起作用。) -optimizationpasses 5 # 混淆时不会产生形形色色的类名(混淆时不使用大小写混合类名) -dontusemixedcaseclassnames # 指定不去忽略非公共的库类(不跳过library中的非public的类) -dontskipnonpubliclibraryclasses # 指定不去忽略包可见的库类的成员 -dontskipnonpubliclibraryclassmembers #不进行优化,建议使用此选项, -dontoptimize # 不进行预校验,Android不需要,可加快混淆速度。 -dontpreverify # 屏蔽警告 -ignorewarnings # 指定混淆是采用的算法,后面的参数是一个过滤器 # 这个过滤器是谷歌推荐的算法,一般不做更改 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 保护代码中的Annotation不被混淆 -keepattributes *Annotation* # 避免混淆泛型, 这在JSON实体映射时非常重要 -keepattributes Signature # 抛出异常时保留代码行号 -keepattributes SourceFile,LineNumberTable #优化时允许访问并修改有修饰符的类和类的成员,这可以提高优化步骤的结果。 # 比如,当内联一个公共的getter方法时,这也可能需要外地公共访问。 # 虽然java二进制规范不需要这个,要不然有的虚拟机处理这些代码会有问题。当有优化和使用-repackageclasses时才适用。 #指示语:不能用这个指令处理库中的代码,因为有的类和类成员没有设计成public ,而在api中可能变成public -allowaccessmodification #当有优化和使用-repackageclasses时才适用。 -repackageclasses '' # 混淆时记录日志(打印混淆的详细信息) # 这句话能够使我们的项目混淆后产生映射文件 # 包含有类名->混淆后类名的映射关系 -verbose -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.support.multidex.MultiDexApplication -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.view.View -keep class android.support.** {*;}## 保留support下的所有类及其内部类 # 这指定了继承Serizalizable的类的如下成员不被移除混淆 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # 保留我们自定义控件(继承自View)不被混淆 -keep public class * extends android.view.View{ *** get*(); void set*(***); public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); } #webView需要进行特殊处理 -keepclassmembers class fqcn.of.javascript.interface.for.Webview { public *; } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); public boolean *(android.webkit.WebView, java.lang.String); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, jav.lang.String); } #在app中与HTML5的JavaScript的交互进行特殊处理 #我们需要确保这些js要调用的原生方法不能够被混淆,于是我们需要做如下处理: -keepclassmembers class com.ljd.example.JSInterface { <methods>; } #androidx -keep class com.google.android.material.** {*;} -keep class androidx.** {*;} -keep public class * extends androidx.** -keep interface androidx.** {*;} -dontwarn com.google.android.material.** -dontnote com.google.android.material.** -dontwarn androidx.** #=====友盟Start -keep class com.umeng.** {*;} -keep class com.uc.** {*;} -keepclassmembers class * { public <init> (org.json.JSONObject); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class com.zui.** {*;} -keep class com.miui.** {*;} -keep class com.heytap.** {*;} -keep class a.** {*;} -keep class com.vivo.** {*;} #=====友盟END #PictureSelector 2.0 -keep class com.luck.picture.lib.** { *; } #Ucrop -dontwarn com.yalantis.ucrop** -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; } #Okio -dontwarn org.codehaus.mojo.animal_sniffer.* #rxjava -dontwarn sun.misc.** -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* { long producerIndex; long consumerIndex; } #glide -keep public class * implements com.bumptech.glide.module.GlideModule #-keep public class * extends com.bumptech.glide.AppGlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } #EventBus -keepattributes *Annotation* -keepclassmembers class * { @org.greenrobot.eventbus.Subscribe <methods>; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } # And if you use AsyncExecutor: -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { <init>(java.lang.Throwable); } ##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # For using GSON @Expose annotation -keepattributes *Annotation* # Gson specific classes -dontwarn sun.misc.** #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.junxin.zeropay.bean.** { *; } #-keep class com.junxin.zeropay.bean.IndexBean { <fields>; } #-keep class com.junxin.zeropay.bean.IndexDataBean { <fields>; } #-keep class com.junxin.zeropay.bean.IndexListBean { <fields>; } # Prevent proguard from stripping interface information from TypeAdapterFactory, # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) -keep class * implements com.google.gson.TypeAdapterFactory -keep class * implements com.google.gson.JsonSerializer -keep class * implements com.google.gson.JsonDeserializer # Prevent R8 from leaving Data object members always null -keepclassmembers,allowobfuscation class * { @com.google.gson.annotations.SerializedName <fields>; } ##---------------End: proguard configuration for Gson ---------- -keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class com.mob.**{*;} -keep class com.bytedance.**{*;} -dontwarn cn.sharesdk.** -dontwarn com.sina.** -dontwarn com.mob.** ## - - - - - - - - 微信 - - - - - - - - - - - - -keep class com.tencent.mm.opensdk.** { *; } -keep class com.tencent.wxop.** { *; } -keep class com.tencent.mm.sdk.** { *; } ## - - - - - - - - GSYPlayer - - - - - - - - - - - - -keep class com.shuyu.gsyvideoplayer.video.** { *; } -dontwarn com.shuyu.gsyvideoplayer.video.** -keep class com.shuyu.gsyvideoplayer.video.base.** { *; } -dontwarn com.shuyu.gsyvideoplayer.video.base.** -keep class com.shuyu.gsyvideoplayer.utils.** { *; } -dontwarn com.shuyu.gsyvideoplayer.utils.** -keep class tv.danmaku.ijk.** { *; } -dontwarn tv.danmaku.ijk.** -keep public class * extends android.view.View{ *** get*(); void set*(***); public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); } ## 时间选择器 -keepattributes InnerClasses,Signature -keepattributes *Annotation* -keep class cn.qqtheme.framework.entity.** { *;}