Procházet zdrojové kódy

feat: 结构调整,找财产

Satsiki před 2 roky
rodič
revize
8e670cbb37

+ 1 - 0
.eslintrc.js

@@ -24,6 +24,7 @@ module.exports = {
     'no-console': 'off',
     'generator-star-spacing': 'off',
     'no-mixed-operators': 0,
+    // 'reportUnusedDisableDirectives':true,
     'arrow-spacing': [2, {
       'before': true,
       'after': true

+ 14 - 1
src/components/CommonList.vue

@@ -134,12 +134,25 @@
 
   const goDetail = (item:{id:string,companyName:string}) => {
     if(store.selectDemension.detailList || store.selectDemension.detailCustomRender) {
+      let customParams:{} | undefined = {}
+
+      //额外参数处理
+      if(store.selectDemension.detailRouteParams) {
+        store.selectDemension.detailRouteParams.map(paramsItem => {
+          customParams = Object.assign({[paramsItem]:item[paramsItem]},customParams)
+        })
+      }else{
+        customParams = undefined
+      }
+
+
       router.push({
         path: store.selectDemension.routing + 'Det',
         query:{
           id:item.id,
           companyName:item.companyName,
-          detailType:store.selectDemension.detailType || undefined
+          detailType:store.selectDemension.detailType || undefined,
+          ...customParams
         }
       })
       console.log(`跳转详情:${item.id}`)

+ 882 - 0
src/components/DetailCustom/SiFaPaiMai.vue

@@ -0,0 +1,882 @@
+/* eslint-disable no-alert, no-console */
+<template>
+  <!-- eslint-disable-line -->
+
+  <div id="PaiMaiXiangQing">
+    <!-- <van-pull-refresh
+            :disabled="isDisableRefresh"
+            v-model="refreshing"
+            @refresh="onRefresh"
+            pulling-text="下拉开始刷新..."
+            loosing-text="释放刷新..."
+            loading-text="正在刷新"
+            head-height='50'
+        > -->
+    <div class="scroll-con">
+      <van-swipe class="my-swipe" :class="{has:imgs.length}" indicator-color="white" @change="change">
+        <van-swipe-item v-for="url in imgs" :key="url">
+          <div class="top-img" :style="'background-image:url('+url+')'"></div>
+        </van-swipe-item>
+        <template #indicator>
+          <div v-if="imgs.length" class="custom-indicator">
+            {{ current + 1 }}/{{imgs.length}}
+          </div>
+        </template>
+      </van-swipe>
+      <div v-if="loading||infoData.auctionStatus" class="end-time"
+           :class="infoData.auctionStatus=='1'?'s1':infoData.auctionStatus=='2'?'s2':'s3'">
+        <div class="end-str">{{auctionStatus(infoData.auctionStatus)}}</div>
+        <div v-if="hasData" class="time-str">
+          // eslint-disable-next-line vue/html-quotes
+          <!-- eslint-disable-next-line vue/max-attributes-per-line -->
+          <span v-if="infoData.auctionStatus==&quot;1&quot;||infoData.auctionStatus==&quot;3&quot;||infoData.auctionStatus==&quot;4&quot;">{{$dateFormat(infoData.endTime)}} 结束</span>
+          <span v-else-if="infoData.auctionStatus==&quot;2&quot;">{{$dateFormat(infoData.startTime)}} 开拍</span>
+          <span v-else>本场拍卖{{auctionStatus(infoData.auctionStatus)}}</span>
+        </div>
+      </div>
+      <div class="product-det">
+        <van-skeleton title :row="8" :loading="loading">
+          <div class="tags">
+            <span v-if="infoData.auctionStage">{{auctionStage(infoData.auctionStage)}}</span>
+            <span v-if="infoData.canLoan==&quot;0&quot;">可贷款</span>
+            <span v-if="infoData.unlimitedPurchase==&quot;1&quot;">不限购</span>
+            <span v-if="infoData.auctionTypeTwo" class="s">{{infoData.auctionTypeTwo}}</span>
+          </div>
+          <div class="name">{{infoData.auctionTitle}}</div>
+          <div class="price">
+            <div>
+              当前价: <span v-if="hasData&&infoData.currentPrice!=null" class="red">¥{{priceDouhao(infoData.currentPrice)}}</span>
+              <span v-if="hasData&&infoData.currentPrice==null" class="red">--</span>
+            </div>
+            <div>
+              评估价: <span v-if="hasData&&infoData.evaluationPrice!=null">¥{{priceDouhao(infoData.evaluationPrice)}}</span>
+              <span v-if="hasData&&infoData.evaluationPrice==null">--</span> <span v-if="hasData" class="line"></span> <span v-if="hasData">{{infoData.applyCount}}人报名</span>
+            </div>
+          </div>
+          <div class="tip">
+            <img src="@/assets/img/sifapaimai/logo.png" alt="">
+            <div class="source-tips">
+              <span class="ms">赢火虫大数据提供数据支撑,数据源来自{{infoData.resource}}</span>
+              <span v-if="!share" class="gx" @click="updateData">更新数据</span>
+            </div>
+          </div>
+          <div class="table">
+            <div class="t20">保证金</div><div class="t30"><span v-if="hasData&&infoData.cashDeposit!=null">¥{{priceDouhao(infoData.cashDeposit)}}</span><span v-if="hasData&&infoData.cashDeposit==null">--</span></div>
+            <div class="t30">加价幅度</div><div class="t20"><span v-if="hasData&&infoData.priceAdd!=null">¥{{priceDouhao(infoData.priceAdd)}}</span><span v-if="hasData&&infoData.priceAdd==null">--</span></div>
+            <div class="t20">起拍价</div><div class="t30"><span v-if="hasData&&infoData.initialPrice!=null">¥{{priceDouhao(infoData.initialPrice)}}</span><span v-if="hasData&&infoData.initialPrice==null">--</span></div>
+            <div class="t30">优选购买权人</div><div class="t20">{{infoData.preemptionClaimant=='0'?'无':infoData.preemptionClaimant||'--'}}</div>
+            <div class="t20">竞价周期</div><div class="t30"><span v-if="hasData">{{infoData.auctionPeriod==null?'--':infoData.auctionPeriod+'天'}}</span></div>
+            <div class="t30">延时周期</div><div class="t20"><span v-if="hasData">{{infoData.delayPeriod==null?'--':infoData.delayPeriod+'分钟/次'}}</span></div>
+          </div>
+          <div class="address" @click="showAddress">
+            <div>拍品地址</div>
+            <div class="text">{{infoData.address}}</div>
+            <img v-if="infoData.address" src="@/assets/img/sifapaimai/address.png">
+          </div>
+          <van-action-sheet
+            v-model="showAddr"
+            :actions="actions"
+            cancel-text="取消"
+            description="请选择相关地图"
+            close-on-click-action
+            get-container="body"
+            @select="onSelect"
+          />
+        </van-skeleton>
+      </div>
+      <div v-if="infoData.bidTimes&&infoData.bidTimes!=0" class="record">
+        <div class="text">
+          已有 <span>{{infoData.bidTimes}}</span> 条竞拍记录
+        </div>
+        <div @click="record">查看</div>
+        <img src="@/assets/img/sifapaimai/right.png" @click="record">
+      </div>
+      <div v-else class="record">
+        <div v-if="hasData" class="text">
+          暂无竞拍记录
+        </div>
+      </div>
+      <van-tabs swipeable animated :lazy-render="false" sticky @change="tabChange">
+        <van-tab title="物品介绍" name="1">
+          <div class="html" v-html="infoData.auctionIntroduce"></div>
+        </van-tab>
+        <van-tab title="拍卖公告" name="2">
+          <div class="html html2" v-html="infoData.auctionNotice"></div>
+        </van-tab>
+        <van-tab title="拍卖须知" name="3">
+          <div class="html html3" v-html="infoData.auctionMustKnow"></div>
+        </van-tab>
+      </van-tabs>
+    </div>
+    <!-- </van-pull-refresh> -->
+    <div class="footer">
+      <div class="left" @click="baoming">
+        <img src="@/assets/img/sifapaimai/feiji.png">报名/分享
+      </div>
+      <div class="right" :class="{s:[&quot;1&quot;,&quot;2&quot;].includes(infoData.auctionStatus)}" @click="tixing">
+        <img v-if="String(infoData.notice)===&quot;true&quot;" src="@/assets/img/sifapaimai/dui.png">
+        <img v-else src="@/assets/img/sifapaimai/clock.png">
+        <span v-if="[&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;6&quot;,&quot;7&quot;].includes(infoData.auctionStatus)">拍卖已结束</span>
+        <span v-else-if="String(infoData.notice)===&quot;true&quot;">已设置提醒</span>
+        <span v-else>设置提醒</span>
+      </div>
+    </div>
+    <van-popup v-model="showpop" position="bottom" class="pop-btm">
+      <div class="list" @click="copy">
+        <div class="left">
+          <img src="@/assets/img/sifapaimai/link.png">
+        </div>
+        <div class="center">复制链接,去{{infoData.resource}}报名</div>
+        <img src="@/assets/img/sifapaimai/right.png" class="right">
+      </div>
+      <div class="list" @click="goWeb">
+        <div class="left">
+          <img src="@/assets/img/sifapaimai/web.png">
+        </div>
+        <div class="center">查看源站网页</div>
+        <img src="@/assets/img/sifapaimai/right.png" class="right">
+      </div>
+      <div class="list" @click="goshare">
+        <div class="left">
+          <img src="@/assets/img/sifapaimai/wx.png">
+        </div>
+        <div class="center">分享到</div>
+        <img src="@/assets/img/sifapaimai/right.png" class="right">
+      </div>
+    </van-popup>
+    <van-popup v-model="showtixing" class="pop-tixing" :close-on-click-overlay="false">
+      <div class="con">
+        <div class="title">设置消息提醒成功</div>
+        <div class="content">小赢在此拍品<span v-if="infoData.auctionStatus==&quot;2&quot;">“开拍”与</span>“结束前30分钟”时,以短信方式为 <span class="c">{{$route.query.mobileNo}}</span> 发送提醒消息。</div>
+        <div class="btm">
+          <span @click="addMsgOk">好的</span>
+        </div>
+      </div>
+    </van-popup>
+  </div>
+</template>
+
+<!-- eslint-disable -->
+<script lang="ts">
+  import $axios from '@/api'
+  import { Toast } from 'vant'
+  import {$dateFormat} from '@/utils/utils'
+  export default {
+    name: 'PaiMaiXiangQing',
+    data() {
+      console.log(this.$route.query.type)
+      return {
+        share: this.$route.query.type === 'share',
+        showAddr: false,
+        actions: [
+          { name: '高德地图',type:'gd' },
+          { name: '百度地图',type:'bd' }
+        ],
+        infoData:{},
+        current:0,
+        imgs:[],
+        history:null,
+        showpop:false,
+        showtixing:false,
+        tixingId:null,
+        hasData:false,
+        loading:true,
+        taboffsetTop:0,
+        refreshing: false,
+        isDisableRefresh:false
+      }
+    },
+    mounted () {
+      document.title = '拍品详情'
+      this.getData()
+      document.querySelector('.scroll-con').addEventListener('scroll',(e) => {
+        const scrollTop = document.querySelector('.scroll-con').scrollTop
+        if(scrollTop < 50) {
+          this.isDisableRefresh = false
+        }else{
+          this.isDisableRefresh = true
+        }
+      })
+    },
+    methods: {
+      onRefresh() {
+        setTimeout(() => {
+          if (this.refreshing) {
+            this.refreshing = false
+          }
+        },800)
+        this.current = 0
+        this.imgs = []
+        this.getData()
+
+      },
+      async updateData() {
+        try {
+          const res = await $axios.post('winhc-justice-service/auction/async',{auctionItemsId:this.$route.query.auctionItemsId})
+          Toast('正在后台更新, 完成后通知到你的手机')
+        } catch (error) {
+          Toast('正在后台更新, 完成后通知到你的手机')
+        }
+      },
+      async getData() {
+        console.log(this.$route.query,897897798897)
+        try {
+          let res={}
+          this.hasData=false
+          this.loading=true
+          if(this.share) {
+            res = await $axios.get('/auction/open/share/'+this.$route.query.secretId,{})
+          }else{
+            if(this.$route.query.source == 'H5') {
+              const params = {auctionItemsId:this.$route.query.auctionItemsId}
+              res = await $axios.get('winhc-justice-service/auction/detail',{params})
+            }else if(this.$route.query.fromBusiness == 'dynamic') {
+              res = await $axios.get('dynamic/v8/radar/detail', {
+                tn : this.$route.query.tn,
+                rowkey :this.$route.query.rowkey
+              })
+            }else if(this.$route.query.fromBusiness == 'caichan') {
+              res = await  $axios.get(window.serviceNameCaiChan,{
+                bizId:this.$route.query.bizId,
+                dimensionType :this.$route.query.dimensionType
+              })
+            }else{
+              res = await $axios.get('/auction/'+this.$route.query.auctionItemsId,{})
+            }
+          }
+          this.loading=false
+          this.hasData=true
+          //处理相对路径的图片(相对路径的图片无法显示)
+          // if(res.auctionIntroduce){
+          //     res.auctionIntroduce=res.auctionIntroduce.replace(/src="\//g,'style="display:none;" src="/').replace(/src='\//g,"style='display:none;' src='/")
+          // }
+          // if(res.auctionNotice){
+          //     res.auctionNotice=res.auctionNotice.replace(/src="\//g,'style="display:none;" src="/').replace(/src='\//g,"style='display:none;' src='/")
+          // }
+          if(res.auctionNotice) {
+            res.auctionNotice=res.auctionNotice.replace(/\?xml:namespace&gt;/g,'')
+          }
+          // if(res.auctionMustKnow){
+          //     res.auctionMustKnow=res.auctionMustKnow.replace(/src="\//g,'style="display:none;" src="/').replace(/src='\//g,"style='display:none;' src='/")
+          // }
+          res.auctionStatus = String(Number(res.auctionStatus))
+          this.infoData=res
+          if(res.auctionImg) {
+            const imgs = JSON.parse(res.auctionImg) || []
+            imgs.forEach((e) => {
+              this.imgs.push(e.replace(/http:/g,'https:'))
+            })
+          }
+          // this.imgs=res.auctionImg?JSON.parse(res.auctionImg):[];
+          this.history=res.bidHistory?JSON.parse(res.bidHistory):[]
+          setTimeout(() => {
+            document.querySelectorAll('.html2 p').forEach((item) => {
+              if(item.innerText&&['拍卖公告','变卖公告','竞买公告'].includes(item.innerText.replace(/\s/g,''))) {
+                item.style.textIndent='0'
+                item.style.textAlign='center'
+                return
+              }
+            })
+            document.querySelectorAll('.html3 p').forEach((item) => {
+              if(item.innerText&&['拍卖须知','变卖须知','竞买须知'].includes(item.innerText.replace(/\s/g,''))) {
+                item.style.textIndent='0'
+                item.style.textAlign='center'
+                return
+              }
+            })
+            document.querySelectorAll('.van-tabs__content img').forEach((item) => { //去除相对路径的图片
+              var ImgObj = new Image()
+              ImgObj.src = item.src
+              ImgObj.onerror = () => {
+                // console.log(ImgObj.fileSize ,ImgObj.width,ImgObj.height)
+                item.style.display='none'
+              }
+            })
+            this.taboffsetTop = document.querySelector('.van-tabs').offsetTop + 5
+          },700)
+          if(this.share) {
+            this.$methods.wx_shareConfig({
+              title:this.infoData.auctionTitle, // 分享标题
+              desc: '我在赢火虫的司法拍卖发现了还不错的拍品,快来看看吧~', // 分享描述
+              link: winhc_api_common + 'newMobile/#/PaiMaiXiangQing?type=share&pageType=H5&secretId=' + this.infoData.secretId+'&version='+this.$version, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+              imgUrl: 'https://winhc.oss-cn-shanghai.aliyuncs.com/shareImg/logo256x256.png' // 分享图标
+            })
+          }
+          console.log('res=',res)
+        } catch (error) {
+          this.loading=false
+          this.hasData=false
+          Toast('查询失败')
+          console.log(error)
+        }
+      },
+      record() {
+        if(this.history&&this.history.length>0) {
+          if(this.share) {
+            window.location.href= winhc_api_common + 'newMobile/#/AuctionRecord?type=share&pageType=H5&secretId=' + this.infoData.secretId + '&version='+this.version
+          } else {
+            this.$goDetail('AuctionRecord?auctionItemsId='+this.$route.query.auctionItemsId)
+          }
+        }
+      },
+      change(curr) {
+        this.current=curr
+      },
+      tabChange(name,title) {
+        // console.log(name,title)
+        document.querySelector('.scroll-con').style.transition = 'all 0.3s'
+        document.querySelector('.scroll-con').scrollTop = this.taboffsetTop
+
+      },
+      showAddress() {
+        if(!this.infoData.address) {
+          return
+        }
+        if(this.share) {
+          window.location.href = '../orgInformation/bdMap.html?address='+this.infoData.address
+        }else{
+          this.showAddr = true
+        }
+      },
+      //选择地图
+      onSelect(item) {
+        this.showAddr = false
+        try {
+          if (systemJudge() == 'Android') {
+            winhc.orgInfoMap(item.type,this.infoData.address||'')
+          } else {
+            ocMethod('orgInfoMap', {
+              'type': item.type,//高德(gd)、百度(bd)
+              'addr': this.infoData.address||''
+            })
+          }
+        } catch (e) {
+          console.log(e)
+        }
+      },
+      baoming() {
+        if(this.share) {
+          window.location.href = this.$downYingYongBaoUrl()
+          return
+        }
+        this.showpop=true
+      },
+      async tixing() {
+        if(['1','2'].includes(this.infoData.auctionStatus)&&String(this.infoData.notice)==='false') {
+          if(this.share) {
+            window.location.href = this.$downYingYongBaoUrl()
+            return
+          }
+          try {
+            const Timer=setTimeout(() => {
+              Toast.loading()
+            },300)
+            const res = await Axios('/auction/notice',{
+              auctionItemsId:this.$route.query.auctionItemsId
+            },'post')
+            clearTimeout(Timer)
+            Toast.clear()
+            // this.$toast.success('设置成功');
+            this.showtixing=true
+            this.tixingId=res
+            this.getData()
+            console.log('res=',res)
+          } catch (error) {
+            clearTimeout(Timer)
+            Toast('设置提醒失败')
+            console.log(error)
+          }
+        }
+      },
+      addMsgOk() {
+        this.showtixing=false
+      },
+      copy() {
+        this.$copyText(this.infoData.url,() => {
+          this.showpop=false
+          Toast('链接复制成功')
+        })
+      },
+      goshare() {
+        if(this.infoData.auctionTitle&&this.infoData.secretId) {
+          try {
+            const obj = {
+              title:this.infoData.auctionTitle, // 分享标题
+              desc: '我在赢火虫的司法拍卖发现了还不错的拍品,快来看看吧~', // 分享描述
+              link: winhc_api_common + 'newMobile/#/PaiMaiXiangQing?type=share&pageType=H5&secretId=' + this.infoData.secretId, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
+              imgUrl: 'https://winhc.oss-cn-shanghai.aliyuncs.com/shareImg/logo256x256.png' // 分享图标
+            }
+            if (systemJudge() === 'Android') {
+              console.log(winhc)
+              winhc.shareH5(JSON.stringify(obj))
+            } else {
+              console.log('ios')
+              ocMethod('shareH5', obj)
+            }
+            this.showpop=false
+          } catch (e) {
+            console.log(e)
+          }
+        }
+      },
+      goWeb() {
+        if(this.infoData.url) {
+          this.showpop=false
+          this.$goOuterUrl(this.infoData.url)
+        }
+      }
+    },
+    computed:{
+      auctionStatus() {
+        return (str) => {
+          switch (str) {
+          case '1' : return '拍卖中'
+          case '2' : return '预告中'
+          case '3' : return '拍卖成功'
+          case '4' : return '拍卖失败'
+          case '5' : return '已中止'
+          case '6' : return '已撤回'
+          case '7' : return '已暂缓'
+          }
+        }
+      },
+      priceDouhao() {
+        return (p) => {
+          if(isNaN(p)) {
+            return p
+          }
+          if(p!=null&&p!=undefined) {
+            let after='',before=''
+            if(String(p).indexOf('.')!==-1) {
+              p=Number(p).toFixed(2)
+              after='.'+String(p).split('.')[1]
+              p=String(p).split('.')[0]
+            }
+            for (let i = String(p).length,j=1 ; i > 0 ; i--,j++) {
+              before=String(p)[i-1]+before
+              if(i!==1 && j%3===0) {
+                before=','+before
+              }
+            }
+            return before+after
+          }else {
+            return ''
+          }
+        }
+      },
+      auctionStage() {
+        return (str) => {
+          switch (str) {
+          case '1' : return '一拍'
+          case '2' : return '二拍'
+          case '3' : return '三拍'
+          case '4' : return '变卖'
+          case '5' : return '重新拍卖'
+          }
+        }
+      }
+    }
+  }
+</script>
+
+<style scoped lang=scss>
+    /* @import "@/assets/scss/cover.scss"; */
+    #PaiMaiXiangQing{
+        user-select: none;
+        background: #F2F6F9;
+        display: flex;
+        flex-direction: column;
+        .scroll-con{
+            flex: 1;
+            overflow: auto;
+            height: 100%;
+        }
+        .my-swipe{
+            height: 5rem;
+            background: url("@/assets/img/sifapaimai/zhanwei.png") no-repeat center;
+            background-size: 5.76rem 3.84rem;
+            &.has{
+                background: #fff;
+            }
+            .top-img{
+                height: 5rem;
+                background-size: contain;
+                background-repeat: no-repeat;
+                background-position: center;
+            }
+            .custom-indicator{
+                min-width: 0.86rem;
+                background: rgba(0, 0, 0, 0.5);
+                border-radius: 0.25rem;
+                font-size: 0.22rem;
+                font-weight: bold;
+                color: #FFFFFF;
+                line-height: 0.38rem;
+                text-align: center;
+                position: absolute;
+                bottom: 0.2rem;
+                right: 0.32rem;
+            }
+        }
+        .end-time{
+            height: 0.92rem;
+            .end-str{
+                font-size: 0.29rem;
+                color: #FFFFFF;
+                line-height: 0.92rem;
+                text-align: center;
+                width: 2.25rem;
+                height: 0.92rem;
+                float: left;
+                background-repeat: no-repeat;
+                background-size: 2.25rem 0.92rem;
+            }
+            .time-str{
+                font-size: 0.24rem;
+                line-height: 0.92rem;
+                padding-left: 2.57rem;
+                color: #FFFFFF;
+            }
+            &.s1{
+                background: #F8EBEB;
+                .end-str{
+                    background-image: url("@/assets/img/sifapaimai/det-1.png");
+                }
+                .time-str{
+                    color: #C13E3E;
+                }
+            }
+            &.s2{
+                background:#EAF2EF;
+                .end-str{
+                    background-image: url("@/assets/img/sifapaimai/det-2.png");
+                }
+                .time-str{
+                    color:#2E8665;
+                }
+            }
+            &.s3{
+                background: #E0E1E2;
+                .end-str{
+                    background-image: url("@/assets/img/sifapaimai/det-3.png");
+                }
+                .time-str{
+                    color: #64696E;
+                }
+            }
+        }
+        .product-det{
+            margin: 0.24rem 0.16rem 0;
+            padding: 0.25rem 0.32rem;
+            background: #FFFFFF;
+            border-radius: 0.16rem;
+            .tags{
+                span{
+                    display: inline-block;
+                    padding: 0 0.16rem;
+                    font-size: 0.2rem;
+                    line-height: 0.36rem;
+                    color: #fff;
+                    background: #778FA8;
+                    border-radius: 0.04rem;
+                    margin-right: 0.16rem;
+                    margin-bottom: 0.08rem;
+                    &.s{
+                        color: #0265D9;
+                        background: rgba(2, 101, 217, 0.1);
+                    }
+                }
+            }
+            .name{
+                font-size: 0.3rem;
+                line-height: 0.46rem;
+                font-weight: bold;
+                color: #242A32;
+                padding-bottom: 0.08rem;
+            }
+            .price{
+                font-size: 0.24rem;
+                line-height: 0.4rem;
+                color: #64696E;
+                .red{
+                    font-size: 0.4rem;
+                    font-weight: bold;
+                    color: #C13E3E;
+                    line-height: 0.56rem;
+                }
+                .line{
+                    width: 0.02rem;
+                    height: 0.12rem;
+                    background: #BDBFC1;
+                    display: inline-block;
+                    vertical-align: middle;
+                }
+            }
+            .tip{
+                font-size: 0.22rem;
+                line-height: 0.34rem;
+                color: #C0913C;
+                background: #F8F4EB;
+                border-radius: 0.16rem;
+                padding: 0.06rem 0.08rem;
+                margin-top: 0.16rem;
+                margin-bottom: 0.16rem;
+                display: flex;
+                .source-tips{
+                    display: flex;
+                    padding: 0 0.08rem;
+                    justify-content: space-between;
+                    align-items: center;
+                    flex: 1;
+                    .ms{
+                        flex: 1;
+                    }
+                    .gx{
+                        color: #4A90E2;
+                        font-size: 0.2rem;
+                        text-decoration-line: underline;
+                    }
+                }
+                img{
+                    width: 0.34rem;
+                    height: 0.34rem;
+                    vertical-align: middle;
+                }
+            }
+            .table{
+                display: flex;
+                flex-wrap: wrap;
+                font-size: 0.24rem;
+                line-height: 0.4rem;
+                color: #64696E;
+                padding-bottom: 0.16rem;
+                margin-bottom: 0.18rem;
+                border-bottom: 1px solid #F8FAFC;
+                .t20{
+                    width: 20%;
+                }
+                .t30{
+                    width: 30%;
+                }
+                .t25{
+                    width: 25%;
+                }
+            }
+            .address{
+                display: flex;
+                font-size: 0.24rem;
+                color: #64696E;
+                line-height: 0.34rem;
+                img{
+                    width: 0.4rem;
+                    height: 0.4rem;
+                }
+                .text{
+                    flex: 1;
+                    padding: 0 0.24rem;
+                }
+            }
+        }
+        .record{
+            margin: 0.24rem 0.16rem 0;
+            padding:0 0.32rem;
+            background: #FFFFFF;
+            border-radius: 0.16rem;
+            display: flex;
+            align-items: center;
+            height: 0.92rem;
+            font-size: 0.24rem;
+            color: #A7AAAD;
+            line-height: 0.40rem;
+            .text{
+                flex: 1;
+                font-size: 0.29rem;
+                color: #242A32;
+                span{
+                    color: #0265D9;
+                    font-weight: bold;
+                }
+            }
+            img{
+                width: 0.29rem;
+                height: 0.29rem;
+            }
+        }
+        :deep() .van-tabs{
+            margin: 0.24rem 0.16rem;
+            background: #FFFFFF;
+            border-radius: 0.16rem;
+            overflow: hidden;
+            .van-tab__text{
+                font-size: 0.29rem;
+                color: #919498;
+                padding-bottom: 10px !important;
+            }
+            .van-tab--active{
+                .van-tab__text{
+                    font-weight: bold;
+                    color: #242A32;
+                }
+            }
+            .van-tabs__line{
+                width:0.48rem !important;
+                height: 0.04rem;
+                bottom: 20px;
+                background-color: #0265D9;
+            }
+            .van-hairline--top-bottom::after, .van-hairline-unset--top-bottom::after{
+                border-color: #F8FAFC;
+            }
+            .html{
+                overflow: hidden;
+                padding: 0.2rem 0.32rem 0.32rem;
+                color: #242A32;
+                line-height: 0.40rem;
+                font-size: 0.29rem!important;
+                font-family: -apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Segoe UI,Arial,Roboto,'PingFang SC','Hiragino Sans GB','Microsoft Yahei',sans-serif!important;
+                p,span,div,a{
+                    font-size: 0.29rem!important;
+                    font-family: -apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Segoe UI,Arial,Roboto,'PingFang SC','Hiragino Sans GB','Microsoft Yahei',sans-serif!important;
+                }
+                table{
+                    width: 100%!important;
+                    margin: 0!important;
+                    td,th{
+                        width: auto!important;
+                        word-break: break-all !important;
+                        white-space: normal !important;
+                    }
+                }
+                table.xmxx_objtab{
+                    td,th,tr{
+                        font-size: 0.24rem!important;
+                    }
+                    th,td{
+                        text-indent: 0;
+                        text-align: left;
+                        border-right: 1px solid #222;
+                        border-bottom: 1px solid #222;
+                    }
+                    border-top: 1px solid #222;
+                    border-left: 1px solid #222;
+                }
+                img{
+                    max-width: 100%!important;
+                }
+                li{
+                    list-style: none;
+                }
+                #pmgg{
+                    p{
+                        margin-left: 0!important;
+                        TEXT-INDENT: 24pt!important;
+                    }
+                }
+                .n_detail_cont .n_cont table{
+                    table-layout:fixed !important;
+                }
+            }
+        }
+        .footer{
+            background: #FFFFFF;
+            padding: 0.12rem 0.32rem 0.4rem;
+            display: flex;
+            .left,.right{
+                flex: 1;
+                font-size: 0.3rem;
+                color: #FFFFFF;
+                line-height: 0.94rem;
+                text-align: center;
+                img{
+                    width: 0.32rem;
+                    height: 0.32rem;
+                    vertical-align: middle;
+                    margin-right: 0.16rem;
+                    position: relative;
+                    top:-1px;
+                }
+            }
+            .left{
+                background: #242A32;
+                border-top-left-radius: 0.94rem;
+                border-bottom-left-radius: 0.94rem;
+            }
+            .right{
+                background: #64696E;
+                border-top-right-radius: 0.94rem;
+                border-bottom-right-radius: 0.94rem;
+                &.s{
+                    background: linear-gradient(148deg, #177FFE 0%, #1651FE 100%);
+                }
+            }
+        }
+        .pop-btm{
+            background: #FFFFFF;
+            border-radius: 0.24rem 0.24rem 0rem 0rem;
+            padding: 0.3rem 0.4rem 1rem;
+            .list{
+                position: relative;
+                display: flex;
+                align-items: center;
+                .left{
+                    padding-right: 0.24rem;
+                    img{
+                        width: 0.48rem;
+                        height: 0.48rem;
+                    }
+                }
+                .center{
+                    flex: 1;
+                    border-bottom: 1px solid #F8FAFC;
+                    line-height: 1.04rem;
+                    font-size: 0.3rem;
+                    color: #242A32;
+                }
+                .right{
+                    width: 0.28rem;
+                    height: 0.28rem;
+                    position: absolute;
+                    right: 0;
+                    top: 0.4rem;
+                }
+            }
+        }
+        .pop-tixing{
+            width: 100%;
+            padding: 0 0.32rem;
+            background: none;
+            .con{
+                padding: 0.48rem;
+                border-radius: 0.24rem;
+                background: #fff url("@/assets/img/sifapaimai/bg.png");
+                background-size: 2.7rem 1.74rem;
+                background-position: right top;
+                background-repeat: no-repeat;
+                .title{
+                    font-size: 0.36rem;
+                    font-weight: bold;
+                    color: #28303A;
+                    line-height: 0.52rem;
+                    padding-bottom: 0.1rem;
+                }
+                .content{
+                    font-size: 0.26rem;
+                    color: #242A32;
+                    line-height: 0.36rem;
+                    .c{
+                        color: #0265D9;
+                    }
+                }
+                .btm{
+                    margin-top: 0.96rem;
+                    font-size: 0.3rem;
+                    font-weight: bold;
+                    color: #2C3643;
+                    line-height: 0.3rem;
+                    text-align: right;
+                }
+            }
+        }
+    }
+</style>
+/* eslint-disable no-alert, no-console */

+ 13 - 3
src/components/Global/CommonTab.vue

@@ -2,7 +2,7 @@
 
   <div>
     <van-tabs></van-tabs>
-    <van-tabs v-model:active="state.active" class="fixed w-full top-0 z-10"
+    <van-tabs v-model:active="active" class="fixed w-full top-0 z-10"
               swipeable animated
               @change="change">
       <van-tab v-for="(item,index) in state.tabList" :key="item.value" :title="`${item.name}${store.tabInfo.totalNumList[index] || ''}`" :name="item.value" title-style="font-weight:bold">
@@ -13,9 +13,10 @@
 </template>
 
 <script lang="ts" setup>
-  import { onMounted, reactive } from 'vue'
+  import { onMounted, reactive, ref } from 'vue'
   import { useDemensionListStore } from '@/store/demensionList'
-
+  import { useRoute } from 'vue-router'
+  const route = useRoute()
   interface tabItem {
     name:string,
     value:number,
@@ -26,6 +27,7 @@
     active:number
   }
 
+  const active = ref(0)
   const state =reactive<tabState>({
     tabList:[{name:'',value:0,num:0}],
     active:0
@@ -34,6 +36,8 @@
   const store = useDemensionListStore()
 
   onMounted(() => {
+    // console.log()
+
     getTabs()
   })
 
@@ -51,6 +55,12 @@
           num:0
         }
       ]
+      if(route.path.includes('_history')) {
+        // change(1)
+        // active.value = 1
+        // console.log(active)
+      }
+
       return
     }
     if(store.selectDemension.tabs) {

+ 74 - 0
src/components/ListCustom/YingHangZhangHu.vue

@@ -0,0 +1,74 @@
+<template>
+  <div id="YingHangZhangHu">
+    <div class="content">
+      <van-row class="caichan-tip">
+        已查询到该企业的银行账户信息。具体信息如下:
+      </van-row>
+      <van-row class="yhc-bzxr-items">
+        <van-row class="bzxr-items-info">
+          <van-row class="bzxr-items-left">
+            <van-row type="flex">
+              <van-col>公司名称:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.name||'-'}}</van-col>
+            </van-row>
+            <van-row type="flex">
+              <van-col>税号:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.creditCode}}</van-col>
+            </van-row>
+            <van-row type="flex">
+              <van-col>单位地址:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.address||'-'}}</van-col>
+            </van-row>
+            <van-row type="flex">
+              <van-col>联系方式:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.phone||'-'}}</van-col>
+            </van-row>
+            <van-row type="flex">
+              <van-col>开户银行:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.bank||'-'}}</van-col>
+            </van-row>
+            <van-row type="flex">
+              <van-col>银行账户:</van-col>
+              <van-col class="bzxr-items-nr">{{state.details.bankAccount||'-'}}</van-col>
+            </van-row>
+          </van-row>
+        </van-row>
+      </van-row>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, reactive } from 'vue'
+
+  const state = reactive<any>({
+    details:{}
+  })
+
+  const getData = async () => {
+    const params = {
+      infoCode: useDemensionListStore().selectDemension?.code,
+      companyName: useDemensionListStore().entityName
+    }
+    const res:any = await $axios.get('firefly-erp/eci/dimension/detail',{params})
+    state.details = res
+  }
+
+  onMounted(() => {
+    getData()
+  })
+</script>
+
+<style scoped lang="scss">
+    #YingHangZhangHu {
+        display: flex;
+        flex-direction: column;
+
+        .content {
+            flex: 1;
+            overflow: auto;
+        }
+    }
+</style>

+ 58 - 0
src/components/ListCustom/ZhuCeDiZhi.vue

@@ -0,0 +1,58 @@
+<template>
+  <div id="ZhuCeDiZhi">
+    <div class="caichan-tip">
+      已查询到该企业注册地址,注册地址可能是该企业的自有财产,也可能是该企业的租赁财产,请进一步查核。具体信息如下:
+    </div>
+    <van-row class="yhc-bzxr-items">
+      <van-row class="bzxr-items-info">
+        <van-row class="bzxr-items-left">
+          <van-row type="flex">
+            <van-col>名称:</van-col>
+            <van-col
+              class="bzxr-items-nr"
+            >{{ details.companyName || "-" }}</van-col
+            >
+          </van-row>
+          <van-row type="flex">
+            <van-col>注册地址:</van-col>
+            <van-col class="bzxr-items-nr">{{ details.address || "-" }}</van-col>
+          </van-row>
+        </van-row>
+      </van-row>
+    </van-row>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, ref } from 'vue'
+
+  const details = ref<any>({})
+  const getData = async () => {
+    const params = {
+      dimensionCode: useDemensionListStore().selectDemension?.code,
+      entityId: useDemensionListStore().entityId,
+      entityName: useDemensionListStore().entityName,
+      entityType: useDemensionListStore().entityType
+    }
+    const res:any = await $axios.get('lawyer-workbench/risk/dimension/page',{params})
+    details.value = res
+  }
+
+  onMounted(() => {
+    getData()
+  })
+</script>
+
+<style scoped lang='scss'>
+#ZhuCeDiZhi {
+  display: flex;
+  flex-direction: column;
+
+  .content {
+    flex: 1;
+    overflow: auto;
+  }
+}
+</style>

+ 63 - 0
src/components/ListCustom/ZhuCeZiBen.vue

@@ -0,0 +1,63 @@
+<template>
+  <div id="ShiJiaoZiBen">
+    <div class="content">
+      <van-row class="show">
+        该企业注册资本总额
+        {{ details.registCapi }}
+        ,实缴注册资本
+        {{ details.recCap }}
+        ,未缴注册资本
+        {{ details.unRecCap }} 。
+      </van-row>
+      <van-row class="show oth">
+        说明:一般情况下,若实缴或未缴资本未显示,则视为注册资本未实缴。相应分析及措施,详见财产报告。
+      </van-row>
+    </div>
+  </div>
+</template>
+
+<script lang="ts" setup>
+  import $axios from '@/api'
+  import { useDemensionListStore } from '@/store/demensionList'
+  import { onMounted, ref } from 'vue'
+
+  const details = ref<any>({})
+  const getData = async () => {
+    const params = {
+      dimensionCode: useDemensionListStore().selectDemension?.code,
+      entityId: useDemensionListStore().entityId,
+      entityName: useDemensionListStore().entityName,
+      entityType: useDemensionListStore().entityType
+    }
+    const res:any = await $axios.get('lawyer-workbench/risk/dimension/page',{params})
+    details.value = res
+  }
+
+  onMounted(() => {
+    getData()
+  })
+</script>
+
+<style scoped lang="scss">
+#ShiJiaoZiBen {
+  display: flex;
+  flex-direction: column;
+  background: #fff;
+  .content {
+    flex: 1;
+    overflow: auto;
+  }
+
+  .show {
+    padding: 10px 10px;
+    line-height: 26px;
+    font-size: 14px;
+    text-indent: 30px;
+    &.oth {
+      text-indent: 0px;
+      padding-top: 0px;
+      color: #999;
+    }
+  }
+}
+</style>

+ 5 - 16
src/js-pages/company-detail/index.ts

@@ -1,25 +1,14 @@
-import { JingYingFengXian } from './JingYingFengXian/index'
-import { QiYeRongZi } from './QiYeRongZi/index'
-import { JiBenXinXi } from './JiBenXinXi/index'
 import { TotalDemensionInter } from './../types'
-import { FaLvFengXian } from './FaLvFengXian/index'
-import { JianZhuXinXi } from './JianZhuXinXi/index'
-import { JingYingXinXi } from './JingYingXinXi/index'
-import { ZhiShiChanQuan } from './ZhiShiChanQuan/index'
+
+const modules = import.meta.globEager('./pages/*.ts')
 
 const companyDetail: TotalDemensionInter = {
   companyName: '企业详情',
   list: []
 }
 
-console.log('FaLvFengXian:' + FaLvFengXian.list.length)
-console.log('JiBenXinXi:' + JiBenXinXi.list.length)
-console.log('JianZhuXinXi:' + JianZhuXinXi.list.length)
-console.log('QiYeRongZi:' + QiYeRongZi.list.length)
-console.log('JingYingFengXian:' + JingYingFengXian.list.length)
-console.log('JingYingXinXi:' + JingYingXinXi.list.length)
-console.log('ZhiShiChanQuan:' + ZhiShiChanQuan.list.length)
-
-companyDetail.list.push(FaLvFengXian, JiBenXinXi, JianZhuXinXi, QiYeRongZi, JingYingFengXian, JingYingXinXi, ZhiShiChanQuan)
+Object.values(modules).map(item => {
+  companyDetail.list.push(item.pageArr)
+})
 
 export default companyDetail

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

@@ -1,6 +1,7 @@
 import { shallowRef } from 'vue'
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import PoChanChongZheng from '@/components/DetailCustom/PoChanChongZheng.vue'
+import SiFaPaiMaiVue from '@/components/DetailCustom/SiFaPaiMai.vue'
 
 const judgeTendencyCom = (judgeTendency: string) => {
   if (['撤诉', '对方撤诉'].includes(judgeTendency)) {
@@ -39,7 +40,7 @@ const judgeTendencyCom = (judgeTendency: string) => {
   }
 }
 //数量全完成
-export const FaLvFengXian: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   projectName: '法律风险',
   list: [
     {
@@ -515,6 +516,8 @@ export const FaLvFengXian: DemensionPagesInter = {
       code: 'judicial_auction',
       routing: 'SiFaPaiMai',
       title: '司法拍卖',
+      // detailCustomRender: shallowRef(SiFaPaiMaiVue),
+      detailRouteParams: ['auctionItemsId'],
       viewList: [
         {
           value: 'auctionTitle',

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

@@ -1,5 +1,5 @@
 import { $goOuterUrl } from '@/utils/utils'
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import SheBaoRenShuVue from '@/components/ListCustom/SheBaoRenShu.vue'
 import NianDuBaoGao from '@/components/DetailCustom/NianDuBaoGao.vue'
 import CaiWuShuJu from '@/components/ListCustom/CaiWuShuJu.vue'
@@ -8,7 +8,7 @@ import ZuiZhongShouYiRen from '@/components/ListCustom/ZuiZhongShouYiRen.vue'
 import ShiJiKongZhiRen from '@/components/ListCustom/ShiJiKongZhiRen.vue'
 import KongGuQiYe from '@/components/ListCustom/KongGuQiYe.vue'
 import { shallowRef } from 'vue'
-export const JiBenXinXi: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   //维度已完成
   projectName: '基本信息',
   list: [

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

@@ -1,5 +1,5 @@
-import { DemensionPagesInter } from './../../types'
-export const JianZhuXinXi: DemensionPagesInter = {
+import { DemensionPagesInter } from '../../types'
+export const pageArr: DemensionPagesInter = {
   projectName: '建筑信息',
   list: [
     {

+ 163 - 3
src/js-pages/company-detail/JingYingFengXian/index.ts

@@ -1,4 +1,4 @@
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import JianYiZhuXiao from '@/components/DetailCustom/JianYiZhuXiao.vue'
 import { shallowRef } from 'vue'
 import DongChanDiYaVue from '@/components/DetailCustom/DongChanDiYa.vue'
@@ -6,7 +6,7 @@ import JieSanQingSuan from '@/components/ListCustom/JieSanQingSuan.vue'
 import ZhuXiaoBeiAn from '@/components/ListCustom/ZhuXiaoBeiAn.vue'
 import GuQuanZhiYa from '@/components/ListCustom/GuQuanZhiYa.vue'
 //数量全完成
-export const JingYingFengXian: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   projectName: '经营风险',
   list: [
     {
@@ -73,7 +73,168 @@ export const JingYingFengXian: DemensionPagesInter = {
       routing: 'GuQuanChuZhi',
       title: '股权出质',
       companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      detailList: [
+        {
+          name: '登记编号',
+          value: 'regNumber'
+        },
+        {
+          name: '状态',
+          value: 'state'
+        },
+        {
+          name: '出质人',
+          listVal: 'pledgorInfo',
+          companyId: 'pledgor_id',
+          value: 'pledgor'
+        },
+        {
+          name: '出质人证件号码',
+          value: 'certifNumberPledgor'
+        },
+        {
+          name: '出质股权数额',
+          value: 'equityAmount'
+        },
+        {
+          name: '质权人',
+          listVal: 'pledgeeInfo',
+          companyId: 'pledgee_id',
+          value: 'pledgee'
+        },
+        {
+          name: '质权人证件号',
+          value: 'certifNumberPledgee'
+        },
+        {
+          name: '股权出质登记日期',
+          value: 'regDate',
+          valueType: 'date'
+        },
+        {
+          name: '出质股权标的企业',
+          value: 'relatedCompanyName'
+        }
+      ],
+      tabs: { key: 'deleted' },
+      menuList: [
+        {
+          paramsValue: 'equityType',
+          value: '',
+          list: [
+            {
+              text: '身份不限',
+              value: ''
+            },
+            {
+              text: '出质人',
+              value: '1'
+            },
+            {
+              text: '出质标的企业',
+              value: '0'
+            }
+          ]
+        },
+        {
+          paramsValue: 'equityState',
+          value: '',
+          list: [
+            {
+              text: '状态不限',
+              value: ''
+            },
+            {
+              text: '有效',
+              value: '有效'
+            },
+            {
+              text: '无效',
+              value: '无效'
+            }
+          ]
+        }
+      ],
+      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'
+        }
+      ]
+    },
+    {
+      code: 'pledgee_equity',
+      routing: 'GuQuanChuZhiZhiQuanRen',
+      title: '股权出质(质权人)',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
       tabs: { key: 'deleted' },
+      detailList: [
+        {
+          name: '登记编号',
+          value: 'regNumber'
+        },
+        {
+          name: '状态',
+          value: 'state'
+        },
+        {
+          name: '出质人',
+          listVal: 'pledgorInfo',
+          companyId: 'pledgor_id',
+          value: 'pledgor'
+        },
+        {
+          name: '出质人证件号码',
+          value: 'certifNumberPledgor'
+        },
+        {
+          name: '出质股权数额',
+          value: 'equityAmount'
+        },
+        {
+          name: '质权人',
+          listVal: 'pledgeeInfo',
+          companyId: 'pledgee_id',
+          value: 'pledgee'
+        },
+        {
+          name: '质权人证件号',
+          value: 'certifNumberPledgee'
+        },
+        {
+          name: '股权出质登记日期',
+          value: 'regDate',
+          valueType: 'date'
+        },
+        {
+          name: '出质股权标的企业',
+          value: 'relatedCompanyName'
+        }
+      ],
       menuList: [
         {
           paramsValue: 'equityType',
@@ -178,7 +339,6 @@ export const JingYingFengXian: DemensionPagesInter = {
       routing: 'TuDiGongShi',
       title: '土地公示',
       companyId: '6820fae3c815fb899214617b54efadf7',
-      // tabs:
       viewList: [
         {
           value: 'location',

+ 77 - 14
src/js-pages/company-detail/JingYingXinXi/index.ts

@@ -4,10 +4,10 @@ import ZhuYaoKeHu from '@/components/ListCustom/ZhuYaoKeHu.vue'
 import GongYingShang from '@/components/ListCustom/GongYingShang.vue'
 import { $goOuterUrl } from '@/utils/utils'
 import { shallowRef } from 'vue'
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import ShuangSuiJiChouCha from '@/components/DetailCustom/ShuangSuiJiChouCha.vue'
 //维度已完成
-export const JingYingXinXi: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   projectName: '基本信息',
   list: [
     {
@@ -559,10 +559,73 @@ export const JingYingXinXi: DemensionPagesInter = {
       ]
     },
     {
-      code: 'land_public',
-      routing: 'TuDiGongShi',
-      title: '地块公式',
-      companyId: 'a10a3675d3f4e38af372dcd8eddce29f',
+      code: 'land_transfer_old',
+      routing: 'TuDiZhuanRang',
+      title: '土地转让',
+      companyId: '6820fae3c815fb899214617b54efadf7',
+      detailList: [
+        {
+          name: '宗地坐落',
+          value: 'location'
+        },
+        {
+          name: '宗地编号',
+          value: 'num'
+        },
+        {
+          name: '原土地所有权人',
+          value: 'userPre'
+        },
+        {
+          name: '现有土地使用权人',
+          value: 'userNow'
+        },
+        {
+          name: '宗地标识',
+          value: 'mark'
+        },
+        {
+          name: '土地面积(公顷)',
+          value: 'area'
+        },
+        {
+          name: '土地用途',
+          value: 'useFor'
+        },
+        {
+          name: '所在行政区',
+          value: 'aministrativeArea'
+        },
+        {
+          name: '成交时间',
+          value: 'merchandiseTime',
+          valueType: 'date'
+        },
+        {
+          name: '土地使用权类型',
+          value: 'useType'
+        },
+        {
+          name: '土地使用年限(年)',
+          value: 'yearsOfUse'
+        },
+        {
+          name: '土地利用状况',
+          value: 'situation'
+        },
+        {
+          name: '土地级别',
+          value: 'level'
+        },
+        {
+          name: '转让方式',
+          value: 'merchandiseType'
+        },
+        {
+          name: '转让价格(万元)',
+          value: 'merchandisePrice'
+        }
+      ],
       viewList: [
         {
           value: 'location',
@@ -573,20 +636,20 @@ export const JingYingXinXi: DemensionPagesInter = {
           value: 'area'
         },
         {
-          name: '土地用途',
-          value: 'useFor'
+          name: '转让价格(万元)',
+          value: 'merchandisePrice'
         },
         {
-          name: '发布机关',
-          value: 'publicationOrganize'
+          name: '原土地使用权人',
+          value: 'userPre'
         },
         {
-          name: '受让单位',
-          value: 'applicationName'
+          name: '现土地使用权人',
+          value: 'userNow'
         },
         {
-          name: '开始公布日期',
-          value: 'publicationDate',
+          name: '成交时间',
+          value: 'merchandiseTime',
           valueType: 'date'
         }
       ]

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

@@ -1,8 +1,8 @@
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import pdfImg from '@/assets/img/pdf.png'
 import { $goOuterUrl } from '@/utils/utils'
 //维度已完成
-export const QiYeRongZi: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   projectName: '法律风险',
   list: [
     {

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

@@ -1,4 +1,4 @@
-import { DemensionPagesInter } from './../../types'
+import { DemensionPagesInter } from '../../types'
 import webImg from '@/assets/img/web.png'
 import { $goOuterUrl } from '@/utils/utils'
 const shangBiaoSelectList = [
@@ -76,7 +76,7 @@ const returnZhuanliStatus = (stamp: string) => {
 
 
 
-export const ZhiShiChanQuan: DemensionPagesInter = {
+export const pageArr: DemensionPagesInter = {
   projectName: '知识产权',
   list: [
     {

+ 14 - 0
src/js-pages/finance-detail/index.ts

@@ -0,0 +1,14 @@
+import { TotalDemensionInter } from './../types'
+
+const modules = import.meta.globEager('./pages/*.ts')
+
+const financeDetail: TotalDemensionInter = {
+  companyName: '找财产',
+  list: []
+}
+
+Object.values(modules).map(item => {
+  financeDetail.list.push(item.pageArr)
+})
+
+export default financeDetail

+ 45 - 0
src/js-pages/finance-detail/pages/DuiWaiTouZi.ts

@@ -0,0 +1,45 @@
+import { DemensionPagesInter } from '../../types'
+export const pageArr: DemensionPagesInter = {
+  projectName: '对外投资',
+  list: [
+    {
+      code: 'equity_participation',
+      routing: 'CanGuQiYe',
+      title: '参股企业',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      apiUrl: 'firefly-erp/eci/dimension/detail',
+      viewList: [
+        {
+          value: 'name',
+          valueType: 'title'
+        },
+        {
+          name: '法定代表人',
+          value: 'legalPersonName'
+        },
+        {
+          name: '注册资本',
+          value: 'regCapital'
+        },
+        {
+          name: '投资比例',
+          value: 'percent'
+        },
+        {
+          name: '经营状态',
+          value: 'regStatus'
+        },
+        {
+          name: '成立日期',
+          value: 'estiblishTime',
+          valueType: 'date'
+        },
+        {
+          name: '统一社会信用代码',
+          value: 'creditCode'
+        }
+
+      ]
+    }
+  ]
+}

+ 75 - 0
src/js-pages/finance-detail/pages/DuiWaiZhaiQuan.ts

@@ -0,0 +1,75 @@
+import { DemensionPagesInter } from '../../types'
+export const pageArr: DemensionPagesInter = {
+  projectName: '对外投资',
+  list: [
+    {
+      code: 'direct_debt',
+      routing: 'ZhiJieZaiQuan',
+      title: '直接债权',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      apiUrl: 'firefly-erp/eci/dimension/detail',
+      noDataList: true,
+      viewList: [
+        {
+          name: '债务人',
+          value: 'debtor'
+        },
+        {
+          name: '案件本金',
+          value: 'casePrincipal',
+          valueType: 'w'
+        },
+        {
+          name: '管辖法院',
+          value: 'jurisdictionCourt'
+        },
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '判决裁定日期',
+          value: 'judgeDate',
+          valueType: 'date'
+        }
+      ]
+    },
+    {
+      code: 'indirect_debt',
+      routing: 'JianJieZaiQuan',
+      title: '间接债权',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      apiUrl: 'firefly-erp/eci/dimension/detail',
+      noDataList: true,
+      viewList: [
+        {
+          name: '债权人',
+          value: 'inCreditor'
+        },
+        {
+          name: '债务人',
+          value: 'debtor'
+        },
+        {
+          name: '案件本金',
+          value: 'casePrincipal',
+          valueType: 'w'
+        },
+        {
+          name: '管辖法院',
+          value: 'jurisdictionCourt'
+        },
+        {
+          name: '案号',
+          value: 'caseNo'
+        },
+        {
+          name: '判决裁定日期',
+          value: 'judgeDate',
+          valueType: 'date'
+        }
+      ]
+    }
+  ]
+}
+

+ 15 - 0
src/js-pages/finance-detail/pages/YiSiCaiChanXinXi.ts

@@ -0,0 +1,15 @@
+import { DemensionPagesInter } from '../../types'
+import ZhuCeDiZhi from '@/components/ListCustom/ZhuCeDiZhi.vue'
+import { shallowRef } from 'vue'
+export const pageArr: DemensionPagesInter = {
+  projectName: '账户',
+  list: [
+    {
+      code: 'registered_address_v8',
+      routing: 'ZhuCeDiZhi',
+      title: '注册地址',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      listCustomRender: shallowRef(ZhuCeDiZhi)
+    }
+  ]
+}

+ 15 - 0
src/js-pages/finance-detail/pages/ZhangHu.ts

@@ -0,0 +1,15 @@
+import { DemensionPagesInter } from '../../types'
+import YingHangZhangHu from '@/components/ListCustom/YingHangZhangHu.vue'
+import { shallowRef } from 'vue'
+export const pageArr: DemensionPagesInter = {
+  projectName: '账户',
+  list: [
+    {
+      code: 'bank_account',
+      routing: 'YingHangZhangHu',
+      title: '银行账户',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      listCustomRender: shallowRef(YingHangZhangHu)
+    }
+  ]
+}

+ 60 - 0
src/js-pages/finance-detail/pages/ZiBen.ts

@@ -0,0 +1,60 @@
+import { DemensionPagesInter } from '../../types'
+import ZhuCeZiBen from '@/components/ListCustom/ZhuCeZiBen.vue'
+import { shallowRef } from 'vue'
+export const pageArr: DemensionPagesInter = {
+  projectName: '资本',
+  list: [
+    {
+      code: 'registered_capital_v8',
+      routing: 'ZhuCeZiBen',
+      title: '注册资本',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      listCustomRender: shallowRef(ZhuCeZiBen)
+    },
+    {
+      code: 'registered_capital_v8',
+      routing: 'ShiJiaoZiBen',
+      title: '实缴资本',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      listCustomRender: shallowRef(ZhuCeZiBen)
+    },
+    {
+      code: 'registered_capital_v8',
+      routing: 'WeiJiaoZiBen',
+      title: '未缴资本',
+      companyId: '88f04cbfab150fe2bccdeec3aea32750',
+      listCustomRender: shallowRef(ZhuCeZiBen)
+    },
+    {
+      code: 'increase_record',
+      routing: 'ZengZiJiLu',
+      title: '增资记录',
+      companyId: '8897bb91d0c93eef49f7627f84d6e212',
+      noDataList: true,
+      viewList: [
+        {
+          name: '变更日期',
+          value: 'changeTime',
+          valueType: 'date'
+        },
+        {
+          name: '变更类别',
+          value: 'category'
+        },
+        {
+          name: '变更事项',
+          value: 'changeItem'
+        },
+        {
+          name: '增资前',
+          value: 'contentBefore'
+        },
+        {
+          name: '增资后',
+          value: 'contentAfter'
+        }
+      ]
+    }
+
+  ]
+}

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

@@ -1,9 +1,9 @@
 import { TotalDemensionInter } from './types'
 import companyDetail from './company-detail'
-// import F2 from '@antv/f2'
+import financeDetail from './finance-detail'
 
 const pagesArr: TotalDemensionInter[] = []
 
-pagesArr.push(companyDetail)
+pagesArr.push(companyDetail, financeDetail)
 
 export default pagesArr

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

@@ -39,6 +39,10 @@ export interface DemensionPagesListInter {
   listCustomRender?: any,
   detailCustomRender?: any,
   /**
+ * 自定义的详情页路由参数
+ */
+  detailRouteParams?: string[],
+  /**
   * 公司的ID,方便调试用,88f开头是乐视
   */
   companyId: '88f04cbfab150fe2bccdeec3aea32750' | string,
@@ -49,7 +53,7 @@ export interface DemensionPagesListInter {
   /**
  * apiUrl
  */
-  apiUrl?: string,
+  apiUrl?: 'firefly-erp/eci/dimension/detail' | string,
 }
 
 

+ 1 - 1
src/layout/Layout.vue

@@ -16,7 +16,7 @@
   watch(() => route.path,() => {
     if(!store.entityId) {
       store.entityId = route.query.companyId  || 'e8ee433fae5e03e4816c0b5981da76ba'
-      store.entityName = route.query.companyName  || '广州天力建筑工程有限公司'
+      store.entityName = route.query.companyName  || '宁德时代新能源科技股份有限公司'
     }
   })
 

+ 11 - 1
src/plugins/vant.ts

@@ -1,4 +1,8 @@
-import { Button, Empty, Row, Tab, Tabs, List, Icon, DropdownMenu, DropdownItem, Collapse, CollapseItem, Cell, Col, Step, Steps, Skeleton } from 'vant'
+import {
+  Button, Empty, Row,
+  Tab, Tabs, List, Icon, DropdownMenu, DropdownItem,
+  Toast, Collapse, CollapseItem, Cell, Col, Step, Steps, Skeleton, Popup, Swipe, SwipeItem, ActionSheet
+} from 'vant'
 import { App } from 'vue'
 
 export const useVant = (app: App<Element>) => {
@@ -18,4 +22,10 @@ export const useVant = (app: App<Element>) => {
   app.use(Steps)
   app.use(Skeleton)
   app.use(Empty)
+  app.use(Toast)
+  app.use(Popup)
+  app.use(Swipe)
+  app.use(SwipeItem)
+  app.use(ActionSheet)
+
 }

+ 5 - 5
src/router/index.ts

@@ -6,6 +6,11 @@ const routes: Array<RouteRecordRaw> = [
     component: () => import('@/views/demension/list.vue')
   },
   {
+    path: '/:routerName(.*)_history',
+    name: 'demension_history',
+    component: () => import('@/views/demension/list.vue')
+  },
+  {
     path: '/',
     redirect: '/index'
   },
@@ -14,11 +19,6 @@ const routes: Array<RouteRecordRaw> = [
     name: 'index',
     component: () => import('@/views/index.vue')
   },
-  // {
-  //   path: '/demension',
-  //   name: 'demension',
-  //   component: () => import('@/views/demension/list.vue')
-  // },
   {
     path: '/:routerName(.*)Det',
     name: 'detail',

+ 3 - 1
src/utils/utils.ts

@@ -50,12 +50,14 @@ export const $isCompanyClass = (companyId: string) => {
 //选择匹配的企业维度
 export const $getDemension = (routerName?: string) => {
   const route = useRoute()
+  console.log(route.params.routerName)
+
   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 selectDemension = allDemensionArr.find(item => (routerName ? `/${routerName}` : route.path) === `/${item.routing}`)!
+  const selectDemension = allDemensionArr.find(item => (routerName ? `/${routerName}` : route.params.routerName) === `${item.routing}`)!
 
   return {
     selectDemension,