|
@@ -47,19 +47,64 @@
|
|
|
</view>
|
|
|
<view class="title-list">
|
|
|
<view class="content">
|
|
|
- <view class="list" v-for="(item1,index) in outline">
|
|
|
- <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/questionBank">
|
|
|
- <view v-if="index1 == 0" class="btn">做题</view>
|
|
|
- <view v-if="index1 == 1" class="btn">继续</view>
|
|
|
- <view v-if="index1 == 2" class="btn">重做</view>
|
|
|
- </navigator>
|
|
|
+ <view class="list" v-for="(item1,index1) in bankList" :key="index1">
|
|
|
+ <template v-if="item1.type==1">
|
|
|
+ <view class="moduleItem" @click="clickModule(item1.majorId,index1)">
|
|
|
+ <view class="courseName">{{item1.name}}</view>
|
|
|
+ <view>
|
|
|
+ <image src="/static/icon/up.png" class="icon_up" v-if="!item1.showList"></image>
|
|
|
+ <image src="/static/icon/down.png" class="icon_up" v-if="item1.showList"></image>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
|
|
|
- </view>
|
|
|
+ <template v-if="item1.showList">
|
|
|
+ <view v-for="(item2,index2) in item1.list" :key="index2" >
|
|
|
+ <view class="section" @click="changeItem(index1,item2.chapterExamId,item1.type)">
|
|
|
+ <image src="/static/icon/up1.png" class="icon_up" v-if="!item2.showList"></image>
|
|
|
+ <image src="/static/icon/down1.png" class="icon_up" v-if="item2.showList"></image>
|
|
|
+ {{item2.name}}
|
|
|
+ </view>
|
|
|
+ <view v-if="item2.showList">
|
|
|
+ <view class="article" :class="{active:index3 == 0}" v-for="(article,index3) in item2.list" :key="index3">
|
|
|
+ <view class="flex_auto">{{article.examName}}</view>
|
|
|
+ <navigator :url="'/pages2/bank/questionBank?id='+article.examId+'&goodsid='+goodsData.goodsId">
|
|
|
+ <view class="btn">做题</view>
|
|
|
+ </navigator>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <u-line></u-line>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="item1.type ==2">
|
|
|
+ <view class="section" @click="changeItem(index1,item1.majorId,item1.type)">
|
|
|
+ <image src="/static/icon/up1.png" class="icon_up" v-if="!item1.showList"></image>
|
|
|
+ <image src="/static/icon/down1.png" class="icon_up" v-if="item1.showList"></image>
|
|
|
+ {{item1.name}}
|
|
|
+ </view>
|
|
|
+ <view v-if="item1.showList" >
|
|
|
+ <view class="article" :class="{active:index2 == 0}" :key="index3" v-for="(article,index2) in item1.list">
|
|
|
+ <view class="flex_auto">{{item1.name}}</view>
|
|
|
+ <navigator :url="'/pages2/bank/questionBank?id='+article.majorId+'&goodsid='+goodsData.goodsId">
|
|
|
+ <view class="btn">做题</view>
|
|
|
+ </navigator>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="item1.type ==3">
|
|
|
+ <view class="article active" >
|
|
|
+ <view class="flex_auto">{{item1.name}}</view>
|
|
|
+ <navigator :url="'/pages2/bank/questionBank?id='+item1.majorId+'&goodsid='+goodsData.goodsId">
|
|
|
+ <view class="btn">做题</view>
|
|
|
+ </navigator>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -71,19 +116,9 @@ import { mapGetters } from 'vuex';
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- outline:[{
|
|
|
- list:[1,2,3],
|
|
|
- showList:false,
|
|
|
- },{
|
|
|
- list:[1,2,3],
|
|
|
- showList:false,
|
|
|
- },{
|
|
|
- list:[1,2,3],
|
|
|
- showList:false,
|
|
|
- },{
|
|
|
- list:[1,2,3],
|
|
|
- showList:false,
|
|
|
- }]
|
|
|
+ goodsData:{},
|
|
|
+ bankList:[],
|
|
|
+ id:'',
|
|
|
};
|
|
|
},
|
|
|
onUnload() {
|
|
@@ -91,20 +126,82 @@ export default {
|
|
|
},
|
|
|
computed: { ...mapGetters(['userInfo']) },
|
|
|
onLoad(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;
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
- changeItem(e) {
|
|
|
- let index = e.currentTarget.dataset.index
|
|
|
- this.outline.forEach((arrItem,i) => {
|
|
|
- if(i == index) {
|
|
|
- arrItem.showList = !arrItem.showList
|
|
|
- }
|
|
|
+ goodsBankList() {
|
|
|
+ this.$api.goodsBankList({
|
|
|
+ goodsId:this.id
|
|
|
+ }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ this.bankList = res.data.data;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ clickModule(id,index) {
|
|
|
+
|
|
|
+
|
|
|
+ if(this.bankList[index].list) {
|
|
|
+ this.$set(this.bankList[index],'showList',!this.bankList[index].showList)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.$api.goodsChapterList({
|
|
|
+ moduleExamId:id
|
|
|
+ }).then(res => {
|
|
|
+ this.$set(this.bankList[index],'showList',true)
|
|
|
+ this.$set(this.bankList[index],'list',res.data.data)
|
|
|
+
|
|
|
})
|
|
|
+ },
|
|
|
+ changeItem(index1,id,type) {
|
|
|
+
|
|
|
+ if(type == 1) {
|
|
|
+ if(this.bankList[index1].list[index2].list) {
|
|
|
+ this.$set(this.bankList[index1].list[index2],'showList',!this.bankList[index1].list[index2].showList)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.$api.goodsExamList({
|
|
|
+ chapterExamId:id
|
|
|
+ }).then(res => {
|
|
|
+
|
|
|
+ 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) {
|
|
|
+ this.$set(this.bankList[index1],'showList',!this.bankList[index1].showList)
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.$api.goodsExamList({
|
|
|
+ chapterExamId:id
|
|
|
+ }).then(res => {
|
|
|
+
|
|
|
+ this.$set(this.bankList[index1],'showList',true)
|
|
|
+ this.$set(this.bankList[index1],'list',res.data.data)
|
|
|
+
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -215,6 +312,30 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ .courseName{
|
|
|
+ white-space:nowrap;
|
|
|
+ overflow:hidden;
|
|
|
+ text-overflow:ellipsis;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ .moduleItem{
|
|
|
+ height: 80rpx;
|
|
|
+ color: #333333;
|
|
|
+ font-size: 32rpx;
|
|
|
+ line-height: 80rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon_up{
|
|
|
+ width: 32rpx;
|
|
|
+ height: 32rpx;
|
|
|
+ }
|
|
|
+
|
|
|
.title-list {
|
|
|
background: #EAEEF1;
|
|
|
padding:16rpx 16rpx 124rpx;
|
|
@@ -227,46 +348,40 @@ export default {
|
|
|
border-radius: 16rpx;
|
|
|
padding:10rpx 16rpx;
|
|
|
|
|
|
- .section {
|
|
|
- padding:30rpx 0;
|
|
|
- border-bottom: 1rpx solid #EEEEEE;
|
|
|
- font-size: 24rpx;
|
|
|
- color: #666666;
|
|
|
-
|
|
|
- &::before {
|
|
|
- content:'^';
|
|
|
- display: inline-block;
|
|
|
- margin-right:20rpx;
|
|
|
- }
|
|
|
+ .module {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #333333;
|
|
|
|
|
|
- &.up {
|
|
|
- border:0;
|
|
|
- &::before {
|
|
|
- transform: rotate(180deg);
|
|
|
- }
|
|
|
+ .icon {
|
|
|
+ margin-right:10rpx;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ .section {
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-family: PingFang SC;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #333333;
|
|
|
+ white-space:nowrap;
|
|
|
+ overflow:hidden;
|
|
|
+ text-overflow:ellipsis;
|
|
|
+ margin: 20rpx 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
.article {
|
|
|
height:80rpx;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- margin-left:88rpx;
|
|
|
+ margin-left:72rpx;
|
|
|
font-size: 24rpx;
|
|
|
color: #666666;
|
|
|
border-bottom: 1rpx solid #EEEEEE;
|
|
|
+ display: flex;
|
|
|
|
|
|
- .btn {
|
|
|
- width: 96rpx;
|
|
|
- height: 48rpx;
|
|
|
- line-height: 48rpx;
|
|
|
- text-align: center;
|
|
|
- color:#fff;
|
|
|
- font-size: 30rpx;
|
|
|
- border-radius:24rpx;
|
|
|
- background: #007AFF;
|
|
|
- margin-left:36rpx;
|
|
|
- border-radius: 24rpx;
|
|
|
+ .flex_auto{
|
|
|
+ flex:1;
|
|
|
}
|
|
|
|
|
|
&:nth-last-of-type(1) {
|
|
@@ -275,6 +390,20 @@ export default {
|
|
|
|
|
|
&.active {
|
|
|
color:#007AFF;
|
|
|
+
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ width: 96rpx;
|
|
|
+ height: 48rpx;
|
|
|
+ line-height: 48rpx;
|
|
|
+ text-align: center;
|
|
|
+ color:#fff;
|
|
|
+ font-size: 30rpx;
|
|
|
+ border-radius:24rpx;
|
|
|
+ background: #007AFF;
|
|
|
+ margin-left:36rpx;
|
|
|
+ border-radius: 24rpx;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|