异步获取数据库数据
获取的数据是一个数组嵌套,shopData1.data是数据库的数据部分,ceshi[0]是真正需要的部分。
shopData1打印出来是这样
shopData1.data打印结果
ceshi[0]打印结果
下面函数可以返回所需数据
export async function shopOut()
{
var shopData1 = await Http.asyncRequest('php','get',
{target:'trade_info'});
console.log(shopData1.data);
var ceshi = shopData1.data;
console.log(ceshi[0]);
// console.log(111);
return ceshi[0];
//}
}
在购物车部分的js文件引用函数接收数据并使用,ceshi[0]返回值是键值对。
var shoppingData = await shopOut();
title:
shoppingData["title"],
如此可以改变界面商品的名字
通过uid索引购物车数据
数据库cart中,userid是用于区别用户,不同用户的购物车不同。goodsid用于寻找商品,商品信息存在goods中。addtime是存储时间。
修改PHP使其可以返回最终商品的数据
if ($_GET['target'] == 'user1')
{
$rows = $mysql->db_get_all("SELECT * FROM `cart` WHERE userid=0");
//$data = $mysql->db_get_all("SELECT * FROM `goods` WHERE id=$rows");
header('Content-Type: application/json');
echo json_encode($rows);
}
elseif ($_GET['target'] == 'user2') {
$rows = $mysql->db_get_all("SELECT * FROM `cart` WHERE userid=1");
header('Content-Type: application/json');
echo json_encode($rows);
}
// else {
// $rows = $mysql->db_get_all("SELECT * FROM `goods` WHERE id=$_GET['target']");
// header('Content-Type: application/json');
// echo json_encode($rows);
// }
elseif ($_GET['target'] == 'goodsid1')
{
$rows = $mysql->db_get_all("SELECT * FROM `goods` WHERE id = 27");
header('Content-Type: application/json');
echo json_encode($rows);
}
elseif ($_GET['target'] == 'goodsid2')
{
$rows = $mysql->db_get_all("SELECT * FROM `goods` WHERE id = 21");
header('Content-Type: application/json');
echo json_encode($rows);
}
修改交互函数
export async function userid (username)
{
if(username == 'user1'){
var shopData1 = await Http.asyncRequest('php','get',
{target:'user1'});
}
else if(username == 'user2'){
var shopData1 = await Http.asyncRequest('php','get',
{target:'user2'});
}
var ceshi = shopData1.data;
console.log(ceshi[0]);
var goodsid = ceshi[0];
return goodsid['goodsid'];
}
export async function shopOut(goods)
{
if(goods == 27){
var shopData1 = await Http.asyncRequest('php','get',
{target:'goodsid1'});
}
else if(goods == 21){
var shopData1 = await Http.asyncRequest('php','get',
{target:'goodsid2'});
}
console.log(shopData1);
var ceshi = shopData1.data;
console.log(ceshi[0]);
// console.log(111);
return ceshi[0];
//}
}
删除无关代码,最后 结果
export async function genCartGroupData() {
var shoppingData = await shopOut( await userid('user1'));
console.log(shoppingData);
const resp = {
data: {
isNotEmpty: true,
storeGoods: [
{
storeId: '1000',
storeName: '店名',
storeStatus: 1,
totalDiscountSalePrice: '9990',
promotionGoodsList: [
{
goodsPromotionList: [
{
uid: '88888888205468',
saasId: '88888888',
storeId: '1000',
spuId: '12',
skuId: '135691622',
isSelected: 1,
thumb:
'7.jpg',
title:
shoppingData['title'],
primaryImage:
'7.jpg',
quantity: 1,
stockStatus: true,
stockQuantity: 10,//库存
price: shoppingData['sprice']*100,
originPrice: shoppingData['msprice']*100,
//后两位数字为小数位,所以要在原数据上*100
tagPrice: null,
titlePrefixTags: shoppingData['mark1'],
roomId: null,
specInfo: [
{
specTitle: '颜色',
specValue: '经典白',
},
{
specTitle: '类型',
specValue: '经典套装',
},
],//这个等大佬改
joinCartTime: shoppingData['addtime'],
available: 1,
putOnSale: 1,
etitle: null,
},
],
},
],
//lastJoinTime: '2020-06-29T07:55:40.000+0000',
postageFreePromotionVo: {
title: null,
promotionCode: null,
promotionSubCode: null,
promotionId: null,
tagText: null,
promotionStatus: null,
tag: null,
description: null,
doorSillRemain: null,
isNeedAddOnShop: 0,
},
},
],
invalidGoodItems: [],
isAllSelected: false,
selectedGoodsCount: 1,
totalAmount: shoppingData['sprice']*100,
totalDiscountAmount: (shoppingData['mprice']-shoppingData['sprice'])*100,
},
code: 'Success',
msg: null,
requestId: mockReqId(),
clientIp: mockIp(),
rt: 269,
success: true,
};
return resp;
}
运行结果
由于图片在数据库存储是以字符串存储名字的,例如shoppingData['img']=='1.jpg'
真正的图片在服务器中存储,因此调用图片需要写出它的url
写一个拼接url的函数并调用
//拼接函数
export async function jpgOut(jpg)
{
var jpgURL = 'http://地址/';
jpgURL = jpgURL + jpg;
return jpgURL;
}
//调用
var jpg = await jpgOut(shoppingData['img']);
thumb:jpg,
运行结果相同只是提高了灵活性。
等明天吧,把全选部分做了。(点击全选并没有选择购物车内商品)反正现在使找不到组件,我去别的地方偷一个来。