const app = getApp() const api = require("../../utils/api") const homeApi = require("../../utils/home") const global = require("../../utils/config") import { getTimestamp } from "../../utils/common" import checkoutVersion from "../../utils/checkVersion" // import regeneratorRuntime from "../../utils/runtime.js" Page({ data: { statusHeight: 0, // 自定义头部状态栏高度 navigationHeight: 0, // 自定义头部导航栏高度 bannerList: [], // banner列表 newsList: [], // 新闻列表 projectList: [], // 项目列表 infoList: [], // 消息列表 unReadNum: 0, // 未读数量 loadMoreType: "none", loadMoreVisible: false, pageNo: 1, // 新闻列表-分页页码 pageSize: 10, // 新闻列表-分页页长 timestamp: "", // 时间戳 sudokuState: { // 九宫格显隐状态 consultAvailable: "0", // 网格专员 appraiseAvailable: "0", // 请您监督, talkAndNeedAndPartyAvaliable: "0" // 随时讲、需求清单、党群服务中心 }, completeInfoDialogVisible: false, // 完善信息弹框显隐 gridId: "", // 网格id departmentName: "", // 所在网格 departmentId: "",//1191534416067149825所在网格id street: "",//所在街道 isCarryLoad: false, userId: "", userInfo: { nickname: "", mobile: "", faceImg: "" }, visible: false, signMsg: "", signCode: 0, isSignUp: 0, communityId: "" // 社区id }, async onLoad(options) { wx.showLoading({ title: "加载中,请稍后", mask: true }) if (options.shareType) { const para = { shareType: options.shareType, detailId: options.detailId, infoCompleted: options.infoCompleted ? options.infoCompleted : "", type: options.detailType ? options.detailType : "", showClassify: options.showClassify ? options.showClassify : "", nowGridId: options.nowGridId ? options.nowGridId : "" } wx.setStorageSync("shareObj", JSON.stringify(para)) } if (options.scene) { this.setData({ statusHeight: app.globalData.deviceInfo.statusHeight, navigationHeight: app.globalData.deviceInfo.navigationHeight, gridId: options.scene, }) } else { this.setData({ statusHeight: app.globalData.deviceInfo.statusHeight, navigationHeight: app.globalData.deviceInfo.navigationHeight, }) } // 切换网格的时候,更换网格id if (options.departmentId) { this.setData({ departmentId: options.departmentId }) } await this.getUserState() this.data.isCarryLoad = true }, onTabItemTap() { this.getUserState() }, onShow() { // 检查版本更新 checkoutVersion() this.getFirstInfo() }, onReachBottom() { this.setData({ loadMoreVisible: true }) if (this.data.loadMoreType === "loading") { this.data.pageNo += 1 this.getNewsList() } }, // 根据微信code查询用户当前状态 getUserState() { let that = this wx.login({ success(res) { if (res.code) { let code = res.code api.getToken(code).then(res => { wx.hideLoading() const state = res.data.userState app.globalData.infoCompleted = state wx.setStorageSync("topGridName", res.data.grid) wx.setStorageSync("gridId", res.data.gridId) //当前网格id,新闻、议题、项目分享时用 wx.setStorageSync("token", res.data.token) that.setData({ departmentName: res.data.grid, departmentId: res.data.gridId, userId: res.data.userId }) that.getComplete() that.getUserLoginlog() // 扫码进入 if (that.data.gridId !== "") { // 扫的是网格长码 if (that.data.gridId == "gridLeader") { wx.redirectTo({ url: "/pages/gridLeaderRegister/gridLeaderRegister" }) // 扫的是网格码 } else { wx.redirectTo({ url: `/pages/formid/formid?gid=${that.data.gridId}` }) } } else { if (state == "4") { // 非扫码进入,通过搜索小程序直接进入的情况 if (wx.getStorageSync("shareObj")) { const para = JSON.parse(wx.getStorageSync("shareObj")) wx.redirectTo({ url: "/pages/formid/formid?gid=" + para.nowGridId }) } else { wx.redirectTo({ url: "/pages/toRegister/toRegister" }) } } else { if (wx.getStorageSync("shareObj")) { const para = JSON.parse(wx.getStorageSync("shareObj")) if (para.shareType === "newsDetail") { wx.navigateTo({ url: `/subpages/home/pages/newsDetail/newsDetail?id=${para.detailId}` }) } else if (para.shareType === "discussionDetail") { wx.navigateTo({ url: `/subpages/discussion/pages/discussionDetail/discussionDetail?detailId=${para.detailId}&type=${para.type}&showClassify=${para.showClassify}` }) } wx.removeStorageSync("shareObj") } that.initLoad() } } }) } else { console.log("登录失败" + res.errMsg) } } }) }, // 获取小程序用户登录日志 async getUserLoginlog() { let data = { userId: this.data.userId } await api.userLoginlog(data) }, // 获取banner列表 getBannerList() { api.bannerList("0").then(res => { console.log("首页banner列表", res) this.setData({ bannerList: res.data }) }).catch(() => { console.log("获取banner列表失败") this.setData({ bannerList: [] }) }) }, // 获取新闻列表 getNewsList() { let para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp } api.newsList(para).then((res) => { console.log("首页新闻列表", res) this.setData({ loadMoreType: res.data.length === this.data.pageSize ? "loading" : "none", newsList: this.data.newsList.concat(res.data) }) }).catch(() => { console.log("首页新闻列表获取失败") this.setData({ loadMoreType: "none", newsList: [] }) }) }, // 获取项目列表 getProjectList() { const para = { pageIndex: 1, pageSize: 10, timestamp: this.data.timestamp, searchContent: "", firstCategoryCode: "" } api.getProjectList(para).then(res => { console.log("项目列表", res) this.setData({ projectList: res.data, }) }).catch((err) => { console.log("获取项目列表失败", err) this.setData({ projectList: [] }) }) }, // 获取最新一条消息-主要获取消息未读数 getUnreadNum() { api.getFirstInfo().then(res => { console.log("获取消息未读数", res) this.setData({ unReadNum: res.data.amount }) }).catch(() => { console.log("获取消息未读数失败") }) }, // 获取消息列表 getInfoList() { let para = { pageIndex: 1, pageSize: 10, timestamp: this.data.timestamp } homeApi.getInfoList(para).then(res => { console.log("消息列表", res) this.setData({ infoList: res.data }) }).catch(() => { console.log("获取消息列表失败") }) }, // 九宫格检查状态 getIndexSudokuState() { api.getIndexSudokuState().then(res => { console.log("九宫格状态", res) let consultAvailable = "0" let appraiseAvailable = "0" if (res.data.length > 0) { res.data.forEach(item => { if (item.name === "咨询" && item.availableFlag === "1") { consultAvailable = "1" } else if (item.name === "干部评价" && item.availableFlag === "1") { appraiseAvailable = "1" } }) } this.setData({ sudokuState: { consultAvailable, appraiseAvailable } }) }).catch(() => { console.log("获取九宫格状态失败") this.setData({ sudokuState: { consultAvailable: "0", appraiseAvailable: "0" } }) }) }, // 跳转到需求清单 navigateToDemand () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/demand/pages/demandList/demandList" }) }, // 行程上报 navigateToTripReport () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/extend/pages/tripReport/tripReport" }) }, // 党群服务中心 navigateToPartyMasses () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/partyMassesServiceCenter/pages/partyMassesMap/partyMassesMap" }) }, // 问卷调查 navigateToQuestionnaire () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/questionnaire/pages/index/index" }) }, // 办事指南 navigateToServiceGuide () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/workguide/pages/index/index" }) }, // 党员风采 navigatetoPartyElegant () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: `/subpages/partyElegant/pages/partyElegant/partyElegant?communityId=${this.data.communityId}` }) }, // 联建活动 navigatetoUnionBuild () { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: `/subpages/unionBuild/pages/list/list?communityId=${this.data.communityId}` }) }, // 跳转到随时讲 navigateToAnytimeSay() { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/discussion/pages/anytimeSay/anytimeSay" }) }, // 跳转到有奖举报 navigateToAnytimeSay_cc() { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/discussion/pages/anytimeSay/anytimeSay?isCreateCity=1" }) }, // 跳转到我要报事 navigateToAddIssue() { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/discussion/pages/addIssue/addIssue" }) }, // 跳转到网格专员 navigatetoConsultion() { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } wx.navigateTo({ url: "/subpages/home/pages/consultation/consultation" }) }, // 跳转到通知公告 navigateToNotice() { wx.navigateTo({ url: "/subpages/home/pages/notice/notice" }) }, // 获取完整机构 getComplete() { api.getComplete(this.data.departmentId).then((res) => { this.setData({ street: res.data.street, departmentId: res.data.gridId, communityId: res.data.communityId }) }).catch((err) => { console.log(err) }) }, // 跳转到请您监督 navigatetoAppraise() { if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } const token = wx.getStorageSync("token") // https://lyljdgs.qingdaoshibei.cn/app/mobileapp/mszj/index.aspx?deptName=延安路街道&gridId=123467521122 wx.navigateTo({ url: `/subpages/home/pages/webview/webview?url=${global.WEBROOT()}&token=${token}&deptName=${this.data.street}&gridId=${this.data.departmentId}` }) }, // 初始化加载 initLoad() { this.setData({ pageNo: 1, pageSize: 10, timestamp: getTimestamp(), newsList: [], loadMoreType: "loading", loadMoreVisible: false }) this.getBannerList() this.getIndexSudokuState() this.getProjectList() this.getInfoList() this.getUnreadNum() this.getNewsList() this.getUserInfo() this.getAppMenu() }, // onShow() { // this.getUnreadNum() // }, // 切换网格,跳转到网格列表 changeGrid() { wx.navigateTo({ url: "/subpages/changegrid/pages/changeGrid/changeGrid" }) }, // 跳转到新闻详情 navigatetoNewsDetail(e) { wx.navigateTo({ url: `/subpages/home/pages/newsDetail/newsDetail?id=${e.detail.newsId}` }) }, // 跳转到 项目详情 navigatetoItemDetail(e) { wx.navigateTo({ url: `/subpages/discussion/pages/discussionDetail/discussionDetail?type=project&detailId=${e.detail.itemId}&showClassify=show` }) }, // 跳转到消息列表 navigateToInfoList() { wx.navigateTo({ url: "/subpages/home/pages/info/info" }) }, // 跳转到banner详情 navigatetoBannerDetail(e) { const { id, url, newsFlag } = e.detail if (newsFlag == "0") { wx.navigateTo({ url: `/subpages/home/pages/webview/webview?url=${url}` }) } else if (newsFlag == "1") { wx.navigateTo({ url: `/subpages/home/pages/newsDetail/newsDetail?id=${id}` }) } }, getFirstInfo() { api.getFirstInfo().then((res) => { console.log("infoObj", res.data) }) }, //下拉刷新 async onPullDownRefresh() { await this.initLoad() wx.stopPullDownRefresh(); }, // 获取用户信息 getUserInfo() { api.getUserInfo().then(res => { console.log("用户信息", res) const userInfo = {} for (const key in this.data.userInfo) { userInfo[key] = res.data[key] } this.setData({ userInfo, isSignUp: res.data.isSignUp ? res.data.isSignUp : 0 }) }).catch(err => { this.setData({ userInfo: { faceImg: "", nickname: "", partyFlag: "0", isSignUp: 0 } }) console.log(err) }) }, //签到 2020.07.31 toSignIn () { console.log(app.globalData.infoCompleted, this.data.isSignUp) if (app.globalData.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return false } if (this.data.isSignUp == 1) { return } api.userInfoSignUp().then(res => { console.log(res.data) if (res.code === 0) { // 显示提醒 this.setData({ signCode: res.code, signMsg: res.data, visible: true }); } else { this.setData({ signCode: res.code, signMsg: res.msg, visible: true }); } }) }, // 关闭签到提醒 onClose() { this.getUserInfo() this.setData({ visible: false }); }, // 获取小程序菜单权限 getAppMenu () { const params = { deptId: wx.getStorageSync("gridId") } api.getAppMenu(params).then(res => { console.log("获取首页菜单权限", res) this.setData({ "sudokuState.talkAndNeedAndPartyAvaliable": res.data || "0" }) }) } })