Commit 911e578b by sunchao

学习认证

parent 859c79a2
......@@ -38,6 +38,9 @@
padding: 0;
list-style: none;
}
image{
width: 100%!important;
}
img{
max-width: 100%;
}
......
......@@ -88,5 +88,9 @@ export default {
//学习认证列表
queryCertificateList(params){
return request(`${cffpURL}/certificate/queryCertificateList`, "POST", params)
},
//学习认证结果
userCertificateResult(params){
return request(`${cffpURL}/certificate/userCertificateList`, "POST", params)
}
}
......@@ -89,20 +89,20 @@
"base" : "/cffp/",
"mode" : "history"
}
// ,
// "devServer" : {
// "proxy" : {
// "/api" : {
// "port" : 3000, // 端口号
// "target" : "https://mdev.zuihuibi.cn", //请求的目标域名
// "changeOrigin" : true, //是否跨域
// "secure" : false, //设置支持https协议的代理
// "logLevel" : "debug",
// "pathRewrite" : {
// "^/api" : ""
// }
// }
// }
// }
,
"devServer" : {
"proxy" : {
"/api" : {
"port" : 3000, // 端口号
"target" : "https://mdev.zuihuibi.cn", //请求的目标域名
"changeOrigin" : true, //是否跨域
"secure" : false, //设置支持https协议的代理
"logLevel" : "debug",
"pathRewrite" : {
"^/api" : ""
}
}
}
}
}
}
......@@ -110,6 +110,27 @@
"navigationBarTitleText": "学习认证",
"enablePullDownRefresh": false
}
},{
"path" : "pages/authentication-query/authentication-query",
"style" :
{
"navigationBarTitleText": "认证查询",
"enablePullDownRefresh": false
}
},{
"path" : "pages/authentication-query/authentication-result",
"style" :
{
"navigationBarTitleText": "查询结果",
"enablePullDownRefresh": false
}
},{
"path" : "pages/certifyDetail/certifyDetail",
"style" :
{
"navigationBarTitleText": "认证详情",
"enablePullDownRefresh": false
}
}
],
// "tabBar": {
......
<template>
<view class="wrapper">
<view class="">
查询类型
</view>
<view class="content">
<view class="item" v-for="(item,idx) in authenticationList" @click="selectType(item)" :class="{'selected':item.selected == true}">
<text class="iconfont icon-yuanxingweixuanzhong" :class="{'icon-selected-copy':item.selected==true}"></text>
<view>
<view class="name">
{{item.name}}
</view>
<view class="des">
{{item.des}}
</view>
</view>
</view>
</view>
<view class="others" v-if="queryType == '2'">
<view class="others_item">
<text>姓名:</text><input class="uni-input" type="text" placeholder="请输入姓名" v-model="userName"/>
</view>
<view class="others_item">
<text>认证编号:</text><input class="uni-input" type="text" placeholder="请输证书编号" v-model="cerCode"/>
</view>
</view>
<view class="search_btn" @click="confirmSearch()">
确认查询
</view>
</view>
</template>
<script>
export default{
data(){
return {
authenticationList:[
{name:'本人认证查询',id:1,des:'查询本人的考试和认证结果'},
{name:'他人认证查询',id:2,des:'帮助用人单位鉴别证书是否真实有效'}
],
userName:null,
cerCode:null,
queryType:null
}
},
components:{},
onLoad(){
},
methods:{
selectType(item){
this.queryType = item.id;
for(let i=0;i<this.authenticationList.length;i++){
this.authenticationList[i]['selected'] = false;
if(item.id == this.authenticationList[i]['id']){
this.authenticationList[i]['selected'] = true;
}
}
},
confirmSearch(){
if(this.queryType == 2){
if(!this.userName){
uni.showToast({
title: '请输入姓名',
duration: 2000,
icon: 'none'
})
return;
}
if(!this.cerCode){
uni.showToast({
title: '请输入证书编号',
duration: 2000,
icon: 'none'
})
return;
}
}
uni.navigateTo({
url:`../authentication-query/authentication-result?queryType=${this.queryType}&userName=${this.userName}&cerCode=${this.cerCode}`
})
}
}
}
</script>
<style lang="scss">
.wrapper{
padding: 30rpx;
.content{
.item{
border:2rpx solid #E4E4E4;
border-radius: 10rpx;
margin: 20rpx;
padding: 30rpx;
display:flex;
align-items: center;
.iconfont{
margin-right: 20rpx;
font-size: 48rpx;
}
.icon-selected-copy{
color: #3671F4;
}
.name{
color: #666666;
margin-bottom: 20rpx;
}
.des{
color: #999999;
}
}
.selected {
border:2rpx #3671F4 solid;
.name,.des{
color: #3671F4;
}
}
}
.others{
.others_item{
display: flex;
margin-bottom: 20rpx;
border-bottom: 2rpx #CECECE solid;
height: 80rpx;
align-items: center;
.uni-input{
height: 80rpx;
}
}
}
.search_btn{
background: #3671F4;
color: #fff;
width: 80%;
margin: 0 auto;
height: 80rpx;
line-height: 80rpx;
text-align: center;
border-radius: 40rpx;
position: absolute;
bottom: 0;
left: 0;
right: 0;
}
}
</style>
\ No newline at end of file
<template>
<view class="container">
<view class="others" v-if="queryType == 2">
<text>身份信息</text>
<view class="others_item">
<text>姓名:</text><input class="uni-input" type="text" placeholder="请输入姓名" v-model="userName"/>
</view>
<view class="others_item">
<text>认证编号:</text><input class="uni-input" type="text" placeholder="请输证书编号" v-model="cerCode"/>
</view>
</view>
<view class="certifyListContent" v-if="userCertificates?.length>0">
<view class="certifyInfoItem" v-for="item in userCertificates" :key="item?.cerNo">
<h4>{{item?.cerName}}</h4>
<view class="certifyImgBox">
<image :src="item?.cerUrl" mode="widthFix"></image>
<view>认证编号:{{item?.authenticationCode}}</view>
<view>有效期至:{{item?.endDate}}</view>
</view>
</view>
</view>
<!-- 没有证书 -->
<view class="noSign" v-if="userCertificates?.length==0">
<h4>暂没有取得证书!</h4>
</view>
</view>
</template>
<script>
import api from '../../api/api';
import common from '../../common/common';
export default{
data(){
return {
userName:null,
cerCode:null,
queryType:null,
userCertificates:[]
}
},
components:{},
onLoad(){
this.userName = common.getQueryString('userName')=='null'?undefined:common.getQueryString('userName');
this.cerCode = common.getQueryString('cerCode')=='null'?undefined:common.getQueryString('cerCode');
this.queryType = common.getQueryString('queryType');
console.log(this.queryType)
this.getResult();
},
methods:{
getResult(){
const param = {
queryType:this.queryType,
userId:uni.getStorageSync('cffp_userId'),
userName:this.userName,
cerCode:this.cerCode
}
api.userCertificateResult(param).then((res)=>{
if(res['success']){
this.userCertificates = res['data']['userCertificates'];
}else{
uni.showToast({
title: res['message'],
duration: 2000,
icon: 'none'
})
return;
}
});
}
}
}
</script>
<style lang="scss">
.others{
padding:30rpx;
.others_item{
display: flex;
margin-bottom: 20rpx;
border-bottom: 2rpx #CECECE solid;
height: 80rpx;
align-items: center;
.uni-input{
height: 80rpx;
}
}
}
.noSign{
text-align: center;
margin-top: 10%;
}
.certifyInfoItem{
background-color: #fff;
margin-bottom: 10rpx;
padding: 20rpx 0;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
image{
max-width: 60%;
height: auto;
}
}
</style>
\ No newline at end of file
......@@ -2,7 +2,7 @@
<view class="container">
<view class="top">
<view class="compony">
<img :src="cffpUserInfo.logo" alt="" />
<image :src="cffpUserInfo.logo" mode="widthFix" style="max-width:400rpx"></image>
<text class="name">{{cffpUserInfo.name}}</text>
<text class="iconfont icon-31tishi" @click="getIntroduce('center')"></text>
</view>
......@@ -17,7 +17,7 @@
<swiper class="swiper" circular :indicator-dots="indicatorDots" :autoplay="autoplay" :interval="interval"
:duration="duration">
<swiper-item v-for="bannerItem in cffpUserInfo.fileUploadItemList">
<navigator url="bannerItem.destinationAddress"><img :src="bannerItem.filePath" alt=""></navigator>
<navigator url="bannerItem.destinationAddress"><image :src="bannerItem.filePath" mode="widthFix"></image></navigator>
</swiper-item>
</swiper>
</view>
......@@ -193,7 +193,7 @@
.name{
font-size: 36rpx;
}
img{
image{
margin-right: 20rpx;
}
.icon-31tishi{
......@@ -282,7 +282,7 @@
font-size: 14px;
color: #666;
margin: 10px 2%;
img{
image{
max-width: 80%;
}
}
......
<template>
<view class="container">
<view class="top">
<img src="../../static/certifyProcess/learnCertifyBanner.png" alt="">
<image src="../../static/certifyProcess/learnCertifyBanner.png" mode="widthFix"></image>
</view>
<view class="certify_content">
<view class="title">
......@@ -13,36 +13,40 @@
<view class="isAdopt">
通过认证
</view>
<img :src="certifyItem.cerLogoUrl" alt="">
<image :src="certifyItem.cerLogoUrl" mode="widthFix"></image>
<text class="certify_name">{{certifyItem.cerName}}</text>
<view class="view_btn">查看证书</view>
<view class="view_btn" @click="switchDetail(certifyItem)">{{certifyItem.isAdopt=='2'?'查看证书':'认证详情'}}</view>
</view>
</view>
<view class="title">
认证查询
</view>
<view class="list_wrapper">
<view class="certify_enter">
<navigator class="certify_enter" url="../authentication-query/authentication-query">
认证查询入口
</view>
</navigator>
</view>
</view>
<view class="welfare_wrapper">
<view class="title">
精品福利
</view>
<view class="welfare_pic">
<image src="/static/certifyProcess/welfare1.png" mode="widthFix"></image>
<image src="/static/certifyProcess/welfare2.png" mode="widthFix"></image>
</view>
</view>
<view class="question_wrppaer">
<view class="title">
常见问题
</view>
<view class="question_wrppaer">
<view class="question_content" v-for="item in planFaqs">
<view class="question">
Q.{{item.question}}
</view>
<view class="answer">
A.{{item.answer}}
</view>
<view class="question_content" v-for="item in planFaqs">
<view class="question">
Q.{{item.question}}
</view>
<view class="answer">
<text style="color:#3876F8">A.</text>
<text style="color: #999999;">{{item.answer}}</text>
</view>
</view>
</view>
......@@ -77,6 +81,18 @@
this.boutiqueWelfares = [];
}
})
},
switchDetail(certifyItem){
//2通过跳到证书页,1跳到证书详情
if(certifyItem.isAdopt == 1){
uni.navigateTo({
url:'../certifyDetail/certifyDetail'
})
}else if(certifyItem.isAdopt == 2){
uni.navigateTo({
url:`../authentication-query/authentication-result?queryType=${this.queryType}&userName=${this.userName}&cerCode=${this.cerCode}`
})
}
}
}
......@@ -111,8 +127,8 @@
left: 0;
font-size: 28rpx;
}
img{
width:80rpx;
image{
width:80rpx!important;
}
.view_btn{
background: linear-gradient(306deg, #7EA8FF 0%, #4984FF 100%);
......@@ -137,5 +153,28 @@
}
.welfare_wrapper{
background: #fff;
padding: 20rpx;
margin-bottom: 30rpx;
.welfare_pic{
display: flex;
justify-content: space-between;
image{
width: 46%!important;
}
image:nth-child(2){
position: relative;
right: 20rpx;
}
}
}
.question_wrppaer{
padding: 30rpx;
.question_content{
margin-bottom: 20rpx;
.question{
font-size: 36rpx;
margin-bottom: 20rpx;
}
}
}
</style>
\ No newline at end of file
......@@ -55,6 +55,18 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe72f;</span>
<div class="name">圆形未选中</div>
<div class="code-name">&amp;#xe72f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe637;</span>
<div class="name">选中</div>
<div class="code-name">&amp;#xe637;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe650;</span>
<div class="name">公告</div>
<div class="code-name">&amp;#xe650;</div>
......@@ -252,9 +264,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1667544037008') format('woff2'),
url('iconfont.woff?t=1667544037008') format('woff'),
url('iconfont.ttf?t=1667544037008') format('truetype');
src: url('iconfont.woff2?t=1668068371193') format('woff2'),
url('iconfont.woff?t=1668068371193') format('woff'),
url('iconfont.ttf?t=1668068371193') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......@@ -281,6 +293,24 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-yuanxingweixuanzhong"></span>
<div class="name">
圆形未选中
</div>
<div class="code-name">.icon-yuanxingweixuanzhong
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-selected-copy"></span>
<div class="name">
选中
</div>
<div class="code-name">.icon-selected-copy
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-gonggao"></span>
<div class="name">
公告
......@@ -579,6 +609,22 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yuanxingweixuanzhong"></use>
</svg>
<div class="name">圆形未选中</div>
<div class="code-name">#icon-yuanxingweixuanzhong</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-selected-copy"></use>
</svg>
<div class="name">选中</div>
<div class="code-name">#icon-selected-copy</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gonggao"></use>
</svg>
<div class="name">公告</div>
......
@font-face {
font-family: "iconfont"; /* Project id 3749283 */
src: url('iconfont.woff2?t=1667544037008') format('woff2'),
url('iconfont.woff?t=1667544037008') format('woff'),
url('iconfont.ttf?t=1667544037008') format('truetype');
src: url('iconfont.woff2?t=1668068371193') format('woff2'),
url('iconfont.woff?t=1668068371193') format('woff'),
url('iconfont.ttf?t=1668068371193') format('truetype');
}
.iconfont {
......@@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-yuanxingweixuanzhong:before {
content: "\e72f";
}
.icon-selected-copy:before {
content: "\e637";
}
.icon-gonggao:before {
content: "\e650";
}
......
......@@ -6,6 +6,20 @@
"description": "",
"glyphs": [
{
"icon_id": "577322",
"name": "圆形未选中",
"font_class": "yuanxingweixuanzhong",
"unicode": "e72f",
"unicode_decimal": 59183
},
{
"icon_id": "833577",
"name": "选中",
"font_class": "selected-copy",
"unicode": "e637",
"unicode_decimal": 58935
},
{
"icon_id": "8802658",
"name": "公告",
"font_class": "gonggao",
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment