| | |
| | | import { |
| | | mapState |
| | | 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.currentInfo || {}).type || '' |
| | | }, |
| | | currentInfo: state => { |
| | | return state.currentInfo || {} |
| | | }, |
| | | cache_address: state => { |
| | | return state.cache_address || {} |
| | | }, |
| | | cache_user: state => { |
| | | return state.currentInfo || {} |
| | | }, |
| | | sign: state => { |
| | | return state.sign || {} |
| | | }, |
| | | // 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', |
| | | computed: { |
| | | ...mapState({ |
| | | hasLogin: state => { |
| | | // console.log('computed hasLogin',state.hasLogin,state) |
| | | return state.hasLogin || false |
| | | }, |
| | | selftype: state => { |
| | | return (state.currentInfo || {}).type || '' |
| | | }, |
| | | currentInfo: state => { |
| | | return state.currentInfo || {} |
| | | }, |
| | | cache_address: state => { |
| | | return state.cache_address || {} |
| | | }, |
| | | cache_user: state => { |
| | | return state.currentInfo || {} |
| | | }, |
| | | sign: state => { |
| | | return state.sign || {} |
| | | }, |
| | | // 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 |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | 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 { |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | | } 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 { |
| | | 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') |
| | | } |
| | | } |
| | | 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() |
| | | 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() |
| | | // 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 { |
| | | await this.$store.dispatch('loginwx', { |
| | | code: res.code, |
| | | imgurl: imgurl, |
| | | nickname: nickname, |
| | | inviter: inviter |
| | | }); |
| | | tmp.$message.hideLoading() |
| | | this.$forceUpdate() |
| | | //延迟,如果用户昵称是微信用户的话? |
| | | |
| | | } else { |
| | | tmp.$message.hideLoading() |
| | | tmp.$message.showToast('微信登录失败'); |
| | | setTimeout(() => { |
| | | if (tmp.currentInfo && tmp.currentInfo.id) { |
| | | if (tmp.currentInfo.nickName == '微信用户') { |
| | | tmp.$refs.popup_info && tmp.$refs.popup_info.open() |
| | | } |
| | | } |
| | | }, 500) |
| | | // } |
| | | |
| | | } |
| | | }, |
| | | error: res => { |
| | | console.log('wx.login error', res); |
| | | tmp.$message.hideLoading() |
| | | } else { |
| | | tmp.$message.hideLoading() |
| | | tmp.$message.showToast('微信登录失败'); |
| | | |
| | | tmp.$message.showToast('微信授权失败'); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | error: res => { |
| | | console.log('wx.login error', res); |
| | | tmp.$message.hideLoading() |
| | | |
| | | 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(type='get') { |
| | | if (this.listApi) { |
| | | this.$message.showLoading() |
| | | const { |
| | | data |
| | | } = await this.$http.request(type, this.listApi, { |
| | | params: { |
| | | ...this.query, |
| | | ...this.page |
| | | }, |
| | | data:{ |
| | | ...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) |
| | | } |
| | | } |
| | | tmp.$message.showToast('微信授权失败'); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | } |
| | | this.page.total = data.total || 0 |
| | | } |
| | | this.$message.hideLoading() |
| | | } |
| | | 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(type = 'get') { |
| | | if (this.listApi) { |
| | | this.$message.showLoading() |
| | | const { |
| | | data |
| | | } = await this.$http.request(type, this.listApi, { |
| | | params: { |
| | | ...this.query, |
| | | ...this.page |
| | | }, |
| | | data: { |
| | | ...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) |
| | | } |
| | | } |
| | | |
| | | }, |
| | | async getMore(type='get') { |
| | | if (this.page.total > this.page.current * this.page.size) { |
| | | this.page.current += 1 |
| | | await this.getList(type) |
| | | } |
| | | }, |
| | | 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 |
| | | } |
| | | } |
| | | this.page.total = data.total || 0 |
| | | } |
| | | this.$message.hideLoading() |
| | | } |
| | | |
| | | } |
| | | 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() |
| | | }, |
| | | async getMore(type = 'get') { |
| | | if (this.page.total > this.page.current * this.page.size) { |
| | | this.page.current += 1 |
| | | await this.getList(type) |
| | | } |
| | | }, |
| | | 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.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) => { |
| | | } |
| | | 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() |
| | | |
| | | console.log(err); |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | mask: true, |
| | | title: '下载成功保存失败', |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | fail: (err) => { |
| | | _this.$message.hideLoading() |
| | | 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: '失败请重新下载', |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | // #endif |
| | | // #ifdef MP |
| | | , |
| | | async wxdownload(url, name = '') { |
| | | await this.$message.confirm('是否要下载此文件') |
| | | var url2 = environments.httpBaseUri + `/api/download/file?fileName=${name}&filePath=` + url |
| | | console.log(err); |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | mask: true, |
| | | title: '下载成功保存失败', |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | fail: (err) => { |
| | | _this.$message.hideLoading() |
| | | |
| | | let that = this |
| | | that.$message.showLoading() |
| | | // wx.sa |
| | | // wx.downloadFile({ |
| | | // url: url2, |
| | | // success: res => { |
| | | // that.$message.showToast('下载成功') |
| | | 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 |
| | | |
| | | // }, |
| | | // fail: res => { |
| | | // that.$message.showToast('下载失败') |
| | | let that = this |
| | | that.$message.showLoading() |
| | | // wx.sa |
| | | // wx.downloadFile({ |
| | | // url: url2, |
| | | // success: 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('打开文档失败,非支持的类型') |
| | | } |
| | | }) |
| | | // }, |
| | | // fail: 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('打开文档失败,非支持的类型') |
| | | } |
| | | }) |
| | | // }, |
| | | // 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 { |
| | | wx.openDocument({ |
| | | filePath: filePath, |
| | | showMenu: true, //关键点 |
| | | success: function(res) { |
| | | console.log('打开文档成功') |
| | | }, |
| | | fail: function(res) { |
| | | that.$message.showToast('打开文档失败,非支持的类型') |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | 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('打开文档失败,非支持的类型') |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }, |
| | | fail: res => { |
| | | that.$message.hideLoading() |
| | | that.$message.showToast('下载失败') |
| | | }, |
| | | complete: res => { |
| | | } else { |
| | | wx.openDocument({ |
| | | filePath: filePath, |
| | | showMenu: true, //关键点 |
| | | success: function (res) { |
| | | console.log('打开文档成功') |
| | | }, |
| | | fail: function (res) { |
| | | that.$message.showToast('打开文档失败,非支持的类型') |
| | | } |
| | | }) |
| | | } |
| | | } else { |
| | | that.$message.showToast('下载失败,服务器内部错误') |
| | | |
| | | } |
| | | }) |
| | | } |
| | | // #endif |
| | | } |
| | | } |
| | | }, |
| | | fail: res => { |
| | | that.$message.hideLoading() |
| | | that.$message.showToast('下载失败') |
| | | }, |
| | | complete: res => { |
| | | |
| | | } |
| | | }) |
| | | } |
| | | // #endif |
| | | |
| | | // #ifdef PUB_CUSTOMER |
| | | , |
| | | async submitShopping(dto) { |
| | | //提交到购物车中 |
| | | this.$message.showLoading() |
| | | await this.$store.dispatch('submitShopping',dto); |
| | | this.$message.hideLoading() |
| | | } |
| | | // #endif |
| | | } |
| | | } |
| | | export default mixinsCommon |
| | |
| | | {
|
| | | // 如果您是通过uni_modules形式引入uView,可以忽略此配置
|
| | | "easycom": {
|
| | | "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
| | | },
|
| | | "pages": [{
|
| | | "path": "pages/login/supplier-login",
|
| | | "style": {
|
| | | "navigationBarTitleText": "登录",
|
| | | "enablePullDownRefresh": false,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | }, {
|
| | | "path": "pages/home/supplier-home",
|
| | | "style": {
|
| | | "navigationBarTitleText": "首页",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | // 如果您是通过uni_modules形式引入uView,可以忽略此配置
|
| | | "easycom": {
|
| | | "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
| | | },
|
| | | "pages": [
|
| | | {
|
| | | "path": "pages/login/supplier-login",
|
| | | "style": {
|
| | | "navigationBarTitleText": "登录",
|
| | | "enablePullDownRefresh": false,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/home/supplier-home",
|
| | | "style": {
|
| | | "navigationBarTitleText": "首页",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | // #ifdef PUB_CUSTOMER
|
| | | {
|
| | | "path": "pages/home/home",
|
| | | "style": {
|
| | | "navigationBarTitleText": "首页",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/user/address/address",
|
| | | "style": {
|
| | | "navigationBarTitleText": "收货地址",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | // #endif
|
| | |
|
| | | },
|
| | | // #ifdef PUB_CUSTOMER
|
| | | {
|
| | | "path": "pages/home/home",
|
| | | "style": {
|
| | | "navigationBarTitleText": "首页",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | // #ifdef PUB_SUPPLIER
|
| | | {
|
| | | "path": "pages/login/supplier-reg",
|
| | | "style": {
|
| | | "navigationBarTitleText": "申请入驻",
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | // #endif
|
| | |
|
| | | },
|
| | | {
|
| | | "path": "pages/user/address/address",
|
| | | "style": {
|
| | | "navigationBarTitleText": "收货地址",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | // #endif |
| | |
|
| | | // #ifdef PUB_SUPPLIER
|
| | | {
|
| | | "path": "pages/login/supplier-reg",
|
| | | "style": {
|
| | | "navigationBarTitleText": "申请入驻",
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | // #endif |
| | |
|
| | | // #ifdef PUB_PARTNER
|
| | | {
|
| | | "path": "pages/login/supplier-reg",
|
| | | "style": {
|
| | | "navigationBarTitleText": "申请入驻"
|
| | | }
|
| | | },
|
| | | // #endif |
| | | {
|
| | | "path": "pages/user/supplier-user",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/user/user-info/user-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的信息",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/notice/notice",
|
| | | "style": {
|
| | | "navigationBarTitleText": "通知公告",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/notice/list",
|
| | | "style": {
|
| | | "navigationBarTitleText": "通知公告",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/user/user-pwd/user-pwd",
|
| | | "style": {
|
| | | "navigationBarTitleText": "修改密码",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | |
|
| | | ],
|
| | |
|
| | | "subPackages": [{
|
| | | "root": "sub_pages/supplier",
|
| | | "pages": [
|
| | | // #ifdef PUB_SUPPLIER
|
| | | {
|
| | | "path": "supplier-info/supplier-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "信息维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "flower-manage/flower-manage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品管理",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "flower-manage/flower-add",
|
| | | "style": {
|
| | | "navigationBarTitleText": "",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | // #endif
|
| | | {
|
| | | "path": "order-settlement/order-settlement",
|
| | | "style": {
|
| | | "navigationBarTitleText": "账单结算",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | |
|
| | | {
|
| | | "path": "order-sale/order-sale",
|
| | | "style": {
|
| | | "navigationBarTitleText": "售后理赔",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "order-records/order-records",
|
| | | "style": {
|
| | | "navigationBarTitleText": "扣款记录",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationBarBackgroundColor": "#E6F2EB"
|
| | |
|
| | | }
|
| | | },
|
| | |
|
| | | {
|
| | | "path": "protocol",
|
| | | "style": {
|
| | | "navigationBarTitleText": "协议",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | | ]
|
| | | // #ifdef PUB_PARTNER
|
| | | {
|
| | | "path": "pages/login/supplier-reg",
|
| | | "style": {
|
| | | "navigationBarTitleText": "申请入驻"
|
| | | }
|
| | | },
|
| | | // #endif
|
| | | {
|
| | | "path": "pages/user/supplier-user",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationStyle": "custom"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/user/user-info/user-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的信息",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/notice/notice",
|
| | | "style": {
|
| | | "navigationBarTitleText": "通知公告",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/notice/list",
|
| | | "style": {
|
| | | "navigationBarTitleText": "通知公告",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/user/user-pwd/user-pwd",
|
| | | "style": {
|
| | | "navigationBarTitleText": "修改密码",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | | ],
|
| | | "subPackages": [
|
| | | {
|
| | | "root": "sub_pages/supplier",
|
| | | "pages": [
|
| | | // #ifdef PUB_SUPPLIER
|
| | | {
|
| | | "path": "supplier-info/supplier-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "信息维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "flower-manage/flower-manage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品管理",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "flower-manage/flower-add",
|
| | | "style": {
|
| | | "navigationBarTitleText": "",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | // #endif
|
| | | {
|
| | | "path": "order-settlement/order-settlement",
|
| | | "style": {
|
| | | "navigationBarTitleText": "账单结算",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "order-sale/order-sale",
|
| | | "style": {
|
| | | "navigationBarTitleText": "售后理赔",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "order-records/order-records",
|
| | | "style": {
|
| | | "navigationBarTitleText": "扣款记录",
|
| | | "enablePullDownRefresh": true,
|
| | | "navigationBarBackgroundColor": "#E6F2EB"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "protocol",
|
| | | "style": {
|
| | | "navigationBarTitleText": "协议",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | | ]
|
| | | },
|
| | | {
|
| | | "root": "sub_pages/partner",
|
| | | "pages": [
|
| | | // #ifdef PUB_PARTNER
|
| | | {
|
| | | "path": "partner-info/partner-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "信息维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "order-manage/order-manage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单管理",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "markup-config/markup-config",
|
| | | "style": {
|
| | | "navigationBarTitleText": "加价配置",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | }
|
| | | // #endif
|
| | | ]
|
| | | },
|
| | | {
|
| | | "root": "sub_pages/customer",
|
| | | "pages": [
|
| | | // #ifdef PUB_CUSTOMER
|
| | |
|
| | |
|
| | | }, {
|
| | | "root": "sub_pages/partner",
|
| | | "pages": [
|
| | | // #ifdef PUB_PARTNER
|
| | | {
|
| | | "path": "partner-info/partner-info",
|
| | | "style": {
|
| | | "navigationBarTitleText": "信息维护",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | |
|
| | | {
|
| | | "path": "order-manage/order-manage",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单管理",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "markup-config/markup-config",
|
| | | "style": {
|
| | | "navigationBarTitleText": "加价配置",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | }
|
| | | // #endif
|
| | | ]
|
| | | }, {
|
| | | "root": "sub_pages/customer",
|
| | | "pages": [
|
| | | // #ifdef PUB_CUSTOMER |
| | |
|
| | |
|
| | | {
|
| | | "path": "trade/trade",
|
| | | "style": {
|
| | | "navigationBarTitleText": "交易大厅",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "shopping/shopping",
|
| | | "style": {
|
| | | "navigationBarTitleText": "购物车",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "trade/list",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品列表",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "trade/detail",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品详情",
|
| | | "enablePullDownRefresh": false
|
| | |
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "shop/shop",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商家主页"
|
| | | }
|
| | | }
|
| | | // #endif |
| | | ]
|
| | | }],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "花满芫",
|
| | | "navigationBarBackgroundColor": "#F8F8F8",
|
| | | "backgroundColor": "#F8F8F8",
|
| | | "app-plus": {
|
| | | "background": "#efeff4"
|
| | | }
|
| | | }
|
| | | {
|
| | | "path": "trade/trade",
|
| | | "style": {
|
| | | "navigationBarTitleText": "交易大厅",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "shopping/shopping",
|
| | | "style": {
|
| | | "navigationBarTitleText": "购物车",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "shopping/confirm",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "trade/list",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品列表",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "trade/detail",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商品详情",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "shop/shop",
|
| | | "style": {
|
| | | "navigationBarTitleText": "商家主页"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "self/follow",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的关注",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "self/collect",
|
| | | "style": {
|
| | | "navigationBarTitleText": "我的收藏",
|
| | | "enablePullDownRefresh": true
|
| | | }
|
| | | }
|
| | | // #endif
|
| | | ]
|
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "花满芫",
|
| | | "navigationBarBackgroundColor": "#F8F8F8",
|
| | | "backgroundColor": "#F8F8F8",
|
| | | "app-plus": {
|
| | | "background": "#efeff4"
|
| | | }
|
| | | }
|
| | | } |
| | |
| | | <template> |
| | | <view class="home-price"> |
| | | <view class="flex t1"> |
| | | <view>2024-06-03 09:20:19 花满芜成交均价</view> |
| | | <view>2024-06-03 09:20:19 花满芫成交均价</view> |
| | | <uni-icons class="m-l-a m-r-0" type="right"></uni-icons> |
| | | </view> |
| | | <view class="items" style="border-top: 2rpx solid #EEEEEE;"> |
| | | <view class="flex" style="border-bottom: 2rpx solid #EEEEEE;padding-top: 24rpx;"> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list1[0]&&list1[0].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | {{list1[0]&&list1[0].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list1[0]"> |
| | | <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[0]&&list1[0].avePriceDifferenceRate<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list1[1]&&list1[1].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | |
| | | {{list1[1]&&list1[1].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list1[1]"> |
| | | <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[1]&&list1[1].avePriceDifferenceRate<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list1[2]&&list1[2].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | {{list1[2]&&list1[2].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list1[2]"> |
| | | <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list1[2]&&list1[2].avePriceDifferenceRate<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <!-- <u-divider></u-divider> --> |
| | | <view class="flex" style="padding-top: 24rpx;"> |
| | | <view class="flex" style="padding-top: 24rpx;" v-if="list2.length>0"> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list2[0]&&list2[0].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | {{list2[0]&&list2[0].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list2[0]"> |
| | | <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[0]&&list2[0].avePriceDifferenceRate<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list2[1]&&list2[1].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | |
| | | {{list2[1]&&list2[1].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list2[1]"> |
| | | <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[1]&&list2[1].avePriceDifferenceRate<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | <view class="line"></view> |
| | | |
| | | <view class="item flex1"> |
| | | <view class="title">单头玫瑰</view> |
| | | <view class="title">{{list2[2]&&list2[2].name||''}}</view> |
| | | <view class="price"> |
| | | 19.66 |
| | | {{list2[2]&&list2[2].avePrice||''}} |
| | | </view> |
| | | <view class="flex desc"> |
| | | <view class="m-l-a m-r-a">+0.76</view> |
| | | <view class="m-l-a m-r-a text-right">+4.02%</view> |
| | | <view class="flex desc" v-if="list2[2]"> |
| | | <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view> |
| | | <view class="m-l-a m-r-a text-right">{{list2[2]&&list2[2].avePriceDifferenceRate<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifferenceRate*100||''}}%</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | list1: [], |
| | | list2: [], |
| | | }; |
| | | }, |
| | | mounted() { |
| | | |
| | | const { |
| | | data |
| | | } = await this.$http.request('get', '/api/pub/customer/home', { |
| | | size: 6, |
| | | }) |
| | | var list = data && data.records || [] |
| | | this.list1 = [] |
| | | this.list2 = [] |
| | | for (var i = 0; i < list.length && i < 3; i++) { |
| | | this.list1.push(list[i]) |
| | | } |
| | | for (var i = 3; i < list.length && i < 6; i++) { |
| | | this.list2.push(list[i]) |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <form class="cl">
|
| | | <view class="t-a titles-top">
|
| | | <view class="title-1">HELLO</view>
|
| | | <view class="title-2">欢迎登录<span class="title-3">花满芜</span> |
| | | <!-- #ifdef PUB_SUPPLIER --> |
| | | <span>供应商管理平台</span> |
| | | <!-- #endif --> |
| | | <!-- #ifdef PUB_PARTNER --> |
| | | <span>合伙人管理平台</span> |
| | | <!-- #endif --> |
| | | <view class="title-2">欢迎登录<span class="title-3">花满芫</span>
|
| | | <!-- #ifdef PUB_SUPPLIER -->
|
| | | <span>供应商管理平台</span>
|
| | | <!-- #endif -->
|
| | | <!-- #ifdef PUB_PARTNER -->
|
| | | <span>合伙人管理平台</span>
|
| | | <!-- #endif --> |
| | | </view>
|
| | | </view>
|
| | | <view class="t-a input form-input" v-if="loginType=='pwd'">
|
| | |
| | | <form class="cl"> |
| | | <view class="t-a titles-top"> |
| | | <view class="title-1">HELLO</view> |
| | | <view class="title-2">欢迎入驻<span class="title-3">花满芜</span></view> |
| | | <view class="title-2">欢迎入驻<span class="title-3">花满芫</span></view> |
| | | </view> |
| | | |
| | | |
| | |
| | | @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']"> |
| | | |
| | | </view> |
| | | <view class="topic-gray" @click="toProtocol">请仔细阅读《花满芜合伙人供应商入口小程序隐私保护指引》如您同意该指引,请勾选开始使用本小程序 |
| | | <view class="topic-gray" @click="toProtocol">请仔细阅读《花满芫合伙人供应商入口小程序隐私保护指引》如您同意该指引,请勾选开始使用本小程序 |
| | | </view> |
| | | </view> |
| | | </form> |
| | |
| | | import http from '../plugins/http' |
| | | import storage from '../plugins/storage.js' |
| | | import message from '../plugins/message.js' |
| | | // #ifndef VUE3 |
| | | import Vue from 'vue' |
| | | import Vuex from 'vuex' |
| | | |
| | | Vue.use(Vuex) |
| | | const store = new Vuex.Store({ |
| | | // #endif |
| | | state: { |
| | | hasLogin: false, |
| | | isUniverifyLogin: false, |
| | | loginProvider: "", |
| | | openid: null, |
| | | testvuex: false, |
| | | colorIndex: 0, |
| | | colorList: ['#FF0000', '#00FF00', '#0000FF'], |
| | | noMatchLeftWindow: true, |
| | | active: 'componentPage', |
| | | leftWinActive: '/pages/component/view/view', |
| | | activeOpen: '', |
| | | menu: [], |
| | | univerifyErrorMsg: '', |
| | | currentInfo: {}, //个人用户信息 |
| | | cache_address: {}, |
| | | // remoteip:'',//服务器ip |
| | | sign: { |
| | | 'enterprise': 0, |
| | | 'info': 0, |
| | | 'flower': 0, |
| | | 'shopping': 0, |
| | | }, |
| | | defaultaddress: {} |
| | | }, |
| | | mutations: { |
| | | |
| | | updateLogin(state, provider) { |
| | | console.log('updateLogin', provider) |
| | | state.hasLogin = provider && true || false; |
| | | if (!state.hasLogin) { |
| | | storage.removeItem('token') |
| | | } |
| | | }, |
| | | login(state, provider) { |
| | | state.hasLogin = true; |
| | | state.loginProvider = provider; |
| | | }, |
| | | logout(state) { |
| | | state.hasLogin = false |
| | | state.openid = null |
| | | state.currentInfo = {} |
| | | storage.removeItem('token') |
| | | message.showToast('退出登录成功') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | |
| | | let ret = KeepAliveModule.stopLocation(); |
| | | console.log('ret', ret) |
| | | // #endif |
| | | uni.redirectTo({ |
| | | url: '/views/login/login' |
| | | }) |
| | | }, |
| | | setOpenid(state, openid) { |
| | | state.openid = openid |
| | | }, |
| | | setDefaultAddress(state, defaultaddress) { |
| | | state.defaultaddress = defaultaddress |
| | | }, |
| | | setTestTrue(state) { |
| | | state.testvuex = true |
| | | }, |
| | | setTestFalse(state) { |
| | | state.testvuex = false |
| | | }, |
| | | setColorIndex(state, index) { |
| | | state.colorIndex = index |
| | | }, |
| | | setActive(state, tabPage) { |
| | | state.active = tabPage |
| | | }, |
| | | setActiveOpen(state, activeOpen) { |
| | | state.activeOpen = activeOpen |
| | | }, |
| | | setMenu(state, menu) { |
| | | state.menu = menu |
| | | }, |
| | | setUniverifyLogin(state, payload) { |
| | | typeof payload !== 'boolean' ? payload = !!payload : ''; |
| | | state.isUniverifyLogin = payload; |
| | | }, |
| | | setUniverifyErrorMsg(state, payload = '') { |
| | | state.univerifyErrorMsg = payload |
| | | } |
| | | }, |
| | | getters: { |
| | | currentColor(state) { |
| | | return state.colorList[state.colorIndex] |
| | | } |
| | | }, |
| | | actions: { |
| | | sign_add: async function ({ |
| | | commit, |
| | | state |
| | | }, key) { |
| | | console.log('sign_add', key) |
| | | state.sign[key] = 1 |
| | | }, |
| | | sign_clear: async function ({ |
| | | commit, |
| | | state |
| | | }, key) { |
| | | console.log('sign_clear', key) |
| | | state.sign[key] = 0 |
| | | }, |
| | | // lazy loading openid |
| | | logout: async function ({ |
| | | commit, |
| | | state |
| | | }) { |
| | | commit('logout') |
| | | }, |
| | | getUserOpenId: async function ({ |
| | | commit, |
| | | state |
| | | }) { |
| | | return await new Promise((resolve, reject) => { |
| | | if (state.openid) { |
| | | resolve(state.openid) |
| | | } else { |
| | | uni.login({ |
| | | success: (data) => { |
| | | commit('login') |
| | | setTimeout(function () { //模拟异步请求服务器获取 openid |
| | | const openid = '123456789' |
| | | console.log( |
| | | 'uni.request mock openid[' + |
| | | openid + ']'); |
| | | commit('setOpenid', openid) |
| | | resolve(openid) |
| | | }, 1000) |
| | | }, |
| | | fail: (err) => { |
| | | console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', |
| | | err) |
| | | reject(err) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getCurrentInfo: async function ({ |
| | | commit, |
| | | state |
| | | }) { |
| | | //把权限获取到 |
| | | // console.log('getCurrentInfo,getCurrentInfo') |
| | | const currentInfo = await http.request('get', '/api/current/user', {}) |
| | | if (currentInfo && currentInfo.code == 0) { |
| | | // state.cMenu = cMenu |
| | | // state.roles = currentInfo.data.roles || [] |
| | | state.currentInfo = currentInfo.data || {} |
| | | state.type = currentInfo.data.type || '' |
| | | state.spacecode = currentInfo.data.spacecode || '' |
| | | // if(reload){ |
| | | // location.reload() |
| | | // } |
| | | commit("updateLogin", true) |
| | | } else { |
| | | commit("updateLogin", false) |
| | | //这种情况就是要跳转到登录页面 |
| | | } |
| | | }, |
| | | loginwx: async function ({ |
| | | dispatch, |
| | | commit, |
| | | state |
| | | }, data) { |
| | | var code = data.code |
| | | let inviter = data.inviter || '' |
| | | console.log('') |
| | | const resp = await http.request('post', '/api/login/wechat', { |
| | | data: { |
| | | code: code, |
| | | imgurl: data.imgurl || '', |
| | | nickname: data.nickname || '', |
| | | inviter: inviter |
| | | }, |
| | | // params:{ |
| | | // code:code |
| | | // } |
| | | }) |
| | | if (resp && resp.code == 0) { |
| | | state.isBind = true |
| | | storage.setItem("token", resp.data.access_token || "") |
| | | state.hasLogin = true |
| | | if (inviter) { |
| | | storage.removeItem('inviter'); |
| | | storage.removeItem('inviterTime'); |
| | | storage.removeItem('inviterName'); |
| | | } |
| | | await dispatch('getCurrentInfo') |
| | | } else { |
| | | message.showToast('登录失败.' + (resp && resp.msg)) |
| | | storage.removeItem('openid'); |
| | | storage.removeItem('tel'); |
| | | storage.removeItem('token'); |
| | | } |
| | | return resp |
| | | }, |
| | | regUser: async function ({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/register/' + data.type, { |
| | | data: { |
| | | username: data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '', |
| | | dto: data.dto || undefined |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | |
| | | |
| | | } else { |
| | | |
| | | // #ifdef VUE3 |
| | | import { |
| | | createStore |
| | | } from 'vuex' |
| | | const store = createStore({ |
| | | // #endif |
| | | state: { |
| | | hasLogin: false, |
| | | isUniverifyLogin: false, |
| | | loginProvider: "", |
| | | openid: null, |
| | | testvuex: false, |
| | | colorIndex: 0, |
| | | colorList: ['#FF0000', '#00FF00', '#0000FF'], |
| | | noMatchLeftWindow: true, |
| | | active: 'componentPage', |
| | | leftWinActive: '/pages/component/view/view', |
| | | activeOpen: '', |
| | | menu: [], |
| | | univerifyErrorMsg: '', |
| | | currentInfo: {}, //个人用户信息 |
| | | cache_address: {}, |
| | | // remoteip:'',//服务器ip |
| | | sign: { |
| | | 'enterprise': 0, |
| | | 'info': 0, |
| | | 'flower': 0, |
| | | }, |
| | | defaultaddress: {} |
| | | }, |
| | | mutations: { |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | updateLogin(state, provider) { |
| | | console.log('updateLogin', provider) |
| | | state.hasLogin = provider && true || false; |
| | | if (!state.hasLogin) { |
| | | storage.removeItem('token') |
| | | } |
| | | }, |
| | | login(state, provider) { |
| | | state.hasLogin = true; |
| | | state.loginProvider = provider; |
| | | }, |
| | | logout(state) { |
| | | state.hasLogin = false |
| | | state.openid = null |
| | | state.currentInfo = {} |
| | | storage.removeItem('token') |
| | | message.showToast('退出登录成功') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | }, |
| | | loginPartner: async function ({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/partner' + ((data |
| | | .phoneNumber || data.tel) ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | // await getCurrentInfo() |
| | | // // this.$message.showToast('登录成功') |
| | | // console.log(resp) |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | |
| | | let ret = KeepAliveModule.stopLocation(); |
| | | console.log('ret', ret) |
| | | // #endif |
| | | uni.redirectTo({ |
| | | url: '/views/login/login' |
| | | }) |
| | | }, |
| | | setOpenid(state, openid) { |
| | | state.openid = openid |
| | | }, |
| | | setDefaultAddress(state, defaultaddress) { |
| | | state.defaultaddress = defaultaddress |
| | | }, |
| | | setTestTrue(state) { |
| | | state.testvuex = true |
| | | }, |
| | | setTestFalse(state) { |
| | | state.testvuex = false |
| | | }, |
| | | setColorIndex(state, index) { |
| | | state.colorIndex = index |
| | | }, |
| | | setActive(state, tabPage) { |
| | | state.active = tabPage |
| | | }, |
| | | setActiveOpen(state, activeOpen) { |
| | | state.activeOpen = activeOpen |
| | | }, |
| | | setMenu(state, menu) { |
| | | state.menu = menu |
| | | }, |
| | | setUniverifyLogin(state, payload) { |
| | | typeof payload !== 'boolean' ? payload = !!payload : ''; |
| | | state.isUniverifyLogin = payload; |
| | | }, |
| | | setUniverifyErrorMsg(state, payload = '') { |
| | | state.univerifyErrorMsg = payload |
| | | } |
| | | }, |
| | | getters: { |
| | | currentColor(state) { |
| | | return state.colorList[state.colorIndex] |
| | | } |
| | | }, |
| | | actions: { |
| | | sign_add: async function({ |
| | | commit, |
| | | state |
| | | }, key) { |
| | | console.log('sign_add', key) |
| | | state.sign[key] = 1 |
| | | }, |
| | | sign_clear: async function({ |
| | | commit, |
| | | state |
| | | }, key) { |
| | | console.log('sign_clear', key) |
| | | state.sign[key] = 0 |
| | | }, |
| | | // lazy loading openid |
| | | logout: async function({ |
| | | commit, |
| | | state |
| | | }) { |
| | | commit('logout') |
| | | }, |
| | | getUserOpenId: async function({ |
| | | commit, |
| | | state |
| | | }) { |
| | | return await new Promise((resolve, reject) => { |
| | | if (state.openid) { |
| | | resolve(state.openid) |
| | | } else { |
| | | uni.login({ |
| | | success: (data) => { |
| | | commit('login') |
| | | setTimeout(function() { //模拟异步请求服务器获取 openid |
| | | const openid = '123456789' |
| | | console.log( |
| | | 'uni.request mock openid[' + |
| | | openid + ']'); |
| | | commit('setOpenid', openid) |
| | | resolve(openid) |
| | | }, 1000) |
| | | }, |
| | | fail: (err) => { |
| | | console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务', |
| | | err) |
| | | reject(err) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getCurrentInfo: async function({ |
| | | commit, |
| | | state |
| | | }) { |
| | | //把权限获取到 |
| | | // console.log('getCurrentInfo,getCurrentInfo') |
| | | const currentInfo = await http.request('get', '/api/current/user', { |
| | | console.log('login,reLaunch') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | |
| | | }) |
| | | if (currentInfo && currentInfo.code == 0) { |
| | | // state.cMenu = cMenu |
| | | // state.roles = currentInfo.data.roles || [] |
| | | state.currentInfo = currentInfo.data || {} |
| | | state.type = currentInfo.data.type || '' |
| | | state.spacecode = currentInfo.data.spacecode || '' |
| | | // if(reload){ |
| | | // location.reload() |
| | | // } |
| | | commit("updateLogin", true) |
| | | } else { |
| | | commit("updateLogin", false) |
| | | //这种情况就是要跳转到登录页面 |
| | | } |
| | | }, |
| | | loginwx: async function({ |
| | | dispatch, |
| | | commit, |
| | | state |
| | | }, data) { |
| | | var code = data.code |
| | | let inviter = data.inviter || '' |
| | | console.log('') |
| | | const resp = await http.request('post', '/api/login/wechat', { |
| | | data: { |
| | | code: code, |
| | | imgurl: data.imgurl || '', |
| | | nickname: data.nickname || '', |
| | | inviter: inviter |
| | | }, |
| | | // params:{ |
| | | // code:code |
| | | // } |
| | | }) |
| | | if (resp && resp.code == 0) { |
| | | state.isBind = true |
| | | storage.setItem("token", resp.data.access_token || "") |
| | | state.hasLogin = true |
| | | if (inviter) { |
| | | storage.removeItem('inviter'); |
| | | storage.removeItem('inviterTime'); |
| | | storage.removeItem('inviterName'); |
| | | } |
| | | await dispatch('getCurrentInfo') |
| | | } else { |
| | | message.showToast('登录失败.' + (resp && resp.msg)) |
| | | storage.removeItem('openid'); |
| | | storage.removeItem('tel'); |
| | | storage.removeItem('token'); |
| | | } |
| | | return resp |
| | | }, |
| | | regUser: async function({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/register/' + data.type, { |
| | | data: { |
| | | username: data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '', |
| | | dto: data.dto || undefined |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | KeepAliveModule && KeepAliveModule.startLocation({ |
| | | intervalTime: 5000, //定位间隔时间 |
| | | gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置 |
| | | locationMode: 1, //定位模式 |
| | | purpose: 0, //定位场景 |
| | | ifUpload: true, //是否上报服务器 |
| | | uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口 |
| | | params: "{'lat':'1','lng':'3'}", //其他参数 |
| | | headers: "{'authorization1':'Bearer xOHeJhg'}", |
| | | }, function (res) { |
| | | console.log("启用结果:", res); |
| | | let ret = KeepAliveModule.getCurrentLocation(); |
| | | console.log("启用结果2:", ret); |
| | | }); |
| | | // #endif |
| | | // uni.redirectTo({ |
| | | // url: '/views/app/app-home/app-home' |
| | | // }) |
| | | uni.reLaunch({ |
| | | url: '/pages/home/supplier-home' |
| | | }) |
| | | } else { |
| | | // this.$message.showToast('登录失败') |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | }, |
| | | loginSupplier: async function ({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/supplier' + ((data |
| | | .phoneNumber || data.tel) ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | // await getCurrentInfo() |
| | | // // this.$message.showToast('登录成功') |
| | | // console.log(resp) |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | |
| | | console.log('login,reLaunch') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | |
| | | KeepAliveModule && KeepAliveModule.startLocation({ |
| | | intervalTime: 5000, //定位间隔时间 |
| | | gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置 |
| | | locationMode: 1, //定位模式 |
| | | purpose: 0, //定位场景 |
| | | ifUpload: true, //是否上报服务器 |
| | | uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口 |
| | | params: "{'lat':'1','lng':'3'}", //其他参数 |
| | | headers: "{'authorization1':'Bearer xOHeJhg'}", |
| | | }, function (res) { |
| | | console.log("启用结果:", res); |
| | | let ret = KeepAliveModule.getCurrentLocation(); |
| | | console.log("启用结果2:", ret); |
| | | }); |
| | | // #endif |
| | | // uni.redirectTo({ |
| | | // url: '/views/app/app-home/app-home' |
| | | // }) |
| | | uni.reLaunch({ |
| | | url: '/pages/home/supplier-home' |
| | | }) |
| | | } else { |
| | | // this.$message.showToast('登录失败') |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | }, |
| | | |
| | | loginCustomer: async function ({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/customer' + (data |
| | | .phoneNumber ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | uni.reLaunch({ |
| | | url: '/pages/home/home' |
| | | }) |
| | | } else { |
| | | |
| | | |
| | | } else { |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | }, |
| | | submitShopping: async function ({commit, dispatch}, data) { |
| | | const resp = await http.request('post', '/api/api/customer/flower/cart/change-num', { |
| | | data: { |
| | | id: data.id, |
| | | num: 1 |
| | | } |
| | | } |
| | | ) |
| | | if (resp && resp.code === 0) { |
| | | message.showToast('添加购物车成功') |
| | | dispatch('sign_add', 'shopping') |
| | | } else { |
| | | |
| | | }, |
| | | loginPartner: async function({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/partner' + ((data |
| | | .phoneNumber || data.tel) ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | // await getCurrentInfo() |
| | | // // this.$message.showToast('登录成功') |
| | | // console.log(resp) |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | } |
| | | return resp |
| | | }, |
| | | |
| | | console.log('login,reLaunch') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | } |
| | | }) |
| | | |
| | | KeepAliveModule && KeepAliveModule.startLocation({ |
| | | intervalTime: 5000, //定位间隔时间 |
| | | gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置 |
| | | locationMode: 1, //定位模式 |
| | | purpose: 0, //定位场景 |
| | | ifUpload: true, //是否上报服务器 |
| | | uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口 |
| | | params: "{'lat':'1','lng':'3'}", //其他参数 |
| | | headers: "{'authorization1':'Bearer xOHeJhg'}", |
| | | }, function(res) { |
| | | console.log("启用结果:", res); |
| | | let ret = KeepAliveModule.getCurrentLocation(); |
| | | console.log("启用结果2:", ret); |
| | | }); |
| | | // #endif |
| | | // uni.redirectTo({ |
| | | // url: '/views/app/app-home/app-home' |
| | | // }) |
| | | uni.reLaunch({ |
| | | url: '/pages/home/supplier-home' |
| | | }) |
| | | } else { |
| | | // this.$message.showToast('登录失败') |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | }, |
| | | loginSupplier: async function({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/supplier' + ((data |
| | | .phoneNumber || data.tel) ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | // await getCurrentInfo() |
| | | // // this.$message.showToast('登录成功') |
| | | // console.log(resp) |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | |
| | | console.log('login,reLaunch') |
| | | // #ifdef APP |
| | | var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件 |
| | | |
| | | KeepAliveModule && KeepAliveModule.startLocation({ |
| | | intervalTime: 5000, //定位间隔时间 |
| | | gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置 |
| | | locationMode: 1, //定位模式 |
| | | purpose: 0, //定位场景 |
| | | ifUpload: true, //是否上报服务器 |
| | | uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口 |
| | | params: "{'lat':'1','lng':'3'}", //其他参数 |
| | | headers: "{'authorization1':'Bearer xOHeJhg'}", |
| | | }, function(res) { |
| | | console.log("启用结果:", res); |
| | | let ret = KeepAliveModule.getCurrentLocation(); |
| | | console.log("启用结果2:", ret); |
| | | }); |
| | | // #endif |
| | | // uni.redirectTo({ |
| | | // url: '/views/app/app-home/app-home' |
| | | // }) |
| | | uni.reLaunch({ |
| | | url: '/pages/home/supplier-home' |
| | | }) |
| | | } else { |
| | | // this.$message.showToast('登录失败') |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | }, |
| | | |
| | | loginCustomer: async function({ |
| | | commit, |
| | | dispatch, |
| | | state |
| | | }, data) { |
| | | { |
| | | const resp = await http.request('post', '/api/login/customer' + (data |
| | | .phoneNumber ? '/phone' : ''), { |
| | | data: { |
| | | username: (data.phoneNumber || data.tel) ? (data.phoneNumber || |
| | | data.tel) : data.username, |
| | | password: data.password, |
| | | tel: data.phoneNumber || data.tel, |
| | | smsCode: data.smsCode || '' |
| | | }, |
| | | params: { |
| | | clientType: data.clientType || 'app' |
| | | } |
| | | }) |
| | | console.log('resp', resp) |
| | | if (resp && resp.code == 0) { |
| | | storage.setItem('token', resp.data.access_token) |
| | | commit("updateLogin", true) |
| | | await dispatch('getCurrentInfo') |
| | | uni.reLaunch({ |
| | | url: '/pages/home/home' |
| | | }) |
| | | } else { |
| | | |
| | | |
| | | } |
| | | return resp |
| | | } |
| | | |
| | | }, |
| | | |
| | | } |
| | | }) |
| | | |
| | | export default store |
| | | export default store |
对比新文件 |
| | |
| | | <template> |
| | | <view class="page-collect"> |
| | | <view class="search-container m-t-12 flex"> |
| | | <view class="flex1 input"> |
| | | <u-input placeholder="请输入花名" v-model="query.name"> |
| | | <template slot="suffix"> |
| | | <uni-icons color="#20613D" type="search" size="24" @tap="refreshList"></uni-icons> |
| | | </template> |
| | | </u-input> |
| | | </view> |
| | | </view> |
| | | <view class="component-filter-container"> |
| | | <view class="flex1"> |
| | | 排序 |
| | | <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> |
| | | </view> |
| | | <view class="flex1"> |
| | | {{ this.query.levelStr || '级别' }} |
| | | <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down" |
| | | @click="level_show=true"></image> |
| | | </view> |
| | | </view> |
| | | |
| | | <u-picker :show="level_show" @confirm="select_level" keyName="label" :columns="level_columns" |
| | | @cancel="level_show=false"></u-picker> |
| | | <u-picker :show="order_show" @confirm="select_order" keyName="label" :columns="order_columns" |
| | | @cancel="order_show=false"></u-picker> |
| | | |
| | | <view class="trade-list-container"> |
| | | <view class="trade-info-container" v-for="(dto,index) of list" :key="index"> |
| | | <view class="title"> |
| | | <view class="level m-r-15">{{dto.levelStr || '-'}}级</view> |
| | | <view class=""> |
| | | {{dto.name || '-'}} |
| | | </view> |
| | | </view> |
| | | <view class="desc m-t-12"> |
| | | <view class="m-r-15">已售:{{ dto.sales || 0}}</view> |
| | | <view class="m-r-15">剩余:{{dto.stock || 0}}</view> |
| | | <view class=" ">{{dto.unit||'-'}}支/扎</view> |
| | | </view> |
| | | <view class="flex m-t-12"> |
| | | <view class="price m-r-a"> |
| | | <span class="num">{{dto.price||'-'}}</span> |
| | | 元/扎 |
| | | </view> |
| | | <view class="m-l-a m-r-15"> |
| | | <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> |
| | | |
| | | </view> |
| | | <view class="m-r-0 gwc" @click="submitShopping(dto)"> |
| | | + 购物车 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | async onPullDownRefresh() { |
| | | await this.refreshList() |
| | | uni.stopPullDownRefresh() |
| | | }, |
| | | data() { |
| | | return { |
| | | query: { |
| | | name: '', |
| | | levelStr: '', |
| | | level: '', |
| | | column:'', |
| | | columnStr:'', |
| | | }, |
| | | level_show: false, |
| | | level_columns: [[]], |
| | | |
| | | order_show:false, |
| | | order_columns:[[]] |
| | | } |
| | | }, |
| | | onLoad() { |
| | | this.listApi = '/api/collect/list' |
| | | this.$http.request('get', '/api/code/value', { |
| | | params: { |
| | | type: 'FLOWER_LEVEL' |
| | | } |
| | | }).then(res => { |
| | | var data = res.data |
| | | this.level_columns = [data || []] |
| | | this.columns_levels[0].unshift({ |
| | | label: '全部', |
| | | value: '' |
| | | }) |
| | | }) |
| | | |
| | | this.$http.request('get', '/api/code/value', { |
| | | params: { |
| | | type: 'FLOWER_ORDER_BY' |
| | | } |
| | | }).then(res => { |
| | | var data = res.data |
| | | this.order_columns = [data || []] |
| | | this.order_columns[0].unshift({ |
| | | label: '默认', |
| | | value: '' |
| | | }) |
| | | }) |
| | | }, |
| | | methods: { |
| | | select_level(e) { |
| | | this.level_show = false |
| | | this.query.levelStr = e.value[0].label |
| | | this.query.level = e.value[0].value |
| | | }, |
| | | select_order(e) { |
| | | this.order_show = false |
| | | this.query.columnStr = e.value[0].label |
| | | this.query.column = e.value[0].value |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .page-collect { |
| | | .search-container { |
| | | display: flex; |
| | | margin: 12rpx 0rpx 20rpx 0rpx; |
| | | position: relative; |
| | | z-index: 1; |
| | | |
| | | .input { |
| | | background-color: #fff !important; |
| | | border-radius: 8rpx; |
| | | } |
| | | |
| | | .button { |
| | | min-width: 120rpx; |
| | | max-width: 120rpx; |
| | | margin-left: auto; |
| | | margin-right: 0rpx; |
| | | text-align: right; |
| | | line-height: 70rpx !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | async onPullDownRefresh() { |
| | | await this.refreshList() |
| | | uni.stopPullDownRefresh() |
| | | }, |
| | | onLoad(){ |
| | | this.listApi = '/api/follow/list' |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
对比新文件 |
| | |
| | | <script> |
| | | import { |
| | | mapState |
| | | } from 'vuex' |
| | | |
| | | export default { |
| | | name: "订单详情", |
| | | computed: { |
| | | ...mapState({ |
| | | address: state => { |
| | | return state.defaultaddress || {} |
| | | }, |
| | | }), |
| | | }, |
| | | watch: { |
| | | // address(nv, ov) { |
| | | // if (nv && nv.id) { |
| | | // //尝试更新一下 |
| | | // |
| | | // } |
| | | // } |
| | | }, |
| | | async onShow() { |
| | | setTimeout(async () => { |
| | | if (this.address && this.address.id && this.cacheAddressId !== this.address.id) { |
| | | this.$message.showLoading() |
| | | const {code, data} = await this.$http.request('get', '/api/flower/customer/order/confirm/transports', { |
| | | data: { |
| | | addressId: this.address.id, |
| | | weight: this.dto.totalWeight || 0 |
| | | } |
| | | }) |
| | | this.$message.hideLoading() |
| | | this.transportList = [] |
| | | if (code === 0) { |
| | | this.transportList = data || [] |
| | | } |
| | | } |
| | | }, 200) |
| | | }, |
| | | onLoad(options) { |
| | | let item = JSON.parse(decodeURIComponent(options.query.dto)); |
| | | this.dto = { |
| | | ...this.dto, |
| | | ...item |
| | | } |
| | | //先获取直接的全部地址 |
| | | // @ApiModelProperty(value = "订单商品") |
| | | // private List<FlowerCartListDTO> flowers; |
| | | // @ApiModelProperty(value = "打包费") |
| | | // private BigDecimal packing; |
| | | //todo 显示打包费等,然后再确认 |
| | | // https://lanhuapp.com/web/#/item/project/detailDetach?pid=05830e81-7c59-4655-8253-4deb7c913b51&project_id=05830e81-7c59-4655-8253-4deb7c913b51&image_id=f7cc3e57-5367-4b99-a84e-99c38249aa66&fromEditor=true |
| | | |
| | | }, |
| | | data() { |
| | | return { |
| | | dto: {}, |
| | | cacheAddressId: '', |
| | | transportList: [], |
| | | // private Long id; |
| | | // @ApiModelProperty(value = "名称") |
| | | // private String name; |
| | | // @ApiModelProperty(value = "英文名") |
| | | // private String enName; |
| | | // @ApiModelProperty(value = "运费") |
| | | // private BigDecimal fee; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <view class="page-confirm"> |
| | | <view> |
| | | <common-address-select ref="addressselect"></common-address-select> |
| | | </view> |
| | | <view> |
| | | <!-- todo 查看商品列表,和选择运费 --> |
| | | </view> |
| | | <view class="bottom-price flex"> |
| | | <view> |
| | | 合计:¥ {{ dto.totalAmount||0 }} 元 |
| | | </view> |
| | | <view class="button-green-1"> |
| | | 提交订单 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <style scoped lang="scss"> |
| | | .page-confirm{ |
| | | |
| | | .bottom-price { |
| | | position: fixed; |
| | | left: 0rpx; |
| | | padding: 20rpx; |
| | | right: 0rpx; |
| | | bottom: 160rpx; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <common-footer flg="2"></common-footer> |
| | | </view> |
| | | <view class="shopping-container"> |
| | | <view class="top-title"> 苏州市一价全含,市区内包邮派送到店 |
| | | </view> |
| | | <view class="top-desc"> |
| | | 全程鲜花冷链专线,时效快,损耗小 |
| | | </view> |
| | | <view class="flex"> |
| | | <image class="icon-clock m-r-6" src="../../../static/common/icon-call.png"></image> |
| | | <view class="name"> |
| | | 客服电话 : <span class="topic-gray">{{ tel }}</span> |
| | | </view> |
| | | </view> |
| | | <view class=""> |
| | | <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> |
| | | <view class="shopping-item m-t-20" v-for="(item,index) of list" :key="index"> |
| | | <u-swipe-action> |
| | | <u-swipe-action-item |
| | | :options="options1" |
| | | @click="(e)=>{clickSwipeButton(item)}" |
| | | > |
| | | <view class="sup-title"> |
| | | <radio :checked="ids.indexOf(item.id)>=0" @change="changeItem(item,'supplier')">></radio> |
| | | {{ item.supplierName || '-' }} |
| | | </view> |
| | | <u-divider></u-divider> |
| | | <view v-for="(dto,j) of item.flowerList" :key="j"> |
| | | <u-divider v-if="j>0"></u-divider> |
| | | <view class="item-each flex"> |
| | | <radio :checked="ids.indexOf(dto.id)>=0" @change="changeItem(dto,'flower')"></radio> |
| | | <image class="img img100 m-r-6" :src="dto.url||dto.cover"></image> |
| | | <view> |
| | | <view class="title"><span>{{ dto.levelStr || '-' }}</span> {{ dto.name || '-' }}</view> |
| | | <view class="price"> |
| | | {{ dto.price || '-' }}元/扎 |
| | | </view> |
| | | <view class="desc m-t-12"> |
| | | <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> |
| | | </view> |
| | | <view class="button-icons flex"> |
| | | <uni-icons v-if="dto.num&&dto.num>=1" type="minus" size="32" |
| | | @click="addnum(dto,-1)"></uni-icons> |
| | | <view class="curnums" v-if="dto.num&&dto.num>=1">{{ dto.num }}</view> |
| | | <uni-icons type="plus-filled" size="32" @click="addnum(dto,1)"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-swipe-action-item> |
| | | </u-swipe-action> |
| | | </view> |
| | | |
| | | </view> |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <view class="bottom-price flex"> |
| | | <view> |
| | | <radio :checked="checkall" @change="selectAll"></radio> |
| | | 全选 |
| | | </view> |
| | | <view> |
| | | 合计:¥ {{ totalprice }} 元 |
| | | </view> |
| | | <view class="button-green-1"> |
| | | 提交订单 |
| | | </view> |
| | | </view> |
| | | <view style="min-height:200rpx"> |
| | | </view> |
| | | <common-footer flg="2"></common-footer> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | import http from "../../../plugins/http"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | tel: '15974805814', |
| | | ids: [], |
| | | checkall: false, |
| | | options1: [{ |
| | | text: '删除' |
| | | }] |
| | | } |
| | | }, |
| | | onShow() { |
| | | if (this.sign['shopping']) { |
| | | this.init() |
| | | } |
| | | }, |
| | | onLoad() { |
| | | this.init() |
| | | }, |
| | | computed: { |
| | | totalprice() { |
| | | |
| | | let totalprice = 0 |
| | | this.list.forEach(dto => { |
| | | dto.flowerList.forEach(item => { |
| | | if (this.ids.indexOf(item.id) >= 0) { |
| | | totalprice += item.price * item.num |
| | | } |
| | | }) |
| | | }) |
| | | return totalprice.toFixed(2) |
| | | }, |
| | | methods: { |
| | | async submitPay() { |
| | | // order/confirm/info |
| | | var arr = [] |
| | | for (var j = 0; j < this.list.flowerList; j++) { |
| | | |
| | | if (this.ids.indexOf(this.list.flowerList[j].id) >= 0) { |
| | | arr.push({ |
| | | id: this.list.flowerList[j].id, |
| | | num: this.list.flowerList[j].num |
| | | }) |
| | | } |
| | | } |
| | | if (this.arr.length < 1) { |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | const {code, data} = await http.request('post', '/api/api/customer/order/confirm/info', { |
| | | data: { |
| | | flowers: arr, |
| | | } |
| | | } |
| | | ) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | uni.navigateTo({ |
| | | url: '/sub_pages/customer/shopping/confirm?dto=' + +encodeURIComponent(JSON.stringify(data)) |
| | | }) |
| | | } |
| | | }, |
| | | async clickSwipeButton(item) { |
| | | //删除商品,重新加载数据? |
| | | |
| | | this.$message.showLoading() |
| | | const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', { |
| | | data: { |
| | | id: dto.id, |
| | | num: addnum |
| | | } |
| | | } |
| | | ) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | if (this.ids.indexOf(item.id) >= 0) { |
| | | this.ids.splice(this.ids.indexOf(item.id), 1) |
| | | } |
| | | for (var i = 0; i < this.list.length; i++) { |
| | | if (this.list[i].id === dto.supplierId) { |
| | | this.list[i].splice(i, 1) |
| | | if (this.list.flowerList.length === 1) { |
| | | if (this.ids.indexOf(this.list[i].id) >= 0) { |
| | | this.ids.splice(this.ids.indexOf(this.list[i].id), 1) |
| | | } |
| | | this.list[i].flowerList.splice(0, 1) |
| | | this.list.splice(i, 1) |
| | | } else { |
| | | //只需要清楚这个元素 |
| | | var k = -1 |
| | | for (var j = 0; j < this.list[i].flowerList.length; j++) { |
| | | if (this.list[i][j].id === item.id) { |
| | | k = j; |
| | | break |
| | | } |
| | | } |
| | | this.list[i].flowerList.splice(k, 1) |
| | | } |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | selectAll() { |
| | | if (this.checkall) { |
| | | this.ids = [] |
| | | this.checkall = false |
| | | } else { |
| | | list.for(dto => { |
| | | if (this.ids.indexOf(dto.id) < 0) { |
| | | this.ids.push(dto.id) |
| | | } |
| | | dto.flowerList.forEach(item => { |
| | | if (this.ids.indexOf(item.id) < 0) { |
| | | this.ids.push(item.id) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | changeItem(dto, type) { |
| | | if (type === 'supplier') { |
| | | //全选上 |
| | | if (this.ids.indexOf(dto.id) < 0) { |
| | | this.ids.push(dto.id) |
| | | dto.flowerList.forEach(item => { |
| | | if (this.ids.indexOf(item.id) < 0) { |
| | | this.ids.push(item.id) |
| | | } |
| | | }) |
| | | } else { |
| | | this.checkall = false |
| | | this.ids.splice(this.ids.indexOf(dto.id), 1) |
| | | dto.flowerList.forEach(item => { |
| | | this.ids.splice(this.ids.indexOf(item.id), 1) |
| | | }) |
| | | } |
| | | |
| | | } else { |
| | | //更换个人的 |
| | | if (this.ids.indexOf(dto.id) < 0) { |
| | | this.ids.push(dto.id) |
| | | } else { |
| | | this.checkall = false |
| | | |
| | | if (this.ids.indexOf(dto.supplierId) >= 0) { |
| | | this.ids.splice(this.ids.indexOf(dto.supplierId), 1) |
| | | } |
| | | } |
| | | |
| | | } |
| | | }, |
| | | async addnum(dto, addnum) { |
| | | if (dto.num + addnum >= 0) { |
| | | |
| | | } else { |
| | | return |
| | | } |
| | | this.$message.showLoading() |
| | | const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', { |
| | | data: { |
| | | id: dto.id, |
| | | num: addnum |
| | | } |
| | | } |
| | | ) |
| | | this.$message.hideLoading() |
| | | if (code === 0) { |
| | | dto.num += addnum |
| | | } |
| | | }, |
| | | async init() { |
| | | this.$message.showLoading() |
| | | await this.$store.dispatch('sign_clear', 'shopping'); |
| | | const {code, data} = await this.$http.request('get', '/api/customer/flower/cart/list', {}) |
| | | this.$message.hideLoading() |
| | | this.list = [] |
| | | if (code === 0) { |
| | | this.list = data.list || [] |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | <style lang="scss" scoped> |
| | | .shopping-container { |
| | | background-color: rgba(255, 255, 255, 0.4); |
| | | padding: 20rpx 30rpx; |
| | | |
| | | .bottom-price { |
| | | position: fixed; |
| | | left: 0rpx; |
| | | padding: 20rpx; |
| | | right: 0rpx; |
| | | bottom: 160rpx; |
| | | } |
| | | |
| | | .shopping-item { |
| | | padding: 28rpx 22rpx; |
| | | position: relative; |
| | | |
| | | .sup-title { |
| | | |
| | | } |
| | | |
| | | .item-each { |
| | | padding-left: 88rpx; |
| | | |
| | | .img { |
| | | width: 124rpx; |
| | | height: 124rpx; |
| | | } |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 28rpx; |
| | | |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | |
| | | .level { |
| | | color: #20613D; |
| | | } |
| | | } |
| | | |
| | | .price { |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #CF0000; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .desc { |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | } |
| | | } |
| | | |
| | | .button-icons { |
| | | position: absolute; |
| | | } |
| | | } |
| | | |
| | | .top-title { |
| | | font-size: 28rpx; |
| | | color: #000000; |
| | | line-height: 40rpx; |
| | | } |
| | | |
| | | .top-desc { |
| | | font-size: 24rpx; |
| | | color: #666666; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | | .top-kf { |
| | | background: linear-gradient(270deg, rgba(219, 244, 229, 0) 0%, #D5ECDE 100%); |
| | | border-radius: 8rpx; |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #20613D; |
| | | line-height: 52rpx; |
| | | height: 52rpx; |
| | | padding-left: 26rpx; |
| | | |
| | | .icon-clock { |
| | | margin-top: 9rpx; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template>
|
| | | <view class="trade-detail">
|
| | | <view class="top-img-container">
|
| | | <image src="" class="top-img"></image>
|
| | | <view class="icon-container">
|
| | | <image src="../../../static/common/icon-sc.png" class="icon-sc"></image>
|
| | | <view class="num">12</view>
|
| | | </view>
|
| | | <view class="icon-container">
|
| | | <image src="../../../static/common/icon-shop.png" class="icon-shop"></image>
|
| | | <view class="trade-detail">
|
| | | <view class="top-img-container">
|
| | | <image :src="dto.cover" class="top-img"></image>
|
| | | <view class="icon-container">
|
| | | <image src="../../../static/common/icon-sc.png" class="icon-sc"></image>
|
| | | <view class="num">12</view>
|
| | | </view>
|
| | | <view class="icon-container">
|
| | | <image src="../../../static/common/icon-shop.png" class="icon-shop"></image>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view class="info-container">
|
| | | <view class="title">
|
| | | <view class="level m-r-15">B级</view>
|
| | | <view class="">
|
| | | {{dto.name || '-'}}
|
| | | </view>
|
| | | </view>
|
| | | <view class="desc m-t-12">
|
| | | <view class="m-r-15">已售:7</view>
|
| | | <view class="m-r-15">剩余:13</view>
|
| | | <view class=" ">10支/扎</view>
|
| | | </view>
|
| | | <view class="flex m-t-12">
|
| | | <view class="price m-r-a">
|
| | | <span class="num">28.01</span>
|
| | | 元/扎
|
| | | </view>
|
| | | <view class="m-l-a m-r-15">
|
| | | <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
|
| | | </view>
|
| | | </view>
|
| | | <view class="trade-info-container">
|
| | | <view class="title">
|
| | | <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view>
|
| | | <view class="">
|
| | | {{ dto.name || '-' }}
|
| | | </view>
|
| | | </view>
|
| | | <view class="desc m-t-12">
|
| | | <view class="m-r-15">已售:{{ dto.sales || 0 }}</view>
|
| | | <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view>
|
| | | <view class=" ">{{ dto.unit || '-' }}支/扎</view>
|
| | | </view>
|
| | | <view class="flex m-t-12">
|
| | | <view class="price m-r-a">
|
| | | <span class="num">{{ dto.price || '-' }}</span>
|
| | | 元/扎
|
| | | </view>
|
| | | <view class="m-l-a m-r-15">
|
| | | <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
|
| | |
|
| | | </view>
|
| | | <view class="m-r-0 gwc">
|
| | | + 购物车
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line">
|
| | | </view>
|
| | | <view class="m-r-0 gwc" @click="submitShopping(dto)">
|
| | | + 购物车
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line">
|
| | |
|
| | | </view>
|
| | | <view class="info-detail">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view>
|
| | | <view class="flex m-t-8">
|
| | | <view class="label">枝长:</view>
|
| | | <view class="value">70-75cm</view>
|
| | | </view>
|
| | | <view class="flex m-t-8">
|
| | | <view class="label">枝粗:</view>
|
| | | <view class="value">中等粗细</view>
|
| | | </view>
|
| | | <view class="flex m-t-8">
|
| | | <view class="label">均匀度:</view>
|
| | | <view class="value">1-2支不均匀</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line">
|
| | | </view>
|
| | | <view class="info-detail" v-if="dto.params">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">详情</view>
|
| | | <view class="flex m-t-8" v-for="(param,index) of dto.params" :key="index">
|
| | | <view class="label">{{ param.name}}:</view>
|
| | | <view class="value">{{ param.value || '-'}}</view>
|
| | | </view>
|
| | | <!-- <view class="flex m-t-8">-->
|
| | | <!-- <view class="label">枝粗:</view>-->
|
| | | <!-- <view class="value">中等粗细</view>-->
|
| | | <!-- </view>-->
|
| | | <!-- <view class="flex m-t-8">-->
|
| | | <!-- <view class="label">均匀度:</view>-->
|
| | | <!-- <view class="value">1-2支不均匀</view>-->
|
| | | <!-- </view>-->
|
| | | </view>
|
| | | <view class="line">
|
| | |
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="info-brand m-t-12" @click.stop="openbrand">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view>
|
| | | <view class="flex">
|
| | | <image class="store-logo"></image>
|
| | | <view>
|
| | | <view class="store-name">花仙子</view>
|
| | | <view class="store-address">云南省-昆明市-官渡区</view>
|
| | | </view>
|
| | | <view class="store-to m-l-a m-r-0">进入店铺</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="m-t-20 shop-recommend-container">
|
| | | <view class="shop-recommend-title">店铺推荐</view>
|
| | | <view class="flex">
|
| | | <view v-for="i in 3" :key="i" class="shop-recommend">
|
| | | <image src="" class="shop-recommend-image"></image>
|
| | | <view class="shop-recommend-title m-t-8">
|
| | | <view class="level m-r-15">B级</view>
|
| | | <view class="">
|
| | | {{dto.name || '-'}}
|
| | | </view>
|
| | | </view>
|
| | | <view class="shop-recommend-price m-t-8">
|
| | | ¥23.01/扎
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="info-brand m-t-12" @click.stop="openbrand">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">店铺</view>
|
| | | <view class="flex">
|
| | | <image class="store-logo"></image>
|
| | | <view>
|
| | | <view class="store-name">{{dto.supplierName||'-'}}</view>
|
| | | <view class="store-address">{{dto.supplierStation||'-'}}</view>
|
| | | </view>
|
| | | <view class="store-to m-l-a m-r-0">进入店铺</view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="m-t-20 shop-recommend-container" v-if="false">
|
| | | <view class="shop-recommend-title">店铺推荐</view>
|
| | | <view class="flex">
|
| | | <view v-for="i in 3" :key="i" class="shop-recommend">
|
| | | <image src="" class="shop-recommend-image"></image>
|
| | | <view class="shop-recommend-title m-t-8">
|
| | | <view class="level m-r-15">B级</view>
|
| | | <view class="">
|
| | | {{ dto.name || '-' }}
|
| | | </view>
|
| | | </view>
|
| | | <view class="shop-recommend-price m-t-8">
|
| | | ¥23.01/扎
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line">
|
| | |
|
| | | </view>
|
| | | <view class="comment-container m-t-12">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">
|
| | | <view>评价</view>
|
| | | <view class="desc">
|
| | | 7条评论
|
| | | <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons>
|
| | | </view>
|
| | | <view class="comment-container m-t-12" v-if="false">
|
| | | <view class="title-before-blue" style="padding-top: 0rpx;padding-bottom: 0rpx;">
|
| | | <view>评价</view>
|
| | | <view class="desc">
|
| | | 7条评论
|
| | | <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | <view v-for="i in 3" :key="i" class="m-t-20 flex user-item">
|
| | | <image class="user-icon m-r-10"></image>
|
| | | <view>
|
| | | <view class="name">用户名3370</view>
|
| | | <view class="comment">非常棒,会回购</view>
|
| | | </view>
|
| | | <view class="stars">
|
| | | </view>
|
| | | </view>
|
| | | <view v-for="i in 3" :key="i" class="m-t-20 flex user-item">
|
| | | <image class="user-icon m-r-10"></image>
|
| | | <view>
|
| | | <view class="name">用户名3370</view>
|
| | | <view class="comment">非常棒,会回购</view>
|
| | | </view>
|
| | | <view class="stars">
|
| | |
|
| | | </view>
|
| | | <view class="date">
|
| | | 04-07 08:00
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="date">
|
| | | 04-07 08:00
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | dto: {
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | id: '',
|
| | | dto: {}
|
| | | }
|
| | | },
|
| | | onLoad(options) {
|
| | | this.id = options.id || ''
|
| | | if (this.id) {
|
| | | this.getDetail()
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | async getDetail() {
|
| | | this.$message.showLoading()
|
| | | const {
|
| | | code,
|
| | | data
|
| | | } = await this.$http.request('get', '/api/customer/flower/list/view', {
|
| | | params: {
|
| | | id: this.id
|
| | | }
|
| | | })
|
| | | if (code === 0) {
|
| | | this.dto = {
|
| | | ...data,
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | },
|
| | | methods: {
|
| | | openbrand() {
|
| | | uni.navigateTo({
|
| | | url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '')
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | this.$message.hideLoading()
|
| | |
|
| | | },
|
| | | openbrand() {
|
| | | uni.navigateTo({
|
| | | url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '')
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .trade-detail {
|
| | | background-color: #FFFFFF;
|
| | | .trade-detail {
|
| | | background-color: #FFFFFF;
|
| | |
|
| | | .info-container {
|
| | | padding: 46rpx 30rpx;
|
| | | border-radius: 40rpx 40rpx 0rpx 0rpx;
|
| | | .trade-info-container {
|
| | | padding: 46rpx 30rpx;
|
| | | border-radius: 40rpx 40rpx 0rpx 0rpx;
|
| | |
|
| | | .title {
|
| | | font-weight: 600;
|
| | | font-size: 36rpx;
|
| | | color: #000000;
|
| | | line-height: 50rpx;
|
| | | .title {
|
| | | font-weight: 600;
|
| | | font-size: 36rpx;
|
| | | color: #000000;
|
| | | line-height: 50rpx;
|
| | |
|
| | | .level {
|
| | | color: #20613D;
|
| | | }
|
| | | }
|
| | | .level {
|
| | | color: #20613D;
|
| | | }
|
| | | }
|
| | |
|
| | | .desc {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | }
|
| | | .desc {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | }
|
| | |
|
| | | .price {
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #CF0000;
|
| | | line-height: 40rpx;
|
| | | .price {
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #CF0000;
|
| | | line-height: 40rpx;
|
| | |
|
| | | .num {
|
| | | font-size: 48rpx;
|
| | | line-height: 66rpx;
|
| | | }
|
| | | }
|
| | | .num {
|
| | | font-size: 48rpx;
|
| | | line-height: 66rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .icon-kf {
|
| | | width: 44rpx;
|
| | | height: 44rpx;
|
| | | }
|
| | | .icon-kf {
|
| | | width: 44rpx;
|
| | | height: 44rpx;
|
| | | }
|
| | |
|
| | | .gwc {
|
| | | width: 168rpx;
|
| | | height: 48rpx;
|
| | | border-radius: 30rpx;
|
| | | border: 2rpx solid #20613D;
|
| | | font-size: 24rpx;
|
| | | color: #20613D;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | }
|
| | | .gwc {
|
| | | width: 168rpx;
|
| | | height: 48rpx;
|
| | | border-radius: 30rpx;
|
| | | border: 2rpx solid #20613D;
|
| | | font-size: 24rpx;
|
| | | color: #20613D;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | .line {
|
| | | min-height: 20rpx;
|
| | | background: #F7F7F7;
|
| | | }
|
| | | .line {
|
| | | min-height: 20rpx;
|
| | | background: #F7F7F7;
|
| | | }
|
| | |
|
| | | .info-detail {
|
| | | padding: 18rpx 30rpx;
|
| | | .info-detail {
|
| | | padding: 18rpx 30rpx;
|
| | |
|
| | | .label {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | min-width: 160rpx;
|
| | | margin-right: 20rpx;
|
| | | }
|
| | | .label {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | min-width: 160rpx;
|
| | | margin-right: 20rpx;
|
| | | }
|
| | |
|
| | | .value {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | }
|
| | | }
|
| | | .value {
|
| | | font-weight: 400;
|
| | | font-size: 28rpx;
|
| | | color: #666666;
|
| | | line-height: 40rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .shop-recommend-title {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | | .shop-recommend-title {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | |
|
| | |
|
| | | .shop-recommend-container {
|
| | | padding: 24rpx 30rpx;
|
| | | .shop-recommend-container {
|
| | | padding: 24rpx 30rpx;
|
| | |
|
| | | .shop-recommend {
|
| | | .shop-recommend-image {
|
| | | width: 214rpx;
|
| | | height: 214rpx;
|
| | | background-size: 100% 100%;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | | .shop-recommend {
|
| | | .shop-recommend-image {
|
| | | width: 214rpx;
|
| | | height: 214rpx;
|
| | | background-size: 100% 100%;
|
| | | border-radius: 8rpx;
|
| | | }
|
| | |
|
| | | .shop-recommend-title {
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #000000;
|
| | | line-height: 40rpx;
|
| | | .shop-recommend-title {
|
| | | font-weight: 600;
|
| | | font-size: 28rpx;
|
| | | color: #000000;
|
| | | line-height: 40rpx;
|
| | |
|
| | | .level {
|
| | | color: #20613D;
|
| | | ;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | .level {
|
| | | color: #20613D;;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .comment-container {
|
| | | padding: 18rpx 30rpx;
|
| | | .comment-container {
|
| | | padding: 18rpx 30rpx;
|
| | |
|
| | | .desc {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | | .desc {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | |
|
| | | .user-item {
|
| | | .user-icon {
|
| | | width: 72rpx;
|
| | | height: 72rpx;
|
| | | background-size: 100% 100%;
|
| | | border-radius: 50%;
|
| | | }
|
| | | .user-item {
|
| | | .user-icon {
|
| | | width: 72rpx;
|
| | | height: 72rpx;
|
| | | background-size: 100% 100%;
|
| | | border-radius: 50%;
|
| | | }
|
| | |
|
| | | .name {
|
| | | font-weight: 600;
|
| | | font-size: 24rpx;
|
| | | color: #000000;
|
| | | line-height: 34rpx;
|
| | | }
|
| | | .name {
|
| | | font-weight: 600;
|
| | | font-size: 24rpx;
|
| | | color: #000000;
|
| | | line-height: 34rpx;
|
| | | }
|
| | |
|
| | | .comment {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | | .comment {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 34rpx;
|
| | | }
|
| | |
|
| | | .date {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 72rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | .date {
|
| | | font-weight: 400;
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | line-height: 72rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | .top-img-container {
|
| | | position: relative;
|
| | | .top-img-container {
|
| | | position: relative;
|
| | |
|
| | | .top-img {
|
| | | width: 750rpx;
|
| | | height: 764rpx;
|
| | | }
|
| | | .top-img {
|
| | | width: 750rpx;
|
| | | height: 764rpx;
|
| | | }
|
| | |
|
| | | .icon-container {
|
| | | position: absolute;
|
| | | top: 20rpx;
|
| | | width: 80rpx;
|
| | | height: 80rpx;
|
| | | background: rgba(0, 0, 0, 0.42);
|
| | | .icon-container {
|
| | | position: absolute;
|
| | | top: 20rpx;
|
| | | width: 80rpx;
|
| | | height: 80rpx;
|
| | | background: rgba(0, 0, 0, 0.42);
|
| | |
|
| | | .icon-sc {
|
| | | width: 54rpx;
|
| | | height: 54rpx;
|
| | | margin: 0 auto;
|
| | | margin-top: 12rpx;
|
| | | }
|
| | | .icon-sc {
|
| | | width: 54rpx;
|
| | | height: 54rpx;
|
| | | margin: 0 auto;
|
| | | margin-top: 12rpx;
|
| | | }
|
| | |
|
| | | .icon-shop {
|
| | | width: 54rpx;
|
| | | height: 54rpx;
|
| | | margin: 0 auto;
|
| | | margin-top: 12rpx;
|
| | | }
|
| | | .icon-shop {
|
| | | width: 54rpx;
|
| | | height: 54rpx;
|
| | | margin: 0 auto;
|
| | | margin-top: 12rpx;
|
| | | }
|
| | |
|
| | | .num {
|
| | | font-weight: 400;
|
| | | font-size: 20rpx;
|
| | | color: #FFFFFF;
|
| | | line-height: 28rpx;
|
| | | position: absolute;
|
| | | top: 6prx;
|
| | | right: 16rpx;
|
| | | }
|
| | | }
|
| | | .num {
|
| | | font-weight: 400;
|
| | | font-size: 20rpx;
|
| | | color: #FFFFFF;
|
| | | line-height: 28rpx;
|
| | | position: absolute;
|
| | | top: 6prx;
|
| | | right: 16rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .icon-container:last-child {
|
| | | left: 120rpx;
|
| | | }
|
| | | .icon-container:last-child {
|
| | | left: 120rpx;
|
| | | }
|
| | |
|
| | | .icon-container:first-child {
|
| | | left: 20rpx;
|
| | | }
|
| | | .icon-container:first-child {
|
| | | left: 20rpx;
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | }
|
| | | var tmp = parseFloat(this.dto.price)
|
| | | if (isNaN(tmp) || parseFloat('' + tmp).toFixed(3) !== parseFloat('' + this.dto.price).toFixed(3)) {
|
| | | this.$message.showToast('商品价格格式错误,精确到分') |
| | | console.log('a1', ('' + tmp) ) |
| | | this.$message.showToast('商品价格格式错误,精确到分')
|
| | | console.log('a1', ('' + tmp) )
|
| | | console.log('a1', ('' + this.dto.price))
|
| | | return
|
| | | }
|