Bläddra i källkod

Merge branch 'debug' of http://8.136.199.33:3000/eta_front/eta_mobile_front into debug

shanbinzhang 2 veckor sedan
förälder
incheckning
f7a7209f3b

+ 2 - 2
src/api/chart.js

@@ -112,8 +112,8 @@ export default{
     /**
      * 获取ETA图库分类数据
      */
-    ETAChartClassifyList:()=>{
-        return get('/datamanage/chart_classify/items',{})
+    ETAChartClassifyList:params=>{
+        return get('/datamanage/chart_classify/items',params)
     },
     /**
      * ETA图库图表另存为

+ 35 - 18
src/views/chartETA/ChartDetail.vue

@@ -618,29 +618,46 @@ function openAddToMyETADialog(){
     isShowAddToMyETADialog.value = true
 }
 //删除图表
-function deleteChart(){
+async function deleteChart(){
+    const res = await apiChart.deleteCheck({
+        ChartClassifyId:Number(routeQueryData.chartClassifyId),
+        ChartInfoId:Number(routeQueryData.id),
+    })
+    if(res.Ret!==200) return
+    const hintTextMap = {
+        0:'确定删除当前分类吗?',
+        1:'该分类下关联图表不可删除!',
+        2:'确认删除当前分类及包含的子分类吗?',
+        3:'删除后,该图表将从ETA投研资源库同步删除,影响客户的查看权限,是否确认删除?'
+    }
     showDialog({
         title: '提示',
-        message: '删除后该图表将不能再引用,确认删除吗?',
-        showCancelButton:true
+        message: hintTextMap[res.Data.DeleteStatus||0],
+        showCancelButton:res.Data.DeleteStatus!==1
     }).then(() => {
-        apiChart.deleteClassify({
-            ChartClassifyId:Number(routeQueryData.chartClassifyId),
-            ChartInfoId:Number(routeQueryData.id),
-        }).then(res=>{
-            if(res.Ret===200){
-                cachedViewsStore.removeCaches('ChartETAList')
-                cachedViewsStore.removeCaches('ChartETASearch')
-                showToast('删除成功')
-                setTimeout(() => {
-                    router.back()
-                }, 1000);
-            }
-        })
-    }).catch(()=>{
-        
+        if(res.Data.DeleteStatus!==1){
+            handleDeleteRequest()
+        }
+    }).catch(()=>{})
+}
+
+// 删除请求
+function handleDeleteRequest(){
+    apiChart.deleteClassify({
+        ChartClassifyId:Number(routeQueryData.chartClassifyId),
+        ChartInfoId:Number(routeQueryData.id),
+    }).then(res=>{
+        if(res.Ret===200){
+            cachedViewsStore.removeCaches('ChartETAList')
+            cachedViewsStore.removeCaches('ChartETASearch')
+            showToast('删除成功')
+            setTimeout(() => {
+                router.back()
+            }, 1000);
+        }
     })
 }
+
 // 保存至素材库
 const showSaveToMaterial=ref(false)
 function handleShowSaveToMaterial(){

+ 11 - 1
src/views/chartETA/List.vue

@@ -27,6 +27,7 @@ const {
     optArrNode,
     authOptArr,
 } = useCatalogList()
+const category = ref('')
 
 //跳转至图表详情页
 const goChartDetail = (item)=>{
@@ -396,6 +397,10 @@ function onLoad(){
     getChartList()
 }
 
+function onClickTab() {
+    getCatalogList(category.value)
+}
+
 getCatalogList()
 getChartList()
 </script>
@@ -457,7 +462,12 @@ getChartList()
         <van-popup v-model:show="IsShowCatalog" position="right" class="catalog-list-wrap" style="height:100%">
             <div class="catalog-list">
                 <div class="top sticky-part">
-                    <h3>分类</h3>
+                    <!-- <h3>分类</h3>
+                    <h3>精选资源</h3> -->
+                    <van-tabs v-model:active="category" @click-tab="onClickTab" :ellipsis="false">
+                        <van-tab title="分类"></van-tab>
+                        <van-tab title="精选资源"></van-tab>
+                    </van-tabs>
                     <van-icon name="cross" @click.stop="IsShowCatalog=false"/>
                 </div>
                 <!-- 将目录改为三级 -->

+ 5 - 2
src/views/chartETA/hooks/useCatalogList.js

@@ -70,8 +70,11 @@ export function useCatalogList(){
     const catalogNodes = ref([])
     const currentLang = ref('')
     //获取目录列表
-    async function getCatalogList(){
-        const res = await apiChart.ETAChartClassifyList()
+    async function getCatalogList(IsSelected){
+        const params = {
+            IsSelected: IsSelected
+        }
+        const res = await apiChart.ETAChartClassifyList(params)
         if(res.Ret!==200) return 
         currentLang.value = res.Data.Language
         localStorage.setItem('chartETALange',currentLang.value)

+ 29 - 17
src/views/myETA/ChartDetail.vue

@@ -534,25 +534,37 @@ function handleRemoveChart(){
 }
 
 //删除图表
-function handleDeleteChart(){
+async function handleDeleteChart(){ 
+    const res = await apiChart.deleteCheck({
+        ChartClassifyId:chartInfo.value.chartClassifyId,
+        ChartInfoId:chartInfo.value.ChartInfoId,
+    })
+    if(res.Ret!==200) return
+    const hintTextMap = {
+        0:'确定删除当前分类吗?',
+        1:'该分类下关联图表不可删除!',
+        2:'确认删除当前分类及包含的子分类吗?',
+        3:'删除后,该图表将从ETA投研资源库同步删除,影响客户的查看权限,是否确认删除?'
+    }
     showDialog({
         title: '提示',
-        message: '删除后该图表将不能再引用,确认删除吗?',
-        showCancelButton:true
-    }).then(async () => {
-        // on close
-        const res=chartInfo.value.Source===11?await apiSheet.balanceSheetChartDel({
-            ChartInfoId:chartInfo.value.ChartInfoId
-        }):await apiMyETAChart.chartDel({
-            ChartInfoId:chartInfo.value.ChartInfoId
-        })
-        if(res.Ret===200){
-            showToast('删除成功')
-            cachedViewsStore.removeCaches('MyETAIndex')
-            cachedViewsStore.removeCaches('MyETASearchList')
-            setTimeout(() => {
-                router.back()
-            }, 1500)
+        message: hintTextMap[res.Data.DeleteStatus||0],
+        showCancelButton:res.Data.DeleteStatus!==1
+    }).then(async() => {
+        if(res.Data.DeleteStatus!==1){
+            const res=chartInfo.value.Source===11?await apiSheet.balanceSheetChartDel({
+                ChartInfoId:chartInfo.value.ChartInfoId
+            }):await apiMyETAChart.chartDel({
+                ChartInfoId:chartInfo.value.ChartInfoId
+            })
+            if(res.Ret===200){
+                showToast('删除成功')
+                cachedViewsStore.removeCaches('MyETAIndex')
+                cachedViewsStore.removeCaches('MyETASearchList')
+                setTimeout(() => {
+                    router.back()
+                }, 1500)
+            }
         }
     }).catch(()=>{})
 }

+ 11 - 3
src/views/myETA/ChooseChart.vue

@@ -6,6 +6,7 @@ import apiCorrelation from '@/api/correlationChart'
 import apiLineEquationChart from '@/api/lineEquationChart'
 import apiStatisticFeatureChart from '@/api/statisticFeatureChart'
 import apiCrossVarietyChart from '@/api/crossVarietyChart'
+import apiIntervalAnalysis from '@/api/intervalAnalysis'
 import {apiMyClassifyList,apiMyChartAdd,apiAddClassify} from '@/api/myETA'
 import { showToast } from 'vant';
 import { useWindowSize } from '@vueuse/core'
@@ -38,6 +39,10 @@ const typeOpt=[
     {
         name:"跨品种分析",
         type:6,
+    },
+    {
+        name:"区间分析",
+        type:7,
     }
 
 ]
@@ -74,10 +79,11 @@ async function getChartList(){
         res=await apiStatisticFeatureChart.searchChart(params)
     }else if(type.value==6){
         res=await apiCrossVarietyChart.searchChart(params)
+    }else if(type.value==7){
+        res=await apiIntervalAnalysis.searchChart(params)
     }
-    
+    listState.loading=false
     if(res.Ret==200){
-        listState.loading=false
         if(!res.Data){
             listState.finished=true
             return
@@ -85,16 +91,18 @@ async function getChartList(){
 
         listState.finished=res.Data.Paging.IsEnd
         const arr=res.Data.List||[]
-        listState.list=[...listState.list,...arr]
+        listState.list=listState.page == 1 ? arr : [...listState.list,...arr]
     }
 }
 
 function onLoad(){
+    listState.loading=true
     listState.page++
     getChartList()
 }
 
 function refreshList(){
+    listState.loading=true
     listState.list=[]
     listState.page=1
     listState.finished=false

+ 21 - 0
src/views/ppt/components/SheetWrap.vue

@@ -12,6 +12,22 @@ const props=defineProps({
     }
 })
 
+const SheetFFType = {
+    0 : 'Times New Roman',
+    1 : 'Arial',
+    2 : 'Tahoma',
+    3 : 'Verdana',
+    4 : '微软雅黑',
+    5 : '宋体(Song)',
+    6 : '黑体(ST Heiti)',
+    7 : '楷体(ST Kaiti)',
+    8 : '仿宋(ST FangSong)',
+    9 : '新宋体(ST Song)',
+    10 : '华文新魏',
+    11 : '华文行楷',
+    12 : '华文隶书',
+ }
+
 const sourceFrom=ref(null)
 
 // 获取表格数据
@@ -34,6 +50,10 @@ function setDefaultSource(sourceText){
     }
 }
 
+function handleFF(ff){
+    return ff ? (typeof ff == 'number' ? SheetFFType[ff] :  ff) : ''
+}
+
 
 onMounted(()=>{
     getSheetInfo()
@@ -56,6 +76,7 @@ onMounted(()=>{
                                 font-weight: ${col.bl ? 'bold' : 'normal'};
                                 font-style: ${col.it ? 'italic' : 'normal'};
                                 background: ${col.bg||'transparent'};
+                                font-family: ${handleFF(col.ff)};
                             `"
                         >
                             <!-- 单元格拆分 -->

+ 52 - 27
src/views/report/components/reportInsert/ETAChart.vue

@@ -2,6 +2,10 @@
 import {reactive, ref, watch} from 'vue'
 import apiChart from '@/api/chart'
 import apiFutureChart from '@/api/futureChart'
+import MyETAChart from './MyETAChart.vue'
+import ETAForumChart from './ETAForumChart.vue'
+import StatisticAnalysis from './StatisticAnalysis.vue'
+import PriceChart from './PriceChart.vue'
 import { showToast } from 'vant'
 import { vInfiniteScroll } from '@vueuse/components'
 import { useNoAuth } from '@/hooks/useNoAuth'
@@ -10,6 +14,7 @@ const emits=defineEmits(['update'])
 
 const searchVal=ref('')
 const onlyMe=ref(false)
+const activeType=ref('')
 
 const listState=reactive({
     page:1,
@@ -81,39 +86,59 @@ watch(
     }
 )
 
+function handleSelectChart(val){
+    emits('update',val)
+}
+
 </script>
 
 <template>
     <div class="ETA-chart-wrap">
-        <div class="sticky-box">
-            <van-search v-model="searchVal" shape="round" placeholder="请输入图表名称" @search="handleRefreshList" @clear="handleRefreshList" />
-            <van-checkbox v-model="onlyMe" @change="handleRefreshList">只看我的</van-checkbox>
-        </div>
-        <div class="content-box">
-            <div v-if="listState.list.length==0&&listState.finished">
-                <img class="list-empty-img" src="https://hzstatic.hzinsights.com/static/ETA_mobile/empty_img.png" alt="">
-                <p style="text-align:center;color:#999999;font-size:12px">暂无图表</p>
-            </div>
-            
-            <ul class="chart-list" v-infinite-scroll="[onLoadMore, { 'distance' : 10 }]">
-                <li 
-                    :class="['chart-item',selectChartList.includes(item.UniqueCode)&&'active']" 
-                    v-for="item in listState.list" 
-                    :key="item.ChartInfoId"
-                    @click="handleSelect(item)"
-                >
-                    <div class="van-multi-ellipsis--l2 title" v-html="item.SearchText"></div>
-                    <img :src="!item.HaveOperaAuth?useNoAuth().noAuthImg:item.ChartImage" alt="">
+        <van-tabs v-model:active="activeType">
+            <van-tab title="图库">
+                <div class="sticky-box">
+                    <van-search v-model="searchVal" shape="round" placeholder="请输入图表名称" @search="handleRefreshList" @clear="handleRefreshList" />
+                    <van-checkbox v-model="onlyMe" @change="handleRefreshList">只看我的</van-checkbox>
+                </div>
+                <div class="content-box">
+                    <div v-if="listState.list.length==0&&listState.finished">
+                        <img class="list-empty-img" src="https://hzstatic.hzinsights.com/static/ETA_mobile/empty_img.png" alt="">
+                        <p style="text-align:center;color:#999999;font-size:12px">暂无图表</p>
+                    </div>
+                    
+                    <ul class="chart-list" v-infinite-scroll="[onLoadMore, { 'distance' : 10 }]">
+                        <li 
+                            :class="['chart-item',selectChartList.includes(item.UniqueCode)&&'active']" 
+                            v-for="item in listState.list" 
+                            :key="item.ChartInfoId"
+                            @click="handleSelect(item)"
+                        >
+                            <div class="van-multi-ellipsis--l2 title" v-html="item.SearchText"></div>
+                            <img :src="!item.HaveOperaAuth?useNoAuth().noAuthImg:item.ChartImage" alt="">
 
-                    <svg v-if="selectChartList.includes(item.UniqueCode)" width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg">
-                        <path d="M14.5 28C22.232 28 28.5 21.732 28.5 14C28.5 6.26801 22.232 0 14.5 0C6.76801 0 0.5 6.26801 0.5 14C0.5 21.732 6.76801 28 14.5 28ZM7.5 14.413L8.913 13L12.5 16.586L20.085 9L21.5 10.415L12.5 19.414L7.5 14.413Z" fill="#0052D9"/>
-                    </svg>
+                            <svg v-if="selectChartList.includes(item.UniqueCode)" width="29" height="28" viewBox="0 0 29 28" fill="none" xmlns="http://www.w3.org/2000/svg">
+                                <path d="M14.5 28C22.232 28 28.5 21.732 28.5 14C28.5 6.26801 22.232 0 14.5 0C6.76801 0 0.5 6.26801 0.5 14C0.5 21.732 6.76801 28 14.5 28ZM7.5 14.413L8.913 13L12.5 16.586L20.085 9L21.5 10.415L12.5 19.414L7.5 14.413Z" fill="#0052D9"/>
+                            </svg>
 
-                </li>
-                <li class="chart-item" style="height:0;border:none;margin-bottom:0;padding:0"></li>
-                <li class="chart-item" style="height:0;border:none;margin-bottom:0;padding:0"></li>
-            </ul>
-        </div>
+                        </li>
+                        <li class="chart-item" style="height:0;border:none;margin-bottom:0;padding:0"></li>
+                        <li class="chart-item" style="height:0;border:none;margin-bottom:0;padding:0"></li>
+                    </ul>
+                </div>
+            </van-tab>
+            <van-tab title="我的图库">
+                <MyETAChart @update="handleSelectChart"/>
+            </van-tab>
+            <van-tab title="ETA社区图库">
+                <ETAForumChart @update="handleSelectChart"/>
+            </van-tab>
+            <van-tab title="统计分析">
+                <StatisticAnalysis @update="handleSelectChart"/>
+            </van-tab>
+            <van-tab title="商品价格曲线">
+                <PriceChart @update="handleSelectChart"/>
+            </van-tab>
+        </van-tabs>
     </div>
 </template>
 

+ 0 - 28
src/views/report/components/reportInsert/Index.vue

@@ -2,15 +2,11 @@
 import {ref} from 'vue'
 import {apiMenuList} from '@/api/user'
 import ETAChart from './ETAChart.vue'
-import MyETAChart from './MyETAChart.vue'
 import SandTableImg from './SandTableImg.vue'
 import SheetTableChart from './SheetTableChart.vue'
 import SemanticsImg from './SemanticsImg.vue'
 import MaterialImg from './reportMaterial/Index.vue'
-import StatisticAnalysis from './StatisticAnalysis.vue'
-import PriceChart from './PriceChart.vue'
 import BalanceSheet from './BalanceSheet/Index.vue'
-import ETAForumChart from './ETAForumChart.vue'
 
 const emits=defineEmits(['insert'])
 
@@ -26,16 +22,6 @@ const typeOpt=ref([
         label:'图库',
         path:''
     },
-    {
-        value:'批量插入',
-        label:'我的图库',
-        path:'mychart'
-    },
-    {
-        value:'etaForum',
-        label:'ETA社区图库',
-        path:'mychart'
-    },
     {
         value:'表格插入',
         label:'表格',
@@ -46,16 +32,6 @@ const typeOpt=ref([
         label:'平衡表',
         path:'sheetBalanceList'
     },
-    {
-        value:'统计分析',
-        label:'统计分析',
-        path:''
-    },
-    {
-        value:'商品价格曲线',
-        label:'商品价格曲线',
-        path:'commordityChartBase'
-    },
     {
         value:'沙盘插入',
         label:'逻辑图',
@@ -125,15 +101,11 @@ function handleConfirmInsert(){
         </ul>
         <div class="main-box">
             <ETAChart @update="handleSelectChart" v-if="activeType==='图表插入'"/>
-            <MyETAChart @update="handleSelectChart" v-if="activeType==='批量插入'"/>
             <SheetTableChart @update="handleSelectChart" v-if="activeType==='表格插入'"/>
             <SandTableImg @update="handleSelectChart" v-if="activeType==='沙盘插入'"/>
             <SemanticsImg @update="handleSelectChart" v-if="activeType==='语义分析插入'"/>
             <MaterialImg @update="handleSelectChart" v-if="activeType==='素材库'"/>
-            <StatisticAnalysis @update="handleSelectChart" v-if="activeType==='统计分析'"/>
-            <PriceChart @update="handleSelectChart" v-if="activeType==='商品价格曲线'"/>
             <BalanceSheet @update="handleSelectChart" @insert="handleConfirmInsert" v-if="activeType==='平衡表'"/>
-            <ETAForumChart @update="handleSelectChart" v-if="activeType==='etaForum'"/>
         </div>
         <div class="bot-btn" v-if="activeType!=='平衡表'">
             <van-button type="primary" block @click="handleConfirmInsert" :disabled="list.length===0">插入</van-button>