he2802 3 years ago
parent
commit
a6f1256643

+ 38 - 0
common/httpList/goods.js

@@ -24,6 +24,44 @@ export default {
 			noToken: true
 		})
 	},
+	
+	goodsBankList(data) {
+		return myRequest({
+			url: '/app/common/bank/list',
+			method: 'get',
+			data:data,
+			noToken: true
+		})
+	},
+	
+	goodsChapterList(data) {
+		return myRequest({
+			url: '/app/common/bank/chapter/list',
+			method: 'get',
+			data:data,
+			noToken: true
+		})
+	},
+	goodsExamList(data) {
+		return myRequest({
+			url: '/app/common/bank/exam/list',
+			method: 'get',
+			data:data,
+			noToken: true
+		})
+	},
+	
+	goodsQuestionList(data) {
+		return myRequest({
+			url: '/app/common/bank/question/list',
+			method: 'get',
+			data:data,
+			noToken: true
+		})
+	},
+	
+	
+
 	addCart(data) {
 		return myRequest({
 			url: '/base/cart',

+ 186 - 65
pages2/bank/detail.vue

@@ -2,15 +2,15 @@
 	<view>
 		<view style="background-color: #FFFFFF;">
 			<view >
-				<image src="/static/login_bg.jpg" style="height: 461rpx;width: 100%;"></image>
+				<image :src="$method.splitImgHost(goodsData.coverUrl, true)" style="width: 100%;"></image>
 				<view style="padding:20rpx">
 					<view style="display: flex;margin-top: 13rpx;">
-						<view class="yearTag">2020</view>
-						<view class="titleTag">2020年二建建筑工程管理与实务(实务专题班)</view>
+						<view class="yearTag">{{goodsData.createTime | formatDate}}</view>
+						<view class="titleTag">{{goodsData.goodsName}}</view>
 					</view>
 					<view style="display: flex;justify-content: space-between;margin-top: 13rpx;">
 						<view class="noteTag"><image src="/static/icon/wk_icon1.png" class="wk_icon"></image>
-						共 <text class="blackFont">6</text> 张卷 <text class="blackFont">1200</text> 道题  </view>
+						共 <text class="blackFont">{{goodsData.updateTime}}</text> 张卷 <text class="blackFont">1200</text> 道题  </view>
 						
 					</view>
 				</view>
@@ -25,50 +25,66 @@
 		</view>
 		<view class="intro" v-if="current == 0">
 			<view class="content">
-				<view class="top">本题库为广东省建筑施工企业安全生产管理人员安全生产考试第三批参考题库(可两行)</view>
-				<image class="img"  src="/static/wd_bg.png" ></image>
+				<rich-text :nodes="goodsData.mobileDetailHtml"></rich-text>
 			</view>
 		</view>
 		<view class="title-list"  v-if="current == 1">
 			<view class="content">
-				<view class="list" v-for="(item1,index) in outline">
-					<view class="module">
-						.2Z106000 施工合同管理-模块标题
-					</view>
-					<view class="section" :data-index="index" @click="changeItem" :class="{up:!item1.showList}">
-						2Z106010 施工承发包的模式-2Z106020 施工合同...
-					</view>
-					<view class="article" v-if="item1.showList" :class="{active:index1 == 0}" v-for="(article,index1) in item1.list">
-						施工承发包模式-施工合同与物资采购合同二
-						<navigator url="/pages2/bank/questionBankTest">
-							<view v-if="index1 == 0" class="btn">试做</view>
-						</navigator>
+				<view class="list" v-for="(item1,index1) in bankList" :key="'index1'+index1">
+					<template v-if="item1.type==1">
+						<view class="module" @click="clickModule" :data-id="item1.majorId" :data-index="index1">
+							{{item1.name}} {{item1.subjectName}}
+						</view>
 						
-					</view>
-				</view>
-				
-				<view class="list">
-					<view class="section" :data-index="index" @click="changeItem">
-						2Z106010 施工承发包的模式-2Z106020 施工合同...
-					</view>
-					<view class="article" :class="{active:index1 == 0}" v-for="(article,index1) in 3">
-						施工承发包模式-施工合同与物资采购合同二
-						<navigator url="/pages2/bank/questionBankTest">
-							<view v-if="index1 == 0" class="btn">试做</view>
-						</navigator>
+						<template v-if="item1.showList">
+							<view class="section" v-for="(item2,index2) in item1.list" :key="'childIndex2'+index2" @click="changeItem" :data-index1="index1" :data-index2="index2" :data-id="item2.chapterExamId" :data-type="item1.type">
+								<u-icon name="arrow-down" v-if="item2.showList"></u-icon>
+								<u-icon name="arrow-up" v-if="!item2.showList"></u-icon>
+								{{item2.name}}
+								{{item2.list}}
+							</view>
+							<view v-if="item2.showList" >
+								<view class="article" v-for="(article,index3) in item2.list" :key="'index3'+index3">
+									<view class="flex">{{article.name}}</view>
+									<navigator :url="'/pages2/bank/questionBankTest?id='+article.majorId">
+										<view v-if="index3 == 0" class="btn">试做</view>
+									</navigator>
+								</view>
+							</view>
+						</template>
 						
-					</view>
-				</view>
-				
-				<view class="list">
-					<view class="article" :class="{active:index1 == 0}" v-for="(article,index1) in 3">
-						施工承发包模式-施工合同与物资采购合同二
-						<navigator url="/pages2/bank/questionBankTest">
-							<view v-if="index1 == 0" class="btn">试做</view>
-						</navigator>
 						
-					</view>
+					</template>
+					
+					<template v-if="item1.type ==2">
+						<view class="section" :data-index1="index1" :data-id="item1.majorId" @click="changeItem" :data-type="item1.type">
+							<u-icon name="arrow-down" v-if="item1.showList"></u-icon>
+							<u-icon name="arrow-up" v-if="!item1.showList"></u-icon>
+							{{item1.name}}
+						</view>
+						<view v-if="item1.showList" >
+							<view class="article" :class="{active:index2 == 0}"  :key="'parentIndex2'+index3" v-for="(article,index2) in item1.list">
+								{{item1.name}}
+								<navigator :url="'/pages2/bank/questionBankTest?id='+article.majorId">
+									<view v-if="index1 == 0" class="btn">试做</view>
+								</navigator>
+								
+							</view>
+						</view>
+					</template>
+					
+					<template v-if="item1.type ==3">
+						<view class="article active" >
+							{{item1.name}}
+							
+							<navigator :url="'/pages2/bank/questionBankTest?id='+item1.majorId">
+								<view class="btn">试做</view>
+							</navigator>
+							
+						</view>
+					</template>
 				</view>
+				
 			</view>
 		</view>
 		<view class="bottomBox">
@@ -95,23 +111,78 @@ export default {
 				}
 			],
 			current:0,
-			outline:[{
-				list:[1,2,3,4],
-				showList:false,
-			}]
+			id:'',
+			goodsData:{},
+			bankList:[]
 		};
 	},
+	filters: {
+	   formatDate: function (value) {
+		   
+		var date = new Date(value);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
+		var Y = date.getFullYear();
+		return Y;
+	  }
+	},
 	onUnload() {
 		
 	},
 	computed: { ...mapGetters(['userInfo']) },
 	onLoad(option) {
-
+		console.log(option)
+		this.id = option.id
+		this.getDetail();
+		this.goodsBankList()
 	},
 	onShow() {
 		
 	},
 	methods: {
+		getDetail(){
+			this.$api.goodsDetail(this.id).then(res => {
+				console.log(res)
+				this.goodsData = res.data.data;
+				 
+			})
+		},
+		goodsBankList() {
+			this.$api.goodsBankList({
+				goodsId:this.id
+			}).then(res => {
+				console.log(res)
+				this.bankList = res.data.data;
+			})
+		},
+		goodsChapterList(bank,id) {
+			this.$api.goodsChapterList({
+				moduleExamId:id
+			}).then(res => {
+				this.$set(bank,'list',res.data.data)
+				 
+			})
+		},
+		clickModule(e) {
+			
+			let index = e.currentTarget.dataset.index;
+			let id = e.currentTarget.dataset.id;
+			
+			
+			if(this.bankList[index].list) {
+				this.$set(this.bankList[index],'showList',!this.bankList[index].showList)
+				return;
+			}
+			
+			this.$api.goodsChapterList({
+				moduleExamId:id
+			}).then(res => {
+				res.data.data.forEach(item => {
+					item.list = [];
+				})
+				this.$set(this.bankList[index],'showList',true)
+				this.$set(this.bankList[index],'list',res.data.data)
+				 
+			})
+		},
 		buy(){
 			if(this.$method.isGoLogin()){
 				return
@@ -122,9 +193,17 @@ export default {
 			if(this.$method.isGoLogin()){
 				return
 			}
-			uni.showToast({
-			    title: '添加成功',
-			    duration: 1000
+			
+			let self = this
+			this.$api.addCart({goodsId:this.id}).then(res => {
+				if(res.data.code==200){
+					uni.setStorageSync('updateCart',1) //提醒刷新购物车
+					uni.showToast({
+					    title: '添加成功'
+					});
+				}else{
+					this.$u.toast(res.data.msg);
+				}
 			});
 			
 		},
@@ -135,12 +214,61 @@ export default {
 			this.current = index;
 		},
 		changeItem(e) {
-			let index = e.currentTarget.dataset.index
-			this.outline.forEach((arrItem,i) => {
-				if(i == index) {
-					arrItem.showList = !arrItem.showList
+			
+			
+			let index1 = e.currentTarget.dataset.index1
+			let index2 = e.currentTarget.dataset.index2
+			let id = e.currentTarget.dataset.id
+			let type = e.currentTarget.dataset.type
+			
+			if(type == 1) {
+				if(this.bankList[index1].list[index2].list.length) {
+					this.$set(this.bankList[index1].list[index2],'showList',!this.bankList[index1].list[index2].showList)
+					// this.$set(this.bankList[index1].list[index2],'list',[{
+					// 	name:'试卷',
+					// 	id:2,
+					// }])
+					return;
 				}
-			})
+				
+				this.$api.goodsExamList({
+					chapterExamId:id
+				}).then(res => {
+					
+					// res.data.data.forEach(item => {
+					// 	item.showList = false;
+					// })
+					// this.bankList = res.data.data;
+					
+					this.$set(this.bankList[index1].list[index2],'showList',true)
+					this.$set(this.bankList[index1].list[index2],'list',res.data.data)
+					
+					 
+				})
+				
+			} else if(type == 2) {
+				if(this.bankList[index1].list.length) {
+					this.$set(this.bankList[index1],'showList',!this.bankList[index1].showList)
+					return;
+				}
+				
+				this.$api.goodsExamList({
+					chapterExamId:id
+				}).then(res => {
+					
+					// res.data.data.forEach(item => {
+					// 	item.showList = false;
+					// })
+					// this.bankList = res.data.data;
+					
+					this.$set(this.bankList[index1],'showList',true)
+					this.$set(this.bankList[index1],'list',res.data.data)
+					
+					 
+				})
+			}
+			
+			
 			
 		}
 	}
@@ -196,18 +324,6 @@ export default {
 					font-size: 24rpx;
 					color: #666666;
 					
-					&::before {
-						content:'^';
-						display: inline-block;
-						margin-right:20rpx;
-					}
-					
-					&.up {
-						&::before {
-							transform: rotate(180deg);
-						}
-						
-					}
 				}
 				
 				.article {
@@ -218,6 +334,11 @@ export default {
 					font-size: 24rpx;
 					color: #666666;
 					border-bottom: 1rpx solid #EEEEEE;
+					display: flex;
+					
+					.flex_auto{
+						flex:1;
+					}
 					
 					&:nth-last-of-type(1) {
 						border:0;

+ 44 - 6
pages2/bank/questionBankTest.vue

@@ -1,7 +1,7 @@
 <template>
 	<view id="questionBank">
 		<swiper class="swiper" :current="current" @change="swiperChange" :interval="interval">
-			<swiper-item v-for="(bank,bankIndex) in bankList">
+			<swiper-item v-for="(bank,bankIndex) in questionList">
 				<view class="pageContent">
 					<view class="pad_8 titBox">
 						<view class="firstLetter">
@@ -12,10 +12,29 @@
 							<view style="color: #666;font-size: 28rpx;">03:25:06</view>
 							<view class="leftLetters"></view>
 						</view>
-						<view class="titles">建造师执业资格注册的有效期一般为( )年。</view>
+						<view class="titles">
+							<rich-text :nodes="bank.content"></rich-text>
+						</view>
 						<view class="">
+							<template v-if="bank.type == 4">
+								<view v-if="ques[bankIndex]">
+									<view v-for="(item, index) in bank.jsonStr[0].optionsList" :key="index" 
+										 
+										class="lisSty">
+										<view :class="{right:(item.value == ques[bankIndex]) && (ques[bankIndex] == ans[bankIndex]),wrong:(item.value == ques[bankIndex]) && (ques[bankIndex] != ans[bankIndex])}" class="activeTI">{{ ast[index] }}</view>
+										{{ item.content }}
+									</view>
+								</view>
+								<!-- <view v-if="!ques[bankIndex]">
+									<view v-for="(item, index) in bank.jsonStr[0].optionsList" :key="index" @click="click" :data-value="item.value" class="lisSty">
+										<text class="activeTI">{{ ast[index] }}</text>
+										{{ item.content }}
+									</view>
+								</view> -->
+							</template>
+							
 							<view v-if="ques[bankIndex] ">
-								<view v-for="(item, index) in bank" :key="index" 
+								<view v-for="(item, index) in bank.jsonStr" :key="index" 
 									 
 									class="lisSty">
 									<view :class="{right:(item.value == ques[bankIndex]) && (ques[bankIndex] == ans[bankIndex]),wrong:(item.value == ques[bankIndex]) && (ques[bankIndex] != ans[bankIndex])}" class="activeTI">{{ ast[index] }}</view>
@@ -23,7 +42,7 @@
 								</view>
 							</view>
 							<view v-if="!ques[bankIndex]">
-								<view v-for="(item, index) in bank" :key="index" @click="click" :data-value="item.value" class="lisSty">
+								<view v-for="(item, index) in bank.jsonStr" :key="index" @click="click" :data-value="item.value" class="lisSty">
 									<text class="activeTI">{{ ast[index] }}</text>
 									{{ item.label }}
 								</view>
@@ -39,7 +58,7 @@
 						<view class="pad_8 answerInfos">
 							<view class="answerTitle">答案解析</view>
 							<view class="answerContent">
-								建造师执业资格注册有效期一般为3年,有效期满前3个月,持证者应到原注册管理机构办理再次注册手续。在注册有效期内,变更执业单位者,应当及时办理变更手续。
+								<rich-text :nodes="bank.analysisContent"></rich-text>
 							</view>
 						</view>
 					</view>
@@ -62,7 +81,7 @@
 				<view class="popupContent">
 					<scroll-view scroll-y="true" style="height: 506rpx;">
 						<view class="boxSty">
-							<view v-for="(item, index) in 10" :key="index" :data-index="index" @click="changeIndex" :class="{disabled:index>=5}" class="liListSty">{{ index + 1 }}</view>
+							<view v-for="(item, index) in questionList" :key="index" :data-index="index" @click="changeIndex" :class="{disabled:index>=5}" class="liListSty">{{ index + 1 }}</view>
 						</view>
 					</scroll-view>
 				</view>
@@ -80,7 +99,9 @@
 export default {
 	data() {
 		return {
+			id:'',
 			current:0,
+			questionList:[],
 			ast: ['A', 'B', 'C', 'D',],
 			ans:[1,2,3,4,1],
 			ques:['','','','',''],
@@ -180,7 +201,24 @@ export default {
 			]
 		};
 	},
+	onLoad(option){
+		this.id = option.id;
+		this.goodsQuestionList()
+	},
 	methods: {
+		goodsQuestionList() {
+			this.$api.goodsQuestionList({
+				examId:this.id
+			}).then(res => {
+				console.log(res)
+				res.data.data.forEach(item => {
+					item.jsonStr = JSON.parse(item.jsonStr)
+				})
+				this.questionList = res.data.data;
+				
+				console.log(this.questionList[0])
+			})
+		},
 		openFooterTab() {
 			this.show = true;
 		},

+ 87 - 0
pages2/components/shopping/goodsItem.vue

@@ -0,0 +1,87 @@
+<template>
+	<view style="margin: 20rpx 0;">
+		<view class="title" @click="openChapter(menuItem)">
+		<image src="/static/icon/up1.png" class="icon_up" v-if="down"></image>
+		<image src="/static/icon/down1.png" class="icon_up" v-if="!down"></image>
+		<text style="margin-left: 30rpx;">{{menuItem.name}}</text>
+		</view>
+		<view v-if="!down">
+			<view v-for="(itemM,indexM) in list" >
+				<courseSection  :menuItem="itemM"></courseSection>
+				<u-line v-if="indexM<list.length-1"></u-line>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { mapGetters } from 'vuex';
+import courseSection from '@/pages2/components/course/courseSection.vue';
+export default {
+	name: 'courseChapter',
+	props: {
+		menuItem: {
+			type: Object,
+			default: {}
+		}
+	},
+	components: {
+		courseSection
+	},
+	data() {
+		return {
+			down:true,
+			list:[]
+	
+		};
+	},
+	onLoad() {},
+	created() {
+		
+	},
+	mounted() {
+		
+	},
+	methods: {
+		openChapter(item){
+			this.down = !this.down
+			if(!this.down&&this.list.length==0){
+				this.getSectionList(item.id)
+			}
+		},
+		getSectionList(chapterId) {
+			let self = this
+			this.$api.sectionList({chapterId:chapterId}).then(res => {
+				if(res.data.code==200){
+					for(let i=0;i<res.data.data.length;i++){
+						let item = res.data.data[i]
+						item.id = item.sectionId
+						//判断是否试听
+						item.tryListen = false
+						if(self.goodsAuditionConfigIdList.indexOf(item.id)!==-1){
+							item.tryListen = true
+						}	
+					}
+					self.list = res.data.data
+				}
+			});
+		},
+	},computed: { ...mapGetters(['goodsAuditionConfigIdList']) },
+};
+</script>
+
+<style scoped>
+	.icon_up{
+		width: 24rpx;
+		height: 24rpx;
+	}
+.title{
+	font-size: 24rpx;
+	font-family: PingFang SC;
+	font-weight: bold;
+	color: #666666;
+	white-space:nowrap;
+	overflow:hidden;
+	text-overflow:ellipsis; 
+}
+</style>

+ 54 - 81
pages2/order/confirm_list.vue

@@ -17,7 +17,7 @@
 					<view v-if="detail.templateType!=null">
 						<u-line color="#D6D6DB" />
 						<view v-if="detail.templateType=='class'" style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(0)">
-							<view style="color: #666666;font-size: 24rpx;">{{gradeIndex<0?'报考地区':gradeList[gradeIndex].className}}</view>
+							<view style="color: #666666;font-size: 24rpx;">{{gradeIndex<0?'选择班级':gradeList[gradeIndex].className}}</view>
 							<view><u-icon name="arrow-right" color="#999999" size="28"></u-icon></view>
 						</view>
 						<view v-if="detail.templateType=='apply'"  style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(1)">
@@ -57,8 +57,8 @@
 										<view :class="item.checked?'white-box blue-box':'white-box'" >
 											<view>
 												<view class="blackTxt">{{item.className}}</view>
-												<view class="redTxt">有效期至:{{$method.timestampToTime(item.classEndTime)}}</view>
-												<view class="redTxt">本班还剩{{$method.GetRTime(item.classEndTime)}}天将结束学习</view>
+												<view class="redTxt" v-if="item.classEndTime">有效期至:{{$method.timestampToTime(item.classEndTime)}}</view>
+												<view class="redTxt" v-if="item.classEndTime">本班还剩{{$method.GetRTime(item.classEndTime)}}天将结束学习</view>
 											</view>
 										</view>
 									</view>
@@ -83,7 +83,7 @@
 					<view style="width: 50%;">
 						<view class="topTxt">考期</view>
 						<view>
-							<picker-view  :indicator-style="indicatorStyle" :value="value" @change="bindChange" class="picker-view">
+							<picker-view  :indicator-style="indicatorStyle" :value="value" @change="bindChangeE" class="picker-view">
 								<picker-view-column>
 									<view class="picker-item" v-for="(item,index) in examine" :key="index">{{item.examineName}}</view>
 								</picker-view-column>
@@ -127,70 +127,7 @@ export default {
 			indicatorStyle: `height: 50px;`,
 			showArea:true,
 			show1:false,
-			list:[{
-					name: 'apple',
-					checked: false,
-					disabled: false
-				},
-				{
-					name: 'banner',
-					checked: false,
-					disabled: false
-				},
-				{
-					name: 'orange',
-					checked: false,
-					disabled: false
-				}],
-				list1:[
-					{
-						value: '1',
-						label: '2021年6月'
-					},
-					{
-						value: '2',
-						label: '2021年7月'
-					}
-				],
-				list1:[
-					{
-						value: '1',
-						label: '2021年6月'
-					},
-					{
-						value: '2',
-						label: '2021年7月'
-					},
-					{
-						value: '3',
-						label: '2021年8月'
-					},
-					{
-						value: '4',
-						label: '2021年9月'
-					}
-				],
-				list2:[
-					{
-						value: '1',
-						label: '广东'
-					},
-					{
-						value: '2',
-						label: '北京'
-					}
-				],
-				list3:[
-					{
-						value: '1',
-						label: '广州'
-					},
-					{
-						value: '2',
-						label: '深圳'
-					}
-				],
-				value1:'',
+			value1:'',
 			show:false,
 			detail:{},
 			gradeList:[],
@@ -198,7 +135,12 @@ export default {
 			cityList:[],
 			pAreaIndex:0,
 			cAreaIndex:0,
-			examine:[]
+			examine:[],
+			eAreaIndex:0,
+			applyObj:{
+				applyAreasJson:null,
+				examDateJson:null
+			}
 		};
 	},
 	onPullDownRefresh(){
@@ -246,20 +188,46 @@ export default {
 		},
 		okPopup(index){
 			if(index==0){
+				if(!this.checkData()){
+					return
+				}
+				this.gradeIndex = this.gradeValue
+				this.show = false
+			}else{
+				let examDate = 
+				this.show1 = false
+			}
+		},
+		checkData(){
+			if(this.detail.templateType=='class'){
 				if(this.gradeValue<0){
 					uni.showModal({
 						title: "提示",
 						content: '请选择班级',
 						showCancel: false
 					})
-					return
+					return false
+				}
+			}
+			else if(this.detail.templateType=='apply'){
+				if(!this.applyObj.applyAreasJson){
+					uni.showModal({
+						title: "提示",
+						content: '请选择报考地区',
+						showCancel: false
+					})
+					return false
+				}
+				if(!this.applyObj.examDateJson){
+					uni.showModal({
+						title: "提示",
+						content: '请选择考期',
+						showCancel: false
+					})
+					return false
 				}
-				this.gradeIndex = this.gradeValue
-				console.log(this.gradeIndex)
-				this.show = false
-			}else{
-				this.show1 = false
 			}
+			return true;
 		},
 		radioGroupChange(e){
 			console.log(e);
@@ -269,16 +237,18 @@ export default {
 			this.$api.goodsGradeList({goodsId:this.id}).then(res => {
 				if(res.data.code==200){
 					self.gradeList = res.data.rows
+					if(self.gradeList.length==0){
+						let item = {
+							className:'系统分班',
+							gradeId:0
+						}
+						self.gradeList.push(item)
+					}
 				}
 			});
 		},
 		goBuy(){
-			if(this.gradeIndex<0){
-				uni.showModal({
-					title: "提示",
-					content: '请选择班级',
-					showCancel: false
-				})
+			if(!this.checkData()){
 				return
 			}
 			this.$navTo.togo('/pages2/order/confirm_pay');
@@ -292,6 +262,9 @@ export default {
 				}
 			});
 		},
+		bindChangeE(e){
+			console.log(e.detail.value)
+		},
 		bindChange(e) {
 			const val = e.detail.value
 			if(this.pAreaIndex!=e.detail.value[0]){

+ 69 - 0
project.config.json

@@ -0,0 +1,69 @@
+{
+  "description": "项目配置文件",
+  "packOptions": {
+    "ignore": []
+  },
+  "setting": {
+    "bundle": false,
+    "userConfirmedBundleSwitch": false,
+    "urlCheck": true,
+    "scopeDataCheck": false,
+    "coverView": true,
+    "es6": true,
+    "postcss": true,
+    "compileHotReLoad": false,
+    "lazyloadPlaceholderEnable": false,
+    "preloadBackgroundData": false,
+    "minified": true,
+    "autoAudits": false,
+    "newFeature": false,
+    "uglifyFileName": false,
+    "uploadWithSourceMap": true,
+    "useIsolateContext": true,
+    "nodeModules": false,
+    "enhance": true,
+    "useMultiFrameRuntime": true,
+    "useApiHook": true,
+    "useApiHostProcess": true,
+    "showShadowRootInWxmlPanel": true,
+    "packNpmManually": false,
+    "enableEngineNative": false,
+    "packNpmRelationList": [],
+    "minifyWXSS": true,
+    "showES6CompileOption": false,
+    "minifyWXML": true
+  },
+  "compileType": "miniprogram",
+  "libVersion": "2.17.0",
+  "appid": "wxfde43fb55c186822",
+  "projectname": "miniprogram-1",
+  "debugOptions": {
+    "hidedInDevtools": []
+  },
+  "scripts": {},
+  "staticServerOptions": {
+    "baseURL": "",
+    "servePath": ""
+  },
+  "isGameTourist": false,
+  "condition": {
+    "search": {
+      "list": []
+    },
+    "conversation": {
+      "list": []
+    },
+    "game": {
+      "list": []
+    },
+    "plugin": {
+      "list": []
+    },
+    "gamePlugin": {
+      "list": []
+    },
+    "miniprogram": {
+      "list": []
+    }
+  }
+}