{"version":3,"file":"list.494834d0.mjs","sources":["../../../../assets/paper/practice_everyday.svg","../../../../assets/paper/practice_chapter.svg","../../../../assets/paper/practice_emigrated.svg","../../../../assets/paper/mock_exam.svg","../../../../components/paper/data.vue","../../../../pages/paper/list.vue"],"sourcesContent":["export default \"__VITE_ASSET__3f8cccb4__\"","export default \"__VITE_ASSET__03eb44e3__\"","export default \"__VITE_ASSET__aae78020__\"","export default \"__VITE_ASSET__4e70f45d__\"","<template>\n<div class=\"paper_list\" v-if=\"list && list.length > 0\">\n  <div v-for=\"(item, index) in list\" :key=\"index\" class=\"practice_item_wrapper\">\n    <div class=\"practice_item\">\n      <img class=\"left_icon\" v-if=\"tabs === 1\" src=\"@/assets/paper/practice_everyday.svg\" alt=\"\">\n      <img class=\"left_icon\" v-if=\"tabs === 2\" src=\"@/assets/paper/practice_chapter.svg\" alt=\"\">\n      <img class=\"left_icon\" v-if=\"tabs === 3\" src=\"@/assets/paper/practice_emigrated.svg\" alt=\"\">\n      <img class=\"left_icon\" v-if=\"tabs === 4\" src=\"@/assets/paper/mock_exam.svg\" alt=\"\">\n      <div>\n        <p class=\"name mgb10 font16\">{{tabs < 4 ? item.practiceName : item.paperName}}</p>\n        <p class=\"c_999 mgb10\">\n          <span class=\"mgr20\" v-if=\"tabs < 4\">共{{item.questionCount}}题</span>\n          <span class=\"mgr20\" v-else>共{{item.totalScore}}分</span>\n          <span>共{{item.peopleNum}}人做过</span>\n        </p>\n        <p>\n          <span class=\"current_price font20\" v-if=\"item.price > 0\">\n            <span class=\"font12\">¥</span>{{item.price}}\n          </span>\n          <span class=\"free font20\" v-else>免费</span>\n          <span class=\"line_price font12 c_999\" v-if=\"item.price < item.linePrice\">¥{{item.linePrice}}</span>\n        </p>\n      </div>\n      <el-button class=\"handle_btn\" type=\"primary\" size=\"default\" @click=\"handleView(item)\">前往查看</el-button>\n    </div>\n  </div>\n</div>\n</template>\n\n<script setup>\nimport {useUserStore} from \"../../stores/user\";\nimport {setStore} from \"../../utils/storage\";\nimport {onMounted, reactive, computed} from \"vue\";\n\nconst route = useRoute();\nconst router = useRouter();\nconst store = useUserStore()\nconst {getEnumList} = store\nconst token = computed(()=>store.token)\nconst props = defineProps({\n  list:{\n    type:Array,\n    default:[]\n  },\n  tabs:{\n    type:[String, Number],\n    default:''\n  }\n})\nconst opts = reactive({\n  userPracticeStatusEnum:{}\n})\nconst handleView = (row) => {\n  let url = '/practice/view'\n  if(props.tabs === 4) {\n    url = '/paper/view'\n  }\n  router.push({\n    path: url,\n    query:{\n      id: row.id\n    }\n  })\n}\nonMounted(()=>{\n  getEnumList('UserPracticeStatusEnum','obj').then(res=>{\n    opts.userPracticeStatusEnum = res;\n  })\n})\n</script>\n\n<style scoped lang=\"scss\">\n.paper_list{\n  display: flex;\n  flex-wrap: wrap;\n  margin-left: -10px;\n  margin-right: -10px;\n}\n.practice_item_wrapper {\n  margin-bottom: 20px;\n  padding: 0 10px;\n  width: 50%;\n}\n.practice_item_wrapper:nth-last-child(-n + 2) {\n  margin-bottom: 0;\n}\n.practice_item {\n  position: relative;\n  padding: 20px;\n  display: flex;\n  align-items: flex-start;\n  column-gap: 12px;\n  background: #ffffff;\n  border: 1px solid #EBEEF5;\n  &:hover {\n    box-shadow: 0 3px 18px rgba(0, 0, 0, 0.2);\n    transform: translateY(-2px);\n    transition: all 0.3s;\n  }\n  .name {\n    width: 430px;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    white-space: nowrap;\n  }\n  .current_price {\n    color: #F61818;\n  }\n  .free {\n    color: #58B85C;\n  }\n  .line_price {\n    text-decoration: line-through;\n    margin-left: 5px;\n  }\n  .handle_btn {\n    position: absolute;\n    right: 20px;\n    bottom: 20px;\n  }\n}\n</style>\n","<template>\n  <NuxtLayout>\n    <div class=\"app_container\">\n      <div class=\"paper_content\">\n        <div class=\"paper_header_content mgt20\">\n          <div class=\"paper_row\">\n            <span class=\"left_title mgr10\">试卷类型：</span>\n            <div class=\"search_type_list bg_box\">\n              <span\n                class=\"search_type_item\"\n                :class=\"{ active: activeItem === navItem.code}\"\n                :key=\"index\"\n                v-for=\"(navItem, index) in opts.PracticeTypeEnum\"\n                @click=\"changeTab(navItem)\"\n              >{{ navItem.desc }}</span>\n            </div>\n          </div>\n          <div class=\"bg_box search_tag_list\" v-if=\"ctrl.showCate\">\n            <category-list\n              v-for=\"(category, index) in opts.categoryList\"\n              :key=\"category.active\"\n              @change=\"handleChange\"\n              :index=\"index\"\n              :menu=\"category\"\n            ></category-list>\n          </div>\n        </div>\n        <div class=\"fliter_row\">\n          <div class=\"left_wrapper\">\n            <span\n              class=\"search_item\"\n              @click=\"handleChangeOrderBy(item.code)\"\n              :class=\"{\n                active: map.examOrderByType === item.code\n              }\"\n              :key=\"index\"\n              v-for=\"(item, index) in opts.ExamOrderByTypeEnum\"\n              >{{ item.desc }}</span>\n            <span class=\"order_by_price1\" :class=\"{active1: map.orderByPrice === true}\" @click=\"handleOrderByPrice(true)\"></span>\n            <span class=\"order_by_price2\" :class=\"{active2: map.orderByPrice === false}\" @click=\"handleOrderByPrice(false)\"></span>\n          </div>\n          <div>\n            <el-checkbox size=\"default\" v-model=\"opts.isFree\" @change=\"handleChangeCharge(opts.isFree ? 0 : '')\">免费</el-checkbox>\n          </div>\n        </div>\n        <div class=\"mgb20\" v-loading=\"ctrl.tableLoading\">\n          <paper-data\n            :list=\"opts.tableList\"\n            :tabs=\"activeItem\"\n          ></paper-data>\n          <!--<paper-list\n            v-if=\"activeItem === 4\"\n            :visible=\"opts.tableList.length > 0\"\n            :componentInfo=\"{ data: opts.tableList }\"\n          ></paper-list>\n          <paper-practice\n            v-else\n            :list=\"opts.tableList\"\n            :categoryId=\"map.categoryId\"\n            :tabs=\"activeItem\"\n            :category-list=\"opts.categoryList\"\n          ></paper-practice>-->\n        </div>\n        <div class=\"page_list\" ref=\"content\" v-show=\"page.totalPage > 1\">\n          <el-pagination\n            background\n            layout=\"prev, pager, next,jumper\"\n            :total=\"page.totalCount\"\n            v-model:currentPage=\"page.pageCurrent\"\n            :page-size=\"page.pageSize\"\n            @current-change=\"handleChangeCurrent\"\n          >\n          </el-pagination>\n        </div>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n<script setup>\nimport { useUserStore } from \"../../stores/user\";\nimport { authPaperConfigPage, paperConfigPage } from \"@/api/paper\";\nimport {categoryLists, enumList} from \"../../api/system\";\nimport {computed, nextTick, onMounted, watch} from \"vue\";\nimport {getStore, setStore} from \"@/utils/storage\";\nimport cookie from \"@/utils/cookies\";\nimport {errorQuestionMoveLastErrorQuestionRecord, practiceAuthPage, practicePage} from \"../../api/paper\";\n\nconst route = useRoute();\nconst router = useRouter();\nlet cookieData = cookie.getShop()\nuseHead({\n  title: computed(() => `试卷中心-${cookieData.shopName}`),\n  meta: [\n    {\n      hid: \"keywords\",\n      name: \"keywords\",\n      content: \"试卷中心\",\n    },\n    {\n      hid: \"description\",\n      name: \"description\",\n      content: \"试卷中心\",\n    },\n  ],\n});\nconst store = useUserStore();\nconst { getToken, getEnumList } = store;\nconst header = ref(null);\nconst content = ref(null);\nconst activeItem = ref(1);\nconst map = reactive({\n  categoryId: '',\n  chargeType: \"\", //0:免费、1:收费\n  examOrderByType: 1\n});\nconst token = computed(() => {\n  return getToken();\n});\nconst opts = reactive({\n  errorNum: 0,\n  PracticeTypeEnum:[\n    { code: 1, desc: '每日一练' },\n    { code: 2, desc: '章节练习' },\n    { code: 3, desc: '闯关练习' },\n    { code: 4, desc: '模拟考试' }\n  ],\n  tableList: [],\n  categoryList: [],\n  currentTwoCategory: {},\n  infoTimer: null,\n  style: {\n    height: \"525px\",\n  },\n  lastCategory: [],\n  ChargeTypeEnum: [],\n  ExamOrderByTypeEnum: [],\n  categoryChild: {},\n  isFree: false\n});\nconst ctrl = reactive({\n  tableLoading: false,\n  showCate: true\n});\nconst page = reactive({\n  pageCurrent: 1,\n  pageSize: 20,\n  totalCount: 0,\n  totalPage: 1,\n});\nconst handleOrderByPrice = (bool) => {\n  map.examOrderByType = 4\n  map.orderByPrice = bool\n  if (activeItem.value === 4) {\n    getTableList()\n  } else {\n    getPracticeList()\n  }\n}\nconst handleChangeCurrent = (current) => {\n  page.pageCurrent = current\n  if (activeItem.value === 4) {\n    getTableList()\n  } else {\n    getPracticeList()\n  }\n  document.querySelector('#app').scrollTop = 0\n}\nconst getPracticeList = () =>{\n  ctrl.tableLoading = true;\n  if (token.value) {\n    practiceAuthPage({\n      pageCurrent: page.pageCurrent,\n      pageSize: page.pageSize,\n      practiceType:activeItem.value,\n      ...map,\n    }).then((res) => {\n      ctrl.tableLoading = false;\n      opts.tableList = res.list || [];\n      page.pageCurrent = res.pageCurrent;\n      page.totalCount = res.totalCount;\n      page.totalPage = res.totalPage;\n      if(activeItem.value === 2){\n        opts.tableList.forEach(el=>{\n          el.show = el.show === true || el.show === false?el.show:true\n        })\n      }\n      if (opts.infoTimer) {\n        clearInterval(opts.infoTimer);\n        opts.infoTimer = null;\n      }\n    }).catch(() => {\n      ctrl.tableLoading = false;\n      //opts.errorNum++;\n      //if (!opts.infoTimer) {\n      //  opts.infoTimer = setInterval(getPracticeList, 3000);\n      //}\n      //if (opts.errorNum > 5) {\n      //  if (opts.infoTimer) {\n      //    clearInterval(opts.infoTimer);\n      //    opts.infoTimer = null;\n      //  }\n      //}\n    });\n  }else{\n    practicePage({\n      pageCurrent: page.pageCurrent,\n      pageSize: page.pageSize,\n      practiceType:activeItem.value,\n      ...map,\n    }).then((res) => {\n      ctrl.tableLoading = false;\n      opts.tableList = res.list || [];\n      page.pageCurrent = res.pageCurrent;\n      page.totalCount = res.totalCount;\n      page.totalPage = res.totalPage;\n      if(activeItem.value === 2){\n        opts.tableList.forEach(el=>{\n          el.show = el.show === true || el.show === false?el.show:true\n        })\n      }\n      if (opts.infoTimer) {\n        clearInterval(opts.infoTimer);\n        opts.infoTimer = null;\n      }\n    }).catch(() => {\n      ctrl.tableLoading = false;\n      //opts.errorNum++;\n      //if (!opts.infoTimer) {\n      //  opts.infoTimer = setInterval(getPracticeList, 3000);\n      //}\n      //if (opts.errorNum > 5) {\n      //  if (opts.infoTimer) {\n      //    clearInterval(opts.infoTimer);\n      //    opts.infoTimer = null;\n      //  }\n      //}\n    });\n  }\n}\n\nconst getTableList = () => {\n  ctrl.tableLoading = true;\n  if (token.value) {\n    authPaperConfigPage({\n      pageCurrent: page.pageCurrent,\n      pageSize: page.pageSize,\n      ...map,\n    }).then((res) => {\n      ctrl.tableLoading = false;\n      opts.tableList = res.list || [];\n      page.pageCurrent = res.pageCurrent;\n      page.totalCount = res.totalCount;\n      page.totalPage = res.totalPage;\n      if (opts.infoTimer) {\n        clearInterval(opts.infoTimer);\n        opts.infoTimer = null;\n      }\n    }).catch(() => {\n      ctrl.tableLoading = false;\n      //opts.errorNum++;\n      //if (!opts.infoTimer) {\n      //  opts.infoTimer = setInterval(getTableList, 3000);\n      //}\n      //if (opts.errorNum > 5) {\n      //  if (opts.infoTimer) {\n      //    clearInterval(opts.infoTimer);\n      //    opts.infoTimer = null;\n      //  }\n      //}\n    });\n  } else {\n    paperConfigPage({\n      pageCurrent: page.pageCurrent,\n      pageSize: page.pageSize,\n      ...map,\n    }).then((res) => {\n      ctrl.tableLoading = false;\n      opts.tableList = res.list || [];\n      page.pageCurrent = res.pageCurrent;\n      page.totalCount = res.totalCount;\n      page.totalPage = res.totalPage;\n      if (opts.infoTimer) {\n        clearInterval(opts.infoTimer);\n        opts.infoTimer = null;\n      }\n    }).catch(() => {\n      ctrl.tableLoading = false;\n    });\n  }\n};\nconst getData = (query) => {\n  if (query.practiceType) {\n    activeItem.value = Number(query.practiceType);\n  }\n  if (query.examOrderByType) {\n    map.examOrderByType = Number(query.examOrderByType);\n  }\n\n  if (query.categoryId) {\n    map.categoryId = query.categoryId;\n  } else {\n    map.categoryId = '';\n  }\n\n  if (query.chargeType) {\n    map.chargeType = Number(query.chargeType);\n  }\n\n  page.pageCurrent = 1;\n  if (activeItem.value === 4) {\n    getTableList()\n  } else {\n    getPracticeList()\n  }\n};\nconst handleChangeCharge = (val) => {\n  // 收费状态\n  map.chargeType = val;\n  let query = route.query || {};\n  router.replace({\n    query: Object.assign({ ...query }, { chargeType: val }, () => {}),\n  });\n};\nconst handleChangeOrderBy = (val) => {\n  // 排序\n  map.examOrderByType = val;\n  if(val == 4) {\n    map.orderByPrice = false\n  } else {\n    if(map.orderByPrice === true || map.orderByPrice === false) {\n      delete map.orderByPrice\n    }\n  }\n  let query = route.query || {};\n  router.replace({\n    query: Object.assign({ ...query }, { examOrderByType: val }, () => {}),\n  });\n};\n\n\nconst getCategoryObj = (list, id) => {\n  // 获取分类对象\n  let obj = null;\n  list.forEach((el) => {\n    if (el.id === id) {\n      obj = el;\n    }\n    if (el.childrenList && el.childrenList.length > 0 && !obj) {\n      obj = getCategoryObj(el.childrenList, id);\n    }\n  });\n  return obj || {};\n};\n\nif (route.query.practiceType) {\n  activeItem.value = Number(route.query.practiceType);\n}\nif (route.query.examOrderByType) {\n  map.examOrderByType = Number(route.query.examOrderByType);\n}\nif (route.query.categoryId) {\n  map.categoryId = route.query.categoryId;\n}\nif (route.query.chargeType) {\n  map.chargeType = Number(route.query.chargeType);\n}\n\n\nlet selectCategory = [];\n// 分类查询更换\nconst handleChange = (index, row) => {\n  if(selectCategory[index] !== row.id) {\n    selectCategory[index] = row.id;\n    selectCategory.splice(index+1, selectCategory.length - index+ 1)\n    if(row.childrenList && row.childrenList.length) {\n      ctrl.showCate = false\n      if(opts.categoryList.length > index + 1) {\n        opts.categoryList.length = index + 1;\n      }\n      opts.categoryList.push({\n        active: row.id,\n        all: row.id,\n        list: [{id: row.id, categoryName: '全部'}].concat(row.childrenList)\n      })\n      ctrl.showCate = true\n    } else {\n      opts.categoryList.length = index + 1;\n      selectCategory.length = index + 1;\n    }\n  }\n  let query = Object.assign({ ...(route.query || {}) }, { categoryId: selectCategory[selectCategory.length - 1] || ''})\n  if(!query.categoryId) {\n    delete query.categoryId\n  }\n  router.push({\n    query: query,\n  });\n};\nconst changeTab = (data) => {\n  if(activeItem.value !== data.code) {\n    activeItem.value = data.code\n    page.pageCurrent = 1\n    let query = Object.assign({...(route.query || {})}, {practiceType: activeItem.value})\n    if(!query.categoryId) {\n      delete query.categoryId\n    }\n    router.replace({\n      query\n    })\n  }\n}\nconst { data, pending, error } = await useAsyncData('mockExamPage', () => {\n  return new Promise(async (resolve) => {\n    map.categoryId = route.query.categoryId || ''\n    if(route.query.practiceType){\n      activeItem.value = Number(route.query.practiceType)\n    }\n    // 试卷列表的请求\n    const params = {\n      pageCurrent: page.pageCurrent,\n      pageSize: page.pageSize,\n      ...map,\n    }\n    let requestFn\n    if (activeItem.value === 4) {\n      requestFn = authPaperConfigPage\n    }else{\n      requestFn = practiceAuthPage\n      params.practiceType = activeItem.value\n    }\n    if (!token.value) {\n      if (activeItem.value === 4) {\n        requestFn = paperConfigPage\n      }else{\n        requestFn = practicePage\n        params.practiceType = activeItem.value\n      }\n    }\n    Promise.allSettled([\n      requestFn(params),\n      categoryLists({}),\n      getEnumList(\"ChargeTypeEnum\", \"arr\")\n    ]).then(([paper, categoryList, ChargeTypeEnum]) => {\n      let data = {};\n      if(paper.status === 'fulfilled') {\n        data.paper = paper.value\n      } else {\n        data.paper = {\n          list:[],\n          pageCurrent:1,\n          pageSize:10,\n          totalPage:1,\n          totalCount:0\n        }\n      }\n      if(categoryList.status === 'fulfilled') {\n        data.categoryList = categoryList.value\n      } else {\n        data.categoryList = []\n      }\n      if(ChargeTypeEnum.status=== 'fulfilled'){\n        data.ChargeTypeEnum = ChargeTypeEnum.value\n      }else{\n        data.ChargeTypeEnum = []\n      }\n      data.ExamOrderByTypeEnum = [\n        {\n        desc: '综合',\n        code: 1\n      },{\n        desc: '最新',\n        code: 2\n      },{\n        desc: '按人气',\n        code: 3\n      },{\n        desc: '价格',\n        code: 4\n      }]\n      resolve(data)\n    })\n  })\n},{initialCache:false})\nif (!pending.value && data.value) {\n  const d = data.value\n  opts.ChargeTypeEnum = d.ChargeTypeEnum\n  opts.ExamOrderByTypeEnum = d.ExamOrderByTypeEnum\n  if(d && d.paper) {\n    ctrl.tableLoading = false;\n    opts.tableList = d.paper.list || [];\n    page.pageCurrent = d.paper.pageCurrent;\n    page.totalCount = d.paper.totalCount;\n    page.totalPage = d.paper.totalPage;\n    if(activeItem.value === 2){\n      opts.tableList.forEach(el=>{\n        el.show = true\n      })\n    }\n  }\n  setTimeout(()=>{\n    if(route.query.practiceType){\n      activeItem.value = Number(route.query.practiceType)\n    }\n  },800)\n\n   if(d.categoryList && d.categoryList.length) {\n    if(route.query.categoryId) {\n      let classifyIdObj = {};\n      let key = [];\n      let init = (list, prefixId) => {\n        list.forEach(e => {\n          if (e.id) {\n              let id = prefixId + '_' + e.id\n              key.push(id);\n              classifyIdObj[e.id] = e\n              if(e.childrenList && e.childrenList.length) {\n                return init(e.childrenList, id)\n              }\n          }\n        })\n      }\n      init(d.categoryList, '');\n      let lists = key.filter(e => e.indexOf(route.query.categoryId) > -1);\n      if(lists && lists.length) {\n        lists.sort((a, b) => {\n          return a.length - b.length\n        })\n        let ids = lists[0].split('_');\n        if(ids && ids.length) {\n          opts.categoryList.push({\n            active: ids[1],\n            all: '',\n            list: [{id: '', categoryName: '全部'}].concat(d.categoryList)\n          })\n          ids.forEach((e, index) => {\n            let item = classifyIdObj[e]\n            if(item) {\n              selectCategory.push(e)\n              if(item.childrenList.length) {\n                opts.categoryList.push({\n                  active: ids[index + 1] || e,\n                  all: e,\n                  list: [{id:e, categoryName: '全部'}].concat(item.childrenList)\n                })\n              }\n            }\n          })\n        }\n      }\n    } else {\n      selectCategory = [''];\n      opts.categoryList.push({\n        active: '',\n        all: '',\n        list: [{id: '', categoryName: '全部'}].concat(d.categoryList)\n      })\n    }\n  }\n}\nwatch(()=>route.fullPath,()=>{\n  if(Number(route.query.examOrderByType) !== map.examOrderByType || Number(route.query.chargeType) !== map.chargeType || Number(route.query.practiceType) !== activeItem.value || route.query.categoryId !== map.categoryId ) {\n    getData(route.query);\n  }\n})\nonUnmounted(() => {\n  if (opts.infoTimer) {\n    clearInterval(opts.infoTimer);\n    opts.infoTimer = null;\n  }\n});\n\n</script>\n\n<style scoped lang=\"scss\">\n.paper_content {\n  width: 1200px;\n  margin: auto;\n  background: #f6f8fb;\n  .paper_header_content {\n    padding: 18px 20px 4px 20px;\n    margin-bottom: 15px;\n    background: #fff;\n    border-radius: 5px;\n  }\n}\n\n.app_container {\n  overflow: auto;\n}\n\n.page_list {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.wrong_and_collect {\n  position: absolute;\n  right: 24px;\n  top: 24px;\n}\n\n.search_type_list {\n  // min-height: 50px;\n  display: flex;\n  //align-items: center;\n  //flex-wrap: wrap;\n\n  & + .search_type_list {\n    //margin-top: 10px;\n  }\n}\n\n.border_hr {\n  border: 1px solid #becadb;\n  height: 14px;\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.mgr6{\n  margin-right: 6px;\n}\n\n.bg_box {\n  width: 100%;\n  background-color: #ffffff;\n  //border-radius: 5px;\n  //padding: 5px 10px;\n\n  &:first-child {\n    margin-top: 20px;\n  }\n\n  & + .bg_box {\n    //margin-top: 10px;\n  }\n}\n.fliter_row {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding-right: 10px;\n  margin-bottom: 15px;\n  .left_wrapper {\n    position: relative;\n    background: #fff;\n    border-radius: 40px;\n    padding: 0 16px 0 5px;\n    .search_item {\n      margin: 12px 15px;\n      display: inline-block;\n      cursor: pointer;\n    }\n    .active {\n      color: #2256f6;\n      font-weight: 700;\n    }\n    .order_by_price1 {\n      position: absolute;\n      right: 19px;\n      top: 16px;\n      display: block;\n      width: 0;\n      height: 0;\n      border-bottom: 5px solid #999;\n      border-right: 4px solid transparent;\n      border-left: 4px solid transparent;\n      cursor: pointer;\n    }\n    .active1 {\n      border-bottom-color:#3D7FFF;\n    }\n    .order_by_price2 {\n      position: absolute;\n      right: 19px;\n      bottom: 17px;\n      display: block;\n      width: 0;\n      height: 0;\n      border-top: 5px solid #999;\n      border-right: 4px solid transparent;\n      border-left: 4px solid transparent;\n      cursor: pointer;\n    }\n    .active2 {\n      border-top-color:#3D7FFF;\n    }\n  }\n}\n.search_type_item {\n  font-style: normal;\n  font-weight: normal;\n  font-size: 14px;\n  color: #333333;\n  cursor: pointer;\n  margin-right: 10px;\n  padding: 6px 10px;\n  &.active {\n    color: #2256f6;\n    font-weight: bold;\n    background: rgba(34, 86, 246, 0.05);\n    border-radius: 5px;\n  }\n}\n.paper_row {\n  display: flex;\n  margin-bottom: 14px;\n  .left_title {\n    color: #1a1a1a;\n    height: 30px;\n    line-height: 30px;\n    min-width: 70px;\n    background: #fff;\n  }\n}\n:deep(.el-checkbox__input.is-checked+.el-checkbox__label) {\n  color: #333;\n}\n</style>\n"],"names":["_imports_0","URL","import","meta","url","href","_imports_1","_imports_2","_imports_3","useRoute","router","useRouter","store","useUserStore","getEnumList","computed","token","opts","reactive","userPracticeStatusEnum","onMounted","then","res","row","props","tabs","push","path","query","id","route","cookieData","cookie","getShop","useHead","title","shopName","hid","name","content","getToken","ref","activeItem","map","categoryId","chargeType","examOrderByType","errorNum","PracticeTypeEnum","code","desc","tableList","categoryList","currentTwoCategory","infoTimer","style","height","lastCategory","ChargeTypeEnum","ExamOrderByTypeEnum","categoryChild","isFree","ctrl","tableLoading","showCate","page","pageCurrent","pageSize","totalCount","totalPage","handleOrderByPrice","bool","orderByPrice","value","getTableList","getPracticeList","handleChangeCurrent","current","document","querySelector","scrollTop","practiceAuthPage","practiceType","list","forEach","el","show","clearInterval","catch","practicePage","authPaperConfigPage","paperConfigPage","Number","selectCategory","handleChange","index","splice","length","childrenList","active","all","categoryName","concat","Object","assign","data","pending","error","__temp","__restore","_withAsyncContext","useAsyncData","Promise","async","resolve","params","requestFn","allSettled","categoryLists","paper","status","initialCache","d","setTimeout","classifyIdObj","key","init","prefixId","e","lists","filter","indexOf","sort","a","b","ids","split","item","watch","fullPath","onUnmounted","replace","val"],"mappings":"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"}