148 lines
3.0 KiB
Vue
148 lines
3.0 KiB
Vue
<template>
|
|
<!-- 外层循环 -->
|
|
<view>
|
|
<view v-for="(item,index) in transformedData" :key="index">
|
|
<!-- 剑18循环 -->
|
|
<view>
|
|
<view class="view_bages">
|
|
<view>{{item.examName}}</view>
|
|
</view>
|
|
</view>
|
|
<!-- 渲染Text -->
|
|
<view class="substance">
|
|
<text v-for="text in textArr" :key="text" @click="textClick(item,text)" :class="{active: item.active == text}">{{text}}</text>
|
|
</view>
|
|
<!-- 内容 -->
|
|
<view class="compose_bodys">
|
|
<view v-for="text in textArr" :key="text" class="zz">
|
|
<view class="compose_body" v-for="Task in taskArr" :key="Task" v-if="item.active == text">
|
|
<view class="compose_left">
|
|
<view>{{Task}}</view>
|
|
<view>
|
|
<text class="fickle">{{item[text][Task].caption}}</text>
|
|
<text class="fickle2">{{item[text][Task].themeCaption}}</text>
|
|
</view>
|
|
</view>
|
|
|
|
<view>
|
|
<u-checkbox @change="checkboxChange(item[text][Task].id)" v-model="subsets">{{item.name}}</u-checkbox>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
transformedData: [],
|
|
// 复选框
|
|
subsets:[],
|
|
subsetArr:[],
|
|
textArr:['test1','test2','test3','test4'],
|
|
taskArr:['task1','task2'],
|
|
// 接口参数
|
|
comsapi: {
|
|
"key": "",
|
|
"mode": "home",
|
|
"exam": "",
|
|
"caption": "0",
|
|
"themeCaption": "",
|
|
"type": "",
|
|
"isStudy": 0,
|
|
"isEval": 0
|
|
},
|
|
}
|
|
},
|
|
created() {
|
|
this.getCompose()
|
|
},
|
|
methods: {
|
|
//写作接口
|
|
getCompose() {
|
|
this.$u.post('https://api.admin-v2.langsi.online/admin-api/writing/all/search', this.comsapi).then(res => {
|
|
let arr = res.data
|
|
for(let a of arr) {
|
|
a.active = 'test1'
|
|
}
|
|
this.transformedData =arr
|
|
})
|
|
},
|
|
textClick(item, text) {
|
|
item.active = text
|
|
this.$forceUpdate()
|
|
},
|
|
checkboxChange(e){
|
|
this.subsetArr.push(e)
|
|
console.log((this.subsetArr))
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.view_bages {
|
|
font-size: 40rpx;
|
|
font-weight: 400;
|
|
color: #2E4975;
|
|
}
|
|
.substance {
|
|
margin: 20rpx 0;
|
|
text {
|
|
padding: 10rpx 30rpx;
|
|
margin-right: 20rpx;
|
|
background: #FFFFFF;
|
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
}
|
|
}
|
|
.compose_bodys{
|
|
margin: 30rpx 0;
|
|
}
|
|
.compose_body {
|
|
display: flex;
|
|
background: #FFFFFF;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin: 0rpx 20rpx;
|
|
border-bottom: 2rpx solid #F2F2F2;
|
|
}
|
|
.compose_body:last-child {
|
|
border: none;
|
|
}
|
|
.zz{
|
|
background: #ffff;
|
|
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
|
}
|
|
.compose_left {
|
|
display: flex;
|
|
padding: 24rpx 0;
|
|
margin: 0 24rpx;
|
|
}
|
|
.fickle {
|
|
padding: 4rpx 22rpx;
|
|
font-size: 20rpx;
|
|
font-weight: 500;
|
|
color: #2D7CE6;
|
|
margin-left: 12rpx;
|
|
background: #E1EEFF;
|
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
}
|
|
.fickle2 {
|
|
padding: 4rpx 32rpx;
|
|
font-size: 20rpx;
|
|
font-weight: 500;
|
|
color: #FB9734;
|
|
margin-left: 12rpx;
|
|
background: #FFEBD7;
|
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
}
|
|
.active {
|
|
color: #fff;
|
|
background: #007AFF !important;
|
|
}
|
|
</style>
|