|
@@ -6,23 +6,15 @@
|
|
|
<div
|
|
|
v-for="(item, index) in tabList"
|
|
|
:class="{
|
|
|
- 'overflow-hidden': !item.isOpen,
|
|
|
- 'left-item_select': item.isSelect,
|
|
|
+ 'overflow-y-visible': tabValue[0] == index,
|
|
|
+ 'left-item_select': tabValue[0] == index,
|
|
|
}"
|
|
|
:key="index"
|
|
|
class="left-item"
|
|
|
>
|
|
|
<div class="w-full h-full pl25 relative">
|
|
|
<img class="" :src="item.icon" />
|
|
|
- <div
|
|
|
- @click="
|
|
|
- () => {
|
|
|
- item.isOpen = !item.isOpen;
|
|
|
- item.isSelect = !item.isSelect;
|
|
|
- }
|
|
|
- "
|
|
|
- class="title"
|
|
|
- >
|
|
|
+ <div @click="selectParent(item, index)" class="title">
|
|
|
{{ item.text }}
|
|
|
</div>
|
|
|
<img
|
|
@@ -42,8 +34,8 @@
|
|
|
:key="_index"
|
|
|
v-for="(_item, _index) in item.children"
|
|
|
class="left-item-open cursor-pointer"
|
|
|
- @click="selectChildren(item.children, _index)"
|
|
|
- :class="{ 'left-item-open_select': _item.isSelect }"
|
|
|
+ @click="selectChildren(_item, _index)"
|
|
|
+ :class="{ 'left-item-open_select': tabValue[1] == _index }"
|
|
|
>
|
|
|
{{ _item.text }}
|
|
|
<!-- xx -->
|
|
@@ -72,8 +64,6 @@ import { defineComponent, reactive, toRefs } from "vue";
|
|
|
import sysIcon from "@/assets/img/home/sys_icon.png";
|
|
|
import xcIcon from "@/assets/img/home/xc_icon.png";
|
|
|
import mtcIcon from "@/assets/img/home/mtc_icon.png";
|
|
|
-import bottomArrow from "@/assets/img/home/bottom_arrow.png";
|
|
|
-import topArrow from "@/assets/img/home/bottom_arrow.png";
|
|
|
export default defineComponent({
|
|
|
setup() {
|
|
|
const state = reactive({
|
|
@@ -92,18 +82,30 @@ export default defineComponent({
|
|
|
isSelect: false,
|
|
|
children: [
|
|
|
{
|
|
|
- text: "1.练习技巧",
|
|
|
+ text: "练习技巧",
|
|
|
isSelect: false,
|
|
|
- path: "/home/practiseSelect?subject=1",
|
|
|
+ path: "/home/practiseSelect",
|
|
|
+ query: {
|
|
|
+ subject: 1,
|
|
|
+ liceBus: "1",
|
|
|
+ liceTruck: "1",
|
|
|
+ liceCar: "1",
|
|
|
+ },
|
|
|
},
|
|
|
// {
|
|
|
// text: "2.套餐技巧",
|
|
|
// isSelect: false,
|
|
|
// },
|
|
|
{
|
|
|
- text: "3.模拟考试",
|
|
|
+ text: "模拟考试",
|
|
|
isSelect: false,
|
|
|
path: "/examInstructions",
|
|
|
+ query: {
|
|
|
+ subject: 1,
|
|
|
+ liceBus: "1",
|
|
|
+ liceTruck: "1",
|
|
|
+ liceCar: "1",
|
|
|
+ },
|
|
|
},
|
|
|
],
|
|
|
isOpen: false,
|
|
@@ -114,18 +116,30 @@ export default defineComponent({
|
|
|
icon: xcIcon,
|
|
|
children: [
|
|
|
{
|
|
|
- text: "1.练习技巧",
|
|
|
+ text: "练习技巧",
|
|
|
isSelect: false,
|
|
|
- path: "/home/practiseSelect?subject=4",
|
|
|
+ path: "/home/practiseSelect",
|
|
|
+ query: {
|
|
|
+ subject: 4,
|
|
|
+ liceBus: "1",
|
|
|
+ liceTruck: "1",
|
|
|
+ liceCar: "1",
|
|
|
+ },
|
|
|
},
|
|
|
// {
|
|
|
// text: "2.套餐技巧",
|
|
|
// isSelect: false,
|
|
|
// },
|
|
|
{
|
|
|
- text: "3.模拟考试",
|
|
|
+ text: "模拟考试",
|
|
|
isSelect: false,
|
|
|
path: "/examInstructions",
|
|
|
+ query: {
|
|
|
+ subject: 4,
|
|
|
+ liceBus: "1",
|
|
|
+ liceTruck: "1",
|
|
|
+ liceCar: "1",
|
|
|
+ },
|
|
|
},
|
|
|
],
|
|
|
isOpen: false,
|
|
@@ -137,16 +151,55 @@ export default defineComponent({
|
|
|
icon: mtcIcon,
|
|
|
children: [
|
|
|
{
|
|
|
- text: "1.练习技巧",
|
|
|
+ text: "练习技巧",
|
|
|
+ path: "/home/practiseSelect",
|
|
|
isSelect: false,
|
|
|
+ query: {
|
|
|
+ subject: 1,
|
|
|
+ liceMoto: "1",
|
|
|
+ },
|
|
|
},
|
|
|
// {
|
|
|
// text: "2.套餐技巧",
|
|
|
// isSelect: false,
|
|
|
// },
|
|
|
{
|
|
|
- text: "3.模拟考试",
|
|
|
+ text: "模拟考试",
|
|
|
isSelect: false,
|
|
|
+ path: "/examInstructions",
|
|
|
+ query: {
|
|
|
+ subject: 1,
|
|
|
+ liceMoto: "1",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ isOpen: false,
|
|
|
+ isSelect: false,
|
|
|
+ path: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "摩托车科目四",
|
|
|
+ icon: mtcIcon,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ text: "练习技巧",
|
|
|
+ path: "/home/practiseSelect",
|
|
|
+ isSelect: false,
|
|
|
+ query: {
|
|
|
+ subject: 4,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // text: "2.套餐技巧",
|
|
|
+ // isSelect: false,
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ text: "模拟考试",
|
|
|
+ isSelect: false,
|
|
|
+ path: "/examInstructions",
|
|
|
+ query: {
|
|
|
+ subject: 4,
|
|
|
+ },
|
|
|
},
|
|
|
],
|
|
|
isOpen: false,
|
|
@@ -154,30 +207,58 @@ export default defineComponent({
|
|
|
path: "",
|
|
|
},
|
|
|
],
|
|
|
+ tabValue: [-1, -1],
|
|
|
});
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
+ selectParent(
|
|
|
+ item: {
|
|
|
+ text: string;
|
|
|
+ isSelect: boolean;
|
|
|
+ isOpen: boolean;
|
|
|
+ path: string;
|
|
|
+ },
|
|
|
+ selectIndex: number
|
|
|
+ ) {
|
|
|
+ this.tabValue[0] == -1
|
|
|
+ ? (this.tabValue[0] = selectIndex)
|
|
|
+ : (this.tabValue[0] = -1);
|
|
|
+ this.tabValue[1] = -1;
|
|
|
+ item.isSelect = !item.isSelect;
|
|
|
+ item.isOpen = !item.isOpen;
|
|
|
+ if (item.path) {
|
|
|
+ this.$router.push(item);
|
|
|
+ }
|
|
|
+ },
|
|
|
selectChildren(
|
|
|
item: {
|
|
|
text: string;
|
|
|
isSelect: boolean;
|
|
|
- path?: undefined;
|
|
|
- }[],
|
|
|
+ isOpen: boolean;
|
|
|
+ path: string;
|
|
|
+ },
|
|
|
selectIndex: number
|
|
|
) {
|
|
|
- item.forEach((_item) => {
|
|
|
- _item.isSelect = false;
|
|
|
- });
|
|
|
- item[selectIndex].isSelect = true;
|
|
|
+ this.tabValue[1] == -1
|
|
|
+ ? (this.tabValue[1] = selectIndex)
|
|
|
+ : (this.tabValue[1] = -1);
|
|
|
+ item.isSelect = !item.isSelect;
|
|
|
+ item.isOpen = !item.isOpen;
|
|
|
+ if (item.path) {
|
|
|
+ this.$router.push(item);
|
|
|
+ }
|
|
|
},
|
|
|
},
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+.overflow-y-visible {
|
|
|
+ overflow-y: visible !important;
|
|
|
+}
|
|
|
.bg-component-pink {
|
|
|
background: #fffdf2;
|
|
|
}
|
|
@@ -205,9 +286,10 @@ export default defineComponent({
|
|
|
width: 256px;
|
|
|
line-height: 60px;
|
|
|
height: 60px;
|
|
|
-
|
|
|
+ overflow-y: hidden;
|
|
|
display: inline-block;
|
|
|
text-align: left;
|
|
|
+
|
|
|
// display: flex;
|
|
|
// justify-content: flex-start;
|
|
|
// align-content: center;
|