Jelajahi Sumber

Merge branch 'master' into ETA1.6.7

jwyu 1 tahun lalu
induk
melakukan
85f7818a50
44 mengubah file dengan 243 tambahan dan 121 penghapusan
  1. 4 4
      src/App.vue
  2. 4 0
      src/api/modules/setApi.js
  3. TEMPAT SAMPAH
      src/assets/img/eta_base_config/website_title.png
  4. 1 1
      src/main.js
  5. 21 1
      src/utils/commonOptions.js
  6. 2 0
      src/views/Login.vue
  7. 2 2
      src/views/approve_manage/approveEdit.vue
  8. 2 2
      src/views/approve_manage/components/flowEdiotr.vue
  9. 1 1
      src/views/approve_manage/components/flowNode/addNode.vue
  10. 6 6
      src/views/approve_manage/components/flowNode/approveNode.vue
  11. 27 17
      src/views/approve_manage/components/treeTransfer.vue
  12. 1 0
      src/views/chartRelevance_manage/css/index.scss
  13. 3 2
      src/views/dataEntry_manage/chartSetting.vue
  14. 7 4
      src/views/dataEntry_manage/coal/index.vue
  15. 8 0
      src/views/dataEntry_manage/css/baseTargetPage.scss
  16. 3 2
      src/views/dataEntry_manage/css/coalCommon.scss
  17. 2 2
      src/views/dataEntry_manage/dataEntry.vue
  18. 3 3
      src/views/dataEntry_manage/databaseList.vue
  19. 17 4
      src/views/dataEntry_manage/mixins/addOreditMixin.js
  20. 4 3
      src/views/dataEntry_manage/thirdBase/BAIINFOTargetbase.vue
  21. 6 4
      src/views/dataEntry_manage/thirdBase/FwmtData.vue
  22. 4 3
      src/views/dataEntry_manage/thirdBase/SCITargetbase.vue
  23. 10 4
      src/views/dataEntry_manage/thirdBase/YyzxData.vue
  24. 3 2
      src/views/dataEntry_manage/thirdBase/elaSteoBase.vue
  25. 1 0
      src/views/dataEntry_manage/thirdBase/glTargetbase.vue
  26. 1 0
      src/views/dataEntry_manage/thirdBase/lzTargetbase.vue
  27. 4 3
      src/views/dataEntry_manage/thirdBase/smmTargetbase.vue
  28. 4 3
      src/views/dataEntry_manage/thirdBase/steelChemicalbase.vue
  29. 1 0
      src/views/datasheet_manage/customAnalysis/list.vue
  30. 1 0
      src/views/datasheet_manage/sheetList.vue
  31. 1 0
      src/views/mychart_manage/index.vue
  32. 5 5
      src/views/operation_manage/AIQA/AIQA.vue
  33. 2 2
      src/views/ppt_manage/mixins/pptMixins.js
  34. 1 0
      src/views/ppt_manage/newVersion/pptCatalog.vue
  35. 33 22
      src/views/ppt_manage/newVersion/pptEditor.vue
  36. 1 0
      src/views/ppt_manage/newVersion/pptEnCatalog.vue
  37. 32 12
      src/views/ppt_manage/newVersion/pptEnEditor.vue
  38. 1 1
      src/views/report_manage/mixins/editor.js
  39. 1 1
      src/views/report_manage/mixins/reportMixin.js
  40. 1 1
      src/views/report_manage/reportEn/reportEditor.vue
  41. 1 0
      src/views/sandbox_manage/index_new_version.vue
  42. 2 2
      src/views/smartReport/components/ImgSource.vue
  43. 1 1
      src/views/smartReport/components/TextEdit.vue
  44. 8 1
      src/views/system_manage/etaBaseConfig.vue

+ 4 - 4
src/App.vue

@@ -224,8 +224,8 @@ iframe {
 
 /*修改滚动条样式 chrome edge safari*/
 div::-webkit-scrollbar {
-  width: 6px;
-  height: 6px;
+  width: 7px;
+  height: 7px;
 }
 div::-webkit-scrollbar-track {
   background: rgb(239, 239, 239);
@@ -276,8 +276,8 @@ div::-webkit-scrollbar-corner {
 
 /*修改滚动条样式 chrome edge safari*/
 ul::-webkit-scrollbar {
-  width: 6px;
-  height: 6px;
+  width: 7px;
+  height: 7px;
 }
 ul::-webkit-scrollbar-track {
   background: rgb(239, 239, 239);

+ 4 - 0
src/api/modules/setApi.js

@@ -6,6 +6,10 @@ const departInterence = {
 	systemUserInfo:params=>{
 		return http.get('/system/sysuser/detail',{})
 	},
+	//获取系统用户(树形格式)
+	getSystemUser:params=>{
+		return http.get("/system/department/user_tree",params)
+	},
 
 	/**
 	 * AdminId

TEMPAT SAMPAH
src/assets/img/eta_base_config/website_title.png


+ 1 - 1
src/main.js

@@ -203,7 +203,7 @@ router.beforeEach(async(to, from, next) => {
 router.afterEach((to, from, next) => {
   // 改变页面标题
   document.title = to.matched[to.matched.length - 1].name
-  ? `${setting.name}-${to.matched[to.matched.length - 1].name}`
+  ? `${to.matched[to.matched.length - 1].name}`
   : setting.name;
 
   window.scrollTo(0, 0);

+ 21 - 1
src/utils/commonOptions.js

@@ -48,4 +48,24 @@ export function isMobileNo(account) {
     return phonePatter.test(account)
   }
 //验证邮箱的正则
-export const patternEmail = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/
+export const patternEmail = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/
+
+
+//遍历树形结构并设置唯一key
+export function traverseTree(tree,{childKey='children',nodeKey='nodeKey',cb=()=>false,cb2=()=>''}) {
+    let index = 0; // 初始化索引值
+    function dfs(node) {
+        if(cb(node)){ //特殊节点设置key
+            node[nodeKey] = cb2(node)
+        }else{
+            node[nodeKey] = `unique_${index}`; // 为当前节点设置唯一的 key
+        }
+        if (Array.isArray(node[childKey])) {
+            for (let child of node[childKey]) {
+                dfs(child); // 递归调用 DFS 函数处理子节点
+            }
+        }
+        index++; // 更新索引值
+    }
+    dfs(tree); // 从根节点开始进行遍历
+}

+ 2 - 0
src/views/Login.vue

@@ -413,6 +413,8 @@ export default {
                 if(res.Ret == 200){
                     this.recordInformation = res.Data.Icp?res.Data.Icp.ConfVal.split(/\s{2,}/):[]
                     this.loginTitle = res.Data.ETATitle?res.Data.ETATitle.ConfVal:''
+                    this.$setting.name = res.Data.TabName?res.Data.TabName.ConfVal:''
+                    document.title = this.$setting.name
                 }
             })
         },

+ 2 - 2
src/views/approve_manage/approveEdit.vue

@@ -96,8 +96,8 @@ export default {
                 const Users = data[i].approvers.map((item,index)=>{
                     return {
                         UserType:'user',//目前只有审批节点,都是user
-                        UserId:item.ItemId,
-                        UserName:item.ItemName,
+                        UserId:item.NodeId,
+                        UserName:item.NodeName,
                         Sort:data[i].ApproveType===1?index+1:0
                     }
                 })

+ 2 - 2
src/views/approve_manage/components/flowEdiotr.vue

@@ -46,8 +46,8 @@ export default {
             const approveData = this.flowNodes.map(n=>{
                 const approvers = n.Users.map(i=>{
                     return {
-                        ItemId:i.UserId,
-                        ItemName:i.UserName
+                        NodeId:i.UserId,
+                        NodeName:i.UserName
                     }
                 })
                 return {

+ 1 - 1
src/views/approve_manage/components/flowNode/addNode.vue

@@ -20,7 +20,7 @@ export default {
             this.visible = false
             const data = {
                 nodeType:2,
-                ApproveType:1,
+                ApproveType:3,
                 nodeName:'ApproveNode',
                 approvers:[],
                 prevNode:this.node

+ 6 - 6
src/views/approve_manage/components/flowNode/approveNode.vue

@@ -8,8 +8,8 @@
             </div>
             <div class="content" @click="showDrawer">
                 <ul class="approver-list" v-if="flowNode.approvers.length">
-                    <li class="list-item" v-for="(item,index) in flowNode.approvers" :key="item.ItemId">
-                        {{item.ItemName}}{{index===flowNode.approvers.length-1?'':'、'}}
+                    <li class="list-item" v-for="(item,index) in flowNode.approvers" :key="item.NodeIdKey">
+                        {{item.NodeName}}{{index===flowNode.approvers.length-1?'':'、'}}
                     </li>
                 </ul>
                 <span v-else style="color:#0052D9;display: flex;align-items: center;">
@@ -45,8 +45,8 @@
                             animation="300"
                             tag="ul"
                             class="approve-list">
-                            <li class="list-item" v-for="item in choosedList" :key="item.ItemId">
-                                <span class="name">{{item.ItemName}}</span>
+                            <li class="list-item" v-for="item in choosedList" :key="item.NodeIdKey">
+                                <span class="name">{{item.NodeName}}</span>
                                 <span class="icon-btn">
                                     <i class="el-icon-close" @click.stop="removeChoosedItem(item)"></i>
                                 </span>
@@ -129,7 +129,7 @@ export default {
         return {
             drawerShow: false,
             block1: 1,
-            approveType: 1,
+            approveType: 3,
             chooseDialogShow: false,
             choosedList:[]
         };
@@ -158,7 +158,7 @@ export default {
             this.chooseDialogShow = false
         },
         removeChoosedItem(item){
-            const index = this.choosedList.findIndex(i=>i.ItemId===item.ItemId)
+            const index = this.choosedList.findIndex(i=>i.NodeIdKey===item.NodeIdKey)
             index!==-1&&this.choosedList.splice(index,1)
         },
         editApproveNode(){

+ 27 - 17
src/views/approve_manage/components/treeTransfer.vue

@@ -8,12 +8,12 @@
             </div>
             <div class="content">
                 <el-tree 
-                    node-key="ItemId"
+                    node-key="NodeIdKey"
                     ref="trans-tree"
                     show-checkbox
                     :data="treeData"
                     :props="{
-                        label:'ItemName',
+                        label:'NodeName',
                         children:'Children'
                     }"
                     :filter-node-method="filterNode"
@@ -31,8 +31,8 @@
                 animation="300"
                 tag="ul"
                 class="content">
-                <li class="list-item" v-for="item in choosedList" :key="item.ItemId">
-                    <span class="name">{{item.ItemName}}</span>
+                <li class="list-item" v-for="item in choosedList" :key="item.NodeIdKey">
+                    <span class="name">{{item.NodeName}}</span>
                     <span class="icon-btn" style="color:#C0C4CC;">
                         <i class="el-icon-close" @click.stop="removeItem(item)"></i>
                     </span>
@@ -43,7 +43,8 @@
 </template>
 
 <script>
-import { dataAuthInterface } from "@/api/api.js";
+import { departInterence } from "@/api/api.js";
+import { traverseTree, findInTree } from "@/utils/commonOptions"
 import draggable from 'vuedraggable';
 export default {
     components:{draggable},
@@ -78,16 +79,25 @@ export default {
     },
     methods: {
         getTreeData(){
-            ///datamanage/manual/sysuser/search?KeyWord= ,要用新接口再换
-            dataAuthInterface.userSearch({
+            departInterence.getSystemUser({
                 KeyWord: ''
             }).then(res => {
                 if(res.Ret === 200) {
                     this.treeData = res.Data||[];
+                    //遍历加上唯一的key
+                    traverseTree(
+                        {Children:this.treeData},
+                        {
+                            childKey:'Children',
+                            nodeKey:'NodeIdKey',
+                            cb:(node)=>node.NodeType===3,
+                            cb2:(node)=>node.NodeId+''
+                        }
+                    )
                 }
                 this.$nextTick(()=>{
                     const keys = this.defaultList.map(i=>{
-                        return i.ItemId
+                        return i.NodeId
                     })
                     this.$refs["trans-tree"].setCheckedKeys(keys)
                     this.choosedList = _.cloneDeep(this.defaultList)
@@ -96,40 +106,40 @@ export default {
         },
         filterNode(value,data){
             if(!value) return true
-            return data.ItemName.indexOf(value)!==-1
+            return data.NodeName.indexOf(value)!==-1
         },
         SetCheckedNode(data,{checkedNodes}){
             if(!this.choosedList.length){
                  //只获取人员
                 this.choosedList = checkedNodes.filter(i=>{
-                    if(i.ItemId<10000&&!i.Children)
+                    if(i.NodeType===3)
                         return i
                 })
             }else{
                 //遍历 filterArr choosedList里没有的,push进去
                 const filterArr = checkedNodes.filter(i=>{
-                    if(i.ItemId<10000&&!i.Children)
+                    if(i.NodeType===3)
                         return i
                 })
                 filterArr.forEach(i=>{
-                    const index = this.choosedList.findIndex(item=>i.ItemId===item.ItemId)
+                    const index = this.choosedList.findIndex(item=>i.NodeIdKey===item.NodeIdKey)
                     if(index===-1){this.choosedList.push(i)}
                 })
                 //遍历choosedList,filterArr里没有的,删除
                 const tempArr = _.cloneDeep(this.choosedList)
                 tempArr.forEach(i=>{
-                    const checkIndex = filterArr.findIndex(item=>item.ItemId===i.ItemId)
+                    const checkIndex = filterArr.findIndex(item=>item.NodeIdKey===i.NodeIdKey)
                     if(checkIndex===-1){
-                        const index = this.choosedList.findIndex(item=>item.ItemId===i.ItemId)
+                        const index = this.choosedList.findIndex(item=>item.NodeIdKey===i.NodeIdKey)
                         index!==-1&&this.choosedList.splice(index,1)
                     }
                 })
             }
         },
         removeItem(item){
-            const {ItemId} = item
-            this.$refs["trans-tree"].setChecked(ItemId,false,false)
-            const index = this.choosedList.findIndex(i=>i.ItemId===ItemId)
+            const {NodeIdKey} = item
+            this.$refs["trans-tree"].setChecked(NodeIdKey,false,false)
+            const index = this.choosedList.findIndex(i=>i.NodeIdKey===NodeIdKey)
             index!==-1&&this.choosedList.splice(index,1)
         },
         clearnItem(){

+ 1 - 0
src/views/chartRelevance_manage/css/index.scss

@@ -77,6 +77,7 @@ $normal-font: 14px;
         padding: 30px 20px;
         max-height: calc(100vh - 280px);
         overflow: auto;
+        margin-right: 20px;
       }
       .target_tree {
         color: #333;

+ 3 - 2
src/views/dataEntry_manage/chartSetting.vue

@@ -2760,9 +2760,9 @@ export default {
     }
     .chartSetting_main {
       /* display: flex; */
-      div::-webkit-scrollbar {
+      /* div::-webkit-scrollbar {
         width: 5px !important;
-      }
+      } */
       .slide-icon {
         padding: 20px 0;
         /* display: block; */
@@ -2807,6 +2807,7 @@ export default {
           padding: 15px 20px 30px;
           overflow: auto;
           max-height: calc(100vh - 330px);
+          margin-right: 20px;
         }
         .target_tree {
           font-size: 14px;

+ 7 - 4
src/views/dataEntry_manage/coal/index.vue

@@ -526,8 +526,10 @@ export default {
     }
   }
   .el-tree-node__content {
-    // min-height: 26px;
-    // white-space: normal;
+    min-height: 26px;
+    height: auto;
+    white-space: normal;
+    margin-bottom: 5px;
   }
 }
 </style>
@@ -552,9 +554,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 250px;
     width:250px;
@@ -569,6 +571,7 @@ export default {
       /* margin-top: 20px; */
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .classify-item {
         font-size: 14px;
         color: #666;

+ 8 - 0
src/views/dataEntry_manage/css/baseTargetPage.scss

@@ -19,4 +19,12 @@
             margin-left: 0 !important;
         }
     }
+    .word-wrap{
+        .el-tree-node__content {
+            min-height: 26px;
+            height: auto;
+            white-space: normal;
+            margin-bottom: 5px;
+          }
+    }
 }

+ 3 - 2
src/views/dataEntry_manage/css/coalCommon.scss

@@ -19,9 +19,9 @@
     border-radius: 4px;
     box-sizing: border-box;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 240px;
     width:240px;
@@ -36,6 +36,7 @@
       margin-top: 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .classify-item {
         font-size: 14px;
         color: #666;

+ 2 - 2
src/views/dataEntry_manage/dataEntry.vue

@@ -1180,9 +1180,9 @@ export default {
       padding: 0 10px;
       height: calc(100% - 176px);
       overflow-y: scroll;
-      &::-webkit-scrollbar {
+      /* &::-webkit-scrollbar {
         width: 0px !important;
-      }
+      } */
       .classify-item {
         text-align: left;
         font-size: 15px;

+ 3 - 3
src/views/dataEntry_manage/databaseList.vue

@@ -2120,9 +2120,9 @@ export default {
 		position:relative;
 		width:100%;
 		overflow-x: auto;
-		div::-webkit-scrollbar {
+		/* div::-webkit-scrollbar {
 			width: 5px !important;
-		}
+		} */
 		.main-left {
 			width: 400px;
 			min-width: 300px;
@@ -2136,7 +2136,7 @@ export default {
 			position: relative;
 			box-sizing: border-box;
 			.tree-cont {
-				padding: 30px 0 30px 30px;
+				padding: 30px;
 				/* height: calc(100vh - 290px);
 				overflow: auto; */
 			}

+ 17 - 4
src/views/dataEntry_manage/mixins/addOreditMixin.js

@@ -186,7 +186,7 @@ export default {
 			}
 			//如果类型为对数,检测数据是否包含负数
 			if(ConvertType===3){
-				if(!this.checkEdbData(this.tableData[index].DataList)){
+				if(!this.checkEdbData(this.tableData[index].DataList||[])){
 					this.updateData[index].IsConvert = false
 					return this.$message.warning("指标数据含有负数或0,无法进行对数运算")
 				}
@@ -245,9 +245,22 @@ export default {
 			}
 		},
 		checkEdbData(data){
-			const ValueArr = data.map(i=>(i.Value||0))
-			const minData = Math.min(...ValueArr)
-			return minData>0
+			//季节性图要遍历data 取下一层的DataList
+			if(this.chartInfo.ChartType===2){
+				let minDataArr = []
+				data.forEach(d=>{
+					const DataList = d.DataList||[]
+					const ValueArr = DataList.map(i=>(i.Value||0))
+					const minData = Math.min(...ValueArr)
+					minDataArr.push(minData)
+				})
+				return Math.min(...minDataArr)>0
+			}else{
+				//其他图
+				const ValueArr = data.map(i=>(i.Value||0))
+				const minData = Math.min(...ValueArr)
+				return minData>0
+			}
 		},
 		/* 选择指标 获取指标详情并push到表格中*/
 		selectTarget(item,type='') {

+ 4 - 3
src/views/dataEntry_manage/thirdBase/BAIINFOTargetbase.vue

@@ -1226,9 +1226,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+/*   div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -1240,9 +1240,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .target_tree {
         color: #333;
         .label-input .el-input__inner {

+ 6 - 4
src/views/dataEntry_manage/thirdBase/FwmtData.vue

@@ -50,7 +50,7 @@
       <div class="scroll-wrap">
         <el-tree
           ref="treeRef"
-          class="target_tree"
+          class="target_tree word-wrap"
           :data="classifyList"
           node-key="ClassifyId"
           :props="{
@@ -389,6 +389,7 @@ export default {
 </script>
 <style lang="scss">
 @import "../css/customtree.scss";
+@import "../css/baseTargetPage.scss";
 .smmTarget-dialog-cont {
   .el-cascader {
     .el-input {
@@ -409,9 +410,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+/*   div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -423,9 +424,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .target_tree {
         color: #333;
         .label-input .el-input__inner {

+ 4 - 3
src/views/dataEntry_manage/thirdBase/SCITargetbase.vue

@@ -1114,9 +1114,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -1128,9 +1128,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right:20px;
       .target_tree {
         color: #333;
         .label-input .el-input__inner {

+ 10 - 4
src/views/dataEntry_manage/thirdBase/YyzxData.vue

@@ -51,7 +51,7 @@
       <div class="scroll-wrap">
         <el-tree
           ref="treeRef"
-          class="target_tree"
+          class="target_tree word-wrap"
           :data="classifyList"
           node-key="ClassifyId"
           :props="{
@@ -375,6 +375,11 @@ export default {
   
     //改变选中节点
     nodeChangeHandle(data, node) {
+      //目录不显示数据
+      if(data.Level===1&&data.Children){
+        this.rightShow = false
+        return
+      }
       if (data.ClassifyId === this.select_classify) return;
       this.select_classify = data.ClassifyId;
       this.leftSearchVal=''
@@ -433,9 +438,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -447,9 +452,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .target_tree {
         color: #333;
         .label-input .el-input__inner {

+ 3 - 2
src/views/dataEntry_manage/thirdBase/elaSteoBase.vue

@@ -322,9 +322,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 240px;
     width:240px;
@@ -339,6 +339,7 @@ export default {
       /* margin-top: 20px; */
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .classify-item {
         font-size: 14px;
         color: #666;

+ 1 - 0
src/views/dataEntry_manage/thirdBase/glTargetbase.vue

@@ -482,6 +482,7 @@ export default {
       /* margin-top: 20px; */
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .classify-item {
         font-size: 14px;
         color: #666;

+ 1 - 0
src/views/dataEntry_manage/thirdBase/lzTargetbase.vue

@@ -415,6 +415,7 @@ export default {
       margin-top: 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .classify-item {
         font-size: 14px;
         color: #666;

+ 4 - 3
src/views/dataEntry_manage/thirdBase/smmTargetbase.vue

@@ -1182,9 +1182,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -1196,9 +1196,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
       .target_tree {
         color: #333;
         .label-input .el-input__inner {

+ 4 - 3
src/views/dataEntry_manage/thirdBase/steelChemicalbase.vue

@@ -749,9 +749,9 @@ export default {
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
   }
-  div::-webkit-scrollbar {
+  /* div::-webkit-scrollbar {
     width: 5px !important;
-  }
+  } */
   .left-cont {
     min-width: 300px;
     width: 300px;
@@ -764,9 +764,10 @@ export default {
       padding: 0 20px;
     }
     .scroll-wrap {
-      padding: 0 10px;
+      padding: 0 20px;
       height: calc(100vh - 280px);
       overflow-y: auto;
+      margin-right: 20px;
     }
     .target_tree {
       color: #333;

+ 1 - 0
src/views/datasheet_manage/customAnalysis/list.vue

@@ -953,6 +953,7 @@ $normal-font: 14px;
         padding: 30px 20px;
         max-height: calc(100vh - 280px);
         overflow: auto;
+        margin-right:20px;
       }
       .target_tree {
         color: #333;

+ 1 - 0
src/views/datasheet_manage/sheetList.vue

@@ -1116,6 +1116,7 @@ $normal-font: 14px;
         padding: 30px 20px;
         max-height: calc(100vh - 280px);
         overflow: auto;
+        margin-right: 20px;
       }
       .target_tree {
         color: #333;

+ 1 - 0
src/views/mychart_manage/index.vue

@@ -1110,6 +1110,7 @@ export default {
       overflow: auto;
       max-height: calc(100vh - 290px);
       position: relative;
+      margin-right: 20px;
       .classify-item {
         padding: 10px 30px;
         display: flex;

+ 5 - 5
src/views/operation_manage/AIQA/AIQA.vue

@@ -63,7 +63,7 @@
                 <div class="upload-row">
                     <el-upload
                     style="display: inline-block; margin-right: 8px"
-                    accept=".pptx,.pdf,.docx,.doc"
+                    accept=".pptx,.pdf,.docx"
                     action=""
                     :http-request="handleUpload"
                     :before-upload="handleBeforeUpload"
@@ -71,7 +71,7 @@
                     :disabled="startUploadAudio">
                         <img src="~@/assets/img/icons/ai-upload.png" />
                     </el-upload>
-                    <span>支持格式:PDF、PPTX、DOC、DOCX;大小不超过50MB</span>
+                    <span>支持格式:PDF、PPTX、DOCX;大小不超过50MB</span>
                 </div>
                 <textarea rows="6" v-model="inputText" placeholder="请输入提问,Shift+Enter换行" @keydown.enter="handleSendMsg"></textarea>
                 <div class="send-btn" @click="handleSendMsg"><img src="~@/assets/img/ai_m/send.png" />发送</div>
@@ -132,7 +132,7 @@ export default {
             aiFileIds:[],
             // 上传窗口的队列
             windowSet:new Set(),
-            fileTypeRule:new RegExp(/\.pdf|\.pptx|\.doc(x)?$/,'i')
+            fileTypeRule:new RegExp(/\.pdf|\.pptx|\.docx$/,'i')
         };
     },
     watch:{
@@ -461,7 +461,7 @@ export default {
                         }
                         this.handleUpload({file})
                     }else{
-                        return this.$message.error("上传文件格式只支持PDF、PPTX、DOC、DOCX");
+                        return this.$message.error("上传文件格式只支持PDF、PPTX、DOCX");
                     }
                 }
             }else{
@@ -472,7 +472,7 @@ export default {
         },
         handleBeforeUpload(e) {
             if(!this.fileTypeRule.test(e.name)){
-                this.$message.error("上传文件格式只支持PDF、PPTX、DOC、DOCX");
+                this.$message.error("上传文件格式只支持PDF、PPTX、DOCX");
                 return false;
             }
             if(!(e.size/1024/1024 < 50.1)){

+ 2 - 2
src/views/ppt_manage/mixins/pptMixins.js

@@ -567,8 +567,8 @@ export default {
           
           let tickInterval = undefined;
           if((modelId!==1&&MyChartType===2) 
-            || ([1,4,6].includes(MyChartType)&&[10,12].includes(modelId))) {
-              tickInterval = (Math.max(...maxData)-Math.min(...minData))/4;
+          || ([1,4,6].includes(MyChartType)&&[10,12].includes(modelId))) {
+              tickInterval = (Math.max(...maxData)-Math.min(...minData))/6;
           }
         
 

+ 1 - 0
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -1420,6 +1420,7 @@ export default {
       margin-top:20px;
       height: calc(100vh - 290px);
       overflow-y: scroll;
+      margin-right:8px;
       &::-webkit-scrollbar-track{
         display: none;
       }

+ 33 - 22
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -635,30 +635,41 @@ export default {
       this.chartLoadingText = "上传图片中..."
       this.isChartLoading = true
 
-      // const params = new FormData();
-			// params.append('Image',$event.src)
-      // const res = await dataBaseInterface.uploadImg(params);
-      // if(!res||res&&res.Ret!==200){
-      //   this.isChartLoading = false
-      //   return
-      // }
-      // const {Data} = res
-      // if(!Data){
-      //   this.$message.warning("上传图片失败")
-      //   this.isChartLoading = false
-      //   return
-      // }
-      // this.imgUrl = Data.ResourceUrl||''
-
-      //直接走oss不走接口
-      let clientType = this.$setting.dynamicOutLinks.ObjectStorageClient 
-        || this.$store.state.dynamicOutLinks.ObjectStorageClient 
-        || JSON.parse(localStorage.getItem('dynamicOutLinks')).ObjectStorageClient;
       
-      let temName = `ppt/image/${new Date().getTime()}`
+      
+      // 1走后端接口上传
+      const uploadType=this.$setting.dynamicOutLinks.PptUpdateApi ||
+                        this.$store.state.dynamicOutLinks.PptUpdateApi ||
+                        JSON.parse(localStorage.getItem('dynamicOutLinks')).PptUpdateApi
+      if(uploadType==1){
+        const params = new FormData();
+        params.append('Image',$event.src)
+        const res = await dataBaseInterface.uploadImg(params);
+        if(!res||res&&res.Ret!==200){
+          this.isChartLoading = false
+          return
+        }
+        const {Data} = res
+        if(!Data){
+          this.$message.warning("上传图片失败")
+          this.isChartLoading = false
+          return
+        }
+        this.imgUrl = Data.ResourceUrl||''
+        
+      }else{
+        //直接走oss不走接口
+        let clientType = this.$setting.dynamicOutLinks.ObjectStorageClient 
+          || this.$store.state.dynamicOutLinks.ObjectStorageClient 
+          || JSON.parse(localStorage.getItem('dynamicOutLinks')).ObjectStorageClient;
+        
+        let temName = `ppt/image/${new Date().getTime()}`
 
-      const res = await uploadFileDirect(clientType,$event.src,temName)
-      this.imgUrl = res;
+        const res = await uploadFileDirect(clientType,$event.src,temName)
+        this.imgUrl = res;
+      }
+
+      
       
       //console.log('OK',$event)
       let temp_elements = this.addElement(

+ 1 - 0
src/views/ppt_manage/newVersion/pptEnCatalog.vue

@@ -1313,6 +1313,7 @@ export default {
       margin-top:20px;
       height: calc(100vh - 290px);
       overflow-y: scroll;
+      margin-right:8px;
       &::-webkit-scrollbar-track{
         display: none;
       }

+ 32 - 12
src/views/ppt_manage/newVersion/pptEnEditor.vue

@@ -644,20 +644,40 @@ export default {
       if(this.isChartLoading) return
       this.chartLoadingText = "上传图片中..."
       this.isChartLoading = true
-      // const params = new FormData();
-			// params.append('Image',$event.src)
-      // const { Data } = await dataBaseInterface.uploadImg(params);
-      // this.imgUrl = Data.ResourceUrl
-
-      //直接走oss不走接口
-      let clientType = this.$setting.dynamicOutLinks.ObjectStorageClient 
-        || this.$store.state.dynamicOutLinks.ObjectStorageClient 
-        || JSON.parse(localStorage.getItem('dynamicOutLinks')).ObjectStorageClient;
       
-      let temName = `ppt/image/${new Date().getTime()}`
 
-      const res = await uploadFileDirect(clientType,$event.src,temName)
-      this.imgUrl = res;
+      // 1走后端接口上传
+      const uploadType=this.$setting.dynamicOutLinks.PptUpdateApi ||
+                        this.$store.state.dynamicOutLinks.PptUpdateApi ||
+                        JSON.parse(localStorage.getItem('dynamicOutLinks')).PptUpdateApi
+      if(uploadType==1){
+        const params = new FormData();
+        params.append('Image',$event.src)
+        const res = await dataBaseInterface.uploadImg(params);
+        if(!res||res&&res.Ret!==200){
+          this.isChartLoading = false
+          return
+        }
+        const {Data} = res
+        if(!Data){
+          this.$message.warning("上传图片失败")
+          this.isChartLoading = false
+          return
+        }
+        this.imgUrl = Data.ResourceUrl||''
+      }else{
+        //直接走oss不走接口
+        let clientType = this.$setting.dynamicOutLinks.ObjectStorageClient 
+          || this.$store.state.dynamicOutLinks.ObjectStorageClient 
+          || JSON.parse(localStorage.getItem('dynamicOutLinks')).ObjectStorageClient;
+        
+        let temName = `ppt/image/${new Date().getTime()}`
+
+        const res = await uploadFileDirect(clientType,$event.src,temName)
+        this.imgUrl = res;
+      }
+
+      
 
       //console.log('OK',$event)
       let temp_elements = this.addElement(

+ 1 - 1
src/views/report_manage/mixins/editor.js

@@ -42,7 +42,7 @@ export default {
           "redo",
         ],
         height: 800,
-        fontSize: ["12", "14", "16", "18", "20", "24", "28", "32", "36", "40"],
+        fontSize: ["12", "13","14","15", "16", "18", "20", "24", "28", "32", "36", "40"],
         fontSizeDefaultSelection: "16",
         theme: "dark", //主题
         placeholderText: "请输入内容",

+ 1 - 1
src/views/report_manage/mixins/reportMixin.js

@@ -82,7 +82,7 @@ export default {
           "redo",
         ],
         height: 800,
-        fontSize: ["12", "14", "16", "18", "20", "24", "28", "32", "36", "40"],
+        fontSize: ["12", "13","14","15", "16", "18", "20", "24", "28", "32", "36", "40"],
         fontSizeDefaultSelection: "16",
         theme: "dark", //主题
         placeholderText: "请输入内容",

+ 1 - 1
src/views/report_manage/reportEn/reportEditor.vue

@@ -489,7 +489,7 @@ export default {
 					'undo',
 					'redo',
         ],
-        fontSize: ["12", "14", "16", "18", "20", "24", "28", "32", "36", "40"],
+        fontSize: ["12", "13","14","15", "16", "18", "20", "24", "28", "32", "36", "40"],
         height:300,
         fontSizeDefaultSelection: "16",
         quickInsertEnabled: false,

+ 1 - 0
src/views/sandbox_manage/index_new_version.vue

@@ -1240,6 +1240,7 @@ import { myGraph } from './common/gragh';
         padding: 0 20px;
         overflow: auto;
         scroll-behavior: smooth;
+        margin-right: 20px;
         .add-classify{
           margin: 30px 0 50px;
           display: flex;

+ 2 - 2
src/views/smartReport/components/ImgSource.vue

@@ -9,11 +9,11 @@
                     class="search-box"
 					placeholder="请输入图片名称"
 					v-model="keyword"
-					size="medium"
                     @input="handleSearch"
                     style="width:240px"
+                    size="medium"
 				/>
-                <el-select placeholder="请选择图片类型" v-model="type" style="width:240px" @change="handleSearch">
+                <el-select placeholder="请选择图片类型" v-model="type" style="width:240px" @change="handleSearch" size="medium">
                     <el-option label="版头" :value="1"></el-option>
                     <el-option label="版尾" :value="2"></el-option>
                 </el-select>

+ 1 - 1
src/views/smartReport/components/TextEdit.vue

@@ -59,7 +59,7 @@ export default {
                     "redo",
                 ],
                 height: 800,
-                fontSize: ["12", "14", "16", "18", "20", "24", "28", "32", "36", "40"],
+                fontSize: ["12", "13","14","15", "16", "18", "20", "24", "28", "32", "36", "40"],
                 fontSizeDefaultSelection: "16",
                 theme: "dark", //主题
                 placeholderText: "请输入内容",

+ 8 - 1
src/views/system_manage/etaBaseConfig.vue

@@ -85,6 +85,10 @@
                         <el-input type="text" v-model="formData.ETATitle" placeholder="请输入登录页标题" />
                         <ConfigAnnotation picHintText="" picName="ETATitle" @showImage="previewImage"/>
                     </el-form-item>
+                    <el-form-item label="网站名称" prop="TabName">
+                        <el-input type="text" v-model="formData.TabName" placeholder="请输入登录页标题" />
+                        <ConfigAnnotation picHintText="" picName="TabName" @showImage="previewImage"/>
+                    </el-form-item>
                 </div>
             </div>
             <!-- 研报设置 -->
@@ -384,6 +388,7 @@ export default {
                 ReportApproveType:'eta',//研报审批选项
                 ICPLicense:'', //备案信息
                 ETATitle:'', //登录页标题
+                TabName:'',//网页名称
             },//表单预设值
             rules: {
                 Disclaimer:[{ required: true, message: '请输入免责声明', trigger: 'blur' }],
@@ -413,6 +418,7 @@ export default {
                 CnPptCoverImgs:[{ required: true, validator:ListValidator}],
                 EnPptCoverImgs:[{ required: true, validator:ListValidator}],
                 ETATitle:[{ required: true, message: '请输入登录页标题', trigger: 'blur' }],
+                TabName:[{ required: true, message: '请输入网站名称', trigger: 'blur' }],
             },//表单校验
             disclaimerConfig:{
                 toolbarButtons:[
@@ -466,7 +472,8 @@ export default {
                 'pptBackPic':[require('@/assets/img/eta_base_config/ppt_back.jpg')],
                 'emailContentTemplate':[require('@/assets/img/eta_base_config/email_content_template.png')],
                 'ICPLicense':[require('@/assets/img/eta_base_config/record_information.jpg')],
-                'ETATitle':[require('@/assets/img/eta_base_config/ETA_title.png')]
+                'ETATitle':[require('@/assets/img/eta_base_config/ETA_title.png')],
+                'TabName':[require('@/assets/img/eta_base_config/website_title.png')]
             },
             /* loading */
             configLoading:null,