34 コミット

作成者 SHA1 メッセージ 日付
  caserKing 91f20f4a5d Merge commit 'refs/tags/jenkins-front-end-screenad-339-v44^{}' into product 5年前
  caserKing 7c0ab83430 Merge commit 'refs/tags/jenkins-front-end-screenad-338-v184^{}' into release 5年前
  caserKing d6614cb70d 【大屏】【修改】【去掉测试数据】 5年前
  caserKing 4c668f8b2c 【大屏】【测试提交1】 5年前
  caserKing 50be508097 【大屏】【优化】【删除多余log】 5年前
  caserKing 5ee01dbd3f Merge commit 'refs/tags/jenkins-front-end-screenad-329-^{}' into release 5年前
  caserKing 58d9636893 【大屏】【优化】【大屏的排名显示隐藏】 5年前
  caserKing d7abe27a8c 【大屏】【修改】【删除多余log】 5年前
  caserKing 6f645264a0 【大屏】【修改】】星星样式5】 5年前
  caserKing d0af46b122 【大屏】【修改】】星星样式4】 5年前
  caserKing 13f06f5313 【大屏】【修改】】星星样式3】 5年前
  caserKing dbf641eb06 【大屏】【修改】】星星样式2】 5年前
  caserKing fd548b344c 【大屏】【修改】】星星样式】 5年前
  caserKing a48da27793 '【大屏】【修改】【调整样式人气图标】' 5年前
  caserKing 850835feae 【大屏】【修改】【背景】 5年前
  caserKing 3f0b11fb07 【大屏】【添加】【排名接口screen】 5年前
  caserKing e8e6804786 【大屏】【切换回券模式] 5年前
  caserKing 572ea9111a 【大屏】【添加】【给纯广告图的模式加上排名] 5年前
  caserKing 0455c2443a 【大屏】【测试】【测试插件错误原因2] 5年前
  caserKing 98e6a11691 【大屏】【测试】【测试插件错误原因] 5年前
  caserKing 9af572f291 【大屏】【添加】【融合券和广告的动画】 5年前
  caserKing 0b55de9163 【大屏】【添加】【商户排行字号调整10】 5年前
  caserKing d63b84bf1a 【大屏】【修改】【排名布局2】 5年前
  caserKing c30801377b 【大屏】【修改】【排名布局】 5年前
  caserKing 67ce5d4931 【大屏】【添加】【商户排行字号调整9】 5年前
  caserKing b427299bf5 【大屏】【添加】【商户排行字号调整8】 5年前
  caserKing a34aac415a 【大屏】【添加】【商户排行字号调整7】 5年前
  caserKing b58e382b81 【大屏】【添加】【商户排行字号调整6】 5年前
  caserKing a902c1505f 【大屏】【添加】【商户排行字号调整5】 5年前
  caserKing cdf503afee 【大屏】【添加】【商户排行字号调整4】 5年前
  caserKing e971389a11 【大屏】【添加】【商户排行字号调整3】 5年前
  caserKing 0f3f9f0136 【大屏】【添加】【商户排行字号调整2】 5年前
  caserKing 4762c76a64 【大屏】【添加】【商户排行字号调整】 5年前
  caserKing cd40e4bedc 【大屏】【添加】【商户排行】 5年前
9個のファイルの変更423行の追加99行の削除
分割表示
  1. +381
    -98
      App.js
  2. バイナリ
      image/background-yellow.png
  3. バイナリ
      image/hot_gray.png
  4. バイナリ
      image/hot_yellow.png
  5. バイナリ
      image/star_gray.png
  6. バイナリ
      image/star_yellow.png
  7. バイナリ
      image/title_yellow.png
  8. +40
    -0
      package-lock.json
  9. +2
    -1
      package.json

+ 381
- 98
App.js ファイルの表示

@@ -22,6 +22,7 @@ import * as Animatable from 'react-native-animatable';
import Swiper from 'react-native-swiper';
import Carousel from 'react-native-snap-carousel';
// import {BoxShadow} from 'react-native-shadow';
import StarRatingBar from 'react-native-star-rating-view/StarRatingBar';

var testMac = 'FF:FF:FF:FF:FF:FF'
var curAdIndex = 0;
@@ -71,6 +72,7 @@ const shadowOpt = {
}

var curTimer = null;
var curRankTimer = null;

var hbRequestCount
var getAdDataCount
@@ -122,8 +124,13 @@ export default class MyPage extends Component {
coverImgUrl: '',
previewImg: '',
curImgState: false,
merchantRankList: [],
hasRankList: true,// 有排名列表
openRankList: false,//开启播放排名
};

this.setAdSwiperItemDom = this.setAdSwiperItemDom.bind(this);
/* this.codePushUpdate = this.codePushUpdate.bind(this);
this.startAd = this.startAd.bind(this);
this.showErrMsg = this.showErrMsg.bind(this); */
@@ -239,6 +246,7 @@ codePushStatusDidChange(syncStatus) {
this.setState({contentItem2:null});
curAdIndex+=3
return true;
}
@@ -253,7 +261,7 @@ codePushStatusDidChange(syncStatus) {
heartConfig.heartbeatInterval = config.heartbeatInterval
heartConfig.dataRefreshInterval=config.dataRefreshInterval
heartConfig.pageChangeInterval=config.pageChangeInterval
// 动画划入
if(config.animationTheme == 0){
this.setState({
@@ -290,8 +298,22 @@ codePushStatusDidChange(syncStatus) {
this.setState({contentDisplayStatus: false})
this.setState({errorMessage : errMsg});
}
//开启 排名页播放的计时器
dealRankTimer(type) {
if (type) {
let num = Number(heartConfig.pageChangeInterval) * 1000;
curRankTimer = setInterval(() => {
this.setState({
openRankList: false
})
clearInterval(curRankTimer);
},num)
} else {
clearInterval(curRankTimer);
}
}

//判断播放类型adType
//判断播放类型adType 0 纯券 1纯广告图 2 广告图+券
dealLoopType(dataList) {
adDataList = dataList.filter((item) => {
return item.type == 0;
@@ -299,7 +321,15 @@ codePushStatusDidChange(syncStatus) {
adDataBgList = dataList.filter((item) => {
return item.type == 2;
})
//aaa
let merchantRankList = dataList.filter((item) => {
if (item.type == 3) {
item.extInfo = JSON.parse(item.extInfo);
item.extInfo.executionIndex = Number(item.extInfo.executionIndex);
item.extInfo.populationIndex = Number(item.extInfo.populationIndex);
}
return item.type == 3;
})
//
let num = 0;
if (adDataList.length > 0 && adDataBgList.length > 0) {
num = 2;
@@ -309,7 +339,21 @@ codePushStatusDidChange(syncStatus) {
} else if (!adDataList.length && adDataBgList.length > 0) {
num = 1;
}
//aaa
this.setState({adType: num })
this.setState({
merchantRankList: merchantRankList,
hasRankList: merchantRankList.length > 0 ? true:false
})
//aaa
if (this.state.adType == 1 && this.state.hasRankList) {
let obj = {
hasRank: true,
}
adDataBgList.push(obj)
}
}

getAdDataList(first) {
@@ -321,7 +365,7 @@ codePushStatusDidChange(syncStatus) {
if (result.code != 200) {
this.showErrMsg(result.message+'\n'+this.state.macAddress);
} else if (result.data.list) {
//aaa
//
//type==0的是券 1是? 2是广告大图
let curData = result.data.list;
this.dealLoopType(curData);
@@ -375,13 +419,17 @@ componentWillUnmount(){
async routine() {
hbRequestCount -=1;
getAdDataCount -=1;
if (this.state.adType == 2 && this.state.curImgState) {
pageChangeCount -=1;
}
if (this.state.adType != 2) {
pageChangeCount -=1;
//等待第一次图片加载完成再倒计时
if (!this.state.openRankList) {
if (this.state.adType == 2 && this.state.curImgState) {
pageChangeCount -=1;
}
if (this.state.adType != 2) {
pageChangeCount -=1;
}
}

try {
if (getAdDataCount<=0) {
@@ -395,10 +443,21 @@ async routine() {
//如果是adType == 2时间间隔到了,要检验轮播是否走完在决定切换
if (this.state.adType == 2) {
if (pageChangeCount<=0) {
let curNum = this.state.curAdType02Index + 1;
if (curNum >= adDataBgList.length) {
//如果播放到了最后一页,接下来暂停计时器,可能播放商户排名页
if (!this.state.openRankList) {
this.dealRankTimer(true);
this.setState({
openRankList: true,
})
}
curNum = 0;
}

this.setState({
curAdType02Index: curNum,
previewImg:adDataBgList[curNum].coverImg
@@ -409,6 +468,13 @@ async routine() {
} else if (this.state.adType == 0) {
if (pageChangeCount <= 0) { //页面切换间隔
//如果播放到了最后一页,接下来暂停计时器,可能播放商户排名页
if (curAdIndex >= adDataList.length) {
this.dealRankTimer(true);
this.setState({
openRankList: true,
})
}
if (this.state.contentDisplayStatus && this.state.baseInfo) {
this.setState({ contentDisplayStatus: false})
if (this.updateContent()) {
@@ -475,7 +541,95 @@ getContentViewItemMerchantName(contentItem) {
return contentItem.target.merchantVoList[0].merchantName;
}
}
//排名 rank dom
rankDom() {
let rankDomStack = [];
let {merchantRankList,} = this.state;
if (merchantRankList.length > 0) {
merchantRankList.map((item,index) => {
let animation = '';
if (this.state.adType == 0) {
if (index == 0) {
animation = this.state.animationTheme.first;
} else if (index == 1) {
animation = this.state.animationTheme.second;
} else if (index == 2) {
animation = this.state.animationTheme.third;
} else if (index == 3) {
animation = this.state.animationTheme.second;
} else if (index == 4) {
animation = this.state.animationTheme.third;
}
} else if (this.state.adType == 2) {
animation = 'fadeIn';
} else if (this.state.adType == 1) {
animation = '';
}
rankDomStack.push(this.rankItemDom(item,index,animation));
})
}
return rankDomStack;
}
//每一条 rank
rankItemDom(item,index,animation) {
let fontSizeNum = 40/(PixelRatio.get());
let fontSizeNum02 = 46/(PixelRatio.get());
let curStyleObj = {
width: fontSizeNum,
height: fontSizeNum,
}
let curStyleObj02 = {
width: fontSizeNum02,
height: fontSizeNum02,
}
return (
<Animatable.View animation={animation} style={styles.rankItemBox} key={index}>
<Image style={styles.RankLogo} resizeMode="stretch" source={{uri:item.coverImg}}></Image>
<View style={styles.rankContent}>
<Text style={styles.merchantText} numberOfLines={1} ellipsizeMode="tail">{item.title}</Text>
<View style={styles.rankRunBox}>
<View style={styles.rankRun01}>
<Text style={styles.starTitle}>经营指数: {item.extInfo.executionIndex} 分</Text>
<View style={{height: fontSizeNum,flexDirection: 'row', alignItems: 'center',marginTop:22/PixelRatio.get()}}>
<StarRatingBar
score={item.extInfo.executionIndex}
allowsHalfStars={true}
accurateHalfStars={true}
starStyle={curStyleObj}
emptyStarImage={<Image style={curStyleObj} resizeMode="stretch" source={require('./image/star_gray.png')} />}
filledStarImage={<Image style={curStyleObj} resizeMode="stretch" source={require('./image/star_yellow.png')} />}
scoreTextStyle={{color:'transparent'}}
/>
</View>
</View>

<View style={styles.rankRun02}>
<Text style={styles.starTitle}>人气指数: {item.extInfo.populationIndex} 分</Text>
<View style={{height: fontSizeNum,flexDirection: 'row', alignItems: 'center',marginTop:22/PixelRatio.get()}}>
<StarRatingBar
score={item.extInfo.populationIndex}
allowsHalfStars={true}
accurateHalfStars={true}
starStyle={curStyleObj02}
emptyStarImage={<Image style={curStyleObj02} resizeMode="stretch" source={require('./image/hot_gray.png')} />}
filledStarImage={<Image style={curStyleObj02} resizeMode="stretch" source={require('./image/hot_yellow.png')} />}
scoreTextStyle={{color:'transparent'}}
/>
</View>
</View>
</View>
</View>
<Image source={{uri:item.target.qrCode}} resizeMode="stretch" style={styles.rankQrcodeImg}></Image>
</Animatable.View>
)
}
//券列表content部分
getContentViewItem(contentItem, annomation) {
if (!contentItem)
return (
@@ -485,7 +639,7 @@ getContentViewItem(contentItem, annomation) {

actionText = this.getContentViewItemActionStr(contentItem);
merchantName = this.getContentViewItemMerchantName(contentItem);
//aaa
//
// contentItem.target.salePriceStr = 234005.8;
// console.warn(annomation)
let curNumStr = contentItem.target.salePriceStr+'';
@@ -536,25 +690,33 @@ getContentViewItem(contentItem, annomation) {

getContentView() {
if (this.state.contentDisplayStatus) {
//aaa
return (<View style={styles.content}>
{this.getContentViewItem(this.state.contentItem0,this.state.animationTheme.first)}
{this.getContentViewItem(this.state.contentItem1,this.state.animationTheme.second)}
{this.getContentViewItem(this.state.contentItem2,this.state.animationTheme.third)}
</View>)
}else{
return (
<View style={styles.content}>
<Text style={styles.updatePage}>{this.state.errorMessage}</Text>
</View>)
}
}else{
return (
<View style={styles.content}>
<Text style={styles.updatePage}>{this.state.errorMessage}</Text>
</View>)
}
}
setAdSwiperItemDom(item) {
let contentItem = item.item;
return (
<View style={styles.onlyAdSwiperItem}>
<Image source={{uri: contentItem.coverImg}} resizeMode='stretch' style={styles.onlyAdTypeItemImg} />
</View>
)
if (this.state.hasRankList && contentItem.hasRank != undefined && contentItem.hasRank) {
return (
this.renderRankDom()
)
} else {
return (
<View style={styles.onlyAdSwiperItem}>
<Image source={{uri: contentItem.coverImg}} resizeMode='stretch' style={styles.onlyAdTypeItemImg} />
</View>
)
}
}
setSwiperItemDom(item) {
let contentItem = item.item;
@@ -568,7 +730,7 @@ setSwiperItemDom(item) {
if (contentItem.subType == 7)
curLogo = require('./image/groupbuy.png');
}
//aaa
//
// contentItem.target.salePriceStr = 24502228;
let curNumStr = contentItem.target.salePriceStr+'';
let curStyleObj = {};
@@ -580,7 +742,7 @@ setSwiperItemDom(item) {
return (
<View style={styles.carouselItemWrap}>
{/* <BoxShadow setting={shadowOpt}> */}
<View setting={shadowOpt}>
<View>
<View style={styles.contentItemTopForAd} key={index}>
<Image source={curLogo} resizeMode='center' style={styles.contentItemUpLayerLogo} />
@@ -637,84 +799,142 @@ rendDefaultImg() {
)
}
}

renderTicketDom() {
return (
<ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}>
{/* 头部title二维码开始 */}
<View style={styles.title}>
<View style={styles.titleImagePlace}>
<Image source={require('./image/title.png')} resizeMode='center' style={styles.titleImage} />
</View>
<ImageBackground source={require('./image/title-qrcode.png') } resizeMode='center' style={styles.titleQrcodeBonder} >
<View style={styles.titleQrcodePlacehold}></View>
<Image source={{uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.titleQrcode} />
<View style={styles.titleQrcodePlacehold}></View>
</ImageBackground>
</View>
{/* 券列表展示列表开始 */}
{this.getContentView()}
{/* 底部商场信息展示开始 */}
<View style={styles.bottom}>
<View style={styles.bottomLogoBackground}>
<Image source={{ uri: this.state.baseInfo.imgUrlH}} resizeMode='contain' style={styles.bottomLogo} />
</View>
<View style={styles.bottomQrcode1Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.bottomQrcode1} />
<Text style={styles.bottomQrcode1Str}>小程序</Text>
</View>
<View style={styles.bottomQrcode2Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWemp}} resizeMode='center' style={styles.bottomQrcode2} />
<Text style={styles.bottomQrcode1Str}>公众号</Text>
</View>
<Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text>
</View>
</ImageBackground>
);
}
//rank page aaa
renderRankDom() {
return (
<ImageBackground style={styles.background} resizeMode='center' source={require('./image/background-yellow.png')}>
{/* 头部title二维码开始 */}
<View style={styles.title}>
<View style={styles.titleImagePlace}>
<Image source={require('./image/title_yellow.png')} resizeMode='center' style={styles.titleImage} />
</View>
<ImageBackground source={require('./image/title-qrcode.png') } resizeMode='center' style={styles.titleQrcodeBonder} >
<View style={styles.titleQrcodePlacehold}></View>
<Image source={{uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.titleQrcode} />
<View style={styles.titleQrcodePlacehold}></View>
</ImageBackground>
</View>
{/* 券列表展示列表开始 */}
<View style={styles.content}>
{this.rankDom()}
</View>
{/* 底部商场信息展示开始 */}
<View style={styles.bottom}>
<View style={styles.bottomLogoBackground}>
<Image source={{ uri: this.state.baseInfo.imgUrlH}} resizeMode='contain' style={styles.bottomLogo} />
</View>
<View style={styles.bottomQrcode1Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.bottomQrcode1} />
<Text style={styles.bottomQrcode1Str}>小程序</Text>
</View>
<View style={styles.bottomQrcode2Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWemp}} resizeMode='center' style={styles.bottomQrcode2} />
<Text style={styles.bottomQrcode1Str}>公众号</Text>
</View>
<Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text>
</View>
</ImageBackground>
);
}
renderAdDom() {
let curWidthNum = 1080/(PixelRatio.get());
return (
// <ImageBackground style={styles.adTypeBg} source={require('./image/ad1.jpg')}> slideInDown zoomInDown
<View style={styles.adWrapBox}>
<Image style={styles.adWrapHideImg}
onLoadStart={() => {
this.setState({
curImgState: false
})
}}
onLoad={() => {
this.setState({
coverImgUrl: this.state.previewImg,
curImgState: true
})
}}
resizeMode="stretch" source={{uri: this.state.previewImg}}>
</Image>

<Animatable.View animation="fadeIn" style={styles.adWrap} key={this.state.coverImgUrl}>
{this.rendDefaultImg()}
</Animatable.View>
<View style={styles.adTypeSwiper02}>
<Carousel
style={styles.adTypeSwiper02Content}
ref={'carousel02'}
data={adDataList}
renderItem={this.setSwiperItemDom}
sliderWidth={curWidthNum}
itemWidth={curWidthNum}
layout={'stack'}
activeSlideOffset={0}
autoplay={true}
loop={true}
autoplayInterval={5000}
/>
</View>
</View>
);
}
getAdView(){
if (this.state.baseInfo) {
if (this.state.adType == 0) {
return (
<ImageBackground style={styles.background} resizeMode='center' source={require('./image/background.png')}>
{/* 头部title二维码开始 */}
<View style={styles.title}>
<View style={styles.titleImagePlace}>
<Image source={require('./image/title.png')} resizeMode='center' style={styles.titleImage} />
</View>
<ImageBackground source={require('./image/title-qrcode.png') } resizeMode='center' style={styles.titleQrcodeBonder} >
<View style={styles.titleQrcodePlacehold}></View>
<Image source={{uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.titleQrcode} />
<View style={styles.titleQrcodePlacehold}></View>
</ImageBackground>
</View>
{/* 券列表展示列表开始 */}
{this.getContentView()}
{/* 底部商场信息展示开始 */}
<View style={styles.bottom}>
<View style={styles.bottomLogoBackground}>
<Image source={{ uri: this.state.baseInfo.imgUrlH}} resizeMode='contain' style={styles.bottomLogo} />
</View>
<View style={styles.bottomQrcode1Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWeapp}} resizeMode='center' style={styles.bottomQrcode1} />
<Text style={styles.bottomQrcode1Str}>小程序</Text>
</View>
<View style={styles.bottomQrcode2Background}>
<Image source={{ uri: this.state.baseInfo.imgQrcodeWemp}} resizeMode='center' style={styles.bottomQrcode2} />
<Text style={styles.bottomQrcode1Str}>公众号</Text>
</View>
<Text style={styles.bottomPlacehold}>{this.state.versionInfo}</Text>
</View>
</ImageBackground>
);
if (this.state.hasRankList && this.state.openRankList) {
return (
this.renderRankDom()
)
} else {
return (
this.renderTicketDom()
)
}
} else if (this.state.adType == 2) {
let curWidthNum = 1080/(PixelRatio.get());
return (
// <ImageBackground style={styles.adTypeBg} source={require('./image/ad1.jpg')}> slideInDown zoomInDown
<View style={styles.adWrapBox}>
<Image style={styles.adWrapHideImg}
onLoadStart={() => {
this.setState({
curImgState: false
})
}}
onLoad={() => {
this.setState({
coverImgUrl: this.state.previewImg,
curImgState: true
})
}}
resizeMode="stretch" source={{uri: this.state.previewImg}}>
</Image>

<Animatable.View animation="fadeIn" style={styles.adWrap} key={this.state.coverImgUrl}>
{this.rendDefaultImg()}
</Animatable.View>
<View style={styles.adTypeSwiper02}>
<Carousel
style={styles.adTypeSwiper02Content}
ref={'carousel02'}
data={adDataList}
renderItem={this.setSwiperItemDom}
sliderWidth={curWidthNum}
itemWidth={curWidthNum}
layout={'stack'}
activeSlideOffset={0}
autoplay={true}
loop={true}
autoplayInterval={5000}
/>
</View>
</View>
);
if (this.state.hasRankList && this.state.openRankList) {
return (
this.renderRankDom()
)
} else {
return (
this.renderAdDom()
)
}
} else if (this.state.adType == 1) {
let curWidthNum = 1080/(PixelRatio.get())
@@ -1335,6 +1555,69 @@ MyPage = CodePush(codePushOptions)(MyPage);
backgroundColor: 'transparent',
alignItems: 'center',
},
//排名的列表样式
rankItemBox: {
// flex: 1,
flexDirection: 'row',
alignItems: 'center',
width: '92%',
height: 250/PixelRatio.get(),
backgroundColor: '#fff',
borderRadius: 18/PixelRatio.get(),
marginTop: 30/PixelRatio.get(),
},

rankContent: {
flex: 1,
flexDirection: 'column',
marginLeft: 22/PixelRatio.get(),
},

rankItemBg: {
flex: 1,
flexDirection: 'row',
alignItems: 'center',
width: '100%',
height: 250/PixelRatio.get(),
},

RankLogo: {
width: 188/PixelRatio.get(),
height: 200/PixelRatio.get(),
marginLeft: 20/PixelRatio.get(),
},

rankQrcodeImg: {
width: 200/PixelRatio.get(),
height: 200/PixelRatio.get(),
marginRight: 20/PixelRatio.get(),
},
starTitle: {
fontSize: 32/PixelRatio.get(),
},

rankRun01: {
marginTop: 12/PixelRatio.get(),
},

rankRun02: {
marginTop: 12/PixelRatio.get(),
marginLeft: 10/PixelRatio.get(),
},

merchantText: {
fontSize: 40/PixelRatio.get(),
fontWeight : 'bold',
marginBottom: 10/PixelRatio.get(),
marginTop: 22/PixelRatio.get(),
},

rankRunBox: {
flex: 1,
flexDirection: 'row',

}

});

バイナリ
image/background-yellow.png ファイルの表示

変更前 変更後
幅: 1080  |  高さ: 1920  |  サイズ: 824 KiB

バイナリ
image/hot_gray.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.3 KiB

バイナリ
image/hot_yellow.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.5 KiB

バイナリ
image/star_gray.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.7 KiB

バイナリ
image/star_yellow.png ファイルの表示

変更前 変更後
幅: 200  |  高さ: 200  |  サイズ: 5.9 KiB

バイナリ
image/title_yellow.png ファイルの表示

変更前 変更後
幅: 539  |  高さ: 195  |  サイズ: 64 KiB

+ 40
- 0
package-lock.json ファイルの表示

@@ -10108,6 +10108,14 @@
"react-addons-shallow-compare": "15.6.2"
}
},
"react-native-star-rating-view": {
"version": "0.0.12",
"resolved": "https://registry.npm.taobao.org/react-native-star-rating-view/download/react-native-star-rating-view-0.0.12.tgz",
"integrity": "sha1-heW8pPARabHPkVD4LdMnvUGT6r4=",
"requires": {
"react-native-vector-icons": "^4.0.0"
}
},
"react-native-svg": {
"version": "9.6.2",
"resolved": "https://registry.npm.taobao.org/react-native-svg/download/react-native-svg-9.6.2.tgz",
@@ -10121,6 +10129,38 @@
"prop-types": "^15.5.10"
}
},
"react-native-vector-icons": {
"version": "4.6.0",
"resolved": "https://registry.npm.taobao.org/react-native-vector-icons/download/react-native-vector-icons-4.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-native-vector-icons%2Fdownload%2Freact-native-vector-icons-4.6.0.tgz",
"integrity": "sha1-5AFDEf+m3jl9kU/8MbcJeodMyNU=",
"requires": {
"lodash": "^4.0.0",
"prop-types": "^15.5.10",
"yargs": "^8.0.2"
},
"dependencies": {
"yargs": {
"version": "8.0.2",
"resolved": "https://registry.npm.taobao.org/yargs/download/yargs-8.0.2.tgz?cache=0&sync_timestamp=1567812322754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-8.0.2.tgz",
"integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
"requires": {
"camelcase": "^4.1.0",
"cliui": "^3.2.0",
"decamelize": "^1.1.1",
"get-caller-file": "^1.0.1",
"os-locale": "^2.0.0",
"read-pkg-up": "^2.0.0",
"require-directory": "^2.1.1",
"require-main-filename": "^1.0.1",
"set-blocking": "^2.0.0",
"string-width": "^2.0.0",
"which-module": "^2.0.0",
"y18n": "^3.2.1",
"yargs-parser": "^7.0.0"
}
}
}
},
"react-proxy": {
"version": "1.1.8",
"resolved": "https://registry.npm.taobao.org/react-proxy/download/react-proxy-1.1.8.tgz",


+ 2
- 1
package.json ファイルの表示

@@ -7,15 +7,16 @@
"test": "jest"
},
"dependencies": {
"code-push": "2.0.7",
"react": "16.8.3",
"react-native": "0.59.9",
"react-native-animatable": "^1.3.2",
"react-native-camera": "^1.12.0",
"code-push": "2.0.7",
"react-native-code-push": "5.6.1",
"react-native-device-info": "^2.1.2",
"react-native-shadow": "^1.2.2",
"react-native-snap-carousel": "^3.8.0",
"react-native-star-rating-view": "0.0.12",
"react-native-svg": "^9.6.2",
"react-native-swiper": "^1.5.14",
"rn-fetch-blob": "^0.10.15"


読み込み中…
キャンセル
保存