登录完善,会议活动筛选分页,扫码签到完善,分标委列表,详情
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 585 B |
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,25 @@
|
||||
export function wxBind(callback){
|
||||
// 获取openid进行手机号和微信的绑定
|
||||
wx.login({
|
||||
success (res) {
|
||||
if (res.code) {
|
||||
//发起网络请求
|
||||
wx.request({
|
||||
url: 'https://api.weixin.qq.com/sns/jscode2session',
|
||||
data: {
|
||||
appid: 'wx24914e866df035fb',
|
||||
secret: '0d2830f26f57722716249f2b2236f409',
|
||||
js_code: res.code,
|
||||
grant_type: 'authorization_code'
|
||||
},
|
||||
success (res) { // 成功拿到openId
|
||||
// 微信和该账号绑定
|
||||
callback(res)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('授权失败!' + res.errMsg)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -26,6 +26,8 @@ const UserApi = {
|
||||
wxLogin: (params) => http.post(`${URL_CONFIG}company/WCLogin`, params),
|
||||
// 微信绑定
|
||||
wxBind: (params) => http.post(`${URL_CONFIG}company/bindWeXin`, params),
|
||||
// 微信解绑
|
||||
wxUnbind: (params) => http.post(`${URL_CONFIG}company/unbindWeXin`, params),
|
||||
// 设置密码
|
||||
setPassword: (params) => http.post(`${URL_CONFIG}company/changePasswordWithToken`, params),
|
||||
// 修改密码
|
||||
@@ -44,6 +46,8 @@ const UserApi = {
|
||||
editMineInfo: (params) => http.post(`${URL_CONFIG}company/payContactsManagement/companyEdit`, params),
|
||||
// 我的资料
|
||||
dataList: (params) => http.get(`${URL_CONFIG}project/payWorkingGroupDistributionRecord/listForFile`, params),
|
||||
// 发送邮件
|
||||
sendEmail: (params) => http.get(`${URL_CONFIG}project/payWorkingGroupDataFile/wxDownloadFile`, params),
|
||||
// 我的合同
|
||||
contractList: (params) => http.get(`${URL_CONFIG}contract/payIncomeContract/queryCompanyPageList`, params),
|
||||
// 合同详情
|
||||
@@ -61,6 +65,10 @@ const UserApi = {
|
||||
messageStatus: (params) => http.post(`${URL_CONFIG}sys/sysAnnouncementSend/editCompanyByAnntIdAndUserId`, params),
|
||||
// 工作组分页
|
||||
workList: (params) => http.get(`${URL_CONFIG}project/payWorkingGroupSubitem/queryCompanyPageList`, params),
|
||||
// 分标委列表
|
||||
committeeList: (params) => http.get(`${URL_CONFIG}payCaseCommittee/payCaseCommittee/list`, params),
|
||||
// 分标委详情
|
||||
committeeDetail: (params) => http.get(`${URL_CONFIG}payCaseCommittee/payCaseCommittee/detail`, params),
|
||||
}
|
||||
|
||||
export default UserApi
|
||||
|
||||
@@ -1,66 +1,46 @@
|
||||
// pages/meeting/meeting.js
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
list: []
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
|
||||
loadData(){
|
||||
let params = {
|
||||
pageNo: this.data.pageNo,
|
||||
pageSize: this.data.pageSize
|
||||
}
|
||||
UserApi.committeeList(params).then(res=>{
|
||||
if(res.success){
|
||||
if(res.result.records && res.result.records.length){
|
||||
this.setData({
|
||||
list: [...this.data.list, ...res.result.records]
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 分标委详情页
|
||||
detail(e){
|
||||
wx.navigateTo({
|
||||
url: `../committeeDetail/committeeDetail?id=${e.currentTarget.dataset.committee.id}`,
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
onLoad: function () {
|
||||
this.loadData()
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
this.data.pageNo++
|
||||
this.loadData()
|
||||
}
|
||||
})
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "分标委",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -1,4 +1,9 @@
|
||||
<!--pages/meeting/meeting.wxml-->
|
||||
<view>
|
||||
<text>分标委</text>
|
||||
<view class="item" wx:for="{{list}}" wx:key="item" bindtap="detail" data-committee="{{item}}">
|
||||
<text>{{item.name}}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="no-data" wx:if="{{list.length == 0}}">暂无数据</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
/* pages/meeting/meeting.wxss */
|
||||
.select-list {
|
||||
height: 92rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #F5F5F5;
|
||||
page{
|
||||
padding-bottom: 20px;
|
||||
background-color: #f5f5f5;
|
||||
padding: 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.select-item {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.item{
|
||||
box-sizing: border-box;
|
||||
padding: 0 15px;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.select-item image {
|
||||
width: 21rpx;
|
||||
height: 12rpx;
|
||||
margin-left: 20rpx;
|
||||
.item:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
import { previewFile } from '../../assets/js/preview'
|
||||
import MeetingApi from '../../assets/js/http/meetingApi'
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
form: {},
|
||||
id: '', // 在工作组id,项目id
|
||||
projectFileList: [], // 项目资料文件
|
||||
meetingList: [] // 会议文件
|
||||
},
|
||||
// 预览
|
||||
preview(e){
|
||||
const fileObj = e.currentTarget.dataset.file
|
||||
previewFile(fileObj.fileId ,fileObj.fileName)
|
||||
},
|
||||
// 获取更多会议信息数据
|
||||
goMoreMeeting(){
|
||||
wx.navigateTo({
|
||||
url: `../meeting/meeting?caseCommitteeId=${this.data.id}`,
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
this.data.id = options.id
|
||||
MeetingApi.meetingList({caseCommitteeId: this.data.id}).then(res=>{
|
||||
if(res.success){
|
||||
if(res.result.records && res.result.records.length >= 1){
|
||||
this.setData({
|
||||
meetingList: res.result.records
|
||||
})
|
||||
}else if(res.result.records && res.result.records.length >= 2){
|
||||
this.setData({
|
||||
meetingList: res.result.records.slice(1)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
UserApi.committeeDetail({id: this.data.id}).then(res=>{
|
||||
this.setData({
|
||||
form: res.result
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "详情",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<view>
|
||||
<view class="basic-info">
|
||||
<view class="meeting-name">
|
||||
<text>项目名称</text>
|
||||
<text>{{form.name}}</text>
|
||||
</view>
|
||||
<view style="height: auto !important;">
|
||||
<text>项目资料</text>
|
||||
<view class="info-file" wx:if="{{form.files && form.files.length}}">
|
||||
<text class='color-green' data-file="{{item}}" wx:for="{{form.files}}" wx:key='item'
|
||||
bindtap="preview">{{item.fileName}}</text>
|
||||
</view>
|
||||
<text wx:if="{{form.files.length == 0}}">无</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="basic-info" style="margin-top: 10px;">
|
||||
<view class="title">
|
||||
<text>会议信息</text>
|
||||
<text style="border: none;color: #999; font-size: 13px;" bindtap="goMoreMeeting">更多>></text>
|
||||
</view>
|
||||
<view style="padding: 0 15px;" wx:for="{{meetingList}}" wx:key="item">
|
||||
<view class="meeting-info">
|
||||
<text>{{item.meetingName}}</text>
|
||||
<text style="color: #069F99;" bindtap="meetingDetail">查看详情</text>
|
||||
</view>
|
||||
</view>
|
||||
<text wx:if="{{meetingList.length == 0}}" class="no-data" style="height: 40px;">暂无会议记录!</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -0,0 +1,267 @@
|
||||
page{
|
||||
box-sizing: border-box;
|
||||
background-color: #F5F5F5;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.basic-info .title{
|
||||
height: 40px;
|
||||
}
|
||||
.basic-info .title text{
|
||||
display: block;
|
||||
border-left: 3px solid #069F99;
|
||||
height: 14px;
|
||||
padding-left: 10px;
|
||||
border-radius: 2px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.basic-info view{
|
||||
background-color: #FFF;
|
||||
padding: 15px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
border-bottom: 0.5px solid #f5f5f5;
|
||||
position: relative;
|
||||
}
|
||||
.basic-info view:last-child{
|
||||
border-bottom: 0;
|
||||
}
|
||||
.basic-info view text:nth-child(1){
|
||||
flex-shrink: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.meeting-name{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.meeting-files{
|
||||
margin-top: 10px;
|
||||
flex-direction: column;
|
||||
align-items: flex-start !important;
|
||||
height: auto !important;
|
||||
}
|
||||
.basic-info .meeting-files .file-name{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.file-name view{
|
||||
padding: 0;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.file-name view image{
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.basic-info .meeting-files .file-name .look-file{
|
||||
color: #069F99;
|
||||
}
|
||||
.warning-text{
|
||||
position: absolute !important;
|
||||
top: 5px;
|
||||
left: 75px;
|
||||
color: #FF5E60 !important;
|
||||
font-size: 10px !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.warning-text image{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
.pay-prove-box{
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
justify-content: flex-start !important;
|
||||
align-items: flex-start !important;
|
||||
padding: 0;
|
||||
height: 120px !important;
|
||||
}
|
||||
.pay-prove-box .pay-prove-content{
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
padding: 0;
|
||||
height: 80px;
|
||||
}
|
||||
.pay-prove-box .pay-prove-content .pay-prove{
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
margin-right: 10px;
|
||||
position: relative !important;
|
||||
background-color: #D1D1D1;
|
||||
padding: 0;
|
||||
border-radius: 5px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.pay-prove-box .pay-prove-content .pay-prove image{
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.pay-prove-box .pay-prove-content .pay-prove .delete-image{
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
color: #fff;
|
||||
background-color: #FF5E60;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 7px;
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
right: -3px;
|
||||
}
|
||||
.way-box{
|
||||
display: block !important;
|
||||
padding: 0 !important;
|
||||
height: auto !important;
|
||||
}
|
||||
.info-file{
|
||||
padding: 0 !important;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end !important;
|
||||
height: auto !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
.info-file text{
|
||||
overflow:hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.meeting-info{
|
||||
width: 100%;
|
||||
height: auto !important;
|
||||
display: flex;
|
||||
justify-content: space-between !important;
|
||||
align-items: center;
|
||||
padding: 0 !important;
|
||||
border: none;
|
||||
}
|
||||
.meeting-info text:nth-child(1){
|
||||
flex-shrink: 1 !important;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.meeting-info text:nth-child(2){
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.basic-info .way{
|
||||
padding: 0 15px;
|
||||
display: flex;
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.basic-info .way image{
|
||||
width: 23px;
|
||||
height: 23px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.way-info .way-left{
|
||||
padding: 0;
|
||||
display: flex;
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.way-info .way-center{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.way-info .way-center text:nth-child(1){
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.way-info .way-center text:nth-child(2){
|
||||
color: #999;
|
||||
font-size: 11px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.way-info .green {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: #069F99;
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.way-info .blue {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: #0A72F7;
|
||||
color: #fff;
|
||||
font-size: 11px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.way-info .way-right{
|
||||
flex-shrink: 0;
|
||||
padding: 0;
|
||||
color: #666;
|
||||
font-size: 12px;
|
||||
}
|
||||
.basic-info .look-progress{
|
||||
padding: 0 15px;
|
||||
}
|
||||
.basic-info .look-progress text:nth-child(1){
|
||||
color: #FF5E60;
|
||||
font-size: 14px;
|
||||
}
|
||||
.basic-info .look-progress text:nth-child(2){
|
||||
display: block;
|
||||
width: 70px;
|
||||
height: 26px;
|
||||
color: #069F99;
|
||||
font-size: 11px;
|
||||
border-radius: 13px;
|
||||
border: 0.5px solid #069F99;
|
||||
text-align: center;
|
||||
line-height: 26px;
|
||||
}
|
||||
.sign-up-empty{
|
||||
height: 60px;
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.sign-up{
|
||||
width: 100%;
|
||||
padding: 10px 15px;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
}
|
||||
.sign-up text{
|
||||
background-color: #069F99;
|
||||
height: 40px;
|
||||
border-radius: 10px;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
display: block;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "详情",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
<view>
|
||||
<view class="title">基本信息</view>
|
||||
<view class="basic-info">
|
||||
<view class="title">
|
||||
<text>基本信息</text>
|
||||
</view>
|
||||
<view>
|
||||
<text>合同编号</text>
|
||||
<text>{{form.contractNum}}</text>
|
||||
@@ -20,13 +22,17 @@
|
||||
<view>
|
||||
<text>关联项目</text>
|
||||
<view class="ass-project">
|
||||
<text wx:for="{{form.listProject}}" wx:key="item">{{item.chargeUse_dictText}}</text>
|
||||
<text wx:for="{{form.listProject}}" data-file="{{item}}" wx:key="item">{{item.chargeUse_dictText}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="title">邮寄信息</view>
|
||||
<view class="email-info">
|
||||
<text>{{form.contractNum}}由{{form.payMailContract.createBy}}于{{form.payMailContract.createTime}}邮寄,快递号:{{form.payMailContract.postNo}}</text>
|
||||
<text bindtap="track">查看物流</text>
|
||||
<view class="basic-info">
|
||||
<view class="title">
|
||||
<text>邮寄信息</text>
|
||||
</view>
|
||||
<view class="email-info">
|
||||
<text>{{form.contractNum}}由{{form.payMailContract.createBy}}于{{form.payMailContract.createTime}}邮寄,快递号:{{form.payMailContract.postNo}}</text>
|
||||
<text bindtap="track">查看物流</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
page{
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.title{
|
||||
.basic-info .title{
|
||||
height: 40px;
|
||||
}
|
||||
.basic-info .title text{
|
||||
display: block;
|
||||
border-left: 3px solid #069F99;
|
||||
height: 14px;
|
||||
padding-left: 10px;
|
||||
line-height: 40px;
|
||||
color: #999;
|
||||
font-size: 14px;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 2px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #333;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.basic-info view{
|
||||
background-color: #FFF;
|
||||
@@ -27,6 +35,7 @@ page{
|
||||
.email-info text:nth-child(1){
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
line-height: 25px;
|
||||
}
|
||||
.email-info{
|
||||
padding: 15px;
|
||||
@@ -37,6 +46,7 @@ page{
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.ass-project{
|
||||
height: auto !important;
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"popup": "../../components/popup/popup",
|
||||
"dateMonth": "../../components/dateMonth/dateMonth"
|
||||
},
|
||||
"usingComponents": {},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
@@ -40,11 +40,15 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 列表 -->
|
||||
<view class="list-content">
|
||||
<view class="list-content" wx:if="{{list && list.length}}">
|
||||
<view class="list-content-item" wx:for="{{list}}" wx:key="item" wx:for-item="item" bindtap="messageDetail" data-message="{{item}}">
|
||||
<view class="content-top">
|
||||
<view>
|
||||
<text class="blue" class="">{{item.titile_dictText}}</text>
|
||||
<image wx:if="{{item.titile == 8}}" src="../../assets/images/fapiao.png"></image>
|
||||
<image wx:if="{{item.titile == 7}}" src="../../assets/images/youji.png"></image>
|
||||
<image wx:if="{{item.titile == 6}}" src="../../assets/images/wenjian.png"></image>
|
||||
<image wx:if="{{item.titile == 3}}" src="../../assets/images/hy.png"></image>
|
||||
<text class="{{item.titile == 3 ? 'blue' : item.titile == 6 ? 'yellow' : item.titile == 7 ? 'pol' : 'green' }}">{{item.titile_dictText}}</text>
|
||||
</view>
|
||||
<text class="content-time">{{item.sendTime}}</text>
|
||||
</view>
|
||||
@@ -58,5 +62,3 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<popup visible="{{visible}}" bindclose="close" outClickCanClose="true" bindok="ok" data="{{data}}"></popup>
|
||||
<!-- <dateMonth visible="{{visibleDate}}" mode="year" outClickCanClose="true" bindok="dateOk" bindclose="close"></dateMonth> -->
|
||||
|
||||
@@ -61,8 +61,8 @@ page{
|
||||
margin-left: 9px;
|
||||
}
|
||||
.list-content{
|
||||
max-height: 500px;
|
||||
overflow-y: auto;
|
||||
/* max-height: 500px; */
|
||||
/* overflow-y: auto; */
|
||||
padding: 15px 15pt;
|
||||
border-radius: 10px;
|
||||
}
|
||||
@@ -84,6 +84,18 @@ page{
|
||||
font-size: 11px;
|
||||
color: #999;
|
||||
}
|
||||
.content-top .blue{
|
||||
color: #0A72F7 !important;
|
||||
}
|
||||
.content-top .yellow{
|
||||
color: #FF7200 !important;
|
||||
}
|
||||
.content-top .green{
|
||||
color: #069F99 !important;
|
||||
}
|
||||
.content-top .pol{
|
||||
color: #690AF7;
|
||||
}
|
||||
.content-top image{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// pages/mine/mine.js
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
import { encrypt } from '../../assets/js/jsencrypt/rsa'
|
||||
import { wxBind } from '../../assets/js/common'
|
||||
var countdown = 60; // 倒计时秒数
|
||||
Page({
|
||||
data: {
|
||||
@@ -79,25 +80,29 @@ Page({
|
||||
},
|
||||
// 微信登录
|
||||
wxLogin(){
|
||||
let params = {
|
||||
openId: this.data.openid,
|
||||
rsaPublicKey: this.data.rsaPublicKey
|
||||
}
|
||||
UserApi.wxLogin(params).then(res=>{
|
||||
if(res.success) {// 已经用手机号登录过,此时用微信快捷登录时,把微信的个人信息存进缓存(微信信息在缓存的userInfoTemp)
|
||||
wx.getStorage({
|
||||
key: 'userInfoTemp',
|
||||
success(result){
|
||||
console.log(result)
|
||||
}
|
||||
})
|
||||
}else{ // 首次登录不能直接用微信快捷登录
|
||||
wx.showToast({
|
||||
title: '暂未授权手机号',
|
||||
duration: 2000,
|
||||
icon: "none",
|
||||
})
|
||||
wxBind((res)=>{
|
||||
let params = {
|
||||
openId: res.data.openid,
|
||||
rsaPublicKey: this.data.rsaPublicKey
|
||||
}
|
||||
UserApi.wxLogin(params).then(res=>{
|
||||
if(res.success) {// 已经用手机号登录过,此时用微信快捷登录时,把微信的个人信息存进缓存(微信信息在缓存的userInfoTemp)
|
||||
wx.setStorageSync('userInfo', res.result.userInfo)
|
||||
wx.setStorage({
|
||||
key: 'X-Access-Token',
|
||||
data: res.result.token
|
||||
})
|
||||
wx.switchTab({
|
||||
url: '../home/home',
|
||||
})
|
||||
}else{ // 首次登录不能直接用微信快捷登录
|
||||
wx.showToast({
|
||||
title: '暂未授权手机号',
|
||||
duration: 2000,
|
||||
icon: "none",
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// 登录
|
||||
@@ -163,33 +168,13 @@ Page({
|
||||
},
|
||||
// 绑定微信
|
||||
wxBind(){
|
||||
const that = this
|
||||
// 获取openid进行手机号和微信的绑定
|
||||
wx.login({
|
||||
success (res) {
|
||||
if (res.code) {
|
||||
//发起网络请求
|
||||
wx.request({
|
||||
url: 'https://api.weixin.qq.com/sns/jscode2session',
|
||||
data: {
|
||||
appid: 'wx24914e866df035fb',
|
||||
secret: '0d2830f26f57722716249f2b2236f409',
|
||||
js_code: res.code,
|
||||
grant_type: 'authorization_code'
|
||||
},
|
||||
success (res) { // 成功拿到openId
|
||||
// 微信和该账号绑定
|
||||
let params = {
|
||||
openId: res.openId,
|
||||
rsaPublicKey: that.data.rsaPublicKey
|
||||
}
|
||||
UserApi.wxBind(params).then(res=>{})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('授权失败!' + res.errMsg)
|
||||
}
|
||||
wxBind((res)=>{
|
||||
let params = {
|
||||
openId: res.data.openid,
|
||||
rsaPublicKey: that.data.rsaPublicKey
|
||||
}
|
||||
// 需要判断是否绑定过微信,再进行绑定请求
|
||||
UserApi.wxBind(params).then(res=>{})
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
@@ -9,27 +9,16 @@ Page({
|
||||
searchParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
meetingStatus: 0, // 会议状态
|
||||
meetingType: 0, // 标协会议 2 工作组会议 1 国际研讨会 3 其他 4
|
||||
month: '', // 运行月份
|
||||
meetingSignUpType: 0, // 可报名:1 全部 0
|
||||
meetingStatus: '', // 会议状态
|
||||
meetingType: '', // 工作组会议:1 标协会议 2 国际研讨会 3 其他会议 4 分标委会议 5
|
||||
meetingStartTime: '', // 开始时间
|
||||
meetingEndTime: '' // 结束时间
|
||||
},
|
||||
selects: [ // 自定义选择框参数
|
||||
{
|
||||
select: '状态',
|
||||
active: false,
|
||||
tabIndex: 1
|
||||
},
|
||||
{
|
||||
select: '会议类型',
|
||||
active: false,
|
||||
tabIndex: 2
|
||||
},
|
||||
{
|
||||
select: '时间',
|
||||
active: false,
|
||||
tabIndex: 3
|
||||
}
|
||||
],
|
||||
// 会议筛选参数
|
||||
meetingStatus: ['可报名', '未开始', '进行中', '已结束'],
|
||||
// 会议类型筛选参数
|
||||
meetingType: ['工作组会议', '标协会议', '国际研讨会', '其他会议', '分标委会议'],
|
||||
// 会议列表数据
|
||||
meetingList:[],
|
||||
// 下拉框送搜索数据
|
||||
@@ -41,10 +30,47 @@ Page({
|
||||
// 是哪个筛选条件
|
||||
index:-1
|
||||
},
|
||||
|
||||
// 会议状态筛选
|
||||
bindStatusChange(e){
|
||||
this.data.searchParams.pageNo = 1
|
||||
if(e.detail.value == 0){
|
||||
this.setData({
|
||||
'searchParams.meetingSignUpType': 1
|
||||
})
|
||||
}else if(e.detail.value == 1){
|
||||
this.setData({
|
||||
'searchParams.meetingStatus': 2
|
||||
})
|
||||
}else if(e.detail.value == 2){
|
||||
this.setData({
|
||||
'searchParams.meetingStatus': 3
|
||||
})
|
||||
}else if(e.detail.value == 3){
|
||||
this.setData({
|
||||
'searchParams.meetingStatus': 4
|
||||
})
|
||||
}
|
||||
this.queryMeetingList()
|
||||
},
|
||||
// 会议类型筛选
|
||||
bindTypeChange(e){
|
||||
this.data.searchParams.pageNo = 1
|
||||
let value = Number(e.detail.value) + 1
|
||||
this.setData({
|
||||
'searchParams.meetingType': value
|
||||
})
|
||||
this.queryMeetingList()
|
||||
},
|
||||
bindDateChange(e){
|
||||
this.data.searchParams.pageNo = 1
|
||||
this.setData({
|
||||
'searchParams.meetingStartTime': e.detail.value,
|
||||
'searchParams.meetingEndTime': e.detail.value
|
||||
})
|
||||
this.queryMeetingList()
|
||||
},
|
||||
// 会议详情
|
||||
meetingDetail(e){
|
||||
|
||||
let meetingInfo =JSON.stringify(e.currentTarget.dataset.meetinginfo)
|
||||
// wx.navigateTo({
|
||||
// // url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名)
|
||||
@@ -69,12 +95,19 @@ Page({
|
||||
},
|
||||
// 获取会议列表数据
|
||||
queryMeetingList(){
|
||||
const that = this
|
||||
MeetingApi.meetingList().then(res => {
|
||||
MeetingApi.meetingList(this.data.searchParams).then(res => {
|
||||
if(res.success){
|
||||
that.setData({
|
||||
meetingList:res.result.records
|
||||
})
|
||||
// 搜索时,把原数据清空,重新筛选
|
||||
if(this.data.searchParams.pageNo === 1) {
|
||||
this.setData({
|
||||
meetingList: []
|
||||
})
|
||||
}
|
||||
if(res.result.records && res.result.records.length){
|
||||
this.setData({
|
||||
meetingList: [...this.data.meetingList, ...res.result.records]
|
||||
})
|
||||
}
|
||||
}
|
||||
}).catch(err => {
|
||||
wx.showToast({
|
||||
@@ -84,65 +117,7 @@ Page({
|
||||
})
|
||||
})
|
||||
},
|
||||
// 点击搜索条件
|
||||
changeTab(e){
|
||||
let index = e.currentTarget.dataset.index
|
||||
switch(index) {
|
||||
case 1: this.setData({
|
||||
visible:true,
|
||||
selectData:[
|
||||
{label:'可报名',value:1},
|
||||
{label:'未开始',value:1},
|
||||
{label:'进行中',value:1},
|
||||
{label:'已结束',value:1},
|
||||
]
|
||||
})
|
||||
break
|
||||
case 2:this.setData({
|
||||
visible:true,
|
||||
selectData:[
|
||||
{label:'工作组会议',value:1},
|
||||
{label:'标协会议',value:2},
|
||||
{label:'国际研讨会',value:3},
|
||||
{label:'其他会议',value:4},
|
||||
{label:'分标委会议',value:5},
|
||||
]
|
||||
})
|
||||
break
|
||||
case 3 : this.setData({
|
||||
visibleDate:true
|
||||
})
|
||||
}
|
||||
},
|
||||
// 关闭弹出层
|
||||
close() {
|
||||
this.setData({
|
||||
visible: false
|
||||
})
|
||||
},
|
||||
// 下拉框选中
|
||||
ok(e){
|
||||
this.data.pageNo = 1
|
||||
if(this.data.index === 0){
|
||||
this.setData({
|
||||
'searchParams.needInvoice': e.detail
|
||||
})
|
||||
}else if(this.data.index === 1){
|
||||
this.setData({
|
||||
'searchParams.pack': e.detail
|
||||
})
|
||||
}
|
||||
this.loadData()
|
||||
},
|
||||
// 日期选中
|
||||
dateOk(value){
|
||||
// this.data.pageNo = 1
|
||||
this.setData({
|
||||
// "searchParams.year": value.detail,
|
||||
visibleDate: false
|
||||
})
|
||||
this.loadData()
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
@@ -150,52 +125,11 @@ Page({
|
||||
this.queryMeetingList()
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
this.data.searchParams.pageNo++
|
||||
this.queryMeetingList()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,10 +1,26 @@
|
||||
<!--pages/meeting/meeting.wxml首页会议活动-->
|
||||
<view class="select-list">
|
||||
<view class="select-item" bindtap="changeTab" data-index="{{select.tabIndex}}" wx:for="{{selects}}" wx:for-item="select" wx:key="tabIndex">
|
||||
<text>{{select.select}}</text>
|
||||
<image wx:if="{{!select.active}}" src="../../assets/images/toTop.png"></image>
|
||||
<image wx:if="{{select.active}}" src="../../assets/images/toBottom.png"></image>
|
||||
</view>
|
||||
<view class="select-item">
|
||||
<picker bindchange="bindStatusChange" range="{{meetingStatus}}">
|
||||
<view class="picker">
|
||||
<text>状态</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="select-item">
|
||||
<picker bindchange="bindTypeChange" range="{{meetingType}}">
|
||||
<view class="picker">
|
||||
<text>会议类型</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<view class="select-item">
|
||||
<picker mode="date" start="2021-01-01" end="2030-12-31" bindchange="bindDateChange">
|
||||
<view class="picker">
|
||||
<text>时间</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="list-item" wx:for="{{meetingList}}" bindtap="meetingDetail" data-meetinginfo="{{item}}" wx:key="item">
|
||||
|
||||
@@ -24,6 +24,17 @@ Page({
|
||||
url: '../upDateInfo/upDateInfo',
|
||||
})
|
||||
},
|
||||
// 解除绑定
|
||||
unBind(){
|
||||
UserApi.wxUnbind().then(res=>{
|
||||
if(res.success){
|
||||
wx.showToast({
|
||||
title: res.result,
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 扫码签到
|
||||
scanCode(){
|
||||
// wx.scanCode({
|
||||
|
||||
@@ -31,9 +31,9 @@
|
||||
</view>
|
||||
<image src="../../assets/images/more.png"></image>
|
||||
</view>
|
||||
<view class="list-item" bindtap="upDateInfo">
|
||||
<view class="list-item" bindtap="unBind">
|
||||
<view class="item-title">
|
||||
<image src="../../assets/images/xgmm.png"></image>
|
||||
<image src="../../assets/images/jcbd.png"></image>
|
||||
<text>解除绑定</text>
|
||||
</view>
|
||||
<image src="../../assets/images/more.png"></image>
|
||||
|
||||
@@ -35,6 +35,7 @@ Page({
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
this.data.pageNo = 1
|
||||
this.loadData()
|
||||
},
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ Page({
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
userId: '',
|
||||
list: [],
|
||||
pageNo: 1,
|
||||
pageSize: 10
|
||||
@@ -31,16 +32,41 @@ Page({
|
||||
let fileType = sliceFileTypeByFileName(fileObj.fileName)
|
||||
// 文件类型不是docx,doc,pdf时,已邮件形式发送到参会人的邮箱
|
||||
if(fileType !== 'docx' && fileType !== 'doc' && fileType !== 'pdf') {
|
||||
|
||||
let params = {
|
||||
fileId: fileObj.fileId,
|
||||
userId: this.data.userId
|
||||
}
|
||||
UserApi.sendEmail(params).then(res=>{
|
||||
if(res.success){
|
||||
wx.showToast({
|
||||
title: '文件已发送到您的邮箱',
|
||||
icon: 'none'
|
||||
})
|
||||
}else{
|
||||
wx.showToast({
|
||||
title: res.message,
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
})
|
||||
}else {
|
||||
previewFile(fileObj.filId, fileObj.fileName)
|
||||
previewFile(fileObj.fileId, fileObj.fileName)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
this.loadData()
|
||||
const that = this
|
||||
that.loadData()
|
||||
wx.getStorage({
|
||||
key: 'userInfo',
|
||||
success(res){
|
||||
that.setData({
|
||||
userId: res.data.id
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
// pages/meeting/meeting.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
list: [,1,1,1,1,1,1,1,1]
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
<!--pages/meeting/meeting.wxml我的会议-->
|
||||
<view class="list-box">
|
||||
<view class="list-item" wx:for="list" wx:key="item" bindtap="meetingDetail">
|
||||
<view class="list-info">
|
||||
<text>会议列表未定</text>
|
||||
<text>合同金额:5000元</text>
|
||||
</view>
|
||||
<view class="list-info">
|
||||
<text>合同编号:002</text>
|
||||
<text>负责人:张三</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
/* pages/mineContract/mineContract.wxss */
|
||||
page{
|
||||
background-color: #F5F5F5;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.list-item{
|
||||
display: flex;
|
||||
padding: 15px;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.list-item:not(:first-child){
|
||||
margin-top: 10px;
|
||||
}
|
||||
.list-item .list-info{
|
||||
color: #333;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
// pages/meeting/meeting.js
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
import { encrypt } from '../../assets/js/jsencrypt/rsa'
|
||||
import { wxBind } from '../../assets/js/common'
|
||||
// var countdown = 60; // 倒计时秒数
|
||||
|
||||
Page({
|
||||
@@ -138,32 +139,13 @@ Page({
|
||||
// 绑定微信
|
||||
wxBind(){
|
||||
// 获取openid进行手机号和微信的绑定
|
||||
wx.login({
|
||||
success (res) {
|
||||
if (res.code) {
|
||||
//发起网络请求
|
||||
wx.request({
|
||||
url: 'https://api.weixin.qq.com/sns/jscode2session',
|
||||
data: {
|
||||
appid: 'wx24914e866df035fb',
|
||||
secret: '0d2830f26f57722716249f2b2236f409',
|
||||
js_code: res.code,
|
||||
grant_type: 'authorization_code'
|
||||
},
|
||||
success (res) { // 成功拿到openId
|
||||
// 微信和该账号绑定
|
||||
// 微信和该账号绑定
|
||||
let params = {
|
||||
openId: res.openId,
|
||||
rsaPublicKey: that.data.rsaPublicKey
|
||||
}
|
||||
UserApi.wxBind(params).then(res=>{})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('授权失败!' + res.errMsg)
|
||||
}
|
||||
wxBind((res)=>{
|
||||
let params = {
|
||||
openId: res.data.openid,
|
||||
rsaPublicKey: that.data.rsaPublicKey
|
||||
}
|
||||
// 需要判断是否绑定过微信,再进行绑定请求
|
||||
UserApi.wxBind(params).then(res=>{})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -56,7 +56,7 @@ Page({
|
||||
projectDetail(e){
|
||||
console.log(e)
|
||||
wx.navigateTo({
|
||||
url: `../projectDetail/projectDetail?id=${e.currentTarget.dataset.project.id}`,
|
||||
url: `../projectDetail/projectDetail?id=${e.currentTarget.dataset.project.id}&type=${this.data.type}`,
|
||||
})
|
||||
},
|
||||
loadData(){
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "项目",
|
||||
"usingComponents": {
|
||||
"popup": "../../components/popup/popup",
|
||||
"dateMonth": "../../components/dateMonth/dateMonth"
|
||||
}
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -1,32 +1,26 @@
|
||||
<!--pages/meeting/meeting.wxml首页会议活动-->
|
||||
<view class="select-list">
|
||||
<!-- <view class="select-item" bindtap="changeTab" data-index="{{index}}" wx:for="{{selects}}" wx:for-item="select" wx:key="tabIndex">
|
||||
<text>{{select.select}}</text>
|
||||
<image wx:if="{{!select.active}}" src="../../assets/images/toTop.png"></image>
|
||||
<image wx:if="{{select.active}}" src="../../assets/images/toBottom.png"></image>
|
||||
</view> -->
|
||||
<!-- 发票 -->
|
||||
<view class="select-item">
|
||||
<picker bindchange="bindNeedInvoiceChange" value="{{searchParams.needInvoice}}" range="{{['是','否']}}">
|
||||
<picker bindchange="bindNeedInvoiceChange" range="{{['是','否']}}">
|
||||
<view class="picker">
|
||||
<text>发票{{searchParams.needInvoice == '' ? '' : searchParams.needInvoice == 1 ? ' :是' : ' :否'}}</text>
|
||||
<text>发票</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- 打包 -->
|
||||
<view class="select-item">
|
||||
<picker bindchange="bindPackChange" value="{{searchParams.pack}}" range="{{['是','否']}}">
|
||||
<picker bindchange="bindPackChange" range="{{['是','否']}}">
|
||||
<view class="picker">
|
||||
<text>打包{{searchParams.pack == '' ? '' : searchParams.pack == 1 ? ' :是' : ' :否'}}</text>
|
||||
<text>打包</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
<!-- 年份 -->
|
||||
<view class="select-item">
|
||||
<picker mode="date" fields="year" value="{{searchParams.year}}" start="2021" end="2030" bindchange="bindDateChange">
|
||||
<picker mode="date" fields="year" start="2021" end="2030" bindchange="bindDateChange">
|
||||
<view class="picker">
|
||||
<text wx:if="{{!searchParams.year}}">时间</text>
|
||||
<text wx:if="{{searchParams.year}}">时间:{{searchParams.year}}年</text>
|
||||
<text>时间</text>
|
||||
</view>
|
||||
</picker>
|
||||
</view>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
import { previewFile, initFileList } from '../../assets/js/preview'
|
||||
import MeetingApi from '../../assets/js/http/meetingApi'
|
||||
Page({
|
||||
|
||||
/**
|
||||
@@ -7,34 +8,65 @@ Page({
|
||||
*/
|
||||
data: {
|
||||
form: {},
|
||||
id: '', // 在工作组id,项目id
|
||||
showMeeting: false, // 会议信息的显隐
|
||||
projectFileList: [], // 项目资料文件
|
||||
notifyFileList: [] // 通知文件
|
||||
notifyFileList: [], // 通知文件
|
||||
meetingList: [] // 会议文件
|
||||
},
|
||||
// 预览
|
||||
preview(e){
|
||||
const fileObj = e.currentTarget.dataset.file
|
||||
previewFile(fileObj.id,fileObj.name)
|
||||
},
|
||||
// 获取更多会议信息数据
|
||||
goMoreMeeting(){
|
||||
wx.navigateTo({
|
||||
url: `../meeting/meeting?workingGroupProjectId=${this.data.id}`,
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
UserApi.projectDetail({id: options.id}).then(res=>{
|
||||
this.data.id = options.id
|
||||
if(options.type == 'work') { // 工作组项目有会议详情
|
||||
this.setData({
|
||||
showMeeting: true
|
||||
})
|
||||
MeetingApi.meetingList({workingGroupProjectId: this.data.id}).then(res=>{
|
||||
console.log(res)
|
||||
if(res.success){
|
||||
if(res.result.records && res.result.records.length >= 1){
|
||||
this.setData({
|
||||
meetingList: res.result.records
|
||||
})
|
||||
}else if(res.result.records && res.result.records.length >= 2){
|
||||
this.setData({
|
||||
meetingList: res.result.records.slice(1)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
UserApi.projectDetail({id: this.data.id}).then(res=>{
|
||||
this.setData({
|
||||
form: res.result
|
||||
})
|
||||
// 获取项目资料文件list
|
||||
initFileList(this.data.form.files).then(res => {
|
||||
this.setData({
|
||||
projectFileList: res
|
||||
if(this.data.form) {
|
||||
initFileList(this.data.form.files).then(res => {
|
||||
this.setData({
|
||||
projectFileList: res
|
||||
})
|
||||
})
|
||||
})
|
||||
// 获取通知文件list
|
||||
initFileList(this.data.form.chargeNoticeId).then(res => {
|
||||
this.setData({
|
||||
notifyFileList: res
|
||||
// 获取通知文件list
|
||||
initFileList(this.data.form.chargeNoticeId).then(res => {
|
||||
this.setData({
|
||||
notifyFileList: res
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "详情",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -74,17 +74,18 @@
|
||||
<text wx:if="{{projectFileList.length == 0}}">无</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="basic-info" style="margin-top: 10px;">
|
||||
<view class="basic-info" style="margin-top: 10px;" wx:if="{{showMeeting}}">
|
||||
<view class="title">
|
||||
<text>会议信息</text>
|
||||
<text style="border: none;color: #999; font-size: 13px;" bindtap="goMoreMeeting">更多>></text>
|
||||
</view>
|
||||
<view style="padding: 0 15px;" wx:for="{{form.paymentRecord}}" wx:key="item">
|
||||
<view style="padding: 0 15px;" wx:for="{{meetingList}}" wx:key="item">
|
||||
<view class="meeting-info">
|
||||
<text>hi一</text>
|
||||
<text style="color: #069F99;">查看详情</text>
|
||||
<text>{{item.meetingName}}</text>
|
||||
<text style="color: #069F99;" bindtap="meetingDetail">查看详情</text>
|
||||
</view>
|
||||
<text wx:if="{{form.paymentRecord.length == 0}}">暂无会议记录!</text>
|
||||
</view>
|
||||
<text wx:if="{{meetingList.length == 0}}" class="no-data">暂无会议记录!</text>
|
||||
</view>
|
||||
<view class="basic-info" style="margin-top: 10px;">
|
||||
<view class="title">
|
||||
@@ -92,8 +93,8 @@
|
||||
</view>
|
||||
<view style="padding: 0 15px;" wx:for="{{form.paymentRecord}}" wx:key="item">
|
||||
<text wx:if="{{form.paymentRecord && form.paymentRecord.length}}">{{item.paymentDate}}到账{{item.amountReceived}}元</text>
|
||||
<text wx:if="{{form.paymentRecord.length == 0}}">暂无到账记录!</text>
|
||||
</view>
|
||||
<text class="no-data" style="height: 50px;" wx:if="{{!form.paymentRecord}}">暂无到账记录!</text>
|
||||
</view>
|
||||
<view class="basic-info" style="margin-top: 10px;">
|
||||
<view class="title">
|
||||
@@ -130,5 +131,6 @@
|
||||
<text wx:if="{{item.postStatus == 1}}">查看物流</text>
|
||||
</view>
|
||||
</view>
|
||||
<text class="no-data" style="height: 50px;" wx:if="{{!form.mailBill}}">暂无邮寄记录!</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -34,6 +34,10 @@ page{
|
||||
.basic-info view:last-child{
|
||||
border-bottom: 0;
|
||||
}
|
||||
.basic-info view text:nth-child(1){
|
||||
flex-shrink: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.meeting-name{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@@ -136,6 +140,12 @@ page{
|
||||
flex-direction: column;
|
||||
align-items: flex-end !important;
|
||||
height: auto !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
.info-file text{
|
||||
overflow:hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.meeting-info{
|
||||
width: 100%;
|
||||
@@ -144,6 +154,16 @@ page{
|
||||
justify-content: space-between !important;
|
||||
align-items: center;
|
||||
padding: 0 !important;
|
||||
border: none;
|
||||
}
|
||||
.meeting-info text:nth-child(1){
|
||||
flex-shrink: 1 !important;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
.meeting-info text:nth-child(2){
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.basic-info .way{
|
||||
padding: 0 15px;
|
||||
@@ -169,10 +189,12 @@ page{
|
||||
.way-info .way-center text:nth-child(1){
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.way-info .way-center text:nth-child(2){
|
||||
color: #999;
|
||||
font-size: 11px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.way-info .green {
|
||||
width: 20px;
|
||||
|
||||
@@ -6,9 +6,9 @@ Page({
|
||||
*/
|
||||
data: {
|
||||
form: {},
|
||||
isSigned: 0, // 默认未报名
|
||||
isSigned: 1, // 默认未报名
|
||||
fileId: '', // 图片id
|
||||
src: null // 签名之后,保存签名的图片地址
|
||||
src: 'null' // 签名之后,保存签名的图片地址
|
||||
},
|
||||
// 去签到页
|
||||
scanSign(){
|
||||
@@ -25,14 +25,25 @@ Page({
|
||||
UserApi.scanSure(params).then(res=>{
|
||||
if(res.success){
|
||||
this.setData({
|
||||
isSigned: !this.data.isSigned
|
||||
'form.checkIn': 1
|
||||
})
|
||||
}else{
|
||||
wx.showToast({
|
||||
title: res.message,
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
this.setData({
|
||||
'form.checkIn': 0
|
||||
})
|
||||
if(res.message == '签到图片'){
|
||||
wx.showToast({
|
||||
title: '请手动签到',
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
})
|
||||
}else{
|
||||
wx.showToast({
|
||||
title: res.message,
|
||||
icon: "none",
|
||||
duration: 2000
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -48,10 +59,9 @@ Page({
|
||||
onLoad: function (options) {
|
||||
console.log(options)
|
||||
this.setData({
|
||||
isSigned: options.signed
|
||||
isSigned: options.signed,
|
||||
})
|
||||
let form = JSON.parse(options.meeting)
|
||||
console.log(form)
|
||||
this.setData({
|
||||
form
|
||||
})
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<view class="basic-info">
|
||||
<image wx:if="{{form.checkIn}}" src="../../assets/images/yqd.png" class="sign-image"></image>
|
||||
<view>
|
||||
<text>会议名称</text>
|
||||
<text>{{form.meetingName}}</text>
|
||||
@@ -13,7 +14,7 @@
|
||||
</view>
|
||||
<view>
|
||||
<text>召开时间</text>
|
||||
<text>{{form.startTime}}</text>
|
||||
<text>{{form.startTime}}</text>
|
||||
</view>
|
||||
<!-- 已报名信息显示的内容start -->
|
||||
<view wx:if="{{isSigned}}">
|
||||
@@ -26,9 +27,10 @@
|
||||
</view>
|
||||
<view wx:if="{{isSigned}}">
|
||||
<text>是否签到</text>
|
||||
<text>{{form.checkIn_dictText}}</text>
|
||||
<text>{{form.checkIn ? '是' : '否'}}</text>
|
||||
</view>
|
||||
<view wx:if="{{isSigned}}">
|
||||
<!-- 未签到时,显示“手动签到” checkIn: 是否签到 -->
|
||||
<view wx:if="{{!form.checkIn}}">
|
||||
<text>手动签到</text>
|
||||
<text style="color: #069F99;" bindtap="scanSign">签到</text>
|
||||
</view>
|
||||
@@ -36,12 +38,12 @@
|
||||
<view class="imageBox" wx:if="{{src}}">
|
||||
<image src="{{src}}" ></image>
|
||||
</view>
|
||||
<view class="scanSign" wx:if="{{isSigned}}">
|
||||
<view class="scanSign" wx:if="{{isSigned && !form.checkIn}}">
|
||||
<text bindtap="sureSign">签到</text>
|
||||
</view>
|
||||
<!-- 已报名信息显示的内容end -->
|
||||
|
||||
<!-- 未报名显示的内容start -->、
|
||||
<!-- 未报名显示的内容start -->
|
||||
|
||||
<view class="warning-text" wx:if="{{!isSigned}}">
|
||||
<image src="../../assets/images/warning.png"></image>
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
.basic-info{
|
||||
position: relative;
|
||||
}
|
||||
.sign-image{
|
||||
z-index: 9;
|
||||
position: absolute;
|
||||
width: 98px;
|
||||
height: 85px;
|
||||
top: 10px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
.basic-info .title{
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// pages/meeting/meeting.js
|
||||
import UserApi from '../../assets/js/http/userApi'
|
||||
import { encrypt } from '../../assets/js/jsencrypt/rsa'
|
||||
import { wxBind } from '../../assets/js/common'
|
||||
Page({
|
||||
/**
|
||||
* 页面的初始数据
|
||||
@@ -83,11 +84,11 @@ Page({
|
||||
key: 'X-Access-Token',
|
||||
data: that.data.password
|
||||
})
|
||||
// 绑定微信
|
||||
this.wxBind()
|
||||
wx.switchTab({
|
||||
url: '../home/home',
|
||||
})
|
||||
// 绑定微信
|
||||
this.wxBind()
|
||||
} else {
|
||||
wx.showToast({
|
||||
title: '登录失败',
|
||||
@@ -100,28 +101,14 @@ Page({
|
||||
},
|
||||
// 绑定微信
|
||||
wxBind(){
|
||||
// 获取openid进行手机号和微信的绑定
|
||||
wx.login({
|
||||
success (res) {
|
||||
if (res.code) {
|
||||
//发起网络请求
|
||||
wx.request({
|
||||
url: 'https://api.weixin.qq.com/sns/jscode2session',
|
||||
data: {
|
||||
appid: 'wx24914e866df035fb',
|
||||
secret: '0d2830f26f57722716249f2b2236f409',
|
||||
js_code: res.code,
|
||||
grant_type: 'authorization_code'
|
||||
},
|
||||
success (res) { // 成功拿到openId
|
||||
// 微信和该账号绑定
|
||||
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log('授权失败!' + res.errMsg)
|
||||
}
|
||||
wxBind((res)=>{
|
||||
// 微信和该账号绑定
|
||||
let params = {
|
||||
openId: res.data.openid,
|
||||
rsaPublicKey: that.data.rsaPublicKey
|
||||
}
|
||||
// 需要判断是否绑定过微信,再进行绑定请求
|
||||
UserApi.wxBind(params).then(res=>{})
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||