diff --git a/assets/images/jcbd.png b/assets/images/jcbd.png new file mode 100644 index 0000000..5cb15c1 Binary files /dev/null and b/assets/images/jcbd.png differ diff --git a/assets/images/jxz.png b/assets/images/jxz.png new file mode 100644 index 0000000..ba0d0e7 Binary files /dev/null and b/assets/images/jxz.png differ diff --git a/assets/images/wks.png b/assets/images/wks.png new file mode 100644 index 0000000..cf2531c Binary files /dev/null and b/assets/images/wks.png differ diff --git a/assets/images/xgmm.png b/assets/images/xgmm.png index c68bac2..5870b00 100644 Binary files a/assets/images/xgmm.png and b/assets/images/xgmm.png differ diff --git a/assets/images/yjs.png b/assets/images/yjs.png new file mode 100644 index 0000000..7f5e5f2 Binary files /dev/null and b/assets/images/yjs.png differ diff --git a/assets/images/youji.png b/assets/images/youji.png new file mode 100644 index 0000000..ccff9ea Binary files /dev/null and b/assets/images/youji.png differ diff --git a/assets/images/yqd.png b/assets/images/yqd.png new file mode 100644 index 0000000..ff83c64 Binary files /dev/null and b/assets/images/yqd.png differ diff --git a/assets/js/common.js b/assets/js/common.js new file mode 100644 index 0000000..4779f12 --- /dev/null +++ b/assets/js/common.js @@ -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) + } + } + }) +} \ No newline at end of file diff --git a/assets/js/http/userApi.js b/assets/js/http/userApi.js index 05e0c07..9d6f4c9 100644 --- a/assets/js/http/userApi.js +++ b/assets/js/http/userApi.js @@ -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 diff --git a/pages/committee/committee.js b/pages/committee/committee.js index 3349a12..e75f6fe 100644 --- a/pages/committee/committee.js +++ b/pages/committee/committee.js @@ -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() } }) \ No newline at end of file diff --git a/pages/committee/committee.json b/pages/committee/committee.json index 8835af0..61f9e0c 100644 --- a/pages/committee/committee.json +++ b/pages/committee/committee.json @@ -1,3 +1,4 @@ { + "navigationBarTitleText": "分标委", "usingComponents": {} } \ No newline at end of file diff --git a/pages/committee/committee.wxml b/pages/committee/committee.wxml index 33f168c..f679d03 100644 --- a/pages/committee/committee.wxml +++ b/pages/committee/committee.wxml @@ -1,4 +1,9 @@ - 分标委 + + {{item.name}} + + + 暂无数据 + diff --git a/pages/committee/committee.wxss b/pages/committee/committee.wxss index 94874ac..e78ee55 100644 --- a/pages/committee/committee.wxss +++ b/pages/committee/committee.wxss @@ -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; } \ No newline at end of file diff --git a/pages/committeeDetail/committeeDetail.js b/pages/committeeDetail/committeeDetail.js new file mode 100644 index 0000000..70c8f40 --- /dev/null +++ b/pages/committeeDetail/committeeDetail.js @@ -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 () { + + } +}) diff --git a/pages/committeeDetail/committeeDetail.json b/pages/committeeDetail/committeeDetail.json new file mode 100644 index 0000000..61f0f4a --- /dev/null +++ b/pages/committeeDetail/committeeDetail.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "详情", + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/committeeDetail/committeeDetail.wxml b/pages/committeeDetail/committeeDetail.wxml new file mode 100644 index 0000000..aaf475d --- /dev/null +++ b/pages/committeeDetail/committeeDetail.wxml @@ -0,0 +1,29 @@ + + + + 项目名称 + {{form.name}} + + + 项目资料 + + {{item.fileName}} + + + + + + + 会议信息 + 更多>> + + + + {{item.meetingName}} + 查看详情 + + + 暂无会议记录! + + \ No newline at end of file diff --git a/pages/committeeDetail/committeeDetail.wxss b/pages/committeeDetail/committeeDetail.wxss new file mode 100644 index 0000000..5159e1d --- /dev/null +++ b/pages/committeeDetail/committeeDetail.wxss @@ -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; +} \ No newline at end of file diff --git a/pages/contractDetail/contractDetail.json b/pages/contractDetail/contractDetail.json index 8835af0..61f0f4a 100644 --- a/pages/contractDetail/contractDetail.json +++ b/pages/contractDetail/contractDetail.json @@ -1,3 +1,4 @@ { + "navigationBarTitleText": "详情", "usingComponents": {} } \ No newline at end of file diff --git a/pages/contractDetail/contractDetail.wxml b/pages/contractDetail/contractDetail.wxml index df3044c..334de5a 100644 --- a/pages/contractDetail/contractDetail.wxml +++ b/pages/contractDetail/contractDetail.wxml @@ -1,6 +1,8 @@ - 基本信息 + + 基本信息 + 合同编号 {{form.contractNum}} @@ -20,13 +22,17 @@ 关联项目 - {{item.chargeUse_dictText}} + {{item.chargeUse_dictText}} - 邮寄信息 - diff --git a/pages/contractDetail/contractDetail.wxss b/pages/contractDetail/contractDetail.wxss index a7cdbe5..c1884bc 100644 --- a/pages/contractDetail/contractDetail.wxss +++ b/pages/contractDetail/contractDetail.wxss @@ -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; diff --git a/pages/home/home.json b/pages/home/home.json index a2ebd45..965b8e8 100644 --- a/pages/home/home.json +++ b/pages/home/home.json @@ -1,7 +1,4 @@ { - "usingComponents": { - "popup": "../../components/popup/popup", - "dateMonth": "../../components/dateMonth/dateMonth" - }, + "usingComponents": {}, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/home/home.wxml b/pages/home/home.wxml index b623cf2..fe83ece 100644 --- a/pages/home/home.wxml +++ b/pages/home/home.wxml @@ -40,11 +40,15 @@ - + - {{item.titile_dictText}} + + + + + {{item.titile_dictText}} {{item.sendTime}} @@ -58,5 +62,3 @@ - - diff --git a/pages/home/home.wxss b/pages/home/home.wxss index a3e8fed..4d6871b 100644 --- a/pages/home/home.wxss +++ b/pages/home/home.wxss @@ -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; diff --git a/pages/login/login.js b/pages/login/login.js index 62b1365..a54a65c 100644 --- a/pages/login/login.js +++ b/pages/login/login.js @@ -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=>{}) }) }, diff --git a/pages/meeting/meeting.js b/pages/meeting/meeting.js index daf353d..de63585 100644 --- a/pages/meeting/meeting.js +++ b/pages/meeting/meeting.js @@ -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() } }) diff --git a/pages/meeting/meeting.wxml b/pages/meeting/meeting.wxml index 2548351..c135c34 100644 --- a/pages/meeting/meeting.wxml +++ b/pages/meeting/meeting.wxml @@ -1,10 +1,26 @@ - - {{select.select}} - - - + + + + 状态 + + + + + + + 会议类型 + + + + + + + 时间 + + + diff --git a/pages/mine/mine.js b/pages/mine/mine.js index 4c0c691..eab44b0 100644 --- a/pages/mine/mine.js +++ b/pages/mine/mine.js @@ -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({ diff --git a/pages/mine/mine.wxml b/pages/mine/mine.wxml index 55c8b93..167a86e 100644 --- a/pages/mine/mine.wxml +++ b/pages/mine/mine.wxml @@ -31,9 +31,9 @@ - + - + 解除绑定 diff --git a/pages/mineContract/mineContract.js b/pages/mineContract/mineContract.js index ac7ce5b..68199e7 100644 --- a/pages/mineContract/mineContract.js +++ b/pages/mineContract/mineContract.js @@ -35,6 +35,7 @@ Page({ * 生命周期函数--监听页面显示 */ onShow: function () { + this.data.pageNo = 1 this.loadData() }, diff --git a/pages/mineData/mineData.js b/pages/mineData/mineData.js index a8217c1..7276e74 100644 --- a/pages/mineData/mineData.js +++ b/pages/mineData/mineData.js @@ -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 + }) + } + }) }, /** diff --git a/pages/mineMeeting/mineMeeting.js b/pages/mineMeeting/mineMeeting.js deleted file mode 100644 index c903bcc..0000000 --- a/pages/mineMeeting/mineMeeting.js +++ /dev/null @@ -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 () { - - } -}) \ No newline at end of file diff --git a/pages/mineMeeting/mineMeeting.json b/pages/mineMeeting/mineMeeting.json deleted file mode 100644 index 8835af0..0000000 --- a/pages/mineMeeting/mineMeeting.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "usingComponents": {} -} \ No newline at end of file diff --git a/pages/mineMeeting/mineMeeting.wxml b/pages/mineMeeting/mineMeeting.wxml deleted file mode 100644 index d893413..0000000 --- a/pages/mineMeeting/mineMeeting.wxml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 会议列表未定 - 合同金额:5000元 - - - 合同编号:002 - 负责人:张三 - - - - diff --git a/pages/mineMeeting/mineMeeting.wxss b/pages/mineMeeting/mineMeeting.wxss deleted file mode 100644 index 6324f25..0000000 --- a/pages/mineMeeting/mineMeeting.wxss +++ /dev/null @@ -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; -} diff --git a/pages/phonePassword/phonePassword.js b/pages/phonePassword/phonePassword.js index 7845398..a08b809 100644 --- a/pages/phonePassword/phonePassword.js +++ b/pages/phonePassword/phonePassword.js @@ -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=>{}) }) }, /** diff --git a/pages/project/project.js b/pages/project/project.js index 8ad94c6..f3055da 100644 --- a/pages/project/project.js +++ b/pages/project/project.js @@ -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(){ diff --git a/pages/project/project.json b/pages/project/project.json index 08ac634..0e892df 100644 --- a/pages/project/project.json +++ b/pages/project/project.json @@ -1,7 +1,4 @@ { "navigationBarTitleText": "项目", - "usingComponents": { - "popup": "../../components/popup/popup", - "dateMonth": "../../components/dateMonth/dateMonth" - } + "usingComponents": {} } \ No newline at end of file diff --git a/pages/project/project.wxml b/pages/project/project.wxml index c727c85..444bba9 100644 --- a/pages/project/project.wxml +++ b/pages/project/project.wxml @@ -1,32 +1,26 @@ - - + - 发票{{searchParams.needInvoice == '' ? '' : searchParams.needInvoice == 1 ? ' :是' : ' :否'}} + 发票 - + - 打包{{searchParams.pack == '' ? '' : searchParams.pack == 1 ? ' :是' : ' :否'}} + 打包 - + - 时间 - 时间:{{searchParams.year}}年 + 时间 diff --git a/pages/projectDetail/projectDetail.js b/pages/projectDetail/projectDetail.js index ac91a1b..faf832d 100644 --- a/pages/projectDetail/projectDetail.js +++ b/pages/projectDetail/projectDetail.js @@ -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 + }) }) - }) + } }) }, diff --git a/pages/projectDetail/projectDetail.json b/pages/projectDetail/projectDetail.json index 8835af0..61f0f4a 100644 --- a/pages/projectDetail/projectDetail.json +++ b/pages/projectDetail/projectDetail.json @@ -1,3 +1,4 @@ { + "navigationBarTitleText": "详情", "usingComponents": {} } \ No newline at end of file diff --git a/pages/projectDetail/projectDetail.wxml b/pages/projectDetail/projectDetail.wxml index 08733cd..581ae9a 100644 --- a/pages/projectDetail/projectDetail.wxml +++ b/pages/projectDetail/projectDetail.wxml @@ -74,17 +74,18 @@ - + 会议信息 + 更多>> - + - hi一 - 查看详情 + {{item.meetingName}} + 查看详情 - 暂无会议记录! + 暂无会议记录! @@ -92,8 +93,8 @@ {{item.paymentDate}}到账{{item.amountReceived}}元 - 暂无到账记录! + 暂无到账记录! @@ -130,5 +131,6 @@ 查看物流 + 暂无邮寄记录! \ No newline at end of file diff --git a/pages/projectDetail/projectDetail.wxss b/pages/projectDetail/projectDetail.wxss index d29bfc6..5159e1d 100644 --- a/pages/projectDetail/projectDetail.wxss +++ b/pages/projectDetail/projectDetail.wxss @@ -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; diff --git a/pages/scanSign/scanSign.js b/pages/scanSign/scanSign.js index 91df21c..238d541 100644 --- a/pages/scanSign/scanSign.js +++ b/pages/scanSign/scanSign.js @@ -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 }) diff --git a/pages/scanSign/scanSign.wxml b/pages/scanSign/scanSign.wxml index 6ba917c..4b4ad07 100644 --- a/pages/scanSign/scanSign.wxml +++ b/pages/scanSign/scanSign.wxml @@ -1,4 +1,5 @@ + 会议名称 {{form.meetingName}} @@ -13,7 +14,7 @@ 召开时间 - {{form.startTime}} + {{form.startTime}} @@ -26,9 +27,10 @@ 是否签到 - {{form.checkIn_dictText}} + {{form.checkIn ? '是' : '否'}} - + + 手动签到 签到 @@ -36,12 +38,12 @@ - + 签到 -、 + diff --git a/pages/scanSign/scanSign.wxss b/pages/scanSign/scanSign.wxss index 29462f6..a1a5323 100644 --- a/pages/scanSign/scanSign.wxss +++ b/pages/scanSign/scanSign.wxss @@ -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; } diff --git a/pages/setPassword/setPassword.js b/pages/setPassword/setPassword.js index ab80001..f0e31a1 100644 --- a/pages/setPassword/setPassword.js +++ b/pages/setPassword/setPassword.js @@ -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=>{}) }) }, /**