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

View File

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

View File

@@ -2,7 +2,7 @@
<template> <template>
<div class="login-msg-container"> <div class="login-msg-container">
<div class="p5 pb0"> <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 /> <van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
</div> </div>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确认并转发</van-button> <van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确认并转发</van-button>
@@ -11,7 +11,7 @@
<script> <script>
import { Field } from 'vant' import { Field } from 'vant'
// import { weixinShare } from '@/assets/js/utils/wxShare.js' import { saveShareTrack } from '@/api/ebiz/product-store/product-store'
export default { export default {
name: 'LoginMsg', name: 'LoginMsg',
@@ -21,14 +21,19 @@ export default {
data() { data() {
return { return {
loginInfo: { loginInfo: {
name: '', aname: '',
password: '' password: ''
} },
shareId: '', //分享id
mallId: '', //商城id
name: '' //商品名称
} }
}, },
created() {}, created() {},
mounted() { mounted() {
document.getElementsByTagName('body')[0].classList.add('bg-white') document.getElementsByTagName('body')[0].classList.add('bg-white')
this.mallId = this.$route.query.mallId
this.name = this.$route.query.name
}, },
destroyed() { destroyed() {
document.getElementsByTagName('body')[0].classList.remove('bg-white') document.getElementsByTagName('body')[0].classList.remove('bg-white')
@@ -37,6 +42,7 @@ export default {
async nextStep() { async nextStep() {
let valid = await this.$validator.validate() let valid = await this.$validator.validate()
if (true === valid) { if (true === valid) {
await saveShareTrack()
this.share() this.share()
} else { } else {
return this.$toast(this.$validator.errors.all()[0]) return this.$toast(this.$validator.errors.all()[0])
@@ -47,20 +53,47 @@ export default {
location.origin + location.origin +
'/#/productStore/storeDetail?token=' + '/#/productStore/storeDetail?token=' +
localStorage.getItem('token') + localStorage.getItem('token') +
'&name=' + '&aname=' +
escape(this.loginInfo.name) + escape(this.loginInfo.aname) +
'&password=' + '&password=' +
escape(this.loginInfo.password) escape(this.loginInfo.password) +
'&shareId=' +
this.shareId +
'&mallId' +
this.mallId +
'&name' +
this.name
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('bridge', { EWebBridge.webCallAppInJs('bridge', {
flag: 'share', flag: 'share',
extra: { extra: {
title: `xxx商品商城`, title: `${this.name}商品商城`,
content: `分享给你一个商品,快来点击购买吧!`, content: `分享给你一个商品,快来点击购买吧!`,
url: url, url: url,
img: this.$assetsUrl + 'images/logo.png' 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="温馨提示:您即将离开本站,访问的链接来源于第三方网站,可能存在风险,请谨慎操作!" /> <van-notice-bar wrapable :scrollable="false" text="温馨提示:您即将离开本站,访问的链接来源于第三方网站,可能存在风险,请谨慎操作!" />
</div> </div>
<div> <div>
<img src="https://img.yzcdn.cn/vant/apple-1.jpg" alt="" width="100%" /> <img :src="detail.imgUrl" alt="" width="100%" />
</div> </div>
<div class="p5 pb0 mb40" v-if="isWeixin"> <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 /> <van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
</div> </div>
<van-button v-if="isWeixin" type="danger" class="bottom-btn" @click="check" v-no-more-click="1000">查看</van-button> <van-button v-if="isWeixin" type="danger" class="bottom-btn" @click="check" v-no-more-click="1000">查看</van-button>
@@ -18,6 +18,9 @@
<script> <script>
import { NoticeBar, Field } from 'vant' 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 { export default {
name: 'StoreDetail', name: 'StoreDetail',
components: { components: {
@@ -28,13 +31,18 @@ export default {
let isWeixin = this.$utils.device().isWeixin //判断环境 let isWeixin = this.$utils.device().isWeixin //判断环境
return { return {
isWeixin, //是否在微信 isWeixin, //是否在微信
mallId: '', //商城id
shareId: '', //分享id
//登录账号及密码 //登录账号及密码
loginInfo: { loginInfo: {
name: '', aname: '',
password: '' password: ''
}, },
storeId: '', //商城id detail: {
imgUrl: '' //商城简介图片地址 imgUrl: '', //商城简介图片地址
linkUrl: '', //商城外链地址
name: '' //商城名称
}
} }
}, },
mounted() { mounted() {
@@ -45,43 +53,80 @@ export default {
EWebBridge.webCallAppInJs('webview_right_button', { EWebBridge.webCallAppInJs('webview_right_button', {
btns: [ btns: [
{ {
title: '转发记录', img: icon
img: this.$assetsUrl + 'images/jilu@3x.png',
route: { flag: '', extra: {} }
} }
] ]
}) })
}, 100) }, 100)
} }
window.appCallback = this.appCallback //app回调 window.appCallback = this.appCallback //app回调
this.storeId = this.$route.query.storeId this.mallId = this.$route.query.mallId
if (this.isWeixin) { 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.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() { destroyed() {
document.getElementsByTagName('body')[0].classList.remove('bg-white') document.getElementsByTagName('body')[0].classList.remove('bg-white')
}, },
methods: { 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() { check() {
//TODO //TODO
window.location.href = this.detail.linkUrl
}, },
//一键转发 //一键转发
forward() { forward() {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
extra: { extra: {
url: location.origin + `/#/productStore/loginMsg?storeId=${this.storeId}` url: location.origin + `/#/productStore/loginMsg?mallId=${this.mallId}&name=${this.detail.name}`
}, },
routerInfo: { 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回调 //app回调
appCallback(data) { appCallback(data) {
console.log('data========', data)
return
if (data.trigger == 'right_button_click' && !this.isWeixin) { if (data.trigger == 'right_button_click' && !this.isWeixin) {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',

View File

@@ -4,15 +4,15 @@
<div v-for="(item, index) in list" :key="index" @click="goDetail(item)"> <div v-for="(item, index) in list" :key="index" @click="goDetail(item)">
<van-grid :border="false" :gutter="10" :column-num="3"> <van-grid :border="false" :gutter="10" :column-num="3">
<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 :text="item.name" />
</van-grid-item> </van-grid-item>
<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 :text="item.name" />
</van-grid-item> </van-grid-item>
<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 :text="item.name" />
</van-grid-item> </van-grid-item>
</van-grid> </van-grid>
@@ -22,6 +22,8 @@
<script> <script>
import { Grid, GridItem, Image } from 'vant' import { Grid, GridItem, Image } from 'vant'
import { getShopList } from '@/api/ebiz/product-store/product-store'
export default { export default {
name: 'StoreList', name: 'StoreList',
components: { components: {
@@ -37,25 +39,36 @@ export default {
mounted() { mounted() {
//TEST //TEST
this.setList() this.setList()
// this.getShopList()
}, },
methods: { methods: {
//TEST //TEST
setList() { setList() {
this.list = [ this.list = [
{ name: '小米', imageUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', storeId: 'A1' }, { name: '小米', iconUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', id: 'A1' },
{ name: '华为', imageUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', storeId: 'A2' }, { name: '华为', iconUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', id: 'A2' },
{ name: '苹果', imageUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg', storeId: 'A3' } { 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) { goDetail(v) {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
extra: { extra: {
url: location.origin + `/#/productStore/storeDetail?storeId=${v.storeId}` url: location.origin + `/#/productStore/storeDetail?mallId=${v.id}`
}, },
routerInfo: { routerInfo: {
path: `/productStore/storeDetail?storeId=${v.storeId}` path: `/productStore/storeDetail?mallId=${v.id}`
} }
}) })
} }