Commit da130b05 Harvey

新增 graphql 请求

1 个父辈 741f082a
//const baseUrl = 'https://app.ydniu.com/graphql'
//const baseUrl = '/test_graphql'
const baseUrl = '/graphql'
const baseUrl = '/test_graphql'
//const baseUrl = '/graphql'
function request(options = {}) {
let header = Object.assign({
......@@ -33,8 +33,29 @@ function post(options = {}) {
return request(options)
}
async function graphql(options = {}) {
let opts = Object.assign({
type: 'query'
}, options)
var body = []
body.push(`${opts.type}{${opts.name}`)
if (opts.args) body.push(`(${opts.args})`)
if (opts.body) body.push(`{${opts.body}}`)
body.push('}')
const res = await post({
data: {
query: body.join('')
}
})
return res.data.data[opts.name]
}
uni.$u.request = {
request,
get,
post
}
post,
graphql
}
<template>
<view>
<view class="top-nav">
<button class="top-nav-btn" :class="{'top-nav-btn-on':sub_module_id == item.value}" v-for="(item,i) in nav" :data-v="item.value"
@click="navChange" :key="i">{{item.text}}</button>
<button class="top-nav-btn" :class="{'top-nav-btn-on':sub_module_id == item.value}" v-for="(item,i) in nav"
:data-v="item.value" @click="navChange" :key="i">{{item.text}}</button>
</view>
<view class="content">
<!-- <view v-for="(item,index) in list" class="msg-info" :key="index">
......@@ -11,16 +11,16 @@
<view class="tip">{{item.text}}</view>
</view> -->
<view class='left'>
<view v-for="(item,index) in leftData" class="msg-info" :key="index">
<image :mode="mode" lazy-load="true" :src="item.src" @click="imgClick(item)"></image>
<div v-for="(item,index) in leftData" class="msg-info" :key="index">
<image :mode="mode" lazy-load="true" :src="item.src+'/eshop'" @click="imgClick(item)"></image>
<view class="tip">{{item.text}}</view>
</view>
</div>
</view>
<view class="right">
<view v-for="(item,index) in rightData" class="msg-info" :key="index">
<image :mode="mode" :src="item.src" @click="imgClick(item)"></image>
<div v-for="(item,index) in rightData" class="msg-info" :key="index">
<image :mode="mode" :src="item.src+'/eshop'" @click="imgClick(item)"></image>
<view class="tip">{{item.text}}</view>
</view>
</div>
</view>
</view>
</view>
......@@ -68,31 +68,28 @@
},
methods: {
async bindData() {
const res = await uni.$u.request.post({
data: {
query: `query{lottery_shop_get_posters(module_id:4,sub_module_id:${this.sub_module_id})}`
}
})
var data = []
var resData = res.data.data['lottery_shop_get_posters'].map(a => ({
const res = await uni.$u.request.graphql({
name: 'lottery_shop_get_posters',
args: `module_id:4,sub_module_id:${this.sub_module_id}`
}).then(v => v.map(a => ({
text: a.title,
src: a.main_image_url,
mid: a.module_id,
id: a.id
}))
if (resData.length < 2) return
})))
if (res.length < 2) return
var leftData = []
var rightData = []
for (var i = 1, k = 0; i < resData.length; i += 2, k++) {
for (var i = 1, k = 0; i < res.length; i += 2, k++) {
if (k % 2 == 1) {
leftData.push(resData[i])
rightData.push(resData[i - 1])
leftData.push(res[i])
rightData.push(res[i - 1])
} else {
leftData.push(resData[i - 1])
rightData.push(resData[i])
leftData.push(res[i - 1])
rightData.push(res[i])
}
}
......@@ -100,10 +97,9 @@
this.rightData = rightData
},
navChange(e) {
console.log(e.target.dataset.v)
var sid = e.target.dataset.v
if (this.sub_module_id == sid) return
this.sub_module_id=sid
if (this.sub_module_id == sid) return
this.sub_module_id = sid
this.bindData()
},
imgClick(img) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!