Przeglądaj źródła

feat: 增加维度

Satsiki 2 lat temu
rodzic
commit
dcda1ebc9c

+ 45 - 2
src/components/vant/CommonMenu.vue

@@ -4,13 +4,31 @@
 
     <van-dropdown-menu active-color="#1989fa">
       <van-dropdown-item
-        v-for="(item,index) in store.selectDemension.menuList"
+        v-for="(item,index) in store.selectDemension.menuList?.slice(0,store.selectDemension.menuList?.length === 4 ? 4 : 3)"
         :key="index"
         v-model="item.value"
         :options="item.list"
         @change="tabChange(item)"
       >
-        <!--                        <div slot="title">{{lxType?lxType:'身份筛选'}}</div>-->
+      </van-dropdown-item>
+      <van-dropdown-item
+        v-if="store.selectDemension.menuList && store.selectDemension.menuList.length > 3"
+        title="更多筛选"
+      >
+        <div style="padding: 5px 16px">
+          <div v-for="(item,index) in store.selectDemension.menuList?.slice(3,store.selectDemension.menuList.length)" :key="index" class="row-box">
+            <div class="row-title">{{item.name}}</div>
+            <div
+              v-for="(item1, index1) in item.list"
+              :key="index1"
+              class="boxList"
+              :class=" item.value === item1.value ? 'selectbox' : ''"
+              @click="item.value = item1.value;tabChange(item)"
+            >
+              {{ item1.text }}
+            </div>
+          </div>
+        </div>
       </van-dropdown-item>
     </van-dropdown-menu>
 
@@ -31,6 +49,8 @@
 
   })
   const tabChange = (item: { paramsValue: string; value: string; }) => {
+    console.log(item)
+
     state.params[item.paramsValue] = item.value
     store.clearState()
     store.getList(state.params)
@@ -38,5 +58,28 @@
 </script>
 
 <style lang="scss" scoped>
+.row-box {
+    margin-top: 0.2rem;
 
+    .row-title {
+      margin-bottom: 0.2rem;
+      font-size: 0.3rem;
+    }
+
+    .boxList {
+      background-color: grey;
+      border-radius: 0.06px;
+      padding: 0.1rem 0.2rem;
+      font-size: 0.26rem;
+      margin-right: 0.2rem;
+      margin-bottom: 0.15rem;
+      display: inline-block;
+      background-color: #f4f4f4;
+
+      &.selectbox {
+        color: white;
+        background-color: #3b8ae3;
+      }
+    }
+  }
 </style>

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

@@ -406,6 +406,400 @@ export const FaLvFengXian: DemensionPagesInter = {
           value: 'referencePrice'
         }
       ]
+    },
+    {
+      code: 'final_case',
+      routing: 'ZhongBenAnJian',
+      title: '终本案件',
+      tabs: 'deleted',
+      viewList: [
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '被执行人',
+          value: 'name',
+          companyId: 'keyno'
+        },
+        {
+          name: '执行标的',
+          value: 'execAmount'
+        },
+        {
+          name: '执行法院',
+          value: 'courtName'
+        },
+        {
+          name: '立案日期',
+          value: 'caseCreateTime',
+          valueType: 'date'
+        },
+        {
+          name: '终本日期',
+          value: 'caseFinalTime',
+          valueType: 'date'
+        }
+      ]
+    },
+    {
+      code: 'executed_person',
+      routing: 'BeiZhiXingRen',
+      title: '被执行人',
+      tabs: 'deleted',
+      viewList: [
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '执行标的(元)',
+          value: 'execMoney'
+        },
+        {
+          name: '执行法院',
+          value: 'court'
+        },
+        {
+          name: '立案日期',
+          value: 'caseCreateTime',
+          valueType: 'date'
+        }
+      ]
+    },
+    {
+      code: 'limit_high_consumption',
+      routing: 'JYXianZhiGaoXiaoFei',
+      title: '限制高消费',
+      tabs: 'deleted',
+      viewList: [
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '消费令对象',
+          value: 'companyName',
+          companyId: 'companyId'
+        },
+        {
+          name: '关联对象',
+          value: 'personName',
+          companyId: 'pid'
+        },
+        {
+          name: '申请执行人',
+          listVal: 'applicantInfo',
+          value: 'name',
+          companyId: 'litigantId'
+        },
+        {
+          name: '立案日期',
+          value: 'caseCreateTime',
+          valueType: 'date'
+        },
+        {
+          name: '发布日期',
+          value: 'publishDate',
+          valueType: 'date'
+        }
+      ]
+    },
+    {
+      code: 'wenshu',
+      routing: 'CaiPanWenShu',
+      // listFliter: (list: any[]) => {
+      //   list.forEach(item => {
+      //     item.beigaoList = []
+      //     item.yuangaoList = []
+      //     item.partyTitle.map((item1: { partyTitle: string }) => {
+      //       if (item1.partyTitle === '原告') {
+      //         item.yuangaoList.push(item1)
+      //       } else {
+      //         item.beigaoList.push(item1)
+      //       }
+      //     })
+      //   })
+      //   return list
+      // },
+      title: '裁判文书',
+      menuList: [
+        {
+          paramsValue: 'identity',
+          value: '',   // v-model绑定的值
+          list: [
+            {
+              text: '身份不限',
+              value: ''
+            },
+            {
+              text: '原告/公诉人/上诉人/申请人',
+              value: '1'
+            },
+            {
+              text: '被告/被上诉人/被申请人',
+              value: '2'
+            }
+          ]
+        },
+        {
+          paramsValue: 'case_reason',
+          value: '',   // v-model绑定的值
+          paramsId: 'caseReason',
+          list: [
+            {
+              text: '案由不限',
+              value: ''
+            }
+          ]
+        },
+        {
+          paramsValue: 'docType',
+          value: '',   // v-model绑定的值
+          paramsId: 'docType',
+          list: [
+            {
+              text: '类型不限',
+              value: ''
+            }
+          ]
+        },
+        {
+          paramsValue: 'province',
+          value: '',   // v-model绑定的值
+          paramsId: 'courtProvinceCode',
+          name: '地域',
+          list: [
+            {
+              text: '不限',
+              value: ''
+            }
+          ]
+        },
+        {
+          paramsValue: 'year',
+          value: '',   // v-model绑定的值
+          paramsId: 'judgeYear',
+          name: '发布年份',
+          list: [
+            {
+              text: '不限',
+              value: ''
+            }
+          ]
+        },
+        {
+          paramsValue: 'courtLevel',
+          value: '',   // v-model绑定的值
+          name: '法院层级',
+          list: [
+            {
+              text: '不限',
+              value: ''
+            },
+            {
+              text: '最高法院',
+              value: '最高法院'
+            },
+            {
+              text: '高级法院',
+              value: '高级法院'
+            },
+            {
+              text: '中级法院',
+              value: '中级法院'
+            },
+            {
+              text: '基层法院',
+              value: '基层法院'
+            },
+            {
+              text: '其他',
+              value: '其他'
+            }
+          ]
+        },
+        {
+          paramsValue: 'caseStage',
+          value: '',   // v-model绑定的值
+          paramsId: 'caseStage',
+          name: '案件阶段',
+          list: [
+            {
+              text: '不限',
+              value: ''
+            }
+          ]
+        }
+      ],
+      viewList: [
+        {
+          value: 'title',
+          valueType: 'title'
+        },
+        {
+          name: '案由',
+          value: 'caseReason'
+        },
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '判决金额(万元)',
+          value: 'judgeAmt',
+          valueType: 'w'
+        },
+        {
+          value: 'name',
+
+          companyId: 'litigantId',
+          listVal: 'partyTitle'
+        },
+        {
+          name: '判决结果',
+          value: 'judgeResult'
+        },
+        {
+          name: '裁判日期',
+          value: 'judgeDate',
+          valueType: 'date'
+        },
+        {
+          name: '原告律师',
+          value: 'lawyerName',
+          listVal: 'ygLawyer'
+        },
+        {
+          name: '被告律师',
+          value: 'lawyerName',
+          listVal: 'bgLawyer'
+        }
+      ]
+    },
+    {
+      code: 'court_announcement',
+      routing: 'FaYuanGongGao',
+      title: '法院公告',
+      tabs: 'deleted',
+      detailList: [
+        {
+          name: '公告类型',
+          value: 'announcementType'
+        },
+        {
+          name: '公布日期',
+          value: 'publishDate'
+        },
+        {
+          name: '上诉人/原告',
+          listVal: 'plaintiffInfo',
+          value: 'name',
+          companyId: 'litigantId'
+        },
+        {
+          name: '被上诉人/被告',
+          listVal: 'litigantInfo',
+          value: 'name',
+          companyId: 'litigant_id'
+        },
+        {
+          name: '执行法院',
+          value: 'courtName'
+        },
+        {
+          name: '区域',
+          value: 'province'
+        },
+        {
+          name: '法官',
+          value: 'judge'
+        },
+        {
+          name: '内容',
+          value: 'content'
+        }
+      ],
+      viewList: [
+        {
+          name: '公告类型',
+          value: 'announcementType'
+        },
+        {
+          name: '上诉人/原告',
+          listVal: 'plaintiffInfo',
+          value: 'name',
+          companyId: 'litigantId'
+        },
+        {
+          name: '被上诉人/被告',
+          listVal: 'litigantInfo',
+          value: 'name',
+          companyId: 'litigantId'
+        },
+        {
+          name: '执行法院',
+          value: 'courtName'
+        },
+        {
+          name: '刊登日期',
+          value: 'publishDate'
+        }
+      ]
+    },
+    {
+      code: 'equity_freeze',
+      routing: 'GuQuanDongJie',
+      title: '股权冻结',
+      tabs: 'deleted',
+      menuList: [
+        {
+          paramsValue: 'role',
+          value: '',   // v-model绑定的值
+          list: [
+            {
+              text: '身份不限',
+              value: ''
+            },
+            {
+              text: '被执行人',
+              value: 'executed_person'
+            },
+            {
+              text: '执行标的企业',
+              value: 'company'
+            }
+          ]
+        }
+      ],
+      viewList: [
+        {
+          name: '执行通知书文号',
+          value: 'executeNoticeNum'
+        },
+        {
+          name: '被执行人',
+          value: 'executedPerson',
+          companyId: 'executedPersonId'
+        },
+        {
+          name: '冻结股权标的企业',
+          value: 'companyName',
+          companyId: 'companyId'
+        },
+        {
+          name: '股权数额',
+          value: 'equityAmount'
+        },
+        {
+          name: '执行法院',
+          value: 'executiveCourt'
+        },
+        {
+          name: '类型|状态',
+          value: 'typeState'
+        }
+      ]
     }
   ]
 }

+ 36 - 0
src/js-pages/company-detail/JingYingFengXian/index.ts

@@ -37,6 +37,42 @@ export const JingYingFengXian: DemensionPagesInter = {
           value: 'departmentName'
         }
       ]
+    },
+    {
+      code: 'pledge_equity',
+      routing: 'GuQuanChuZhi',
+      title: '股权出质',
+      tabs: 'deleted',
+      viewList: [
+        {
+          value: 'pledgee',
+          listVal: 'pledgeeInfo',
+          companyId: 'pledgeeId',
+          name: '质权人'
+        },
+        {
+          value: 'pledgor',
+          listVal: 'pledgorInfo',
+          companyId: 'pledgorId',
+          name: '出质人'
+        },
+        {
+          name: '登记编号',
+          value: 'regNumber'
+        },
+        {
+          name: '出质股权标的的企业',
+          value: 'relatedCompanyName'
+        },
+        {
+          name: '出质股权数额(万元)',
+          value: 'equityAmount'
+        },
+        {
+          name: '状态',
+          value: 'state'
+        }
+      ]
     }
   ]
 }

+ 8 - 0
src/js-pages/types.ts

@@ -19,6 +19,10 @@ export interface DemensionPagesListInter {
   viewList?: ViewListInter[],
   menuList?: MenuListInter[],  //tab下面的下拉菜单列表
   tabs?: 'deleted' | [],  //是否有tabs,历史列表deleted,普通tab传数组
+  /**
+* 自定义数组数据处理方法
+*/
+  listFliter?: Function,
   customRender?: any,
 }
 
@@ -52,5 +56,9 @@ export interface MenuListInter {
    * 对应后端的ID匹配数组
    */
   paramsId?: string
+  /**
+   * 点开更多所展示的标题,数量大于4的时候使用
+   */
+  name?: string,
   list: { text: string, value: string }[]
 }

+ 5 - 1
src/layout/Layout.vue

@@ -21,5 +21,9 @@
   })
 
 </script>
-<style>
+<style lang="scss" scoped>
+.layout{
+  min-height: 100vh;
+  background: #f1f2f4;
+}
 </style>

+ 30 - 8
src/store/demensionList.ts

@@ -100,18 +100,33 @@ export const useDemensionListStore = defineStore({
               //如果menu是对象
             } else {
               const dataExtraArr = Object.keys(dataExtra)
+
+              // console.log(dataExtraArr)
+
               dataExtraArr.map(dataExtraItem => {
-                const extraList = dataExtra[dataExtraItem] as []
-                if (extraList.length) {
-                  extraList.map((extraListItem: { key: string }) => {
-                    listArr.push({
-                      text: extraListItem.key,
-                      value: extraListItem.key
+
+
+                // console.log(dataExtraItem)
+
+                if (dataExtraItem === item.paramsId) {
+                  const extraList = dataExtra[dataExtraItem] as []
+                  console.log(dataExtraItem)
+                  console.log(extraList)
+                  if (extraList.length) {
+                    extraList.map((extraListItem: { key: string, desc?: string }) => {
+                      listArr.push({
+                        text: extraListItem.desc ? extraListItem.desc : extraListItem.key,
+                        value: extraListItem.key
+                      })
                     })
-                  })
+                  }
                 }
+                //
+
               })
             }
+            console.log(item)
+
 
             newArr.push(
               {
@@ -142,7 +157,14 @@ export const useDemensionListStore = defineStore({
       const res = await $axios.get('lawyer-workbench/risk/dimension/page', { params }) as { totalNum: number, totalPage: number, dataList: [], dataExtra?: { field: string, keyValueBOS: any[] }[] }
       this.totalNum = res.totalNum
       this.totalPage = res.totalPage
-      this.dataList.push(...res.dataList)
+
+
+      let dataList = res.dataList
+      if (this.selectDemension.listFliter) {
+        dataList = this.selectDemension.listFliter(res.dataList)
+      }
+
+      this.dataList.push(...dataList)
 
 
       if (!Object.keys(extraParams).length) {

+ 2 - 0
src/views/demension/detail.vue

@@ -72,12 +72,14 @@
 <style lang="scss" scoped>
 .demension-detail{
   padding: 15px 10px;
+  background: #fff;
   .demension-detail-item{
     margin: 15px 0;
     p{
       color: #969696;
     }
     span{
+      display: block;
       margin-top: 10px;
     }