import { mapState } from 'vuex' import store from "../store"; import environments from '@/environments' const mixinsCommon = { computed: { ...mapState({ hasLogin: state => { // console.log('computed hasLogin',state.hasLogin,state) return state.hasLogin || false }, selftype: state => { return state.type || '' }, currentInfo: state => { return state.currentInfo || {} }, cache_address: state => { return state.cache_address || {} }, cache_user: state => { return state.currentInfo || {} }, // currentEnId: state=>{ // // console.log('currentEnId',state.currentInfo.enId,state.currentInfo) // return state.currentInfo.enId || '' // } }), }, data() { return { list: [], query: {}, page: { size: 10, current: 1, total: 0, }, style: { 'color': '#fff' }, listApi: '', regUserName: '用户-' + this.getRandomName(Math.floor(Math.random() * (6 - 2) + 3)), regAvatarUrl: 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png', } }, methods: { onChooseavatar(e) { let self = this; let { avatarUrl } = e.detail; this.regAvatarUrl = avatarUrl console.log('avatarUrl', this.regAvatarUrl) }, onBindblur(e) { this.regUserName = e.detail.value; // 获取微信昵称 }, onBindinput(e) { this.regUserName = e.detail.value; // 获取微信昵称 }, randomAccess(min, max) { return Math.floor(Math.random() * (min - max) + max) }, getRandomName(NameLength) { let name = "" for (let i = 0; i < NameLength; i++) { let unicodeNum = "" unicodeNum = this.randomAccess(0x4e00, 0x9fa5).toString(16) name += this.decodeUnicode(unicodeNum) } return name }, decodeUnicode(str) { //Unicode显示方式是\u4e00 str = "\\u" + str str = str.replace(/\\/g, "%"); //转换中文 str = unescape(str); //将其他受影响的转换回原来 str = str.replace(/%/g, "\\"); return str; }, async onWxCheckSubmit() { if (this.regUserName == '微信用户') { this.$message.showToast('昵称不合规,不可以叫做:微信用户哈~') return } //保存一下 //先上传图片 if (this.regAvatarUrl === 'https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png') { var picture = this.regAvatarUrl //更新接口 this.$message.showLoading() const { code } = await this.$http.request('post', "/api/current/user/update", { data: { ...this.dto, nickName: this.regUserName, picture: picture } }) this.$message.hideLoading() this.$forceUpdate() if (code == 0) { this.$refs.popup_info.close() this.$message.showToast('设置成功') this.currentInfo.picture = picture this.currentInfo.nickName = this.regUserName } else { } } else { this.$http.upload(this.regAvatarUrl).then(async res => { var picture = res.data && res.data.length > 0 && res.data[0].url || '' //更新接口 this.$message.showLoading() const { code } = await this.$http.request('post', "/api/current/user/update", { data: { ...this.currentInfo, nickName: this.regUserName, picture: picture } }) this.$message.hideLoading() this.$forceUpdate() if (code == 0) { this.$refs.popup_info.close() this.$message.showToast('设置成功') this.currentInfo.picture = picture this.currentInfo.nickName = this.regUserName } else { } }) } }, async getUserProfile(e) { this.$message.showLoading() const res = await wx.getUserProfile({ desc: '用于完善会员资料', }); console.log(res); this.$message.hideLoading() this.login_Wx(res.userInfo.avatarUrl, res.userInfo.nickName) }, login_Wx(imgurl, nickname) { //获取openId // /wx/jscode2session let inviter = this.$storage.getItem('inviter') || '' let inviterName = this.$storage.getItem('inviterName') || '' //有效24小时 if (inviter) { var inviterTime = this.$storage.getItem('inviterTime') if (new Date().getTime() > parseInt(inviterTime) + 1000 * 3600 * 24) { inviter = '' inviterName = '' this.$storage.removeItem('inviter') this.$storage.removeItem('inviterTime') this.$storage.removeItem('inviterName') } } const tmp = this; this.$message.showLoading() this.openid = this.$storage.getItem('openid'); this.tel = this.$storage.getItem('tel'); console.log('info,info,info,info,info,info', this.openid, this.tel); if (!!this.openid && !!this.tel) { // this.login = true; } else { // this.login = false; console.log('wx.login'); wx.login({ success: async res => { if (res.code) { //微信登录成功 已拿到code // tmp.login = true; // tmp.jsCode = res.code; //保存获取到的code console.log('abcd', res.code); // this.$http.request('post',`/api/login/wechat`,{data:{code:tmp.jsCode}}) this.$storage.setItem('jsCode', res.code); const res2 = await wx.getUserInfo(); console.log('res', res2); this.tcode = res.code || '' // if (nickname == '微信用户' || true) { // //跳出弹出框,获取具体用户信息 // tmp.$message.hideLoading() // this.$refs.popup_info.open() // } else { await this.$store.dispatch('loginwx', { code: res.code, imgurl: imgurl, nickname: nickname, inviter: inviter }); tmp.$message.hideLoading() this.$forceUpdate() //延迟,如果用户昵称是微信用户的话? setTimeout(() => { if (tmp.currentInfo && tmp.currentInfo.id) { if (tmp.currentInfo.nickName == '微信用户') { tmp.$refs.popup_info && tmp.$refs.popup_info.open() } } }, 500) // } } else { tmp.$message.hideLoading() tmp.$message.showToast('微信登录失败'); } }, error: res => { console.log('wx.login error', res); tmp.$message.hideLoading() tmp.$message.showToast('微信授权失败'); } }); } }, previewImg(url) { if (url) { uni.previewImage({ urls: [url] }) } }, checkFormValues(dto, keys) { if (keys) { for (var key of keys) { if (!dto[key]) { return false } } } return true }, async refreshList(){ this.page.current = 1 await this.getList() }, async getList() { if (this.listApi) { this.$message.showLoading() const { data } = await this.$http.request('get', this.listApi, { params: { ...this.query, ...this.page } }) if (data) { if (this.page.current == 1) { this.list = data.records || [] } else { //根据id去重正常 var ids = [] for (var item of this.list) { ids.push(item.id) } for (var item of data.records) { if (ids.indexOf(item.id) < 0) { this.list.push(item) } } } this.page.total = data.total || 0 } this.$message.hideLoading() } }, async getMore() { if (this.page.total > this.page.current * this.page.size) { this.page.current += 1 await this.getList() } }, backHome() { uni.reLaunch({ url: '/pages/home/home' }) }, goto(url, check = false) { if (check) { console.log('currentInfo', this.currentInfo) if (!this.currentInfo.id) { this.$message.showToast('请先登陆') return } } uni.navigateTo({ url }) }, backpage() { // this.$router.go(-1) uni.navigateBack() } // #ifdef APP || H5 , async appdownload(url, name = '') { await this.$message.confirm('确定下载此文件吗') let _this = this if (url) { // var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url // uni.downloadFile({ // url: url2, // success: (res) => { // if (res.statusCode === 200) { // _this.$message.showToast('下载成功') // } else { // console.log(res) // _this.$message.showToast('下载失败') // } // }, // fail: (res) => { // console.log(res) // _this.$message.showToast('下载失败') // } // }); _this.$message.showLoading() uni.downloadFile({ url: url, //下载地址接口返回 success: (data) => { _this.$message.hideLoading() console.log('success', data) if (data.statusCode === 200) { //文件保存到本地 uni.saveFile({ tempFilePath: data.tempFilePath, //临时路径 success: function(res) { uni.showToast({ icon: 'none', mask: true, title: '文件已保存:' + res .savedFilePath, //保存路径 duration: 2000, }); setTimeout(() => { //打开文档查看 uni.openDocument({ filePath: res.savedFilePath, success: function(res) { // console.log('打开文档成功'); } }); }, 2000) }, fail: (err) => { console.log(err); uni.showToast({ icon: 'none', mask: true, title: '下载成功保存失败', }); }, }); } }, fail: (err) => { _this.$message.hideLoading() console.log(err); uni.showToast({ icon: 'none', mask: true, title: '失败请重新下载', }); }, }); } } // #endif // #ifdef MP , async wxdownload(url, name = '') { await this.$message.confirm('是否要下载此文件') var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url let that = this that.$message.showLoading() // wx.sa // wx.downloadFile({ // url: url2, // success: res => { // that.$message.showToast('下载成功') // }, // fail: res => { // that.$message.showToast('下载失败') // }, // complete: res => { // that.$message.hideLoading() // } // }) wx.downloadFile({ url: url, timeout: 120000, success(res) { that.$message.hideLoading() console.log('res', res) if (res.statusCode === 200) { const filePath = res.tempFilePath if (filePath.endsWith('.jpg') || filePath.endsWith('.jpeg') || filePath.endsWith('.png') || filePath.endsWith('.jpg')) { wx.saveImageToPhotosAlbum({ filePath: filePath, success: function(res) { that.$message.showToast('保存图片成功') }, fail: function(res) { that.$message.showToast('打开文档失败,非支持的类型') } }) } else if (filePath.endsWith('.mp4') || filePath.endsWith('.flv') || filePath.endsWith('.avi') || filePath.endsWith('.wmv') || filePath.endsWith('.mpeg')) { wx.saveVideoToPhotosAlbum({ filePath: filePath, success: function(res) { that.$message.showToast('保存视频成功') }, fail: function(res) { that.$message.showToast('打开文档失败,非支持的类型') } }) } else { wx.openDocument({ filePath: filePath, showMenu: true, //关键点 success: function(res) { console.log('打开文档成功') }, fail: function(res) { that.$message.showToast('打开文档失败,非支持的类型') } }) } } else { that.$message.showToast('下载失败,服务器内部错误') } }, fail: res => { that.$message.hideLoading() that.$message.showToast('下载失败') }, complete: res => { } }) } // #endif } } export default mixinsCommon