Forráskód Böngészése

feat: 完善列表,添加tab

wenshuai 3 éve
szülő
commit
3161fd6c92

+ 1 - 1
.eslintrc.js

@@ -111,7 +111,7 @@ module.exports = {
     }],
     'space-before-blocks': [2, 'always'], // 强制代码块之前出现空格
     'template-curly-spacing': 'off',
-    'space-before-function-paren': [2, 'never'], //关闭函数圆括号之前有一个空格,这个会和prettier冲突,暂未找到解决方法
+    // 'space-before-function-paren': [2, 'never'], //关闭函数圆括号之前有一个空格,这个会和prettier冲突,暂未找到解决方法
     'require-await': 'off',
     '@typescript-eslint/ban-ts-ignore': 'off',
     '@typescript-eslint/explicit-function-return-type': 'off',

+ 10 - 7
src/api/index.ts

@@ -1,8 +1,8 @@
 import { config } from './../../config'
-import axios, { AxiosResponse } from 'axios'
+import axios from 'axios'
 import { headerData } from './reqHeaders'
 
-const axiosIns = axios.create({
+const $axios = axios.create({
   baseURL: config.baseUrl,
   timeout: 60000
 })
@@ -12,7 +12,7 @@ console.log(config)
 
 
 // 添加请求拦截器
-axiosIns.interceptors.request.use(
+$axios.interceptors.request.use(
   (config: any) => {
     Object.assign(config.headers, headerData)
     return config
@@ -23,10 +23,13 @@ axiosIns.interceptors.request.use(
 )
 
 // 添加响应拦截器
-axiosIns.interceptors.response.use(
-  (response: AxiosResponse) => {
-    console.log(response)
+$axios.interceptors.response.use(
+  (response) => {
+    // console.log(response, 78)
+    if (response.data.isSuccess === 'T') {
+      return response.data.body
+    }
   }
 )
 
-export default axiosIns
+export default $axios

+ 7 - 0
src/axios.d.ts

@@ -0,0 +1,7 @@
+
+
+// declare module 'axios' {
+//   interface AxiosInstance {
+//     (config: AxiosRequestConfig): Promise<any>
+//   }
+// }

+ 50 - 0
src/components/CommonList.vue

@@ -0,0 +1,50 @@
+<template>
+  <div>
+    <div v-for="(item,index) in data.dataList" :key="index" class="card">
+      <div v-for="obj in demension.selectDemension.viewList" :key="obj.value" class="item">
+        <p>{{obj.name}}:</p>
+        <p>{{item[obj.value]}}</p>
+      </div>
+    </div>
+  </div>
+  21312
+  {{data}}
+</template>
+
+<script lang="ts" setup>
+  // import { ViewListInter } from '@/js-pages/types'
+  // import { inject, PropType } from 'vue'
+
+  import { inject,InjectionKey } from 'vue'
+
+  const data = inject('state')
+  const demension = inject('demension')
+
+  console.log(data)
+  console.log(demension)
+
+  // defineProps({
+  //   data:{
+  //     type:[],
+  //     default() { [] }
+  //   },
+  //   pageList:{
+  //     type:Array as PropType<ViewListInter[]>,
+  //     default() { [] }
+  //   }
+  // })
+
+</script>
+
+<style lang="scss" scoped>
+.card{
+  width: 100%;
+  background: #fff;
+  padding: 15px;
+  margin-bottom: 15px;
+  .item{
+    display: flex;
+    align-items: center;
+  }
+}
+</style>

+ 0 - 43
src/components/List.vue

@@ -1,43 +0,0 @@
-<template>
-  <div>
-    1232131
-  </div>
-</template>
-
-<script lang="ts" setup>
-
-
-  import {ViewListInter,DemensionPagesInter,DemensionPagesListInter} from '@/js-pages/types'
-  import axiosIns from '@/api'
-  import pagesArr from '@/js-pages'
-  import {onMounted} from 'vue'
-
-  const newArr = []  as ViewListInter[]
-
-  const demensionArr = (arr: any[] ):DemensionPagesInter[]  => {
-    return arr.reduce((total, item:any) => {
-      return item.list ? demensionArr(item.list) : newArr.push(item)
-    },[])
-  }
-  demensionArr(pagesArr)
-  console.log(newArr)
-
-  // onMounted(async() => {
-  //   console.log(321)
-
-  //   const params = {
-  //     dimensionCode:'open_announcement',
-  //     pageNum:1,
-  //     pageSize:10,
-  //     deleted:0,
-  //     entityType:2,
-  //     entityName:'宁德时代新能源科技股份有限公司',
-  //     entityId:'76d4d8ae15b063986d88abe92a5efe83'
-  //   }
-  //   const res = axiosIns.get('lawyer-workbench/risk/dimension/page',{params})
-  //   console.log(res)
-  // })
-</script>
-
-<style lang="less" scoped>
-</style>

+ 28 - 0
src/components/vant/CommonTab.vue

@@ -0,0 +1,28 @@
+<template>
+
+  <div>
+    213123
+    <van-tabs v-model:active="state.active">
+      <van-tab title="开庭公告" name="act1" title-style="font-weight:bold">
+      </van-tab>
+      <van-tab title="历史开庭公告" name="act2" title-style="font-weight:bold">
+      </van-tab>
+    </van-tabs>
+
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import {reactive,ref,onMounted} from 'vue'
+  import { useRoute, useRouter } from 'vue-router'
+  const router = useRouter()
+  const route = useRoute()
+  const state = reactive({
+    active:''
+  })
+  onMounted(() => {
+  })
+</script>
+
+<style lang="less" scoped>
+</style>

+ 58 - 0
src/hooks/routerMatch.ts

@@ -0,0 +1,58 @@
+import { DemensionPagesInter, DemensionPagesListInter } from '@/js-pages/types'
+import pagesArr from '@/js-pages'
+import { useRoute } from 'vue-router'
+import $axios from '@/api'
+import { reactive } from 'vue'
+
+const routerMatch = () => {
+
+  //遍历获取所有维度列表
+  const allDemensionArr = [] as DemensionPagesListInter[]
+  const demensionArr = (arr: any[]): DemensionPagesInter[] => {
+    return arr.reduce((total, item: any) => item.list ? demensionArr(item.list) : allDemensionArr.push(item), [])
+  }
+  demensionArr(pagesArr)
+
+  //根据路由名称匹配对应维度
+  const route = useRoute()
+  const selectDemension = allDemensionArr.find(item => route.path === `/${item.routing}`)!
+
+  const state = reactive({
+    pageNum: 1,
+    pageSize: 10,
+    deleted: 0,
+    entityType: 2,
+    entityName: '宁德时代新能源科技股份有限公司',
+    entityId: '76d4d8ae15b063986d88abe92a5efe83',
+    totalNum: 0,
+    totalPage: 0
+  })
+
+
+  const getList = async (extraParams?: {}) => {
+    //发起请求
+    const { pageNum, pageSize, deleted, entityType, entityName, entityId } = state
+    const params = {
+      dimensionCode: selectDemension?.code,
+      pageNum,
+      pageSize,
+      deleted,
+      entityType,
+      entityName,
+      entityId,
+      ...extraParams
+    }
+    const res = await $axios.get('lawyer-workbench/risk/dimension/page', { params }) as { totalNum: number, totalPage: number }
+    state.totalNum = res.totalNum
+    state.totalPage = res.totalPage
+    return res
+
+  }
+
+  return {
+    selectDemension,
+    state,
+    getList
+  }
+}
+export default routerMatch

+ 1 - 0
src/js-pages/company-detail/FaLvFengXian/index.ts

@@ -6,6 +6,7 @@ export const FaLvFengXian: DemensionPagesInter = {
       code: 'open_announcement',
       routing: 'KaiTingGongGao',
       title: '开庭公告',
+      hasDeleted: true,
       viewList: [
         {
           name: '案号',

+ 26 - 0
src/js-pages/company-detail/JiBenXinXi/SheBaoRenShu.vue

@@ -0,0 +1,26 @@
+<!--
+ * @Author: 文帅
+ * @Date: 2022-03-10 09:35:39
+ * @LastEditTime: 2022-03-10 09:35:42
+ * @LastEditors: 文帅
+ * @Description:
+-->
+<template>
+  <div>
+    社保人数
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import {reactive,ref,onMounted} from 'vue'
+  import { useRoute, useRouter } from 'vue-router'
+  const router = useRouter()
+  const route = useRoute()
+  const state = reactive({
+  })
+  onMounted(() => {
+  })
+</script>
+<!--
+<style lang="less" scoped>
+</style> -->

+ 13 - 0
src/js-pages/company-detail/JiBenXinXi/index.ts

@@ -0,0 +1,13 @@
+import { DemensionPagesInter } from './../../types'
+import SheBaoRenShuVue from './SheBaoRenShu.vue'
+export const JiBenXinXi: DemensionPagesInter = {
+  projectName: '基本信息',
+  list: [
+    {
+      code: 'open_announcement',
+      routing: 'SheBaoRenShu',
+      title: '社保人数',
+      customRender: SheBaoRenShuVue
+    }
+  ]
+}

+ 2 - 2
src/js-pages/company-detail/index.ts

@@ -1,11 +1,11 @@
+import { JiBenXinXi } from './JiBenXinXi/index'
 import { TotalDemensionInter } from './../types'
 import { FaLvFengXian } from './FaLvFengXian/index'
-
 const companyDetail: TotalDemensionInter = {
   companyName: '企业详情',
   list: []
 }
 
-companyDetail.list.push(FaLvFengXian)
+companyDetail.list.push(FaLvFengXian, JiBenXinXi)
 
 export default companyDetail

+ 3 - 1
src/js-pages/types.ts

@@ -13,7 +13,9 @@ export interface DemensionPagesListInter {
   code: string,
   routing: string,
   title: string,
-  viewList: ViewListInter[]
+  viewList?: ViewListInter[],
+  tabs?: 'deleted' | [],  //是否有tabs,历史列表deleted,普通tab传数组
+  customRender?: any
 }
 
 export interface ViewListInter {

+ 3 - 1
src/plugins/vant.ts

@@ -1,8 +1,10 @@
-import { Button, Row } from 'vant'
+import { Button, Row, Tab, Tabs } from 'vant'
 import { App } from 'vue'
 
 export const useVant = (app: App<Element>) => {
   app.use(Button)
   app.use(Row)
+  app.use(Tab)
+  app.use(Tabs)
 
 }

+ 9 - 9
src/router/index.ts

@@ -1,15 +1,15 @@
 import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
 const routes: Array<RouteRecordRaw> = [
   {
-    path: '/',
-    name: '123',
-    component: () => import('@/views/demension/list.vue')
-  },
-  {
-    path: '/demension',
+    path: '/:routerName*',
     name: 'demension',
     component: () => import('@/views/demension/list.vue')
   },
+  // {
+  //   path: '/demension',
+  //   name: 'demension',
+  //   component: () => import('@/views/demension/list.vue')
+  // },
   {
     path: '/det',
     name: 'detail',
@@ -24,9 +24,9 @@ const router = createRouter({
 
 
 router.beforeEach((to, from, next) => {
-  if (to.path === '/') {
-    next({ path: '/demension' })
-  }
+  // if (!to.path.includes('Det')) {
+  // next({ path: '/demension' })
+  // }
   next()
   // console.log(to)
 

+ 22 - 4
src/views/demension/list.vue

@@ -1,14 +1,32 @@
 <template>
-  <div>
-    <ListVue />
-    21312321
+  <div class="page">
+    <!-- <List /> -->
+    <!-- fdsfsd -->
+    <!-- <CommonTab></CommonTab> -->
+    <CommonList></CommonList>
   </div>
 </template>
 
 <script lang="ts" setup>
-  import ListVue from '@/components/List.vue'
+  import CommonList from '@/components/CommonList.vue'
+  // import CommonTab from '@/components/vant/CommonTab.vue'
+  import routerMatch from '@/hooks/routerMatch'
+  import { onMounted, provide, reactive, ref,InjectionKey } from 'vue'
+
+
+  const data = ref({})
+  const demension = routerMatch()
+  provide('demension',demension)
+  provide('state',  data)
+
+  onMounted(async () => {
+    data.value = await demension.getList()
+  })
 
 </script>
 
 <style lang="scss" scoped>
+.page{
+background: rgb(241, 242, 244);
+}
 </style>