[FIX]【商品商城】增加接口

This commit is contained in:
yuweiqi
2020-06-17 17:02:50 +08:00
parent b9187cf353
commit e9bff1ad57
5 changed files with 156 additions and 64 deletions

View File

@@ -2,28 +2,28 @@ import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// // 获取商品商城列表
// export function getCategory(data) {
// return request({
// url: getUrl('/sale/product/getCategory', 1),
// method: 'post',
// data
// })
// }
export function getShopList(data) {
return request({
url: getUrl('/customer/shop/getShopList', 1),
method: 'post',
data
})
}
// // 获取商城详情
// export function getList(data) {
// return request({
// url: getUrl('/sale/product/getProList', 1),
// method: 'post',
// data
// })
// }
// 查询分享轨迹(转发记录)
export function getShareList(data) {
return request({
url: getUrl('/customer/shop/getShareList', 1),
method: 'post',
data
})
}
// // 获取转发记录列表
// export function getProductInfo(data) {
// return request({
// url: getUrl('/sale/product/getItemDetail', 1),
// method: 'post',
// data
// })
// }
// 分享轨迹保存
export function saveShareTrack(data) {
return request({
url: getUrl('/customer/shop/saveShareTrack', 1),
method: 'post',
data
})
}

View File

@@ -6,7 +6,7 @@
<van-row type="flex" align="center">
<van-col class="order" span="4">序号</van-col>
<van-col class="subTime" span="10">转发时间</van-col>
<van-col class="name" span="10">是否打开</van-col>
<van-col class="name" span="10">打开次数</van-col>
</van-row>
</div>
</van-sticky>
@@ -24,8 +24,8 @@
<div class="main-table" v-for="(item, index) in answerList" :key="index">
<van-row type="flex" align="center">
<van-col class="order" span="4">{{ index + 1 }}</van-col>
<van-col class="subTime" span="10">{{ item.answerDate }}</van-col>
<van-col class="name" span="10">{{ item.customerName }}</van-col>
<van-col class="subTime" span="10">{{ item.shareTime }}</van-col>
<van-col class="name" span="10">{{ item.enterCount }}</van-col>
</van-row>
</div>
</div>
@@ -40,7 +40,7 @@
<script>
import { Sticky, Row, Col, List } from 'vant'
import { discAnalysisList } from '@/api/ebiz/manpower/manpower'
import { getShareList } from '@/api/ebiz/product-store/product-store'
export default {
name: 'ForwardRecord',
@@ -59,11 +59,13 @@ export default {
finishedText: '',
pageSize: 15, //每页数据条数
isSuccess: false,
answerList: [] //答卷列表
answerList: [], //记录列表
mallId: '' //商品id
}
},
created() {},
mounted() {
this.mallId = this.$route.query.mallId
this.loadMore()
},
methods: {
@@ -73,19 +75,17 @@ export default {
pageNum: this.currentPage,
pageSize: this.pageSize
}
this.getDiscAnalysisList(pageInfo)
this.getShareList(pageInfo)
},
//获取DISC统计列表数据
//TODO
getDiscAnalysisList(pageInfo) {
//获取转发记录列表
getShareList(pageInfo) {
let params = {
...pageInfo,
...{
agentCode: '',
tableCode: 'GFRS-DISC'
mallId: this.mallId
}
}
discAnalysisList(params).then(res => {
getShareList(params).then(res => {
if (res.result == '0') {
this.isSuccess = true
this.currentPage++
@@ -93,7 +93,7 @@ export default {
if (res.content == null) {
this.finished = true
this.loading = false
this.finishedText = ''
this.finishedText = '已经全部加载'
return
}
let answerList = res.content.answerList.list
@@ -112,6 +112,7 @@ export default {
this.finished = true
}
} else {
this.$toast(res.resultMessage)
this.finished = true
this.loading = false
this.finishedText = res.resultMessage

View File

@@ -2,7 +2,7 @@
<template>
<div class="login-msg-container">
<div class="p5 pb0">
<van-field v-model="loginInfo.name" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
<van-field v-model="loginInfo.aname" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
</div>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确认并转发</van-button>
@@ -11,7 +11,7 @@
<script>
import { Field } from 'vant'
// import { weixinShare } from '@/assets/js/utils/wxShare.js'
import { saveShareTrack } from '@/api/ebiz/product-store/product-store'
export default {
name: 'LoginMsg',
@@ -21,14 +21,19 @@ export default {
data() {
return {
loginInfo: {
name: '',
aname: '',
password: ''
}
},
shareId: '', //分享id
mallId: '', //商城id
name: '' //商品名称
}
},
created() {},
mounted() {
document.getElementsByTagName('body')[0].classList.add('bg-white')
this.mallId = this.$route.query.mallId
this.name = this.$route.query.name
},
destroyed() {
document.getElementsByTagName('body')[0].classList.remove('bg-white')
@@ -37,6 +42,7 @@ export default {
async nextStep() {
let valid = await this.$validator.validate()
if (true === valid) {
await saveShareTrack()
this.share()
} else {
return this.$toast(this.$validator.errors.all()[0])
@@ -47,20 +53,47 @@ export default {
location.origin +
'/#/productStore/storeDetail?token=' +
localStorage.getItem('token') +
'&name=' +
escape(this.loginInfo.name) +
'&aname=' +
escape(this.loginInfo.aname) +
'&password=' +
escape(this.loginInfo.password)
escape(this.loginInfo.password) +
'&shareId=' +
this.shareId +
'&mallId' +
this.mallId +
'&name' +
this.name
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: `xxx商品商城`,
title: `${this.name}商品商城`,
content: `分享给你一个商品,快来点击购买吧!`,
url: url,
img: this.$assetsUrl + 'images/logo.png'
}
})
},
//分享轨迹保存
saveShareTrack() {
return new Promise((resolve, reject) => {
let data = {
mallId: this.mallId
}
saveShareTrack(data).then(
res => {
if (res.result == '0') {
this.shareId = res.content.id
resolve()
} else {
reject(this.$toast(res.resultMessage))
}
},
error => {
reject(console.log(error))
}
)
})
}
}
}

View File

@@ -5,10 +5,10 @@
<van-notice-bar wrapable :scrollable="false" text="温馨提示:您即将离开本站,访问的链接来源于第三方网站,可能存在风险,请谨慎操作!" />
</div>
<div>
<img src="https://img.yzcdn.cn/vant/apple-1.jpg" alt="" width="100%" />
<img :src="detail.imgUrl" alt="" width="100%" />
</div>
<div class="p5 pb0 mb40" v-if="isWeixin">
<van-field v-model="loginInfo.name" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
<van-field v-model="loginInfo.aname" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
</div>
<van-button v-if="isWeixin" type="danger" class="bottom-btn" @click="check" v-no-more-click="1000">查看</van-button>
@@ -18,6 +18,9 @@
<script>
import { NoticeBar, Field } from 'vant'
import icon from '@/assets/images/jilu@3x.png'
import { getShopList, saveShareTrack } from '@/api/ebiz/product-store/product-store'
export default {
name: 'StoreDetail',
components: {
@@ -28,13 +31,18 @@ export default {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin, //是否在微信
mallId: '', //商城id
shareId: '', //分享id
//登录账号及密码
loginInfo: {
name: '',
aname: '',
password: ''
},
storeId: '', //商城id
imgUrl: '' //商城简介图片地址
detail: {
imgUrl: '', //商城简介图片地址
linkUrl: '', //商城外链地址
name: '' //商城名称
}
}
},
mounted() {
@@ -45,43 +53,80 @@ export default {
EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
title: '转发记录',
img: this.$assetsUrl + 'images/jilu@3x.png',
route: { flag: '', extra: {} }
img: icon
}
]
})
}, 100)
}
window.appCallback = this.appCallback //app回调
this.storeId = this.$route.query.storeId
this.mallId = this.$route.query.mallId
if (this.isWeixin) {
this.loginInfo.name = this.$route.query.name
window.localStorage.setItem('token', this.$route.query.token)
this.loginInfo.aname = this.$route.query.aname
this.loginInfo.password = this.$route.query.password
this.shareId = this.$route.query.shareId
this.name = this.$route.query.name
this.saveShareTrack()
}
// this.getShopList({ id: this.mallId })
//TEST
this.setDetail()
},
destroyed() {
document.getElementsByTagName('body')[0].classList.remove('bg-white')
},
methods: {
//TEST
setDetail() {
this.detail = {
imgUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg',
linkUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg'
}
},
//获取商城详情
getShopList(data) {
getShopList(data).then(res => {
if (res.result == '0') {
this.detail = res.content[0]
} else {
this.$toast(res.resultMessage)
}
})
},
//查看
check() {
//TODO
window.location.href = this.detail.linkUrl
},
//一键转发
forward() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/productStore/loginMsg?storeId=${this.storeId}`
url: location.origin + `/#/productStore/loginMsg?mallId=${this.mallId}&name=${this.detail.name}`
},
routerInfo: {
path: `/productStore/loginMsg?storeId=${this.storeId}`
path: `/productStore/loginMsg?mallId=${this.mallId}&name=${this.detail.name}`
}
})
},
//分享轨迹保存
saveShareTrack() {
let data = {
mallId: this.mallId
}
saveShareTrack(data).then(res => {
if (res.result == '0') {
} else {
this.$toast(res.resultMessage)
}
})
},
//app回调
appCallback(data) {
console.log('data========', data)
return
if (data.trigger == 'right_button_click' && !this.isWeixin) {
this.$jump({
flag: 'h5',

View File

@@ -4,15 +4,15 @@
<div v-for="(item, index) in list" :key="index" @click="goDetail(item)">
<van-grid :border="false" :gutter="10" :column-num="3">
<van-grid-item>
<van-image :src="item.imageUrl" />
<van-image :src="item.iconUrl" />
<van-grid-item :text="item.name" />
</van-grid-item>
<van-grid-item>
<van-image :src="item.imageUrl" />
<van-image :src="item.iconUrl" />
<van-grid-item :text="item.name" />
</van-grid-item>
<van-grid-item>
<van-image :src="item.imageUrl" />
<van-image :src="item.iconUrl" />
<van-grid-item :text="item.name" />
</van-grid-item>
</van-grid>
@@ -22,6 +22,8 @@
<script>
import { Grid, GridItem, Image } from 'vant'
import { getShopList } from '@/api/ebiz/product-store/product-store'
export default {
name: 'StoreList',
components: {
@@ -37,25 +39,36 @@ export default {
mounted() {
//TEST
this.setList()
// this.getShopList()
},
methods: {
//TEST
setList() {
this.list = [
{ name: '小米', imageUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', storeId: 'A1' },
{ name: '华为', imageUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', storeId: 'A2' },
{ name: '苹果', imageUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg', storeId: 'A3' }
{ name: '小米', iconUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', id: 'A1' },
{ name: '华为', iconUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', id: 'A2' },
{ name: '苹果', iconUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg', id: 'A3' }
]
},
//获取商品商城列表
getShopList() {
getShopList({}).then(res => {
if (res.result == '0') {
this.list = res.content
} else {
this.$toast(res.resultMessage)
}
})
},
//查看详情
goDetail(v) {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/productStore/storeDetail?storeId=${v.storeId}`
url: location.origin + `/#/productStore/storeDetail?mallId=${v.id}`
},
routerInfo: {
path: `/productStore/storeDetail?storeId=${v.storeId}`
path: `/productStore/storeDetail?mallId=${v.id}`
}
})
}