| 
					
				 | 
			
			
				@@ -13,6 +13,7 @@ import { getReadLog, setReadLog } from '@src/utils/loginSto'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import GlobalModal from '@src/components/bottomModal'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import IosShowPay from '@src/components/pay/IosShowPay'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Store } from '@src/app'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { cashBuy, virtualBuy } from '@src/server/wx/pay'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 interface Config { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     size: 'pre_15' | 'pre_17' | 'pre_19' | 'pre_21' | 'pre_23' | 'pre_25' | 'pre_27' | 'pre_29' | any; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,13 +161,14 @@ const BookArticle: React.FC<BookArticleProps> = ({ store }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, [bookConfig.off_on]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 下拉加载 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onLoad = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onLoad = async (reload?: boolean) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log("下拉加载") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (openBookData?.contentData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let { size, current, total, records } = openBookData.contentData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (records.length < total) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (records.length < total || reload) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 console.log("加载") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 setIsLoad(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                await getBookContent({ pageNum: 1, pageSize: size + 2 }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                await getBookContent({ pageNum: 1, pageSize: reload ? size : size + 1 }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     setIsLoad(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -203,12 +205,58 @@ const BookArticle: React.FC<BookArticleProps> = ({ store }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setPayType(type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         modalStore.showModal() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 全本购买 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const allBuy = async (e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        e.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let { paragraphInfo } = payBook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (payBook) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bookId: paragraphInfo.bookId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bookParagraphId: paragraphInfo.paragraphNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                orderCondition: "阅读中" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let res = await cashBuy(params, onLoad) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log("全本购买:", res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                setTimeout(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setShowPay(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setShowVip(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setPayBook(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                },100) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 书币购买 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const shubiBuy = async (e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        e.stopPropagation() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let { paragraphInfo } = payBook 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (payBook) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bookId: paragraphInfo.bookId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                bookParagraphId: paragraphInfo.paragraphNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                orderCondition: "阅读中" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let res = await virtualBuy(params, onLoad) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log("书币购买章节:", res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                setTimeout(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setShowPay(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setShowVip(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    setPayBook(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    modalStore.hideModal() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                },100) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const { size, bg, off_on, lh } = bookConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <ScrollView 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             lowerThreshold={indexStore.navHeight} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // refresherTriggered={isLoad}//加载状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onScrollToLower={onLoad} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            onScrollToLower={() => { onLoad() }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             style={{ height: `calc(100vh - ${indexStore.navHeight}px)` }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             scrollY={true} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             refresherDefaultStyle='black' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,16 +289,22 @@ const BookArticle: React.FC<BookArticleProps> = ({ store }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         openBookData?.contentData?.records?.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             let needPay = item.needPay //是否付费解锁 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            let isPay = item.isPay //是否已付费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             let showText = true //是否显示内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             let arr = item.paragraphInfo.content?.match(/[^\n]*\n?/g); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             // 是否需要付费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (needPay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (!showPay && needPay && !isPay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                console.log("是否需要付费====>",item,) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 showText = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (!showPay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    setShowPay(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    setShowVip(item.vipFree) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    setPayBook(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                setShowPay(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                setShowVip(item.vipFree) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                setPayBook(item) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // if (showPay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     setShowPay(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     setShowVip(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //     setPayBook(null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // }  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return showText ? <View 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 id={'paragraphNo-' + item.paragraphInfo.paragraphNo} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -275,9 +329,18 @@ const BookArticle: React.FC<BookArticleProps> = ({ store }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {/* 存在vip免费字段展示购买vip */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {showVip && <View className='vip_btn' onClick={(e) => { payBtn(e, "vip") }}>开通会员,本书免费读</View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {/* 存在章节书币价格显示购买书币 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {payBook?.payCoin && <View className='shubi_btn' onClick={(e) => { payBtn(e, "shubi") }}>购买本章</View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            {payBook?.payCoin && <View className='shubi_btn' onClick={(e) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                let coinNum = userInfoStore?.userInfo?.coinNum || 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                // 余额大于等于所需书币 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (coinNum >= payBook?.payCoin) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    shubiBuy(e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    payBtn(e, "shubi") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            }}>购买本章 {payBook?.payCoin}书币</View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             {/* 存在全本购买价格展示全本购买按钮*/} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            {payBook?.payAmount && <View className='shubi_btn' onClick={(e) => { e.stopPropagation() }}>支付{payBook?.payAmount}元购买本书</View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            {payBook?.payAmount && <View className='shubi_btn' onClick={(e) => { allBuy(e) }}>支付{payBook?.payAmount}元购买本书</View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         </IosShowPay> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     </View>} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -285,10 +348,19 @@ const BookArticle: React.FC<BookArticleProps> = ({ store }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {/* 设置弹窗 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {pup && <BookConfigPuP {...bookConfig} off_on={off_on} setOff={setOff} setSize={setSize} setBg={setBg} setLh={setLh} />} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 {/* 支付弹窗 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <GlobalModal type={payType} shubiData={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    coinNum: userInfoStore?.userInfo?.coinNum || 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    payCoin: payBook?.payCoin || 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <GlobalModal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    type={payType} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    callBackFn={onLoad} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    shubiData={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        coinNum: userInfoStore?.userInfo?.coinNum || 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        payCoin: payBook?.payCoin || 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    payBookInfo={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bookId: payBook?.paragraphInfo?.bookId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        bookParagraphId: payBook?.paragraphInfo?.paragraphNo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        orderCondition: "阅读中" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </View> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {/* 底部下来加载 */} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             {/* { 
			 |