This commit is contained in:
dong_bo0602 2022-06-08 16:49:02 +08:00
parent 7db05db737
commit 19bde1b78c
84 changed files with 2776 additions and 293 deletions

View File

@ -13,7 +13,11 @@
"pages/card/carddetail", "pages/card/carddetail",
"pages/index/mineinfo", "pages/index/mineinfo",
"pages/branches/branchesdetail", "pages/branches/branchesdetail",
"pages/answer/answerdetail" "pages/answer/answerdetail",
"pages/sign/sign",
"pages/signOrg/signOrg",
"pages/signStatus/signStatus",
"pages/signRecord/signRecord"
], ],
"window": { "window": {
"backgroundTextStyle": "dark", "backgroundTextStyle": "dark",

View File

@ -17,6 +17,7 @@ page {
.item { .item {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between;
padding: 10rpx; padding: 10rpx;
align-items: center; align-items: center;
flex-wrap: nowrap; flex-wrap: nowrap;
@ -27,12 +28,12 @@ page {
} }
.content { .content {
width: 70%; width: 66%;
display: flex; /* display: flex; */
flex-direction: column; /* flex-direction: column; */
justify-content: space-around; /* justify-content: space-around; */
min-height: 64rpx; min-height: 64rpx;
margin-left: 10rpx; /* margin-left: 10rpx; */
} }
.content.text-cut { .content.text-cut {
@ -171,7 +172,6 @@ page {
} }
.table-item-title { .table-item-title {
flex: 0.7;
text-align: justify; text-align: justify;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -179,8 +179,7 @@ page {
} }
.table-item-content-3 { .table-item-content-3 {
flex: 1.3; text-align: right;
text-align: center;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
align-self: center; align-self: center;

View File

@ -201,7 +201,7 @@ checkbox::before {
color: var(--white) !important; color: var(--white) !important;
top: 50%; top: 50%;
margin-top: -8px; margin-top: -8px;
right: 5px; left: 3px;
font-size: 32rpx; font-size: 32rpx;
line-height: 16px; line-height: 16px;
pointer-events: none; pointer-events: none;
@ -2050,10 +2050,13 @@ button.icon.lg {
line-height: 90rpx; line-height: 90rpx;
margin: 0 10rpx; margin: 0 10rpx;
padding: 0 20rpx; padding: 0 20rpx;
color: #999;
font-size: 32rpx;
} }
.nav .cu-item.cur { .nav .cu-item.cur {
border-bottom: 4rpx solid; color: #333;
font-weight: bold;
} }
/* ================== /* ==================

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
images/icons/date-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
images/icons/exam-point.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
images/icons/go-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
images/icons/org-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
images/icons/paper-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
images/icons/person-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

BIN
images/icons/phone-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

BIN
images/icons/sign-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
images/icons/type-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/icons/type1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
images/icons/type2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
images/icons/upload-edu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -2,16 +2,15 @@
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}"> <cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">考试网点</view> <view slot="content" style="color:#FFFFFF;">考试网点</view>
</cu-custom> </cu-custom>
<scroll-view style="width:100%;"> <view style="width:100%;">
<view class="content-view"> <view class="content-view">
<view class="content-detail"> <view class="content-detail">
<view class="notice-title text-xl text-bold"> <view class="notice-title text-xl text-bold">
<text>新东方学校</text> <text>新东方学校</text>
</view> </view>
<view class="line-gray" style="width:100%;height:20rpx;"></view>
<view class="text-lg text-black"> <view class="text-lg text-black">
<rich-text nodes="{{noticeContent}}" space="nbsp"></rich-text> <rich-text nodes="{{noticeContent}}" space="nbsp"></rich-text>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </view>

View File

@ -1 +1,12 @@
/* pages/branches/branchesdetail.wxss */ /* pages/branches/branchesdetail.wxss */
.content-view{
padding: 30rpx;
}
.content-detail{
padding: 30rpx;
box-shadow: 0 0 10rpx #ccc;
}
.notice-title{
padding-bottom: 30rpx;
border-bottom: 1px solid #e5e5e5;
}

View File

@ -5,25 +5,42 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
branchesList: [{},{},{},{}], branchesList: [],
CustomBar: app.globalData.CustomBar, CustomBar: app.globalData.CustomBar,
countTime: 2000, //延迟搜索 时间 countTime: 2000, //延迟搜索 时间
searchWaiting: false, //是否等待搜索倒计时中, searchWaiting: false, //是否等待搜索倒计时中,
searchKey: '' searchKey: '',
sourceUrl: app.baseUrls.cardUrl + app.baseUrls.baseImgUrl
},
getExamPlace: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.examPlace, [app.baseUrls.cardUrl]), {}, {},
function (code, data) {
if (code == 200) {
if (data.institutionImage) {
data.institutionImage = data.institutionImage.split(',')[0]
}
self.setData({
branchesList: data
})
}
},
function (code, err) {
console.log(err)
})
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.getExamPlace()
},
showDetail(e) {
var item = e.currentTarget.dataset.item
wx.navigateTo({
url: './branchesdetail',
})
}, },
// showDetail(e) {
// var item = e.currentTarget.dataset.item
// wx.navigateTo({
// url: './branchesdetail',
// })
// },
doSearch(e) { doSearch(e) {
this.setData({ this.setData({
countTime: 2000, countTime: 2000,

View File

@ -8,17 +8,19 @@
<input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input> <input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input>
</view> </view>
</view> </view>
<scroll-view style="margin-top:70rpx;padding-left:10rpx;padding-right:10rpx;"> <view style="margin-top:70rpx;padding:30rpx;">
<view class="list" wx:if="{{branchesList.length>0}}"> <view class="list" wx:if="{{branchesList.length>0}}">
<view class="item" wx:for="{{branchesList}}" wx:key="index" bindtap="showDetail" data-item="{{item}}"> <view class="item" wx:for="{{branchesList}}" wx:key="index">
<view class="cu-avatar radius xl" <view class="exam-photo">
style="background-image:url(https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.czcaizhi.com%2FContent%2FUploadFiles%2Fimage%2F20180920%2F20180920133956_3429.jpg&refer=http%3A%2F%2Fwww.czcaizhi.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1622110389&t=4ae9d4f943c30ac6d43801515eec97e5);"> <image src="../../images/icons/default-org.jpg" wx:if="{{!item.institutionImage}}"></image>
<image src="{{sourceUrl + item.institutionImage}}" wx:if="{{item.institutionImage}}"></image>
</view> </view>
<view class="content"> <view class="content">
<text class="text-cut text-black text-bold">2021年4-6月特种设备作业人员培训开班通知</text> <text class="text-cut exam-title">{{item.institutionName}}</text>
<text class="text-cut">新东方在线</text> <text class="text-cut">{{item.institutionAddress}}</text>
<text class="text-cut">{{item.institutionContact}}</text>
</view> </view>
</view> </view>
</view> </view>
<van-empty description="暂无数据" wx:else /> <van-empty description="暂无数据" wx:else />
</scroll-view> </view>

View File

@ -1 +1,37 @@
/* pages/branches/brancheslist.wxss */ /* pages/branches/brancheslist.wxss */
.cu-avatar.xl image{
width: 100%;
height: 100%;
}
.list{
margin-top: 30rpx;
}
.item{
padding: 30rpx;
background-color: #fff;
box-shadow: 0 0 10rpx #ccc;
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
border-radius: 10rpx;
margin-top: 0;
}
.exam-photo, .exam-photo image{
width: 155rpx;
height: 155rpx;
}
.content{
width: 460rpx;
}
.content text{
display: block;
font-size: 28rpx;
color: #999;
}
.content .exam-title{
font-size: 34rpx;
color: #333;
font-weight: bold;
margin-bottom: 30rpx;
display: block;
}

View File

@ -19,7 +19,7 @@ Page({
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.getMyExam() // this.getMyExam()
}, },
getMyExam() { getMyExam() {
wx.showLoading({ wx.showLoading({

View File

@ -2,8 +2,30 @@
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}"> <cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">准考证查询</view> <view slot="content" style="color:#FFFFFF;">准考证查询</view>
</cu-custom> </cu-custom>
<scroll-view style="padding-left:10rpx;padding-right:10rpx;margin-top:-10px;"> <view style="padding: 30rpx">
<view class="list" wx:if="{{cardList.length>0}}"> <view class="list">
<view class="item bg-white">
<view class="content" style="width:100%;">
<text class="card-title text-black text-bold">[2021-121] [2021年第期非高危]</text>
<view class="margin-top-sm">
<text>考试时间:</text>2021-09-15
</view>
<view class="margin-top-sm">
<text>培训机构:</text>包头市永安培训有限公司
</view>
<view class="margin-top-sm">
<text>考试科目:</text>非高危行业主要负责人及安全管理员
</view>
<view class="margin-top-sm">
<text>准考证号:</text>2021940602
</view>
<view class="detail-btn-box margin-top-sm">
<view class="detail-btn">详情</view>
</view>
</view>
</view>
</view>
<!-- <view class="list" wx:if="{{cardList.length>0}}">
<view class="item bg-white" wx:for="{{cardList}}" wx:key="index" data-item="{{item}}" bindtap="showDetail"> <view class="item bg-white" wx:for="{{cardList}}" wx:key="index" data-item="{{item}}" bindtap="showDetail">
<view class="content" style="width:100%;"> <view class="content" style="width:100%;">
<text class="text-black text-bold">{{item.planName}}</text> <text class="text-black text-bold">{{item.planName}}</text>
@ -28,9 +50,9 @@
<text class="cuIcon-right text-gray"></text> <text class="cuIcon-right text-gray"></text>
</view> </view>
</view> </view>
</view> </view> -->
<van-empty description="暂无数据" wx:else /> <!-- <van-empty description="暂无数据" wx:else /> -->
</scroll-view> </view>
<van-popup show="{{ show }}" position="center" bind:close="onClose"> <van-popup show="{{ show }}" position="center" bind:close="onClose">
<view style="padding:20rpx;"> <view style="padding:20rpx;">
<image src="{{cardData}}" mode="scaleToFill"></image> <image src="{{cardData}}" mode="scaleToFill"></image>

View File

@ -1 +1,29 @@
/* pages/card/cardlist.wxss */ /* pages/card/cardlist.wxss */
.list,.item{
margin-top: 0;
}
.item{
margin-bottom: 30rpx;
padding: 30rpx 20rpx;
box-shadow: 0 0 10rpx #ccc;
}
.card-title{
font-size: 32rpx;
color: #333;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
text{
font-size: 28rpx;
color: #00A0E9;
}
.detail-btn{
width: 130rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
color: #fff;
background: linear-gradient(90deg, #19B3FA, #7FD6FD);
border-radius: 6rpx;
}

View File

@ -9,19 +9,21 @@ Page({
answerList: [], //报考问答 answerList: [], //报考问答
userIcon: '../../images/icons/ic_user_default.png', userIcon: '../../images/icons/ic_user_default.png',
nickName: '点击授权', nickName: '点击授权',
show: false, // show: false,
phone: '', //要绑定的手机号 phone: '', //要绑定的手机号
categoryId: '87a51bb1-451b-4b49-903b-4d847ba9c730',
}, },
onLoad() { onLoad() {
this.getUserInfo() this.getUserInfo()
this.getNoticeList() this.getNoticeList()
this.getAnswerList() this.getAnswerList()
this.doLogin()
}, },
//获取开班通 //获取最新公
getNoticeList() { getNoticeList() {
var _self = this var _self = this
app.restAjax.get(app.restAjax.path(app.apis.getArticleList, [app.baseUrls.cardUrl]), { app.restAjax.get(app.restAjax.path(app.apis.getArticleList, [app.baseUrls.cardUrl]), {
categoryId: '2ff8f6be-a435-46c1-98b7-47b16c621395', categoryId: _self.data.categoryId,
page: '1', page: '1',
rows: '6' rows: '6'
}, {}, }, {},
@ -33,7 +35,7 @@ Page({
var photos = item.coverPhotos.split(',') var photos = item.coverPhotos.split(',')
data.rows[i].showPhoto = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + photos[0] data.rows[i].showPhoto = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + photos[0]
} else { } else {
data.rows[i].showPhoto = '../../images/icons/notice_default.jpeg' data.rows[i].showPhoto = '../../images/icons/notice_default.png'
} }
} }
_self.setData({ _self.setData({
@ -88,7 +90,7 @@ Page({
_self.setData({ _self.setData({
userIcon: icon userIcon: icon
}) })
_self.checkBindPhone() // _self.checkBindPhone()
} else { } else {
wx.showModal({ wx.showModal({
title: '提示', title: '提示',
@ -159,9 +161,10 @@ Page({
}, },
//显示更多数据 //显示更多数据
showMoreList() { showMoreList() {
if (this.data.index == 1) { var self = this
if (this.data.index == 1 || this.data.index == 3) {
wx.navigateTo({ wx.navigateTo({
url: '../notices/noticeslist', url: '../notices/noticeslist?index=' + self.data.index,
}) })
} else { } else {
wx.navigateTo({ wx.navigateTo({
@ -174,6 +177,18 @@ Page({
this.setData({ this.setData({
index: e.currentTarget.dataset.id index: e.currentTarget.dataset.id
}) })
if (e.currentTarget.dataset.id != '2') {
if (e.currentTarget.dataset.id == '1') {
this.setData({
categoryId: '87a51bb1-451b-4b49-903b-4d847ba9c730'
})
} else if (e.currentTarget.dataset.id == '3') {
this.setData({
categoryId: '92737534-c2ef-487c-b763-4d1fb597388f'
})
}
this.getNoticeList()
}
}, },
//页面跳转 //页面跳转
choosePage(e) { choosePage(e) {
@ -191,20 +206,27 @@ Page({
case '4': //考试网点查询 case '4': //考试网点查询
pagePath = '../branches/brancheslist' pagePath = '../branches/brancheslist'
break break
case '5': //培训报名
pagePath = '../sign/sign'
break
case '6': //报名情况
pagePath = '../signStatus/signStatus'
break
} }
if (e.currentTarget.dataset.page == '2' || e.currentTarget.dataset.page == '3') { wx.navigateTo({
if (app.globalData.bindPhone != '' && app.globalData.bindPhone.length > 0) { url: pagePath,
wx.navigateTo({ })
url: pagePath, // if (e.currentTarget.dataset.page == '2' || e.currentTarget.dataset.page == '3') {
}) // if (app.globalData.bindPhone != '' && app.globalData.bindPhone.length > 0) {
} else {
this.checkBindPhone() // } else {
} // // this.checkBindPhone()
} else { // }
wx.navigateTo({ // } else {
url: pagePath, // wx.navigateTo({
}) // url: pagePath,
} // })
// }
}, // 获取个人信息 }, // 获取个人信息
getUserProfile(e) { getUserProfile(e) {
let _self = this let _self = this
@ -223,7 +245,7 @@ Page({
nickName: res.userInfo.nickName, nickName: res.userInfo.nickName,
userIcon: res.userInfo.avatarUrl userIcon: res.userInfo.avatarUrl
}) })
_self.checkBindPhone() // _self.checkBindPhone()
}, },
fail(err) { fail(err) {
//判断是否绑定手机号 //判断是否绑定手机号
@ -238,19 +260,19 @@ Page({
}) })
}, },
//判断是否绑定手机号 //判断是否绑定手机号
checkBindPhone() { // checkBindPhone() {
try { // try {
var _self = this // var _self = this
var bindPhone = wx.getStorageSync('bindPhone') // var bindPhone = wx.getStorageSync('bindPhone')
if (bindPhone == '' || bindPhone.length <= 0) { // if (bindPhone == '' || bindPhone.length <= 0) {
_self.setData({ // _self.setData({
show: true // show: true
}) // })
} // }
} catch (error) { // } catch (error) {
} // }
}, // },
showNoticeDetail(e) { showNoticeDetail(e) {
var item = e.currentTarget.dataset.item var item = e.currentTarget.dataset.item
wx.navigateTo({ wx.navigateTo({
@ -263,5 +285,25 @@ Page({
wx.navigateTo({ wx.navigateTo({
url: '../answer/answerdetail?id=' + item.contentId, url: '../answer/answerdetail?id=' + item.contentId,
}) })
},
// 登录
doLogin: function () {
wx.login({
success: function (res) {
app.restAjax.post(app.restAjax.path(app.apis.login, [app.baseUrls.testUrl]), {
jsCode: res.code
}, {},
function (code, data) {
var token = data.data
wx.setStorage({
key: 'token',
data: token
})
},
function (code, err) {
console.log(err)
})
}
})
} }
}) })

View File

@ -4,8 +4,8 @@
</cu-custom> </cu-custom>
<view style="display:flex;flex-direction:column;"> <view style="display:flex;flex-direction:column;">
<!-- 姓名和头像 --> <!-- 姓名和头像 -->
<view style="width:100%;" bindtap="showMineInfo"> <view style="width:100%;position: relative;" bindtap="showMineInfo">
<image src="/images/icons/ic_user_center_bg.png" mode="scaleToFill" style="width:100%;height:300rpx;"></image> <image src="/images/icons/person-bg.png" mode="scaleToFill" style="width:100%;height:400rpx;"></image>
<view class="userinfo-container"> <view class="userinfo-container">
<view class="userinfo-icon round lg" style="background-image:url({{userIcon}});"> <view class="userinfo-icon round lg" style="background-image:url({{userIcon}});">
</view> </view>
@ -24,52 +24,70 @@
<view class="page-content"> <view class="page-content">
<!-- 功能按钮 --> <!-- 功能按钮 -->
<view class="page-function"> <view class="page-function">
<view class="funcation-item" bindtap="choosePage" data-page="5">
<image src="../../images/icons/sign-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">培训报名</text>
</view>
<view class="funcation-item" bindtap="choosePage" data-page="6">
<image src="../../images/icons/status-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">报名情况</text>
</view>
<view class="funcation-item" bindtap="choosePage" data-page="1"> <view class="funcation-item" bindtap="choosePage" data-page="1">
<image src="../../images/icons/ic_organ_icon.png" mode="scaleToFill"></image> <image src="../../images/icons/org-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">培训机构查询</text> <text class="text-df margin-top-xs">培训机构查询</text>
</view> </view>
<view class="funcation-item" bindtap="choosePage" data-page="2"> <view class="funcation-item" bindtap="choosePage" data-page="2">
<image src="../../images/icons/ic_score_icon.png" mode="scaleToFill"></image> <image src="../../images/icons/achievement-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">成绩查询</text> <text class="text-df margin-top-xs">成绩查询</text>
</view> </view>
<view class="funcation-item" bindtap="choosePage" data-page="3"> <!-- <view class="funcation-item" bindtap="choosePage" data-page="3">
<image src="../../images/icons/ic_ticket_icon.png" mode="scaleToFill"></image> <image src="../../images/icons/paper-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">准考证查询</text> <text class="text-df margin-top-xs">准考证查询</text>
</view> </view> -->
<view class="funcation-item" bindtap="choosePage" data-page="4"> <view class="funcation-item" bindtap="choosePage" data-page="4">
<image src="../../images/icons/ic_testsite_icon.png" mode="scaleToFill"></image> <image src="../../images/icons/address-icon.png" mode="scaleToFill"></image>
<text class="text-df margin-top-xs">考试网点查询</text> <text class="text-df margin-top-xs">考试网点查询</text>
</view> </view>
</view> </view>
<view class="page-list-content"> <view class="page-list-content">
<!-- 内容 --> <!-- 内容 -->
<view class="page-list"> <view class="page-list">
<view class="nav"> <view class="nav">
<view class="cu-item text-bold {{index=='1' ? 'text-darkblue cur text-lg' : 'text-df'}}" bindtap="tabSelect" <view class="cu-item {{index=='1' ? 'text-darkblue cur text-lg' : 'text-df'}}" bindtap="tabSelect"
data-id="{{1}}"> data-id="{{1}}">
开班通 最新公
</view> </view>
<view class="cu-item text-bold {{index=='2' ? 'text-darkblue cur text-lg' : 'text-df'}}" bindtap="tabSelect" <view class="cu-item {{index=='3' ? 'text-darkblue cur text-lg' : 'text-df'}}" bindtap="tabSelect"
data-id="{{3}}">
考试政策
</view>
<view class="cu-item {{index=='2' ? 'text-darkblue cur text-lg' : 'text-df'}}" bindtap="tabSelect"
data-id="{{2}}"> data-id="{{2}}">
报考问答 报考问答
</view> </view>
</view> </view>
<view class="showmore" bindtap="showMoreList"> <view class="showmore" bindtap="showMoreList">
<text class="text-sm text-darkblue">更多</text> <text class="text-sm">更多+</text>
<text class="cuIcon-roundright text-darkblue margin-left-smm"></text>
</view> </view>
</view> </view>
<!-- 开班通告 --> <!-- 开班通告 -->
<view wx:if="{{index==1}}"> <view wx:if="{{index==1 || index==3}}">
<view class="list" wx:if="{{noticeList.length>0}}"> <view class="list" wx:if="{{noticeList.length>0}}">
<view class="item" wx:for="{{noticeList}}" wx:key="index" bindtap="showNoticeDetail" data-item="{{item}}"> <view class="item" wx:for="{{noticeList}}" wx:key="index" bindtap="showNoticeDetail" data-item="{{item}}">
<image class="cu-avatar radius" style="width:200rpx;height:120rpx;min-width:200rpx;min-height:120rpx;" <image class="cu-avatar radius" style="width:200rpx;height:120rpx;min-width:200rpx;min-height:120rpx;"
src="{{item.showPhoto}}" mode="scaleToFill"></image> src="{{item.showPhoto}}" mode="scaleToFill"></image>
<view class="content"> <view class="content">
<text class="text-cut-two text-black text-bold">{{item.title}}</text> <text class="text-cut-two text-black text-bold org-title">{{item.title}}</text>
<view class="flex justify-between"> <view class="flex justify-between">
<text class="text-cut">{{item.source}}</text> <view class="org-text">
<text class="text-cut">{{item.publishDate}}</text> <image src="../../images/icons/type-icon.png" class="type-icon"></image>
{{item.source}}
</view>
<view class="org-text">
<image src="../../images/icons/date-icon.png" class="type-icon"></image>
{{item.publishDate}}
</view>
</view> </view>
</view> </view>
</view> </view>
@ -98,7 +116,7 @@
</view> </view>
</view> </view>
<van-popup show="{{ show }}" position="bottom" bind:close="onClose"> <!-- <van-popup show="{{ show }}" position="bottom" bind:close="onClose">
<view style="padding:20rpx;"> <view style="padding:20rpx;">
<view class="text-xl text-bold margin-bottom-sm">手机号绑定</view> <view class="text-xl text-bold margin-bottom-sm">手机号绑定</view>
<view class="cu-bar bg-white search"> <view class="cu-bar bg-white search">
@ -110,4 +128,4 @@
<view class="cu-btn bg-gradual-blue radius margin-top padding-tb" style="width:100%;" <view class="cu-btn bg-gradual-blue radius margin-top padding-tb" style="width:100%;"
bindtap="doBindPhone">绑定</view> bindtap="doBindPhone">绑定</view>
</view> </view>
</van-popup> </van-popup> -->

View File

@ -1,7 +1,8 @@
/**index.wxss**/ /**index.wxss**/
.userinfo-container { .userinfo-container {
position: absolute; position: absolute;
top: 130rpx; top: 50%;
transform: translate(0,-75%);
z-index: 10; z-index: 10;
display: flex; display: flex;
min-height: 100rpx; min-height: 100rpx;
@ -11,8 +12,8 @@
} }
.page-content { .page-content {
position: absolute; margin-top: -100rpx;
top: 320rpx; position: relative;
display: flex; display: flex;
min-height: 100rpx; min-height: 100rpx;
align-items: center; align-items: center;
@ -27,12 +28,13 @@
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; /* justify-content: center; */
padding: 20rpx; padding: 20rpx;
background-color: white; background-color: white;
border: 10; border: 10;
border-radius: 10rpx; border-radius: 10rpx;
flex-wrap: nowrap; flex-wrap: nowrap;
overflow-x: auto;
} }
.userinfo-icon { .userinfo-icon {
@ -57,7 +59,8 @@
} }
.funcation-item { .funcation-item {
flex: 1; flex-shrink: 0;
width: 25%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -89,6 +92,8 @@
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 24rpx; margin-right: 24rpx;
color: #999;
font-size: 26rpx;
} }
.page-list-content { .page-list-content {
@ -112,4 +117,20 @@
.page-list-tab-sel { .page-list-tab-sel {
color: blue; color: blue;
font-size: medium; font-size: medium;
}
.org-text {
padding-left:35rpx;
position: relative;
}
.org-text image{
position: absolute;
top: 50%;
left: 0;
transform: translate(0,-50%);
width: 30rpx;
height: 30rpx;
z-index: 100;
}
.org-title{
margin-bottom: 15rpx;
} }

View File

@ -1,18 +1,328 @@
// pages/index/mineinfo.js // pages/index/mineinfo.js
const app = getApp()
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
sourceUrl: app.baseUrls.testUrl + app.baseUrls.baseImgUrl,
personInfo: {
// birthDate: '2021-01-01',
gender: '46bec29f-2368-44f7-98d0-b33246e5e16d',
cardType: 'b7d74045-d984-4822-b0f3-711b15b933ca',
fullName: '',
idCardNumber: '',
education: '',
telephone: '',
userPhotoId: '',
idCardFront: '',
idCardBack: '',
educationPhoto: ''
},
sexArray: ['男','女'],
sexIdx: 0,
cultrueAll: [],
cultrueList: [],
cultrueIdx: 0,
cultrueId: '',
avatar: '',
bindPhone: '', // 输入绑定的手机号
isBindPhone: false, // 是否绑定了手机号
},
// 获取个人信息
getPersonInfo: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.gerPersonInfo, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
console.log(data)
var sex
if (data.gender == '46bec29f-2368-44f7-98d0-b33246e5e16d') {
sex = 0
} else {
sex = 1
}
self.setData({
personInfo: data,
sexIdx: sex
})
for (let i = 0; i < self.data.cultrueAll.length; i++) {
if (self.data.cultrueAll[i].dataId == data.education) {
self.setData({
cultrueIdx: i
})
}
}
},
function (code, err) {
console.log(err)
})
},
// 选择生日
bindDateChange: function (e) {
var self = this
self.setData({
['personInfo.birthDate']: e.detail.value
})
},
// 选择性别
bindSexPickerChange: function (e) {
var self = this
var sexId
if (e.detail.value == '0') {
sexId = '46bec29f-2368-44f7-98d0-b33246e5e16d'
} else {
sexId = '4a5f549a-d339-4403-8d26-9058e80499b1'
}
self.setData({
sexIdx: e.detail.value,
['personInfo.gender']: sexId
})
},
// 获取文化程度列表
getCulture: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getCultrue, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = ['请选择文化程度']
for (let i = 0; i < data.length; i++) {
result.push(data[i].dataName)
}
self.setData({
cultrueAll: data,
cultrueList: result
})
self.getPersonInfo()
},
function (code, err) {
console.log(err)
})
},
// 选择文化程度
bindCultruePickerChange: function (e) {
var self = this
self.setData({
cultrueIdx: e.detail.value,
cultrueId: self.data.cultrueAll[e.detail.value].dataId,
['personInfo.education']: self.data.cultrueAll[e.detail.value].dataId
})
},
// 上传图片
uploadImg: function (e) {
var self = this
var from = e.currentTarget.dataset.type
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success (res) {
app.restAjax.file(app.restAjax.path(app.apis.doUploadImg, [app.baseUrls.testUrl]), res.tempFilePaths[0],'image', {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = JSON.parse(data).data
if (from == 'avatar') {
self.setData({
['personInfo.userPhotoId']: result
})
} else if (from == 'front') {
self.setData({
['personInfo.idCardFront']: result
})
} else if (from == 'back') {
self.setData({
['personInfo.idCardBack']: result
})
} else {
self.setData({
['personInfo.educationPhoto']: result
})
}
},
function (code, err) {
console.log(err)
})
}
})
},
// 保存个人信息
savePersonInfo: function () {
var self = this
console.log(self.data.personInfo)
if (!self.data.personInfo.fullName) {
wx.showToast({
title: '姓名不能为空',
icon: 'error'
})
return
}
if (!self.data.personInfo.idCardNumber) {
wx.showToast({
title: '证件号不能为空',
icon: 'error'
})
return
}
if (!self.data.personInfo.education) {
wx.showToast({
title: '请选择文化程度',
icon: 'error'
})
return
}
if (!self.data.personInfo.telephone) {
wx.showToast({
title: '电话号不能为空',
icon: 'error'
})
return
}
if (!self.data.personInfo.userPhotoId) {
wx.showToast({
title: '请上传头像',
icon: 'error'
})
return
}
if (!self.data.personInfo.idCardFront) {
wx.showToast({
title: '请上传证件正面',
icon: 'error'
})
return
}
if (!self.data.personInfo.idCardBack) {
wx.showToast({
title: '请上传证件反面',
icon: 'error'
})
return
}
if (!self.data.personInfo.educationPhoto) {
wx.showToast({
title: '请上传学历证书',
icon: 'error'
})
return
}
app.restAjax.post(app.restAjax.path(app.apis.savePersonInfo, [app.baseUrls.testUrl]), self.data.personInfo, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
if (code == '200') {
wx.showToast({
title: '保存成功!',
icon: 'success'
})
setTimeout(function () {
wx.reLaunch({
url: '../index/index',
})
}, 2000)
}
},
function (code, err) {
console.log(err)
})
},
// 输入信息
editInfo: function (e) {
var from = e.currentTarget.dataset.type
var info
if (from == 'name') {
info = 'personInfo.fullName'
} else if (from == 'card') {
info = 'personInfo.idCardNumber'
} else if (from == 'telephone') {
info = 'personInfo.telephone'
}
this.setData({
[info]: e.detail.value
})
},
// 检查是否绑定手机号
checkPhone: function () {
var self = this
app.restAjax.post(app.restAjax.path(app.apis.checkPhone, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
console.log(data)
self.setData({
isBindPhone: data.data
})
},
function (code, err) {
console.log(err)
}
)
},
// 绑定手机
doBindPhone: function () {
var self = this
app.restAjax.post(app.restAjax.path(app.apis.bindPhone, [app.baseUrls.testUrl, self.data.bindPhone]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
if (code == '200') {
wx.showToast({
title: '绑定成功!',
icon: 'success'
})
setTimeout(function () {
self.setData({
isBindPhone: true
})
}, 1500)
self.doLogin()
}
},
function (code, err) {
console.log(err)
}
)
},
// 登录
doLogin: function () {
wx.login({
success: function (res) {
app.restAjax.post(app.restAjax.path(app.apis.login, [app.baseUrls.testUrl]), {
jsCode: res.code
}, {},
function (code, data) {
var token = data.data
wx.setStorage({
key: 'token',
data: token
})
},
function (code, err) {
console.log(err)
})
}
})
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.checkPhone()
this.getCulture()
}, },
/** /**

View File

@ -2,52 +2,123 @@
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}"> <cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">个人信息</view> <view slot="content" style="color:#FFFFFF;">个人信息</view>
</cu-custom> </cu-custom>
<scroll-view style="width:100%;"> <scroll-view style="width:100%;margin-bottom: 110rpx;" wx:if="{{isBindPhone}}">
<view class="content-view "> <view class="content-view ">
<view class="content-detail"> <view class="content-detail">
<view class="table-list padding-bottom"> <view class="table-list padding-bottom">
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">姓名:</view> <view class="table-item-title text-blod text-black text-lg">姓名:</view>
<view class="table-item-content-3 text-black text-df">姓名</view> <view class="table-item-content-3 text-black text-df">
<input type="text" placeholder="请输入姓名" bindinput="editInfo" data-type="name" value="{{personInfo.fullName}}"/>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">证件号码:</view> <view class="table-item-title text-blod text-black text-lg">证件号码:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<input type="text" placeholder="请输入证件号码" bindinput="editInfo" data-type="card" value="{{personInfo.idCardNumber}}"/>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <!-- <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">出生日期:</view> <view class="table-item-title text-blod text-black text-lg">出生日期:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<picker mode="date" value="{{personInfo.birthDate}}" bindchange="bindDateChange">
<view class="picker">
{{personInfo.birthDate}}
</view>
</picker>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view> -->
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">性别:</view> <view class="table-item-title text-blod text-black text-lg">性别:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<picker bindchange="bindSexPickerChange" value="{{sexIdx}}" range="{{sexArray}}">
<view class="picker">
{{sexArray[sexIdx]}}
</view>
</picker>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">文化程度:</view> <view class="table-item-title text-blod text-black text-lg">文化程度:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<picker bindchange="bindCultruePickerChange" value="{{cultrueIdx}}" range="{{cultrueList}}">
<view class="picker">
{{cultrueList[cultrueIdx]}}
</view>
</picker>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">电话号码:</view> <view class="table-item-title text-blod text-black text-lg">电话号码:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<input type="text" placeholder="请输入电话号码" bindinput="editInfo" data-type="telephone" value="{{personInfo.telephone}}"/>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <!-- <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">单位名称:</view> <view class="table-item-title text-blod text-black text-lg">单位名称:</view>
<view class="table-item-content-3 text-black text-df">188888888888888</view> <view class="table-item-content-3 text-black text-df">
<input type="text" placeholder="请输入单位名称"/>
</view>
</view>
<view class="line-gray"></view> -->
<view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">头像:</view>
<view class="table-item-content-3 text-black text-df photo-box">
<image src="../../images/icons/upload-avatar.png" bindtap="uploadImg" wx:if="{{!personInfo.userPhotoId}}" class="default-avatar" mode="widthFix" data-type="avatar"></image>
<image bindtap="uploadImg" class="avatar" src="{{sourceUrl + personInfo.userPhotoId}}" wx:if="{{personInfo.userPhotoId}}" mode="widthFix" data-type="avatar"></image>
</view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
<view class="table-item-no"> <view class="table-item-no">
<view class="table-item-title text-blod text-black text-lg">通信地址:</view> <view class="table-item-title text-blod text-black text-lg">学历证书:</view>
<view class="table-item-content-3 text-black text-df">内蒙古呼和浩特市赛罕区内蒙古呼和浩特市赛罕区内蒙古呼和浩特市赛罕区内蒙古呼和浩特市赛罕区 <view class="table-item-content-3 text-black text-df photo-box">
<image src="../../images/icons/upload-edu.png" bindtap="uploadImg" wx:if="{{!personInfo.educationPhoto}}" mode="widthFix" data-type="education" style="width: 350rpx;"></image>
<image class="card" src="{{sourceUrl + personInfo.educationPhoto}}" wx:if="{{personInfo.educationPhoto}}" mode="widthFix" data-type="education"></image>
</view>
</view>
<view class="line-gray"></view>
<view class="table-item-no">
<view class="id-card-box id-card-box-f">
<view class="card-title">身份证正面:</view>
<view class="id-card-photo">
<image src="../../images/icons/upload-id-f.png" bindtap="uploadImg" wx:if="{{!personInfo.idCardFront}}" class="default-avatar" mode="widthFix" data-type="front"></image>
<image class="card" src="{{sourceUrl + personInfo.idCardFront}}" wx:if="{{personInfo.idCardFront}}" mode="widthFix" data-type="front"></image>
</view>
</view>
<view class="id-card-box id-card-box-f">
<view class="card-title">身份证反面:</view>
<view class="id-card-photo">
<image src="../../images/icons/upload-id-b.png" bindtap="uploadImg" data-type="back" wx:if="{{!personInfo.idCardBack}}" class="default-avatar" mode="widthFix"></image>
<image class="card" src="{{sourceUrl + personInfo.idCardBack}}" bindtap="uploadImg" data-type="back" wx:if="{{personInfo.idCardBack}}" mode="widthFix"></image>
</view>
</view> </view>
</view> </view>
<view class="line-gray"></view> <view class="line-gray"></view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="bind-phone" wx:if="{{!isBindPhone}}">
<view class="content-view">
<view class="table-item-no bind-phone-box">
<view class="table-item-title text-blod text-black text-lg">手机号码:</view>
<view class="table-item-content-3 text-black text-df">
<input type="text" placeholder="请输入手机号码" model:value="{{bindPhone}}"/>
</view>
</view>
</view>
</view>
<view class="save" wx:if="{{isBindPhone}}">
<view class="save-btn" bindtap="savePersonInfo">保存</view>
</view>
<view class="save" wx:if="{{!isBindPhone}}">
<view class="save-btn" bindtap="doBindPhone">绑定手机</view>
</view>

View File

@ -1 +1,56 @@
/* pages/index/mineinfo.wxss */ .save{
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 15rpx;
background: #fff;
z-index: 10000;
}
.save-btn{
width: 100%;
height: 80rpx;
text-align: center;
line-height: 80rpx;
background-color: #494CBD;
color: #fff;
font-size: 36rpx;
font-weight: bold;
border-radius: 45rpx;
}
.avatar{
width: 60%;
}
.card{
max-width: 480rpx;
}
/* .bind-phone{
padding: 10rpx;
background-color: #fff;
} */
.bind-phone-box{
background-color: #fff;
}
.table-item-title{
width: 30%;
}
.table-item-content-3{
width: 70%;
}
.default-avatar{
width: 220rpx;
}
.id-card-box{
width: 50%;
box-sizing: border-box;
}
.id-card-box-f{
padding-right: 15rpx;
}
.id-card-box-f image{
width: 100%;
}
.card-title{
font-size: 32rpx;
margin-bottom: 15rpx;
}

View File

@ -29,13 +29,15 @@ Page({
(code, data) => { (code, data) => {
wx.hideLoading({}) wx.hideLoading({})
if (code == 200) { if (code == 200) {
var ps = data.institutionImage.split(',') if (data.institutionImage) {
var photos = [] var ps = data.institutionImage.split(',')
for (var i = 0; i < ps.length; i++) { var photos = []
var urls = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + ps[i] for (var i = 0; i < ps.length; i++) {
photos = photos.concat(urls) var urls = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + ps[i]
photos = photos.concat(urls)
}
data.showPhoto = photos
} }
data.showPhoto = photos
_self.setData({ _self.setData({
detailBean: data detailBean: data
}) })

View File

@ -6,33 +6,36 @@
<view class="content-view"> <view class="content-view">
<view class="content-detail"> <view class="content-detail">
<view class="notice-title text-xl text-bold"> <view class="notice-title text-xl text-bold">
<text>{{detailBean.institutionName}}</text> {{detailBean.institutionName}}
</view>
<view class="line-gray margin-top-sm" style="width:100%;height:20rpx;"></view>
<view class="flex margin-top-sm" style="width:100%">
<view class="text-lg text-black">
<text class="cuIcon-people text-darkblue"></text>
负责人:{{detailBean.institutionPrincipal}}</view>
</view> </view>
<view class="flex margin-top-sm" style="width:100%"> <view class="flex margin-top-sm" style="width:100%">
<view class="text-lg text-black"> <view class="text-lg text-black">
<text class="cuIcon-mobile text-darkblue"></text> <text>负责人:</text>
联系方式:{{detailBean.institutionContact}}</view> {{detailBean.institutionPrincipal}}
</view>
</view> </view>
<view class="flex margin-top-sm" style="width:100%"> <view class="flex margin-top-sm" style="width:100%">
<view class="text-lg text-black"> <view class="text-lg text-black">
<text class="cuIcon-time text-darkblue"></text> <text>联系方式:</text>
成立日期:{{detailBean.institutionFoundingTime}}</view> {{detailBean.institutionContact}}
</view>
</view> </view>
<view class="flex margin-top-sm" style="width:100%"> <view class="flex margin-top-sm" style="width:100%">
<view class="text-lg text-black"> <view class="text-lg text-black">
<text class="cuIcon-location text-darkblue"></text>地址:{{detailBean.institutionAddress}}</view> <text>成立日期:</text>
{{detailBean.institutionFoundingTime}}</view>
</view>
<view class="flex margin-top-sm" style="width:100%">
<view class="text-lg text-black">
<text>地址:</text>
{{detailBean.institutionAddress}}
</view>
</view> </view>
<view class="text-df text-black margin-top"> <view class="text-df text-black margin-top">
<rich-text nodes="{{detailBean.institutionDesc}}" space="nbsp"></rich-text> <rich-text nodes="{{detailBean.institutionDesc}}" space="nbsp"></rich-text>
</view> </view>
<view class="flex margin-top flex-direction"> <view class="flex margin-top flex-direction" wx:if="{{detailBean.showPhoto && detailBean.showPhoto.length > 0}}">
<view class="margin-top-sm" wx:for="{{detailBean.showPhoto}}" wx:for-item="img" wx:key="index"> <view class="margin-top-sm" wx:for="{{detailBean.showPhoto}}" wx:for-item="img" wx:key="index" >
<image src="{{img}}" mode="widthFix"></image> <image src="{{img}}" mode="widthFix"></image>
</view> </view>
</view> </view>

View File

@ -1 +1,15 @@
/* pages/institutions/institutionsdetail.wxss */ /* pages/institutions/institutionsdetail.wxss */
.content-view{
padding: 30rpx;
}
.content-detail{
box-shadow: 0 0 10rpx #ccc;
padding: 50rpx;
}
.notice-title{
border-bottom: 1px solid #E5E5E5;
padding-bottom: 40rpx;
}
text{
color: #00A0E9;
}

View File

@ -8,34 +8,25 @@
<input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input> <input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input>
</view> </view>
</view> </view>
<scroll-view style="margin-top:70rpx;padding-left:10rpx;padding-right:10rpx;"> <view class="org">
<view class="list" wx:if="{{institutionsList.length>0}}"> <view class="org-box" wx:for="{{institutionsList}}" wx:key="index" data-item="{{item}}" bindtap="showDetail">
<view class="item bg-white" wx:for="{{institutionsList}}" wx:key="index"> <view class="org-info">
<image class="cu-avatar radius" style="width:200rpx;height:120rpx;min-width:200rpx;min-height:120rpx;" <image src="{{item.showPhoto}}" mode="widthFix"></image>
src="{{item.showPhoto}}" mode="scaleToFill" bindtap="showDetail" data-item="{{item}}"></image> <view class="org-text">
<view class="content"> <view class="org-name">{{item.institutionName}}</view>
<text class="text-cut-two text-black text-bold" bindtap="showDetail" <view class="org-add">{{item.institutionAddress}}</view>
data-item="{{item}}">{{item.institutionName}}</text> <view class="org-phone">负责人:{{item.institutionPrincipal}}</view>
<view class="text-cut text-gray" bindtap="showDetail" data-item="{{item}}"> </view>
<text class="cuIcon-mobile text-darkblue"></text><text </view>
class="margin-left-smm">{{item.institutionContact}}</text> <view class="org-btn-box">
</view> <view class="org-btn">
<view class="text-cut text-gray" bindtap="showDetail" data-item="{{item}}"> <image src="../../images/icons/phone-icon.png" mode="widthFix"></image>
<text class="cuIcon-location text-darkblue"></text><text {{item.institutionContact}}
class="margin-left-smm">{{item.institutionAddress}}</text> </view>
</view> <view class="org-btn" catchtap="doNavigation" data-item="{{item}}">
<view class="bottom-action"> <image src="../../images/icons/go-icon.png" mode="widthFix"></image>
<view> 到这去
<text class="cuIcon-time text-darkblue"></text>
<text class="margin-left-smm">{{item.institutionFoundingTime}}</text>
</view>
<view bindtap="doNavigation" data-item="{{item}}">
<text class="cuIcon-taxi text-darkblue"></text>
<text class="text-darkblue margin-left-smm">去这里</text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<van-empty description="暂无数据" wx:else /> </view>
</scroll-view>

View File

@ -1 +1,65 @@
/* pages/institutions/institutionslist.wxss */ .org{
margin-top: 125rpx;
padding: 0 30rpx;
}
.org-box{
padding: 30rpx 20rpx;
background-color: #fff;
border-radius: 10rpx;
box-shadow: 0 0 10rpx #ccc;
margin-bottom: 30rpx;
}
.org-info{
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
}
.org-info image{
width: 200rpx;
}
.org-text{
width: 420rpx;
}
.org-name{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 32rpx;
color: #333;
font-weight: bold;
margin-bottom: 15rpx;
}
.org-add,.org-phone{
line-height: 45rpx;
font-size: 28rpx;
color: #999;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.org-btn-box{
display: flex;
justify-content: space-between;
}
.org-btn{
width: 49%;
height: 52rpx;
background: linear-gradient(-30deg, #19B3FA, #7FD6FD);
border-radius: 25rpx;
color: #fff;
line-height: 52rpx;
font-size: 28rpx;
text-align: center;
}
.org-btn:last-child{
background: linear-gradient(-30deg, #36C9CB, #86E2E3);
}
.org-btn image{
width:40rpx;
vertical-align: middle;
margin-top: -6rpx;
/* margin-right: 5rpx; */
}
.org-btn:last-child image{
width: 29rpx;
}

View File

@ -8,11 +8,10 @@
<view class="notice-title text-xl text-bold"> <view class="notice-title text-xl text-bold">
<text>{{detailBean.title}}</text> <text>{{detailBean.title}}</text>
</view> </view>
<view class="flex margin-top-sm" style="justify-content:space-around;width:100%"> <view class="flex margin-top-sm" style="justify-content:space-around;width:100%;padding-bottom: 30rpx;border-bottom: 1px solid #E5E5E5;">
<view>发布日期:{{detailBean.publishDate}}</view> <view>发布日期:{{detailBean.publishDate}}</view>
<view>培训机构:{{detailBean.source}}</view> <view>培训机构:{{detailBean.source}}</view>
</view> </view>
<view class="line-gray margin-top-sm" style="width:100%;height:20rpx;"></view>
<view class="text-lg text-black padding-sm"> <view class="text-lg text-black padding-sm">
<rich-text nodes="{{detailBean.content}}" space="nbsp"></rich-text> <rich-text nodes="{{detailBean.content}}" space="nbsp"></rich-text>
</view> </view>

View File

@ -1,2 +1,8 @@
/* pages/notices/noticedetail.wxss */ /* pages/notices/noticedetail.wxss */
.content-view{
padding: 30rpx;
}
.content-detail{
padding: 30rpx;
box-shadow: 0 0 10rpx #ccc;
}

View File

@ -13,13 +13,26 @@ Page({
searchKey: '', searchKey: '',
contentHeight: app.globalData.windowHeight, contentHeight: app.globalData.windowHeight,
currentPage: 1, currentPage: 1,
totalSize: 0 totalSize: 0,
categoryId: '',
pageTitle: '最新公告'
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
if (options.index == 1) {
this.setData({
categoryId: '87a51bb1-451b-4b49-903b-4d847ba9c730',
pageTitle: '最新公告'
})
} else {
this.setData({
categoryId: '92737534-c2ef-487c-b763-4d1fb597388f ',
pageTitle: '考试政策'
})
}
this.getResultsList('') this.getResultsList('')
}, },
showDetail(e) { showDetail(e) {
@ -53,9 +66,10 @@ Page({
} }
}, },
getResultsList(key) { getResultsList(key) {
console.log(key)
var _self = this var _self = this
app.restAjax.get(app.restAjax.path(app.apis.getArticleList, [app.baseUrls.cardUrl]), { app.restAjax.get(app.restAjax.path(app.apis.getArticleList, [app.baseUrls.cardUrl]), {
categoryId: '2ff8f6be-a435-46c1-98b7-47b16c621395', categoryId: _self.data.categoryId,
page: _self.data.currentPage, page: _self.data.currentPage,
rows: '10', rows: '10',
keywords: key keywords: key
@ -63,26 +77,32 @@ Page({
function (code, data) { function (code, data) {
wx.hideLoading({}) wx.hideLoading({})
if (code == 200) { if (code == 200) {
for (var i = 0; i < data.rows.length; i++) { if (data.rows.length > 0) {
var item = data.rows[i] for (var i = 0; i < data.rows.length; i++) {
if (item.coverPhotos.length > 0) { var item = data.rows[i]
var photos = item.coverPhotos.split(',') if (item.coverPhotos.length > 0) {
data.rows[i].showPhoto = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + photos[0] var photos = item.coverPhotos.split(',')
data.rows[i].showPhoto = app.baseUrls.cardUrl + app.baseUrls.baseImgUrl + photos[0]
} else {
data.rows[i].showPhoto = 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.czcaizhi.com%2FContent%2FUploadFiles%2Fimage%2F20180920%2F20180920133956_3429.jpg&refer=http%3A%2F%2Fwww.czcaizhi.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1622110389&t=4ae9d4f943c30ac6d43801515eec97e5'
}
}
if (_self.data.currentPage > 1) {
if (data.rows.length > 0) {
_self.data.noticeList = _self.data.noticeList.concat(data.rows)
}
} else { } else {
data.rows[i].showPhoto = 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fwww.czcaizhi.com%2FContent%2FUploadFiles%2Fimage%2F20180920%2F20180920133956_3429.jpg&refer=http%3A%2F%2Fwww.czcaizhi.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1622110389&t=4ae9d4f943c30ac6d43801515eec97e5' _self.data.noticeList = data.rows
}
}
if (_self.data.currentPage > 1) {
if (data.rows.length > 0) {
_self.data.noticeList = _self.data.noticeList.concat(data.rows)
} }
_self.setData({
noticeList: _self.data.noticeList,
totalSize: data.total
})
} else { } else {
_self.data.noticeList = data.rows _self.setData({
currentPage: _self.data.currentPage--
})
} }
_self.setData({
noticeList: _self.data.noticeList,
totalSize: data.total
})
} }
}, },
function (code, err) { function (code, err) {
@ -122,8 +142,19 @@ Page({
wx.showLoading({ wx.showLoading({
title: '搜索中...', title: '搜索中...',
}) })
console.log(_self.data.searchKey)
_self.getResultsList(_self.data.searchKey) _self.getResultsList(_self.data.searchKey)
clearInterval(setTimer) //清除计时器 clearInterval(setTimer) //清除计时器
}) })
}, },
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
var self = this
this.setData({
currentPage: self.data.currentPage++
})
this.getResultsList('')
},
}) })

View File

@ -1,6 +1,6 @@
<!--pages/branches/brancheslist.wxml--> <!--pages/branches/brancheslist.wxml-->
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}"> <cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">开班通告</view> <view slot="content" style="color:#FFFFFF;">{{pageTitle}}</view>
</cu-custom> </cu-custom>
<view class="cu-bar bg-white search fixed" style="top:{{CustomBar}}px"> <view class="cu-bar bg-white search fixed" style="top:{{CustomBar}}px">
<view class="search-form round" style="margin-top:5rpx;margin-bottom:5rpx"> <view class="search-form round" style="margin-top:5rpx;margin-bottom:5rpx">

View File

@ -1 +1,4 @@
/* pages/notices/noticeslist.wxss */ /* pages/notices/noticeslist.wxss */
.content text{
display: block;
}

View File

@ -8,12 +8,12 @@ Page({
data: { data: {
scoreList: [{}, {}, {}, {}, {}, {}, {}, {}, {}] scoreList: [{}, {}, {}, {}, {}, {}, {}, {}, {}]
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
}, },
/** /**

View File

@ -10,21 +10,22 @@ Page({
CustomBar: app.globalData.CustomBar, CustomBar: app.globalData.CustomBar,
countTime: 2000, //延迟搜索 时间 countTime: 2000, //延迟搜索 时间
searchWaiting: false, //是否等待搜索倒计时中, searchWaiting: false, //是否等待搜索倒计时中,
searchKey: '' searchKey: '',
idCardNumber: ''
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.getResultsList('') this.checkInfo()
}, },
getResultsList(key) { getResultsList(key) {
var _self = this var _self = this
wx.showLoading({ wx.showLoading({
title: '加载中...', title: '加载中...',
}) })
app.restAjax.get(app.restAjax.path(app.apis.getScoreList, [app.baseUrls.cardUrl]), {}, { app.restAjax.get(app.restAjax.path(app.apis.getAchievement + _self.data.idCardNumber, [app.baseUrls.cardUrl]), {}, {
headers: { headers: {
token: app.globalData.token token: app.globalData.token
} }
@ -60,6 +61,35 @@ Page({
this.timer(); this.timer();
} }
}, },
checkInfo: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.checkEditedInfo, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
if (!data.idCardNumber) {
wx.showToast({
icon:'none',
title: '请先前往个人中心填写个人信息!',
})
setTimeout(function () {
wx.reLaunch({
url: '../index/index',
})
}, 1500)
} else {
self.setData({
idCardNumber: data.idCardNumber
})
self.getResultsList('')
}
},
function (code, err) {
console.log(err)
})
},
/** /**
* 延迟搜索 * 延迟搜索
*/ */

View File

@ -8,31 +8,27 @@
<input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input> <input type="text" placeholder="请输入关键字" confirm-type="search" bindinput="doSearch"></input>
</view> </view>
</view> --> </view> -->
<scroll-view style="padding-left:10rpx;padding-right:10rpx;margin-top:-10px;"> <view style="padding:30rpx;">
<view class="list" wx:if="{{resultsList.length>0}}"> <view class="achievement">
<view class="item bg-white" wx:for="{{resultsList}}" wx:key="index" bindtap="showDetail" data-item="{{item}}"> <view class="achievement-box" wx:for="{{resultsList}}" wx:if="{{resultsList.length>0}}" wx:key="index">
<view class="content"> <view class="row org-title">
<text class="text-cut-two text-black text-bold">{{item.classPlanDTO.planName}}</text> {{item.orgName}}
<view class="margin-top-sm"> </view>
<text class="cuIcon-time text-darkblue"></text> <view class="row">
<text>考试日期:{{item.examStartTime}}</text> <text>作业类别:</text>{{item.parentWorkTypeName}}
</view> </view>
<view class="margin-top-sm"> <view class="row">
<text class="cuIcon-location text-darkblue"></text> <text>准操项目:</text>{{item.workTypeName}}
<text>培训机构:{{item.classPlanDTO.orgName}}</text> </view>
</view> <view class="row">
<view class="margin-top-sm"> <text>培训班次:</text>{{item.planName}}
<text class="cuIcon-form text-darkblue"></text> </view>
<text>专业:{{item.classPlanDTO.workerCatalogName}}</text> <view class="row">
</view> <text>培训类别:</text>{{item.applyLeiBie}}
<view class="margin-top-sm flex align-center"> </view>
<text class="cuIcon-text text-darkblue"></text> <view class="row">
<view>成绩: <text>成绩:</text>{{item.examScore}}
<text class="text-red text-xl">{{item.applyTestScores}}</text>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
<van-empty description="暂无数据" wx:else /> </view>
</scroll-view>

View File

@ -1 +1,23 @@
/* pages/results/resultslist.wxss */ /* pages/results/resultslist.wxss */
.row{
line-height: 50rpx;
font-size: 30rpx;
color: #333;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.row text{
color: #39CACC;
}
.org-title{
font-weight: bold;
font-size: 32rpx;
}
.achievement-box{
padding: 30rpx;
border-radius: 10rpx;
box-shadow: 0 0 10rpx #eee;
background-color: #fff;
margin-bottom: 15rpx;
}

182
pages/sign/sign.js Normal file
View File

@ -0,0 +1,182 @@
// pages/sign/sign.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
// 科目类型
typeAll: [],
typeList: [],
typeIdx: 0,
typeId: '',
// 报名工种
signTypeAll: [],
signTyleList: [],
signTypeIdx: 0,
signTypeId: '',
orgList: []
},
// 获取科目类型
getTypeList: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getTrainTypeList, [app.baseUrls.testUrl]), {
workTypeParentId: 0
}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = ['请选择科目类型']
for (let i = 0; i < data.length; i++) {
result.push(data[i].workTypeName)
}
self.setData({
typeList: result,
typeAll: data,
typeId: data[0].workTypeId
})
},
function (code, err) {
console.log(err)
})
},
// 获取报名工种
getSignTypeList: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getTrainTypeList, [app.baseUrls.testUrl]), {
workTypeParentId: self.data.typeId
}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = []
for (let i = 0; i < data.length; i++) {
result.push(data[i].workTypeName)
}
self.setData({
signTyleList: result,
signTypeAll: data,
signTypeId: data[0].workTypeId
})
self.getOrgList()
},
function (code, err) {
console.log(err)
})
},
// 选择科目类型
bindPickerChange: function (e) {
var self = this
if (e.detail.value != '0') {
var id = self.data.typeAll[e.detail.value - 1].workTypeId
self.setData({
typeIdx: e.detail.value,
typeId: id,
signTypeIdx: 0
})
self.getSignTypeList()
} else {
self.setData({
typeIdx: e.detail.value,
typeId: '',
signTypeIdx: 0,
signTyleList: [],
orgList: []
})
}
},
// 选择报名工种
bindSignPickerChange: function (e) {
var self = this
var curId = self.data.signTypeAll[e.detail.value].workTypeId
self.setData({
signTypeIdx: e.detail.value,
signTypeId: curId
})
self.getOrgList()
},
// 获取培训机构列表
getOrgList: function (id) {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getOrgList, [app.baseUrls.testUrl]), {
workTypeId: self.data.signTypeId
}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
self.setData({
orgList: data
})
},
function (code, err) {
console.log(err)
})
},
doSign: function (e) {
wx.navigateTo({
url: '../signOrg/signOrg?applyWorkTypeId=' + this.data.signTypeId + '&applyInstitutionId=' + e.currentTarget.dataset.org,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getTypeList()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

3
pages/sign/sign.json Normal file
View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

46
pages/sign/sign.wxml Normal file
View File

@ -0,0 +1,46 @@
<!--index.wxml-->
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">培训报名</view>
</cu-custom>
<view class="train-type">
<view class="type-box">
<image src="../../images/icons/type1.png" style="width: 110rpx;" mode="widthFix"></image>
<picker bindchange="bindPickerChange" value="{{typeIdx}}" range="{{typeList}}">
科目类型:
<view class="picker">
{{typeList[typeIdx]}}
</view>
</picker>
</view>
<view class="type-box" wx:if="{{signTyleList && signTyleList.length>0}}">
<image src="../../images/icons/type2.png" style="width: 110rpx;" mode="widthFix"></image>
<picker bindchange="bindSignPickerChange" value="{{signTypeIdx}}" range="{{signTyleList}}" wx:if="{{signTyleList && signTyleList.length>0}}">
报名工种:
<view class="picker">
{{signTyleList[signTypeIdx]}}
</view>
</picker>
</view>
</view>
<view class="org-list">
<view class="org-box {{item.applyStatus == 'applyTrue'?'signable':'unsignable'}}" wx:for="{{orgList}}" wx:key="index">
<view class="org-name">{{item.institutionName}}</view>
<view class="org-add">
<text>地址:</text>{{item.institutionAddress}}
</view>
<view class="org-info">
<text>开班人数:</text>{{item.applyUserNum1}}人
</view>
<view class="org-info">
<text>已报人数:</text>{{item.applyUserNum2}}人
</view>
<view class="org-info">
<text>过审人数:</text>{{item.applyUserNum3}}人
</view>
<view class="org-sign" bindtap="doSign" wx:if="{{item.applyStatus == 'applyTrue'}}" data-org="{{item.institutionId}}">报名</view>
<view class="org-sign signed" wx:elif="{{item.applyStatus == 'applyFalse'}}">已报名</view>
<view class="org-sign lose" wx:else>机构已开班</view>
</view>
</view>

78
pages/sign/sign.wxss Normal file
View File

@ -0,0 +1,78 @@
.train-type{
padding: 30rpx;
background-color: #fff;
box-shadow: 0 0 10rpx #ccc;
}
.type-box{
display: flex;
justify-content: space-between;
margin-bottom: 30rpx;
}
.type-box:last-child{
margin-bottom: 0;
}
.type-box image{
width: 110rpx;
}
.type-box picker{
width: 550rpx;
font-size: 34rpx;
margin-top: 10rpx;
}
/* picker:last-child{
margin-bottom: 0;
} */
.org-list{
padding: 15px;
}
.org-box{
margin-bottom: 20rpx;
background-color: #fff;
padding: 15rpx;
border-radius: 10rpx;
}
.org-name{
font-size: 34rpx;
font-weight: bold;
margin-bottom: 5rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.org-add{
font-size: 28rpx;
margin-bottom: 5rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 45rpx;
}
.org-info{
line-height: 45rpx;
font-size: 28rpx;
}
.org-sign{
font-size: 30rpx;
width: 130rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
color: #fff;
margin-top: 15rpx;
border-radius: 10rpx;
}
.signable .org-sign{
background: linear-gradient(90deg, #36C9CB, #6AD4D5);
}
.unsignable .org-sign{
background: linear-gradient(90deg, #FA98B4, #FE5C86);
}
.signed, .lose{
background-color: rgba(255, 0, 0, 0.6);
}
.signable text{
color: #39CACC;
}
.unsignable text{
color: #FE628A;
}

455
pages/signOrg/signOrg.js Normal file
View File

@ -0,0 +1,455 @@
// pages/signOrg/signOrg.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
sourceUrl: app.baseUrls.testUrl + app.baseUrls.baseImgUrl,
cultrueAll: [],
cultrueList: [],
cultrueIdx: 0,
cultrueId: '',
signInfo: {
applyFenlei: 1,
applyName: '',
applySex: '',
applyCardNumber: '',
applyPhone: '',
applyUnitName: '',
applyWorkTypeId: '',
applyInstitutionId: '',
idCardFrontPhoto: '',
idCardBackPhoto: '',
educationPhoto: '',
applyUserCardPhoto: '',
applyTakeCardPhoto: '',
takeCardNumber: '',
cardTimeLimit: '2021-01-01',
rePeiXunDate: '2021-01-01',
applyRePeiXunPhoto: '',
applyUnitType: '',
applyUnitBelong: '',
applySchool: '',
applySubject: '',
applyLeiBie: '',
applyCultureLevel: ''
},
pageType: ''
},
getCulture: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getCultrue, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = ['请选择文化程度']
for (let i = 0; i < data.length; i++) {
result.push(data[i].dataName)
}
self.setData({
cultrueAll: data,
cultrueList: result
})
},
function (code, err) {
console.log(err)
})
},
bindPickerChange: function (e) {
var self = this
self.setData({
cultrueIdx: e.detail.value,
cultrueId: self.data.cultrueAll[e.detail.value - 1].dataId,
['signInfo.applyCultureLevel']: self.data.cultrueAll[e.detail.value - 1].dataId
})
},
changeType: function (e) {
if (e.detail.value != this.data.signInfo.applyFenlei) {
this.setData({
['signInfo.applyFenlei']: e.detail.value
})
if (e.detail.value == '1') {
this.setData({
['signInfo.applyRePeiXunPhoto']: '',
['signInfo.applyTakeCardPhoto']: ''
})
} else if (e.detail.value == '3') {
this.setData({
['signInfo.applyRePeiXunPhoto']: ''
})
}
}
},
// 获取个人信息
getPersonInfo: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.gerPersonInfo, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
for (let i = 0; i < self.data.cultrueAll.length; i++) {
if (self.data.cultrueAll[i].dataId == data.education) {
self.setData({
cultrueIdx: i + 1,
['signInfo.applyCultureLevel'] : self.data.cultrueAll[i].dataId
})
}
}
self.setData({
['signInfo.applyName']: data.fullName,
['signInfo.applySex']: data.gender,
['signInfo.applyCardNumber']: data.idCardNumber,
['signInfo.applyPhone']: data.telephone,
['signInfo.applyUserCardPhoto']: data.userPhotoId,
['signInfo.educationPhoto']: data.educationPhoto,
['signInfo.idCardBackPhoto']: data.idCardBack,
['signInfo.idCardFrontPhoto']: data.idCardFront,
})
},
function (code, err) {
console.log(err)
})
},
editInfo: function (e) {
var self = this
var type = e.currentTarget.dataset.type
if (type == 'name') {
self.setData({
['signInfo.applyName']: e.detail.value
})
} else if (type == 'card') {
self.setData({
['signInfo.applyCardNumber']: e.detail.value
})
} else if (type == 'phone') {
self.setData({
['signInfo.applyPhone']: e.detail.value
})
} else if (type == 'work') {
self.setData({
['signInfo.applyUnitName']: e.detail.value
})
} else if (type == 'take') {
self.setData({
['signInfo.takeCardNumber']: e.detail.value
})
} else if (type == 'type') {
self.setData({
['signInfo.applyUnitType']: e.detail.value
})
} else if (type == 'position') {
self.setData({
['signInfo.applyUnitWork']: e.detail.value
})
} else if (type == 'belong') {
self.setData({
['signInfo.applyUnitBelong']: e.detail.value
})
} else if (type == 'school') {
self.setData({
['signInfo.applySchool']: e.detail.value
})
} else if (type == 'subject') {
self.setData({
['signInfo.applySubject']: e.detail.value
})
} else if (type == 'zhicheng') {
self.setData({
['signInfo.applyZhiCheng']: e.detail.value
})
} else if (type == 'leibie') {
self.setData({
['signInfo.applyLeiBie']: e.detail.value
})
}
},
submitSignOrg: function () {
var self = this
if (!self.data.signInfo.applyFenlei) {
wx.showToast({
title: '请选择培训类型!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyName) {
wx.showToast({
title: '姓名不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyCultureLevel) {
wx.showToast({
title: '请选择文化程度!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyCardNumber) {
wx.showToast({
title: '身份证号不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyPhone) {
wx.showToast({
title: '手机号不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyUnitName) {
wx.showToast({
title: '工作单位不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyRePeiXunPhoto && self.data.signInfo.applyFenlei == '2') {
wx.showToast({
title: '请上传再培训证明照片!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyTakeCardPhoto && self.data.signInfo.applyFenlei == '2') {
wx.showToast({
title: '请上传证书个人信息页!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyTakeCardPhoto && self.data.signInfo.applyFenlei == '3') {
wx.showToast({
title: '请上传证书个人信息页!',
icon: 'error'
})
return
}
if (!self.data.signInfo.takeCardNumber && self.data.signInfo.applyFenlei != '1') {
wx.showToast({
title: '证件号码不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyLeiBie && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '培训类别不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyUnitType && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '单位类型不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyUnitWork && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '职务不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyUnitBelong && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '单位所在区域不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applySchool && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '毕业院校不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applySubject && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '所学专业不能为空!',
icon: 'error'
})
return
}
if (!self.data.signInfo.applyZhiCheng && self.data.pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66') {
wx.showToast({
title: '职称不能为空!',
icon: 'error'
})
return
}
app.restAjax.post(app.restAjax.path(app.apis.signOrg, [app.baseUrls.testUrl]), self.data.signInfo, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
if (code == '200') {
wx.showToast({
title: '报名成功!',
icon: 'success'
})
setTimeout(function () {
wx.reLaunch({
url: '../index/index',
})
}, 1500)
}
},function (code, err) {
console.log(err)
})
},
// 上传图片
uploadImg: function (e) {
var self = this
var from = e.currentTarget.dataset.type
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success (res) {
app.restAjax.file(app.restAjax.path(app.apis.doUploadImg, [app.baseUrls.testUrl]), res.tempFilePaths[0],'image', {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
var result = JSON.parse(data).data
if (from == 'take') {
self.setData({
['signInfo.applyTakeCardPhoto']: result
})
} else if (from == 'photo') {
self.setData({
['signInfo.applyUserCardPhoto']: result
})
} else if (from == 'edu') {
self.setData({
['signInfo.educationPhoto']: result
})
} else if (from == 'cardF') {
self.setData({
['signInfo.idCardFrontPhoto']: result
})
} else if (from == 'cardB') {
self.setData({
['signInfo.idCardBackPhoto']: result
})
} else if (from == 'person') {
self.setData({
['signInfo.applyTakeCardPhoto']: result
})
} else {
self.setData({
['signInfo.applyRePeiXunPhoto']: result
})
}
},
function (code, err) {
console.log(err)
}
)
}
})
},
bindDateChange: function (e) {
var self = this
if (e.currentTarget.dataset.type == 'limit') {
self.setData({
['signInfo.cardTimeLimit']: e.detail.value
})
} else {
self.setData({
['signInfo.rePeiXunDate']: e.detail.value
})
}
},
getPageType: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getPageType, [app.baseUrls.testUrl]), {
workerCatalog: self.data.signInfo.applyWorkTypeId
}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
self.setData({
pageType: data.parentWorkerCatalog
})
},function (code, err) {
console.log(err)
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
['signInfo.applyWorkTypeId']: options.applyWorkTypeId,
['signInfo.applyInstitutionId']: options.applyInstitutionId
})
this.getCulture()
this.getPersonInfo()
this.getPageType()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

177
pages/signOrg/signOrg.wxml Normal file
View File

@ -0,0 +1,177 @@
<!--index.wxml-->
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">培训报名</view>
</cu-custom>
<view class="main-box">
<view class="row">
<view class="row-title">培训类型:</view>
<view class="row-content">
<radio-group bindchange="changeType">
<radio value="1" checked>初训</radio>
<radio value="2">复训</radio>
<radio value="3">换证</radio>
</radio-group>
</view>
</view>
<view class="row">
<view class="row-title">姓名:</view>
<view class="row-content">
<input type="text" placeholder="请输入姓名" bindinput="editInfo" value="{{signInfo.applyName}}" data-type="name"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">培训类别:</view>
<view class="row-content">
<input type="text" placeholder="请输入培训类别,如:安全员、负责人" bindinput="editInfo" data-type="leibie"/>
</view>
</view>
<view class="row">
<view class="row-title">性别:</view>
<view class="row-content">
<radio-group bindchange="changeGender">
<radio value="46bec29f-2368-44f7-98d0-b33246e5e16d" checked="{{signInfo.applySex == '46bec29f-2368-44f7-98d0-b33246e5e16d'}}"> 男</radio>
<radio value="4a5f549a-d339-4403-8d26-9058e80499b1" checked="{{signInfo.applySex == '4a5f549a-d339-4403-8d26-9058e80499b1'}}"> 女</radio>
</radio-group>
</view>
</view>
<view class="row">
<view class="row-title">文化程度:</view>
<view class="row-content">
<picker bindchange="bindPickerChange" value="{{cultrueIdx}}" range="{{cultrueList}}">
<view class="picker">
{{cultrueList[cultrueIdx]}}
</view>
</picker>
</view>
</view>
<view class="row">
<view class="row-title">身份证号:</view>
<view class="row-content">
<input type="text" placeholder="请输入身份证号" bindinput="editInfo" data-type="card" value="{{signInfo.applyCardNumber}}"/>
</view>
</view>
<view class="row">
<view class="row-title">手机号码:</view>
<view class="row-content">
<input type="text" placeholder="请输入手机号码" bindinput="editInfo" data-type="phone" value="{{signInfo.applyPhone}}"/>
</view>
</view>
<view class="row">
<view class="row-title">工作单位:</view>
<view class="row-content">
<input type="text" placeholder="请输入工作单位" bindinput="editInfo" data-type="work"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">单位类型:</view>
<view class="row-content">
<input type="text" placeholder="请输入单位类型" bindinput="editInfo" data-type="type"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">职务:</view>
<view class="row-content">
<input type="text" placeholder="请输入职务" bindinput="editInfo" data-type="position"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">单位所在区域:</view>
<view class="row-content">
<input type="text" placeholder="请输入单位所在区域" bindinput="editInfo" data-type="belong"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">毕业院校:</view>
<view class="row-content">
<input type="text" placeholder="请输入毕业院校" bindinput="editInfo" data-type="school"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">所学专业:</view>
<view class="row-content">
<input type="text" placeholder="请输入所学专业" bindinput="editInfo" data-type="subject"/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">职称:</view>
<view class="row-content">
<input type="text" placeholder="请输入职称" bindinput="editInfo" data-type="zhicheng"/>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenlei == '2' || signInfo.applyFenlei == '3' && pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">再培训证明照片:</view>
<view class="row-content">
<image src="../../images/icons/upload-repeixun.png" bindtap="uploadImg" data-type="retrain" style="width: 350rpx;" mode="widthFix" wx:if="{{!signInfo.applyRePeiXunPhoto}}"></image>
<image src="{{sourceUrl + signInfo.applyRePeiXunPhoto}}" mode="widthFix" bindtap="uploadImg" data-type="retrain" style="max-width: 80%;" wx:if="{{signInfo.applyRePeiXunPhoto}}"></image>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenlei == '2' || signInfo.applyFenlei == '3'}}">
<view class="row-title">证书个人信息页:</view>
<view class="row-content">
<image src="../../images/icons/upload-repeixun.png" bindtap="uploadImg" data-type="person" style="width: 350rpx;" mode="widthFix" wx:if="{{!signInfo.applyTakeCardPhoto}}"></image>
<image src="{{sourceUrl + signInfo.applyTakeCardPhoto}}" bindtap="uploadImg" data-type="person" mode="widthFix" style="max-width: 80%;" wx:if="{{signInfo.applyTakeCardPhoto}}"></image>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenlei == '2' || signInfo.applyFenlei == '3'}}">
<view class="row-title">证件号码:</view>
<view class="row-content">
<input type="text" placeholder="请输入证件号码" bindinput="editInfo" data-type="take"/>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenlei == '2' || signInfo.applyFenlei == '3'}}">
<view class="row-title">证件有效期:</view>
<view class="row-content">
<picker mode="date" value="{{signInfo.cardTimeLimit}}" bindchange="bindDateChange" data-type="limit">
<view class="picker">
{{signInfo.cardTimeLimit}}
</view>
</picker>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenlei == '2' || signInfo.applyFenlei == '3'}}">
<view class="row-title">复审时间:</view>
<view class="row-content">
<picker mode="date" value="{{signInfo.rePeiXunDate}}" bindchange="bindDateChange" data-type="retrain">
<view class="picker">
{{signInfo.rePeiXunDate}}
</view>
</picker>
</view>
</view>
<view class="row">
<view class="row-title">照片:</view>
<view class="row-content">
<image src="../../images/icons/upload-photo.png" mode="widthFix" wx:if="{{!signInfo.applyUserCardPhoto}}" style="width: 150rpx;" bindtap="uploadImg" data-type="photo"></image>
<image src="{{sourceUrl + signInfo.applyUserCardPhoto}}" wx:if="{{signInfo.applyUserCardPhoto}}" mode="widthFix" style="width:200rpx" bindtap="uploadImg" data-type="photo"></image>
</view>
</view>
<view class="row">
<view class="row-title">学历证书:</view>
<view class="row-content">
<image src="../../images/icons/upload-edu.png" mode="widthFix" wx:if="{{!signInfo.educationPhoto}}" style="width: 350rpx;" bindtap="uploadImg" data-type="edu"></image>
<image src="{{sourceUrl + signInfo.educationPhoto}}" mode="widthFix" wx:if="{{signInfo.educationPhoto}}" style="max-width: 80%;" bindtap="uploadImg" data-type="edu"></image>
</view>
</view>
<view class="row">
<view class="id-card-box">
<view class="upload-card upload-card-f">
<view class="card-title">身份证正面:</view>
<view class="card-photo">
<image src="../../images/icons/upload-id-f.png" mode="widthFix" wx:if="{{!signInfo.idCardFrontPhoto}}" style="width: 100%;" bindtap="uploadImg" data-type="cardF"></image>
<image src="{{sourceUrl + signInfo.idCardFrontPhoto}}" wx:if="{{signInfo.idCardFrontPhoto}}" mode="widthFix" style="max-width: 100%;" bindtap="uploadImg" data-type="cardF"></image>
</view>
</view>
<view class="upload-card upload-card-b">
<view class="card-title">身份证反面:</view>
<view class="card-photo">
<image src="../../images/icons/upload-id-f.png" mode="widthFix" wx:if="{{!signInfo.idCardBackPhoto}}" style="width: 100%;" bindtap="uploadImg" data-type="cardB"></image>
<image src="{{sourceUrl + signInfo.idCardBackPhoto}}" wx:if="{{signInfo.idCardBackPhoto}}" mode="widthFix" style="max-width: 100%;" bindtap="uploadImg" data-type="cardB"></image>
</view>
</view>
</view>
</view>
</view>
<view class="sign-btn-box">
<view class="sign-btn" bindtap="submitSignOrg">确认报名</view>
</view>

View File

@ -0,0 +1,67 @@
.main-box{
padding: 15rpx;
margin-bottom: 110rpx;
}
.row{
display: flex;
margin-bottom: 15rpx;
background-color: #fff;
padding: 20rpx;
/* line-height: 80rpx; */
}
.row view{
flex-shrink: 0;
}
.row-title{
width: 25%;
font-size: 32rpx;
}
.row-content{
width: 75%;
font-size: 32rpx;
}
radio{
margin-right: 15rpx;
}
radio::before{
left:3px;
}
.row-content{
text-align: right;
}
.row-content input{
width: 100%;
height: 100%;
}
.sign-btn-box{
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 15rpx;
background-color: #fff;
z-index: 1000;
}
.sign-btn{
width: 100%;
height: 80rpx;
text-align: center;
line-height: 80rpx;
background-color: #494CBD;
color: #fff;
font-size: 36rpx;
font-weight: bold;
border-radius: 45rpx;
}
.id-card-box{
display: flex;
justify-content: space-between;
width: 100%;
}
.upload-card{
width: 49%;
}
.card-title{
font-size: 32rpx;
margin-bottom: 15rpx;
}

View File

@ -0,0 +1,124 @@
// pages/signRecord/signRecord.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
sourceUrl: app.baseUrls.testUrl + app.baseUrls.baseImgUrl,
applyId: '',
signInfo: {},
pageType: ''
},
getSignInfo: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.signRecord, [app.baseUrls.testUrl, self.data.applyId]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
self.setData({
signInfo: data
})
self.getPageType()
self.getCulture()
},function (code, err) {
console.log(err)
})
},
getPageType: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getPageType, [app.baseUrls.testUrl]), {
workerCatalog: self.data.signInfo.applyWorkTypeId
}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
self.setData({
pageType: data.parentWorkerCatalog
})
},function (code, err) {
console.log(err)
})
},
getCulture: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getCultrue, [app.baseUrls.testUrl]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},
function (code, data) {
for (let i = 0; i < data.length; i++) {
if (data[i].dataId == self.data.signInfo.applyCultureLevel) {
self.setData({
['signInfo.applyCultureLevel']: data[i].dataName
})
}
}
},
function (code, err) {
console.log(err)
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
applyId: options.applyId
})
this.getSignInfo()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

View File

@ -0,0 +1,177 @@
<!--index.wxml-->
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">培训报名</view>
</cu-custom>
<view class="main-box">
<view class="row">
<view class="row-title">培训类型:</view>
<view class="row-content">
<radio-group bindchange="changeType">
<radio value="1" checked="{{signInfo.applyFenLei == '1'}}" disabled>初训</radio>
<radio value="2" checked="{{signInfo.applyFenLei == '2'}}" disabled>复训</radio>
<radio value="3" checked="{{signInfo.applyFenLei == '3'}}" disabled>换证</radio>
</radio-group>
</view>
</view>
<view class="row">
<view class="row-title">姓名:</view>
<view class="row-content">
<!-- <text>{{signInfo.applyName}}</text> -->
<input type="text" placeholder="请输入姓名" bindinput="editInfo" value="{{signInfo.applyName}}" data-type="name" value="{{signInfo.applyName}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">培训类别:</view>
<view class="row-content">
<input type="text" placeholder="请输入培训类别,如:安全员、负责人" bindinput="editInfo" data-type="leibie" value="{{signInfo.applyLeiBie}}" disabled/>
</view>
</view>
<view class="row">
<view class="row-title">性别:</view>
<view class="row-content">
<radio-group bindchange="changeGender">
<radio disabled value="46bec29f-2368-44f7-98d0-b33246e5e16d" checked="{{signInfo.applySex == '46bec29f-2368-44f7-98d0-b33246e5e16d'}}">男</radio>
<radio disabled value="4a5f549a-d339-4403-8d26-9058e80499b1" checked="{{signInfo.applySex == '4a5f549a-d339-4403-8d26-9058e80499b1'}}">女</radio>
</radio-group>
</view>
</view>
<view class="row">
<view class="row-title">文化程度:</view>
<view class="row-content">
{{signInfo.applyCultureLevel}}
<!-- <picker bindchange="bindPickerChange" value="{{cultrueIdx}}" range="{{cultrueList}}">
<view class="picker">
{{cultrueList[cultrueIdx]}}
</view>
</picker> -->
</view>
</view>
<view class="row">
<view class="row-title">身份证号:</view>
<view class="row-content">
<input type="text" placeholder="请输入身份证号" bindinput="editInfo" data-type="card" value="{{signInfo.applyCardNumber}}"/>
</view>
</view>
<view class="row">
<view class="row-title">手机号码:</view>
<view class="row-content">
<input type="text" placeholder="请输入手机号码" bindinput="editInfo" data-type="phone" value="{{signInfo.applyPhone}}"/>
</view>
</view>
<view class="row">
<view class="row-title">工作单位:</view>
<view class="row-content">
<input type="text" placeholder="请输入工作单位" bindinput="editInfo" data-type="work" value="{{signInfo.applyUnitName}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">单位类型:</view>
<view class="row-content">
<input type="text" placeholder="请输入单位类型" bindinput="editInfo" data-type="type" value="{{signInfo.applyUnitType}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">职务:</view>
<view class="row-content">
<input type="text" placeholder="请输入职务" bindinput="editInfo" data-type="position" value="{{signInfo.applyUnitWork}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">单位所在区域:</view>
<view class="row-content">
<input type="text" placeholder="请输入单位所在区域" bindinput="editInfo" data-type="belong" value="{{signInfo.applyUnitBelong}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">毕业院校:</view>
<view class="row-content">
<input type="text" placeholder="请输入毕业院校" bindinput="editInfo" data-type="school" value="{{signInfo.applySchool}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">所学专业:</view>
<view class="row-content">
<input type="text" placeholder="请输入所学专业" bindinput="editInfo" data-type="subject" value="{{signInfo.applySubject}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">职称:</view>
<view class="row-content">
<input type="text" placeholder="请输入职称" bindinput="editInfo" data-type="zhicheng" value="{{signInfo.applyZhiCheng}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenLei == '2' || signInfo.applyFenLei == '3' && pageType == '530279c5-32a9-44db-bbf0-a04ef1cdae66'}}">
<view class="row-title">再培训证明照片:</view>
<view class="row-content">
<!-- <text style="display: block;" bindtap="uploadImg" data-type="retain">点击上传</text> -->
<image src="{{sourceUrl + signInfo.applyRePeiXunPhoto}}" mode="widthFix" style="max-width: 80%;" wx:if="{{signInfo.applyRePeiXunPhoto}}"></image>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenLei == '2' || signInfo.applyFenLei == '3'}}">
<view class="row-title">证书个人信息页:</view>
<view class="row-content">
<!-- <text style="display: block;" bindtap="uploadImg" data-type="take">点击上传</text> -->
<image src="{{sourceUrl + signInfo.applyTakeCardPhoto}}" mode="widthFix" style="max-width: 80%;" wx:if="{{signInfo.applyTakeCardPhoto}}"></image>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenLei == '2' || signInfo.applyFenLei == '3'}}">
<view class="row-title">证件号码:</view>
<view class="row-content">
<input type="text" placeholder="请输入证件号码" bindinput="editInfo" data-type="take" value="{{signInfo.takeCardNumber}}" disabled/>
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenLei == '2' || signInfo.applyFenLei == '3'}}">
<view class="row-title">证件有效期:</view>
<view class="row-content">
{{signInfo.cardTimeLimit}}
<!-- <picker mode="date" value="{{signInfo.cardTimeLimit}}" bindchange="bindDateChange" data-type="limit">
<view class="picker">
{{signInfo.cardTimeLimit}}
</view>
</picker> -->
</view>
</view>
<view class="row" wx:if="{{signInfo.applyFenLei == '2' || signInfo.applyFenLei == '3'}}">
<view class="row-title">复审时间:</view>
<view class="row-content">
{{signInfo.rePeiXunDate}}
<!-- <picker mode="date" value="{{signInfo.rePeiXunDate}}" bindchange="bindDateChange" data-type="retrain">
<view class="picker">
{{signInfo.rePeiXunDate}}
</view>
</picker> -->
</view>
</view>
<view class="row">
<view class="row-title">照片:</view>
<view class="row-content">
<image src="{{sourceUrl + signInfo.applyUserCardPhoto}}" mode="widthFix" style="width:200rpx"></image>
</view>
</view>
<view class="row">
<view class="row-title">学历证书:</view>
<view class="row-content">
<image src="{{sourceUrl + signInfo.educationPhoto}}" mode="widthFix" style="max-width: 80%;"></image>
</view>
</view>
<view class="row">
<view class="id-card-box">
<view class="upload-card upload-card-f">
<view class="card-title">身份证正面:</view>
<view class="card-photo">
<image src="{{sourceUrl + signInfo.idCardFrontPhoto}}" wx:if="{{signInfo.idCardFrontPhoto}}" mode="widthFix" style="max-width: 100%;"></image>
</view>
</view>
<view class="upload-card upload-card-b">
<view class="card-title">身份证反面:</view>
<view class="card-photo">
<image src="{{sourceUrl + signInfo.idCardBackPhoto}}" wx:if="{{signInfo.idCardBackPhoto}}" mode="widthFix" style="max-width: 100%;"></image>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="sign-btn-box">
<view class="sign-btn" bindtap="submitSignOrg">确认报名</view>
</view> -->

View File

@ -0,0 +1,70 @@
.main-box{
padding: 15rpx;
}
.row{
display: flex;
margin-bottom: 15rpx;
background-color: #fff;
padding: 20rpx 0;
/* line-height: 80rpx; */
}
.row view{
flex-shrink: 0;
}
.row-title{
width: 25%;
text-align: center;
font-size: 32rpx;
}
.row-content{
width: 75%;
font-size: 32rpx;
}
radio{
margin-right: 15rpx;
}
radio::before{
left:3px;
}
.row-content{
text-align: right;
}
.row-content input{
width: 100%;
height: 100%;
}
.sign-btn-box{
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 15rpx;
background-color: #fff;
z-index: 1000;
}
.sign-btn{
width: 100%;
height: 80rpx;
text-align: center;
line-height: 80rpx;
background-color: #11a5fa;
color: #fff;
font-size: 36rpx;
font-weight: bold;
border-radius: 5rpx;
}
radio::disabled::before{
display: none;
}
.id-card-box{
display: flex;
justify-content: space-between;
width: 100%;
}
.upload-card{
width: 49%;
}
.card-title{
font-size: 32rpx;
margin-bottom: 15rpx;
}

View File

@ -0,0 +1,151 @@
// pages/signStatus/signStatus.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
page: {
page: 1,
rows: 10
},
signList: []
},
// 获取报名情况
getApplyStatus: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getMyApply, [app.baseUrls.testUrl]), self.data.page, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
if (data.rows.length > 0) {
for (let i = 0; i < data.rows.length; i++) {
if (data.rows[i].applyAuditState == '0') {
data.rows[i]['statusName'] = 'wait'
} else if (data.rows[i].applyAuditState == '1') {
data.rows[i]['statusName'] = 'draw'
} else if (data.rows[i].applyAuditState == '2') {
data.rows[i]['statusName'] = 'pass'
} else if (data.rows[i].applyAuditState == '3') {
data.rows[i]['statusName'] = 'complete'
} else {
data.rows[i]['statusName'] = 'not-pass'
}
}
self.setData({
signList: self.data.signList.concat(data.rows)
})
} else {
wx.showToast({
title: '暂无更多',
icon: 'none'
})
self.setData({
['page.page']: self.data.page.page -1
})
}
},function (code, err) {
console.log(err)
})
},
// 取消报名
cancelSign: function (e) {
var id = e.currentTarget.dataset.id
var self = this
wx.showModal({
cancelColor: 'cancelColor',
title: '提示',
content: '取消报名后需重新填写报名信息',
success: function (res) {
if (res.confirm) {
app.restAjax.put(app.restAjax.path(app.apis.cancelSign, [app.baseUrls.testUrl, id]), {}, {
headers: {
token: wx.getStorageSync('token')
}
},function (code, data) {
if (code == '200') {
wx.showToast({
title: '取消报名成功!',
})
setTimeout(function () {
wx.reLaunch({
url: '../index/index',
})
}, 1500)
}
},function (code, err) {
console.log(err)
})
}
}
})
},
// 查看详情
checkDetail: function (e) {
wx.navigateTo({
url: '../signRecord/signRecord?applyId=' + e.currentTarget.dataset.id,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getApplyStatus()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
var self = this
self.setData({
['page.page']: self.data.page.page + 1
})
self.getApplyStatus()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"enablePullDownRefresh": true
}

View File

@ -0,0 +1,44 @@
<!--index.wxml-->
<cu-custom bgColor="bg-darkblue" isBack="{{true}}" isRelaunch="{{false}}">
<view slot="content" style="color:#FFFFFF;">报名情况</view>
</cu-custom>
<view class="status">
<view class="sign-box {{item.statusName}}" wx:for="{{signList}}" wx:key="index">
<view class="status-row">
<image src="../../images/icons/status-wait.png" mode="widthFix" wx:if="{{item.applyAuditState == 0}}"></image>
<image src="../../images/icons/status-draw.png" mode="widthFix" wx:if="{{item.applyAuditState == 1}}"></image>
<image src="../../images/icons/status-pass.png" mode="widthFix" wx:if="{{item.applyAuditState == 2}}"></image>
<image src="../../images/icons/status-complete.png" mode="widthFix" wx:if="{{item.applyAuditState == 3}}"></image>
<image src="../../images/icons/status-not-pass.png" mode="widthFix" wx:if="{{item.applyAuditState == -1}}"></image>
<text>报名时间:{{item.gmtCreate}}</text>
</view>
<view class="name">
{{item.applyWorkTypeName}}
</view>
<view class="row">
<text class="status-text">培训机构:</text>
{{item.applyInstitutionName}}
</view>
<view class="row">
<text class="status-text">负责人: </text>
{{item.orgCharge}}
</view>
<view class="row">
<text class="status-text">预计开班人数: </text>
{{ item.applyUserNum1 }}人
</view>
<view class="row">
<text class="status-text">已报名人数:</text>
{{ item.applyUserNum2 }}人
</view>
<view class="row">
<text class="status-text">已通过审核人数:</text>
{{ item.applyUserNum3 }}人
</view>
<view class="row btn-box">
<view class="btn" data-id="{{item.applyId}}" bindtap="checkDetail">报名详情</view>
<view class="btn" data-id="{{item.applyId}}" bindtap="cancelSign" wx:if="{{item.applyAuditState == 0}}">取消报名</view>
</view>
</view>
</view>

View File

@ -0,0 +1,77 @@
.status{
padding: 30rpx;
}
.sign-box{
padding: 30rpx;
background-color: #fff;
border-radius: 10rpx;
margin-bottom: 30rpx;
box-shadow: 0 0 20rpx #ccc;
padding-top: 0;
}
.name{
font-size: 32rpx;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.row{
font-size: 30rpx;
margin-top: 15rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.btn{
display: inline-block;
width: 150rpx;
height: 60rpx;
line-height: 60rpx;
border-radius: 6px;
margin-right: 10rpx;
color: #fff;
text-align: center;
}
.status-row{
display: flex;
justify-content: space-between;
}
.status-row image{
width: 120rpx;
}
.status-row text{
line-height: 100rpx;
color: #999;
font-size: 30rpx;
}
.wait .status-text{
color: #0CA7A8;
}
.wait .btn{
background: #0CA7A8;
}
.draw .status-text{
color: #1EB5FA;
}
.draw .btn{
background: #1EB5FA;
}
.complete .status-text{
color: #FF9D5C;
}
.complete .btn{
background: #FF9D5C;
}
.pass .status-text{
color: #5C86EF;
}
.pass .btn{
background: #5C86EF;
}
.not-pass .status-text{
color: #FD678D;
}
.not-pass .btn{
background: #FD678D;
}

View File

@ -1,75 +1,77 @@
{ {
"description": "项目配置文件", "description": "项目配置文件",
"packOptions": { "packOptions": {
"ignore": [] "ignore": []
},
"setting": {
"urlCheck": false,
"es6": true,
"enhance": false,
"postcss": true,
"preloadBackgroundData": false,
"minified": true,
"newFeature": false,
"coverView": true,
"nodeModules": false,
"autoAudits": false,
"showShadowRootInWxmlPanel": true,
"scopeDataCheck": false,
"uglifyFileName": false,
"checkInvalidKey": true,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"compileHotReLoad": false,
"lazyloadPlaceholderEnable": false,
"useMultiFrameRuntime": true,
"useApiHook": true,
"useApiHostProcess": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}, },
"setting": { "enableEngineNative": false,
"urlCheck": true, "useIsolateContext": true,
"es6": true, "userConfirmedBundleSwitch": false,
"enhance": false, "packNpmManually": false,
"postcss": true, "packNpmRelationList": [],
"preloadBackgroundData": false, "minifyWXSS": true,
"minified": true, "disableUseStrict": false,
"newFeature": false, "minifyWXML": true,
"coverView": true, "showES6CompileOption": false,
"nodeModules": false, "useCompilerPlugins": false
"autoAudits": false, },
"showShadowRootInWxmlPanel": true, "compileType": "miniprogram",
"scopeDataCheck": false, "libVersion": "2.16.1",
"uglifyFileName": false, "appid": "wx9f627e69ba43e6a2",
"checkInvalidKey": true, "projectname": "teachingsystem",
"checkSiteMap": true, "debugOptions": {
"uploadWithSourceMap": true, "hidedInDevtools": []
"compileHotReLoad": false, },
"useMultiFrameRuntime": true, "scripts": {},
"useApiHook": true, "staticServerOptions": {
"useApiHostProcess": false, "baseURL": "",
"babelSetting": { "servePath": ""
"ignore": [], },
"disablePlugins": [], "isGameTourist": false,
"outputPath": "" "condition": {
}, "search": {
"enableEngineNative": false, "list": []
"bundle": false,
"useIsolateContext": true,
"useCompilerModule": true,
"userConfirmedUseCompilerModuleSwitch": false,
"userConfirmedBundleSwitch": false,
"packNpmManually": false,
"packNpmRelationList": [],
"minifyWXSS": true
}, },
"compileType": "miniprogram", "conversation": {
"libVersion": "2.16.1", "list": []
"appid": "wx501e9ce64f25c418",
"projectname": "teachingsystem",
"debugOptions": {
"hidedInDevtools": []
}, },
"scripts": {}, "game": {
"staticServerOptions": { "list": []
"baseURL": "",
"servePath": ""
}, },
"isGameTourist": false, "plugin": {
"condition": { "list": []
"search": { },
"list": [] "gamePlugin": {
}, "list": []
"conversation": { },
"list": [] "miniprogram": {
}, "list": []
"game": {
"list": []
},
"plugin": {
"list": []
},
"gamePlugin": {
"list": []
},
"miniprogram": {
"list": []
}
} }
}
} }

View File

@ -1,13 +1,19 @@
var baseUrls = { var baseUrls = {
userCenter: 'https://192.168.0.103:7001/usercenter/', userCenter: 'https://www.yjkaoshi.cn/signup/',
cardUrl: 'http://192.168.0.111:8089/signup/', cardUrl: 'https://www.yjkaoshi.cn/signup/',
loginUrl: 'http://192.168.0.111:8088/businesscard/', loginUrl: 'https://www.yjkaoshi.cn/signup/',
tradeUrl: 'http://192.168.0.111:8088/businesscard/', tradeUrl: 'https://www.yjkaoshi.cn/signup/',
baseImgUrl: 'route/file/download/true/' testUrl: 'https://www.yjkaoshi.cn/signup/',
//userCenter: 'http://192.168.0.109:8070/signup/',
//cardUrl: 'http://192.168.0.109:8070/signup/',
//loginUrl: 'http://192.168.0.109:8070/signup/',
//tradeUrl: 'http://192.168.0.109:8070/signup/',
//testUrl: 'http://192.168.0.109:8070/signup/',
baseImgUrl: 'route/file/download/true/',
} }
var apis = { var apis = {
login: '', login: '{baseUrl}wechat-miniapp/sign/default',
doUploadImg: '{baseUrl}app/file/uploadimage', //上传图片 doUploadImg: '{baseUrl}app/file/uploadimage', //上传图片
doUploadVideo: '{baseUrl}app/file/uploadvideo', //上传视频 doUploadVideo: '{baseUrl}app/file/uploadvideo', //上传视频
getArticleList: '{baseUrl}app/contentrelease/listpage', //获取开班通告或报考问答 根据categoryId获取 getArticleList: '{baseUrl}app/contentrelease/listpage', //获取开班通告或报考问答 根据categoryId获取
@ -16,6 +22,21 @@ var apis = {
getInstitutionDetailById: '{baseUrl}app/traininginstitution/get/release/{applyId}', //培训机构详情 getInstitutionDetailById: '{baseUrl}app/traininginstitution/get/release/{applyId}', //培训机构详情
getCardList: '{baseUrl}app/basic-staff-info/list-my-exam', //获取我的考试列表 getCardList: '{baseUrl}app/basic-staff-info/list-my-exam', //获取我的考试列表
getScoreList: '{baseUrl}app/applystudents/list', //获取成绩列表 getScoreList: '{baseUrl}app/applystudents/list', //获取成绩列表
getTrainTypeList: '{baseUrl}app/worktype/listByParentId', //获取培训科目类型
getOrgList: '{baseUrl}app/apply/list-apply-work-type', //获取培训机构列表
getCultrue: '{baseUrl}app/data/listbyparentid/d6b9f026-6ea9-456a-b48b-0c18d502523b', // 获取学历列表
gerPersonInfo: '{baseUrl}app/basic-user-info/get-basic-user-info', // 获取个人信息
savePersonInfo: '{baseUrl}app/basic-user-info/save', // 保存个人信息
signOrg: '{baseUrl}app/apply/save', // 提交报名
getPageType: '{baseUrl}app/basic-user-info/get-worker-used-html', // 获取报名页面类型
getMyApply: '{baseUrl}app/apply/listPageMyApply', // 获取我的报名
cancelSign: '{baseUrl}app/apply/updateAuditStateRecall/{applyId}', // 取消报名
signRecord: '{baseUrl}app/apply/get/{applyId}', // 查看报名记录
checkPhone: '{baseUrl}app/basic-user-info/check-mini-user-bind', // 检查是否绑定手机号
bindPhone: '{baseUrl}app/basic-user-info/mini-user-bind/{phone}', // 绑定手机号
examPlace: '{baseUrl}app/basic-user-info/release/list-exam-place', // 考试网点
checkEditedInfo: '{baseUrl}app/basic-user-info/get-basic-user-info', // 检查是否编辑个人信息
getAchievement: '{baseUrl}app/basic-user-info/list-my-exam-score?idCardNumber=', // 获取成绩列表
} }
module.exports = { module.exports = {