luohailiang 2 gadi atpakaļ
vecāks
revīzija
46c8e94943

BIN
src/assets/images/geo.png


BIN
src/assets/images/stu.webp


BIN
src/assets/images/under.webp


+ 1 - 1
src/pages/jsd/wdkc/mszy/detail.vue

@@ -62,7 +62,7 @@
                     <div class="d-line"></div>
                     <div class="w-100px h-100px">
                       <qrcode-vue
-                        :value="chapter_info.ttz_video_file"
+                        :value="chapter_info.tmz_video_url.split('|')[0]"
                         size="100"
                         level="H"
                       />

+ 315 - 0
src/pages/manage/dsjtj/txwx.detail.vue

@@ -0,0 +1,315 @@
+<script setup lang="ts">
+import * as echarts from 'echarts'
+import _request from '../utils/request';
+import bar from './txwxComponents/bar2.vue'
+import under from '~/assets/images/under.webp'
+
+
+const formInline = ref({
+  xueke: '',
+  nianji: '',
+  jigou: '',
+  ziyuan:'',
+})
+
+const xuekeOptions = ref("");
+const nianjiOptions = ref("");
+const jigouOptions = ref("");
+const ziyuanOptions = [
+  {
+    value: '1',
+    label: '推荐课程',
+  },
+  {
+    value: '2',
+    label: '名师在线',
+  },
+  {
+    value: '3',
+    label: '直播课程',
+  },
+  {
+    value: '4',
+    label: '家庭教育',
+  },
+  {
+    value: '5',
+    label: '特色课程',
+  },
+  {
+    value: '6',
+    label: '作业辅导',
+  },
+]
+
+
+const allInfo = ref("");
+const echartsData = ref("");
+
+const timeRefusr = ref('');
+
+onMounted(() => {
+  initXueKeOption();
+  initNianJiOption();
+  initJiGouOption();
+  initData();
+})
+
+
+//初始化数据
+const initData = () => {
+  timeRefusr.value = new Date().getTime();
+  let transData = {
+    xueke_id: formInline.value.xueke,
+    grade_id: formInline.value.nianji,
+    dept_id: formInline.value.jigou,
+    resourse_id:formInline.value.ziyuan,
+  };
+   _request({
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded',
+    },
+    baseURL: window.GLOBAL_CONFIG.api,
+    url: "/openapi/chart/tx_detail_data.php",
+    data: transData,
+  })
+    .then(res => {
+      if (res.code == "1") {
+        allInfo.value = res.data.allInfo;
+        echartsData.value = res.data.echartsData;
+        initEchartsData();
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+
+//初始化图表
+const chartRef = ref("");
+const initEchartsData = () => {
+  echarts.init(chartRef.value).setOption({
+    tooltip: {
+      trigger: 'item',
+    },
+    legend: {
+      top: '1%',
+      right: '5%',
+      textStyle: {
+        color: '#ccc',
+      },
+    },
+    grid: {
+      top: '8%',
+      bottom: '20%',
+    },
+    color: ['#7D7CFC', '#0293FD'],
+    dataset: {
+      source: echartsData.value.dataset_source,
+    },
+    xAxis: {
+      type: 'category',
+      axisLine: {
+        show: true,
+
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    yAxis: {
+      axisLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [{ type: 'bar', barWidth: 50 }],
+  })
+}
+
+
+
+
+//学科列表
+const initXueKeOption = () => {
+  _request({
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded',
+    },
+    baseURL: window.GLOBAL_CONFIG.api,
+    url: "/txwx/jcxxgl_zyflgl_xk/index",
+    data: {},
+  })
+    .then(res => {
+      if (res.code == "1") {
+        let responseData = res.data.page_data;
+        let tempArr = [];
+        responseData.forEach(item => {
+          tempArr.push({
+            value: item.tjzx_id,
+            label: item.tjzx_xkmc,
+          })
+        });
+        xuekeOptions.value=tempArr
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+//年级列表
+const initNianJiOption = () => {
+  _request({
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded',
+    },
+    baseURL: window.GLOBAL_CONFIG.api,
+    url: "/txwx/jcxxgl_zyflgl_nj/index",
+    data: {},
+  })
+    .then(res => {
+      if (res.code == "1") {
+        let responseData = res.data.page_data;
+        let tempArr = [];
+        responseData.forEach(item => {
+          tempArr.push({
+            value: item.tjzn_id,
+            label: item.tjzn_njmc,
+          })
+        });
+        nianjiOptions.value=tempArr
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+//机构列表(学校)
+const initJiGouOption = () => {
+  _request({
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded',
+    },
+    baseURL: window.GLOBAL_CONFIG.api,
+    url: "/school/main/index",
+    data: {},
+  })
+    .then(res => {
+      if (res.code == "1") {
+        let responseData = res.data.page_data;
+        let tempArr = [];
+        responseData.forEach(item => {
+          tempArr.push({
+            value: item.sm_id,
+            label: item.sm_name,
+          })
+        });
+        jigouOptions.value = tempArr;
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+//选择切换
+const handleChange = () => {
+  initData();
+}
+//清除选项
+const clearBtn = () => {
+  formInline.value = {
+    xueke: '',
+    nianji: '',
+    jigou: '',
+    ziyuan: '',
+  };
+  initData();
+}
+
+
+const router = useRouter()
+function back() {
+  router.replace({ name: 'home' })
+}
+</script>
+
+<template>
+  <div class="border border-hex-0A337E bg-block p-3 w-full h-full">
+    <div class="flex justify-between">
+      <div>
+        <div>用户登录趋势</div>
+        <div class="mt-2 mb-4">
+          <img class="h-7px" :src="under">
+        </div>
+      </div>
+      <el-button color="transparent" @click="back">
+        返回
+      </el-button>
+    </div>
+        <el-form :inline="true" :model="formInline" class="vars">
+        <el-form-item label="学科筛选:">
+          <el-select v-model="formInline.xueke" placeholder="全部" @change="handleChange">
+            <el-option v-for="item in xuekeOptions" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="年级筛选:">
+          <el-select v-model="formInline.nianji" placeholder="全部" @change="handleChange">
+            <el-option v-for="item in nianjiOptions" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="机构筛选:">
+          <el-select v-model="formInline.jigou" placeholder="全部" @change="handleChange">
+            <el-option v-for="item in jigouOptions" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="资源筛选:">
+          <el-select v-model="formInline.ziyuan" placeholder="全部" @change="handleChange">
+            <el-option v-for="item in ziyuanOptions" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button plain @click="clearBtn">清空选项</el-button>
+        </el-form-item>
+      </el-form>
+      
+    
+
+    <div>
+      <span class="text-18px">{{ allInfo.textTitle }}</span>
+      <span class="text-30px">{{allInfo.textNumber}}w</span>
+    </div>
+    <div class="w-full h-full">
+      <!-- <bar v-if="echartsData" :echarts-data="echartsData" :key="timeRefusr"  /> -->
+      <div ref="chartRef" class="w-full h-full " />
+    </div>
+  </div>
+</template>
+
+<style scoped>
+.vars {
+  --el-fill-color-blank: #0A41BF37;
+
+}
+
+.el-select-dropdown__item {
+  color: #dde1e3;
+}
+</style>
+
+<style>
+body {
+  --el-bg-color-overlay: #062c8ddd;
+  --el-fill-color-light: #02133a97;
+
+}
+
+</style>

+ 257 - 0
src/pages/manage/dsjtj/txwx.index.vue

@@ -0,0 +1,257 @@
+<script setup lang="ts">
+import _request from '../utils/request';
+
+import bar from './txwxComponents/bar.vue'
+import lines from './txwxComponents/lines.vue'
+
+import geo from '~/assets/images/geo.png'
+import under from '~/assets/images/under.webp'
+import stu from '~/assets/images/stu.webp'
+
+
+
+// const b1data = $ref([
+//   { title: '教师数量', num: '4366', unit: '人' },
+//   { title: '学生数量', num: '111', unit: '人' },
+//   { title: '学校数量', num: '111', unit: '人' },
+//   { title: '名师总数', num: '11', unit: '所' },
+//   { title: '上传资源总数', num: '111', unit: '人' },
+//   { title: '教师直播次数', num: '111', unit: '次' },
+// ])
+
+// const b3data = $ref([
+//   ['桐乡市第十中学', '第一名', '2345人', '1.5W'],
+//   ['桐乡市第十中学', '第一名', '2345人', '1.5W'],
+//   ['桐乡市第十中学', '第一名', '2345人', '1.5W'],
+//   ['桐乡市第十中学桐乡市第十中学桐乡市第十中学桐乡市第十中学', '第一名', '2345人', '1.5W'],
+//   ['桐乡市第十中学', '第一名', '2345人', '1.5W'],
+// ])
+
+// const b4data = $ref([
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+// ])
+
+// const b7data = $ref([
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+// ])
+// const b8data = $ref([
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+//   ['张大大', '桐乡市第十中学', '第一名', '1.5W'],
+// ])
+
+
+const b1data = ref("");
+const b3data = ref("");
+const b4data = ref("");
+const b7data = ref("");
+const b8data = ref("");
+const barEchartsData = ref('');
+const lineEchartsData = ref('');
+const initData =  () => {
+   _request({
+    headers: {
+      'Content-Type': 'application/x-www-form-urlencoded',
+    },
+    baseURL:window.GLOBAL_CONFIG.api,
+    url: "/openapi/chart/index_data.php",
+    data:{},
+  })
+    .then(res => {
+      if (res.code == '1') {
+        b1data.value = res.data.b1data;
+        b3data.value = res.data.b3data;
+        b4data.value = res.data.b4data;
+        b7data.value = res.data.b7data;
+        b8data.value = res.data.b8data;
+        barEchartsData.value = res.data.barEchartsData;
+        lineEchartsData.value = res.data.lineEchartsData;
+
+      }
+    })
+  .catch(error=>{console.log(error)})
+}
+ initData();
+
+
+const router = useRouter()
+function go(name: string) {
+  router.push({ name })
+}
+
+
+</script>
+
+<template>
+  <div class="flex flex-col justify-between space-y-4">
+    <div class="h-520px flex justify-between">
+      <div
+        class="border border-hex-0A337E bg-block px-27px py-44px gap-x-33px gap-y-37px h-full grid grid-rows-3 grid-cols-2"
+        style="width:40%;">
+        <div v-for="({ title, num, unit }) in b1data" :key="title"
+          class="b1-item flex justify-center space-y-3 items-center flex-col">
+          <div class="text-30px font-bold text-hex-6ff">
+            {{ num }}<span class="text-20px">{{ unit }}</span>
+          </div>
+          <div class="text-18px font-bold opacity-80">
+            {{ title }}
+          </div>
+        </div>
+      </div>
+      <div class="py-2 px-2 flex_center">
+        <img :src="geo" alt="">
+      </div>
+
+      <div class="w-560px h-full flex flex-col justify-between">
+        <div class="border border-hex-0A337E bg-block p-3 w-full">
+          <div>学校平均积分全市排名</div>
+          <div class="mt-2 mb-4">
+            <img class="h-7px" :src="under">
+          </div>
+          <div class="b-table">
+            <div v-for="(row, i) in b3data" :key="i" class="b-table-row">
+              <div v-for="(col, j) in row" :key="j" class="b-table-cell" :style="`width:${j === 0 ? '55%' : '15%'}`">
+                {{ col }}
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="border border-hex-0A337E bg-block p-3 w-full">
+          <div>学生积分排名</div>
+          <div class="mt-2 mb-4">
+            <img class="h-7px" :src="under">
+          </div>
+          <div class="b-table">
+            <div v-for="(row, i) in b4data" :key="i" class="b-table-row">
+              <div v-for="(col, j) in row" :key="j" class="b-table-cell" :style="`width:${j === 1 ? '55%' : '15%'}`">
+                {{ col }}
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="h-430px flex justify-between">
+      <div class="border border-hex-0A337E bg-block p-3 h-full" style="width:33%;">
+        <div class="flex">
+          <div>
+            <div>课程浏览点赞统计</div>
+            <div class="mt-2 mb-4">
+              <img class="h-7px" :src="under">
+            </div>
+          </div>
+          <div class="b-btn flex_center ml-8" @click="go('txwx-detail')">
+            点击查看详情
+          </div>
+        </div>
+
+        <div class="w-full h-400px">
+          <bar v-if="barEchartsData" :echarts-data="barEchartsData" />
+        </div>
+      </div>
+      <div class="border border-hex-0A337E bg-block p-3 h-full" style="width:33%;">
+        <div>用户登录趋势</div>
+        <div class="mt-2 mb-4">
+          <img class="h-7px" :src="under">
+        </div>
+        <div class="w-full h-400px">
+          <lines v-if="lineEchartsData" :echarts-data="lineEchartsData" />
+        </div>
+      </div>
+      <div class=" h-full flex flex-col justify-between" style="width:33%;">
+        <div class="border border-hex-0A337E bg-block p-3 w-full h-207px">
+          <div>教师积分排名</div>
+          <div class="mt-2 mb-4">
+            <img class="h-7px" :src="under">
+          </div>
+          <div class="b-table">
+            <div v-for="(row, i) in b7data" :key="i" class="b-table-row">
+              <div v-for="(col, j) in row" :key="j" class="b-table-cell" :style="`width:${j === 1 ? '55%' : '15%'}`">
+                {{ col }}
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="border border-hex-0A337E bg-block p-3 w-full h-207px">
+          <div>今日访问用户</div>
+          <div class="mt-2 mb-4">
+            <img class="h-7px" :src="under">
+          </div>
+
+          <div>
+            <div v-for="(row, i) in b8data" :key="i"
+              class="flex items-center h-42px justify-start text-14px px-18px text-20px">
+              <img :src="stu" alt="" class="h-20px mr-4">
+              <div class="w-100px tracking-1px">
+                {{ row[0] }}
+              </div>
+              <div class="cell flex-auto tracking-1px max-w-400px">
+                {{ row[1] }}
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<style>
+.b-btn {
+  width: 137px;
+  height: 32px;
+  background: #0d5bf7;
+  border: 1px solid #1bced7;
+  border-radius: 12px;
+  font-size: 14px;
+  cursor: pointer;
+}
+
+.b1-item {
+  width: 180px;
+  height: 114px;
+  background: linear-gradient(90deg, rgba(0, 224, 219, 0.40) 3%, rgba(79, 248, 247, 0.09) 25%, rgba(102, 255, 255, 0.00) 52%, rgba(78, 248, 247, 0.10) 75%, rgba(0, 224, 219, 0.42));
+  border: 1px solid;
+  border-image: linear-gradient(270deg, #00d2d5, rgba(0, 210, 213, 0.18) 13%, rgba(0, 210, 213, 0.00) 50%, rgba(0, 210, 213, 0.20) 90%, rgba(0, 210, 213, 0.75)) 1 1;
+}
+
+.b-table .b-table-row {
+  width: 100%;
+  height: 42px;
+  display: flex;
+  justify-content: start;
+  align-items: center;
+  padding: 0 20px;
+  font-size: 14px;
+  letter-spacing: .5px;
+
+}
+
+.b-table .b-table-row:nth-child(2n+1) {
+  background: rgba(35, 160, 226, 0.20);
+  border-radius: 24px;
+}
+
+.b-table .b-table-row:nth-child(2n) {
+  background: transparent
+}
+
+.b-table .b-table-cell {
+  padding: 0 5px;
+  /* 超过一行省略号 */
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.cell {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+</style>

+ 65 - 0
src/pages/manage/dsjtj/txwxComponents/bar.vue

@@ -0,0 +1,65 @@
+<script setup lang="ts">
+import * as echarts from 'echarts'
+const props = defineProps<{
+  echartsData: object
+}>()
+
+const chartRef = ref()
+onMounted(() => {
+  echarts.init(chartRef.value).setOption({
+    tooltip: {
+      trigger: 'item',
+    },
+    legend: {
+      top: '1%',
+      right: '5%',
+      textStyle: {
+        color: '#ccc',
+      },
+    },
+    grid: {
+      top: '8%',
+      bottom: '80px',
+    },
+    color: ['#7D7CFC', '#0293FD'],
+    dataset: {
+      source: props.echartsData.dataset_source,
+    },
+    xAxis: {
+      type: 'category',
+      axisLine: {
+        show: true,
+
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    yAxis: {
+      axisLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [{ type: 'bar' }, { type: 'bar' }],
+
+  })
+})
+</script>
+
+<template>
+  <div ref="chartRef" class="w-full h-full " />
+</template>

+ 67 - 0
src/pages/manage/dsjtj/txwxComponents/bar2.vue

@@ -0,0 +1,67 @@
+<script setup lang="ts">
+import * as echarts from 'echarts'
+
+const props = defineProps<{
+  echartsData: Array
+}>()
+
+const chartRef = ref()
+onMounted(() => {
+  echarts.init(chartRef.value).setOption({
+    tooltip: {
+      trigger: 'item',
+    },
+    legend: {
+      top: '1%',
+      right: '5%',
+      textStyle: {
+        color: '#ccc',
+      },
+    },
+    grid: {
+      top: '8%',
+      bottom: '80px',
+    },
+    color: ['#7D7CFC', '#0293FD'],
+    dataset: {
+      source: props.echartsData.dataset_source,
+    },
+    xAxis: {
+      type: 'category',
+      axisLine: {
+        show: true,
+
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    yAxis: {
+      axisLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    // Declare several bar series, each will be mapped
+    // to a column of dataset.source by default.
+    series: [{ type: 'bar', barWidth: 50 }],
+
+  })
+})
+
+</script>
+
+<template>
+  <div ref="chartRef" class="w-full h-full " />
+</template>

+ 83 - 0
src/pages/manage/dsjtj/txwxComponents/lines.vue

@@ -0,0 +1,83 @@
+<script setup lang="ts">
+import * as echarts from 'echarts'
+
+const props = defineProps<{
+  echartsData: object
+}>()
+
+const chartRef = ref()
+onMounted(() => {
+  echarts.init(chartRef.value).setOption({
+    // title: {
+    //   text: '结对帮扶情况',
+    //   textStyle: {
+    //     color: '#fff',
+    //   },
+    // },
+    tooltip: {
+      trigger: 'item',
+    },
+    legend: {
+      top: '1%',
+      right: '5%',
+      textStyle: {
+        color: '#ccc',
+      },
+    },
+    grid: {
+      top: '8%',
+      bottom: '80px',
+    },
+    color: ['#3E74FF', '#DC4F4E', '#3DB87B'],
+    // dataset: {
+    //   source: [
+    //     ['date', '全景课堂', '资源包', '自由结对'],
+    //     ['12-11', 15, 8, 11],
+    //     ['12-11', 32, 18, 23],
+    //     ['12-11', 45, 24, 33],
+    //     ['12-11', 101, 67, 86],
+    //     ['12-11', 122, 83, 64],
+    //     ['12-11', 162, 95, 60],
+    //     ['12-11', 201, 122, 147],
+    //   ],
+    // },
+    xAxis: {
+      type: 'category',
+      // axisLabel: { interval: 0, rotate: -20 },
+      axisLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+      boundaryGap: false,
+      data: props.echartsData.xAxis_data,
+    },
+    yAxis: {
+      type: 'value',
+      // interval: 10,
+      axisLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          type: 'dashed',
+          color: '#ccc',
+        },
+      },
+    },
+    series: props.echartsData.series,
+
+  })
+})
+</script>
+
+<template>
+  <div ref="chartRef" class="w-full h-full " />
+</template>

+ 2 - 6
src/pages/mszx/detail.vue

@@ -69,11 +69,8 @@
                     <div class="d-line"></div>
                     <div class="w-100px h-100px">
                       <qrcode-vue
-
-                        :value="chapter_info.ttz_video_file"
-                        size="100"
-                        level="H"
-                      />
+                      :value="chapter_info.tmz_video_url.split('|')[0]"
+                      size="100" level="H" />
                     </div>
                     <h3 class="ml-15px text-12px text-black">手机扫码分享</h3>
                   </div>
@@ -440,7 +437,6 @@ function jfData() {
   jf_list().then((res) => {
     if (res.code == "1") {
       listData = res.data.page_data;
-   
     }
   });
 }

+ 1 - 2
src/pages/tjkc/detail.vue

@@ -69,7 +69,7 @@
                     <div class="d-line"></div>
                     <div class="w-100px h-100px">
                       <qrcode-vue
-                        :value="chapter_info.ttz_video_file"
+                        :value="chapter_info.tmz_video_url.split('|')[0]"
                         size="100"
                         level="H"
                       />
@@ -440,7 +440,6 @@ function jfData() {
   jf_list().then((res) => {
     if (res.code == "1") {
       listData = res.data.page_data;
-    
     }
   });
 }

+ 0 - 1
src/router/index.ts

@@ -38,7 +38,6 @@ if (user.value?.user_role_id_ext_now && String(user.value.user_role_id_ext_now)
     if (data.one_info.tur_role_menu) {
       hasRoleData = data.one_info.tur_role_menu.split(",");
     }
-
     init1();
   }
 } else if (isAdmin) {

+ 25 - 0
src/router/routes/manage/dsjtj.ts

@@ -0,0 +1,25 @@
+// import type { RouteRecordRaw } from 'vue-router'
+import type { RouteRecordRawWithMeta } from '../../routes'
+
+export default <RouteRecordRawWithMeta>{
+  path: '/manage/dsjtj',
+  component: () => import('~/layout/app/index.vue'),
+  name: 'dsjtj',
+  meta: {
+    hidden: false,
+    sort: 7,
+    title: '大数据统计',
+  },
+  redirect: { name: 'dsjtj_index' },
+  children: [{
+    path: '',
+    component: () => import('@/pages/manage/dsjtj/txwx.index.vue'),
+    name: 'dsjtj_index',
+    meta: {
+      hidden: true,
+      sort: 0,
+      title: '大数据统计',
+      breadcrumb: true,
+    },
+  }],
+}