Эх сурвалжийг харах

Merge branch 'master' into eta1.1.6

Karsa 1 жил өмнө
parent
commit
786e74fa92
100 өөрчлөгдсөн 1057 нэмэгдсэн , 1148 устгасан
  1. 8 1
      build/webpack.base.conf.js
  2. 1 1
      config/index.js
  3. 3 1
      package.json
  4. 12 4
      src/App.vue
  5. 3 1
      src/api/api.js
  6. 46 2
      src/api/modules/sandApi.js
  7. 4 0
      src/api/modules/setApi.js
  8. 35 1
      src/api/modules/thirdBaseApi.js
  9. 3 0
      src/assets/icons/filter.svg
  10. BIN
      src/assets/img/sand_new/add_ico.png
  11. BIN
      src/assets/img/sand_new/add_outline.png
  12. BIN
      src/assets/img/sand_new/arrow_black_down.png
  13. BIN
      src/assets/img/sand_new/copy.png
  14. BIN
      src/assets/img/sand_new/delete_outline.png
  15. BIN
      src/assets/img/sand_new/delete_outline_1.png
  16. BIN
      src/assets/img/sand_new/double-arrow-round.png
  17. BIN
      src/assets/img/sand_new/double-arrow-straight.png
  18. BIN
      src/assets/img/sand_new/double-arrow.png
  19. BIN
      src/assets/img/sand_new/edit_outline.png
  20. BIN
      src/assets/img/sand_new/eye-show-black.png
  21. BIN
      src/assets/img/sand_new/mindmap-double.png
  22. BIN
      src/assets/img/sand_new/mindmap-right.png
  23. BIN
      src/assets/img/sand_new/no-arrow-round.png
  24. BIN
      src/assets/img/sand_new/no-arrow-straight.png
  25. BIN
      src/assets/img/sand_new/no-arrow.png
  26. BIN
      src/assets/img/sand_new/remove.png
  27. BIN
      src/assets/img/sand_new/save-other.png
  28. BIN
      src/assets/img/sand_new/single-arrow-round.png
  29. BIN
      src/assets/img/sand_new/single-arrow-straight.png
  30. BIN
      src/assets/img/sand_new/single-arrow.png
  31. BIN
      src/assets/img/sand_new/style-black.png
  32. BIN
      src/assets/img/sand_new/style-blue-light.png
  33. BIN
      src/assets/img/sand_new/style-blue.png
  34. BIN
      src/assets/img/sand_new/style-red.png
  35. BIN
      src/assets/img/sand_new/tools/arrow-end-disabled.png
  36. BIN
      src/assets/img/sand_new/tools/arrow-end.png
  37. BIN
      src/assets/img/sand_new/tools/arrow-start-disabled.png
  38. BIN
      src/assets/img/sand_new/tools/arrow-start.png
  39. BIN
      src/assets/img/sand_new/tools/background-color-disabled.png
  40. BIN
      src/assets/img/sand_new/tools/background-color.png
  41. BIN
      src/assets/img/sand_new/tools/bold-disabled.png
  42. BIN
      src/assets/img/sand_new/tools/bold.png
  43. BIN
      src/assets/img/sand_new/tools/italic-disabled.png
  44. BIN
      src/assets/img/sand_new/tools/italic.png
  45. BIN
      src/assets/img/sand_new/tools/line-color-disabled.png
  46. BIN
      src/assets/img/sand_new/tools/line-color.png
  47. BIN
      src/assets/img/sand_new/tools/line-height-disabled.png
  48. BIN
      src/assets/img/sand_new/tools/line-height.png
  49. BIN
      src/assets/img/sand_new/tools/line-style-bend-round.png
  50. BIN
      src/assets/img/sand_new/tools/line-style-bend.png
  51. BIN
      src/assets/img/sand_new/tools/line-style-disabled.png
  52. BIN
      src/assets/img/sand_new/tools/line-style-straight.png
  53. BIN
      src/assets/img/sand_new/tools/line-style.png
  54. BIN
      src/assets/img/sand_new/tools/line-type-disabled.png
  55. BIN
      src/assets/img/sand_new/tools/line-type.png
  56. BIN
      src/assets/img/sand_new/tools/line-width-disabled.png
  57. BIN
      src/assets/img/sand_new/tools/line-width.png
  58. BIN
      src/assets/img/sand_new/tools/redo-disabled.png
  59. BIN
      src/assets/img/sand_new/tools/redo.png
  60. BIN
      src/assets/img/sand_new/tools/select-icon.png
  61. BIN
      src/assets/img/sand_new/tools/text-align-disabled.png
  62. BIN
      src/assets/img/sand_new/tools/text-align.png
  63. BIN
      src/assets/img/sand_new/tools/text-color-disabled.png
  64. BIN
      src/assets/img/sand_new/tools/text-color.png
  65. BIN
      src/assets/img/sand_new/tools/underline-disabled.png
  66. BIN
      src/assets/img/sand_new/tools/underline.png
  67. BIN
      src/assets/img/sand_new/tools/undo-disabled.png
  68. BIN
      src/assets/img/sand_new/tools/undo.png
  69. BIN
      src/assets/img/set_m/down_black.png
  70. BIN
      src/assets/img/set_m/slide_black.png
  71. 1 6
      src/main.js
  72. 17 12
      src/routes/modules/chartRoutes.js
  73. 9 0
      src/routes/modules/dataRoutes.js
  74. 60 1
      src/styles/global.scss
  75. 5 1
      src/utils/buttonConfig.js
  76. 11 9
      src/views/Home.vue
  77. 188 0
      src/views/chartRelevance_manage/css/index.scss
  78. 49 0
      src/views/chartRelevance_manage/css/pub.scss
  79. 3 301
      src/views/chartRelevance_manage/fittingEquationList.vue
  80. 4 320
      src/views/chartRelevance_manage/list.vue
  81. 3 215
      src/views/chartRelevance_manage/statisticFeatureList.vue
  82. 1 1
      src/views/classify_manage/chapterSetting.vue
  83. 2 2
      src/views/classify_manage/classifylist.vue
  84. 30 20
      src/views/dataEntry_manage/adjustdata/adjustData.vue
  85. 25 66
      src/views/dataEntry_manage/chartSetting.vue
  86. 29 5
      src/views/dataEntry_manage/databaseComponents/addTargetDiaBase.vue
  87. 21 2
      src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue
  88. 9 3
      src/views/dataEntry_manage/databaseComponents/computedDialog.vue
  89. 39 8
      src/views/dataEntry_manage/databaseComponents/dataAssociateChart.vue
  90. 2 2
      src/views/dataEntry_manage/databaseComponents/operationDialog.vue
  91. 2 1
      src/views/dataEntry_manage/databaseComponents/updateDialog.vue
  92. 2 0
      src/views/dataEntry_manage/databaseComponents/util.js
  93. 209 139
      src/views/dataEntry_manage/databaseList.vue
  94. 1 1
      src/views/dataEntry_manage/onlineExcelCopy.vue
  95. 203 0
      src/views/dataEntry_manage/thirdBase/DatabankBase.vue
  96. 1 1
      src/views/dataEntry_manage/thirdBase/UNdata.vue
  97. 4 3
      src/views/dataEntry_manage/thirdBase/steelChemicalbase.vue
  98. 4 6
      src/views/datasheet_manage/addSheet.vue
  99. 5 9
      src/views/datasheet_manage/components/CustomTable.vue
  100. 3 3
      src/views/datasheet_manage/components/sheetListWrap.vue

+ 8 - 1
build/webpack.base.conf.js

@@ -43,7 +43,8 @@ module.exports = {
     }
   },
   externals:{
-	  "vue":"Vue"
+	  "vue":"Vue",
+    "jQuery": "jQuery"
   },
   plugins: [
     new webpack.DllReferencePlugin({
@@ -57,6 +58,12 @@ module.exports = {
       threshold: 10240, // 对超过10k的数据压缩
       deleteOriginalAssets: false, // 是否删除未压缩的源文件
     }),
+    // new webpack.ProvidePlugin({
+    //   $: "jquery",
+    //   jQuery: "jquery",
+    //   'window.jQuery': 'jquery',
+    //   jQuery: 'jquery'
+    // })
   ],
   module: {
     rules: [

+ 1 - 1
config/index.js

@@ -38,7 +38,7 @@ module.exports = {
     proxyTable:{
 		'/adminapi': {
       target: "http://8.136.199.33:7778",
-      // target: "http://192.168.20.49:8605",
+      // target: "http://192.168.77.7:8606",
 			// secure:false,  // 如果是https接口,需要配置这个参数
 			changeOrigin:true, // 如果接口跨域,需要进行这个参数配置
 			pathRewrite:{

+ 3 - 1
package.json

@@ -13,6 +13,7 @@
     "build.test": "node build/build.test.js"
   },
   "dependencies": {
+    "@antv/hierarchy": "^0.6.11",
     "@antv/x6": "^1.29.1",
     "@fullcalendar/interaction": "^5.10.1",
     "@fullcalendar/timegrid": "^5.10.1",
@@ -38,7 +39,7 @@
     "js-md5": "^0.7.3",
     "less-loader": "^4.1.0",
     "lodash": "^4.17.21",
-    "minio": "^7.0.18",
+    "minio": "7.0.18",
     "pptxgenjs": "^3.10.0",
     "qrcode": "^1.4.4",
     "sortablejs": "^1.15.0",
@@ -52,6 +53,7 @@
     "vue-codemirror": "^4.0.6",
     "vue-count-to": "^1.0.13",
     "vue-froala-wysiwyg": "^3.1.0",
+    "vue-giant-tree": "^1.0.0",
     "vue-masonry": "^0.16.0",
     "vue-pdf": "^4.2.0",
     "vue-qr": "^2.3.0",

+ 12 - 4
src/App.vue

@@ -52,11 +52,11 @@ img {
   -ms-interpolation-mode: nearest-neighbor;
 }
 #app {
-  width: 100%;
   position: absolute;
   top: 0px;
   bottom: 0px;
-  /*   left:0; */
+  left:0;
+  right:0;
 }
 .el-submenu [class^="fa"] {
   vertical-align: baseline;
@@ -221,7 +221,7 @@ iframe {
   margin-top: 10px;
 }
 
-/*修改滚动条样式*/
+/*修改滚动条样式 chrome edge safari*/
 div::-webkit-scrollbar {
   width: 6px;
   height: 6px;
@@ -240,6 +240,10 @@ div::-webkit-scrollbar-thumb:hover {
 div::-webkit-scrollbar-corner {
   background: #666;
 }
+/*firefox*/
+div{
+    scrollbar-width: thin;
+}
 .customName:hover {
   text-decoration: underline;
 }
@@ -269,7 +273,7 @@ div::-webkit-scrollbar-corner {
   }
 }
 
-/*修改滚动条样式*/
+/*修改滚动条样式 chrome edge safari*/
 ul::-webkit-scrollbar {
   width: 6px;
   height: 6px;
@@ -288,6 +292,10 @@ ul::-webkit-scrollbar-thumb:hover {
 ul::-webkit-scrollbar-corner {
   background: #666;
 }
+/*firefox*/
+ul{
+    scrollbar-width: thin;
+}
 
 textarea {
   font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",

+ 3 - 1
src/api/api.js

@@ -9,7 +9,8 @@ import {
   coalDataInterface,
   sciDataInterface,
   baiinfoInterface,
-  nationalInterface
+  nationalInterface,
+  databankInterface
 } from './modules/thirdBaseApi';
 
 //手工指标 手工数据 手工数据权限
@@ -107,6 +108,7 @@ export {
   sciDataInterface,
   baiinfoInterface,
   nationalInterface,
+  databankInterface,
   cloudDiskInterface,
   homeInterface,
   businessTripInterence,

+ 46 - 2
src/api/modules/sandApi.js

@@ -120,6 +120,50 @@ export default {
 	 */
 	sandDelVersion: params => {
 		return http.post('/sandbox/version/delete',params)
-	}
-
+	},
+	// 以下是新版本逻辑图的接口
+	// 获取沙盘图分类
+	getSandboxClassify: params => {
+		return http.get('/sandbox/classify/list',params)
+	},
+	// 获取沙盘图分类-仅有分类
+	getSandboxClassifyOnly: params => {
+		return http.get('/sandbox/classifyList',params)
+	},
+	//新增沙盘图分类
+	addSandboxClassify: params => {
+		return http.post('/sandbox/classify/add',params)
+	},
+	// 编辑沙盘图分类
+	editSandboxClassify: params => {
+		return http.post('/sandbox/classify/edit',params)
+	},
+	//沙盘图/分类移动
+	sandboxClassifyMove: params => {
+		return http.post('/sandbox/classify/move',params)
+	},
+	// 删除沙盘图分类检查
+	deleteSandboxClassifyCheck: params => {
+		return http.post('/sandbox/classify/delete/check',params)
+	},
+	// 删除沙盘图/沙盘图分类
+	deleteSandbox: params => {
+		return http.post('/sandbox/classify/delete',params)
+	},
+	// 沙盘图列表详情
+	getSandboxListV2: params => {
+		return http.get('/sandbox/listV2',params)
+	},
+	//沙盘图详情 SandboxId
+	getSandboxDetail: params => {
+		return http.get('/sandbox/detail',params)
+	},
+	//保存沙盘图V2
+	sandboxSaveV2: params => {
+		return http.post('/sandbox/saveV2',params)
+	},
+	//沙盘图链接检测 {EdbInfoIdList,ChartInfoIdList,ReportIdList}
+	sandboxLinkCheck: params => {
+		return http.post('/sandbox/link/check',params)
+	},
 }

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

@@ -2,6 +2,10 @@ import http from "@/api/http.js"
 
 /* 部门管理模块 */
 const departInterence = {
+	//系统用户详情
+	systemUserInfo:params=>{
+		return http.get('/system/sysuser/detail',{})
+	},
 
 	/**
 	 * AdminId

+ 35 - 1
src/api/modules/thirdBaseApi.js

@@ -677,6 +677,39 @@ const nationalInterface = {
         return http.get('/datamanage/base_from_national_statistics/index_detail',params)
     }
 }
+/* 数据宝 */
+const databankInterface = {
+    /**
+     * 获取数据源列表
+     * @param {*} params 
+     * @returns 
+     */
+    getSourceList:params=>{
+        return http.get('/datamanage/edb_source/jiayue/list',params)
+    },
+    /**
+     * 获取频度列表
+     * @param {*} params 
+     * @returns 
+     */
+    getFrequencyList:params=>{
+        return http.get('datamanage/edb_source/jiayue/frequency_list',params)
+    },
+    /**
+     * 指标数据列表
+     * @param {Number} PageSize 
+     * @param {Number} CurrentIndex 
+     * @param {Number} Source 数据源的EdbSourceId
+     * @param {String} Frequency 
+     * @param {String} Keyword 
+     * @param {Number} SortField 1-指标开始时间; 2-指标最新时间; 3-更新时间
+     * @param {Number} SortRule 1-正序; 2-倒序
+     * @returns 
+     */
+    getDataList:params=>{
+        return http.get('/datamanage/edb_source/jiayue/index_page_list',params)
+    },
+}
 
 export { 
 	lzDataInterface,
@@ -687,5 +720,6 @@ export {
 	steoInterface,
   sciDataInterface,
   baiinfoInterface,
-  nationalInterface
+  nationalInterface,
+  databankInterface
 }

+ 3 - 0
src/assets/icons/filter.svg

@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 3C2 2.44772 2.44772 2 3 2H13C13.5523 2 14 2.44772 14 3V4.78597L9.75 7.28597V14H6.25V7.28597L2 4.78597V3ZM13 3H3V4.21403L7.25 6.71403V13H8.75V6.71403L13 4.21403V3Z" fill="#666666"/>
+</svg>

BIN
src/assets/img/sand_new/add_ico.png


BIN
src/assets/img/sand_new/add_outline.png


BIN
src/assets/img/sand_new/arrow_black_down.png


BIN
src/assets/img/sand_new/copy.png


BIN
src/assets/img/sand_new/delete_outline.png


BIN
src/assets/img/sand_new/delete_outline_1.png


BIN
src/assets/img/sand_new/double-arrow-round.png


BIN
src/assets/img/sand_new/double-arrow-straight.png


BIN
src/assets/img/sand_new/double-arrow.png


BIN
src/assets/img/sand_new/edit_outline.png


BIN
src/assets/img/sand_new/eye-show-black.png


BIN
src/assets/img/sand_new/mindmap-double.png


BIN
src/assets/img/sand_new/mindmap-right.png


BIN
src/assets/img/sand_new/no-arrow-round.png


BIN
src/assets/img/sand_new/no-arrow-straight.png


BIN
src/assets/img/sand_new/no-arrow.png


BIN
src/assets/img/sand_new/remove.png


BIN
src/assets/img/sand_new/save-other.png


BIN
src/assets/img/sand_new/single-arrow-round.png


BIN
src/assets/img/sand_new/single-arrow-straight.png


BIN
src/assets/img/sand_new/single-arrow.png


BIN
src/assets/img/sand_new/style-black.png


BIN
src/assets/img/sand_new/style-blue-light.png


BIN
src/assets/img/sand_new/style-blue.png


BIN
src/assets/img/sand_new/style-red.png


BIN
src/assets/img/sand_new/tools/arrow-end-disabled.png


BIN
src/assets/img/sand_new/tools/arrow-end.png


BIN
src/assets/img/sand_new/tools/arrow-start-disabled.png


BIN
src/assets/img/sand_new/tools/arrow-start.png


BIN
src/assets/img/sand_new/tools/background-color-disabled.png


BIN
src/assets/img/sand_new/tools/background-color.png


BIN
src/assets/img/sand_new/tools/bold-disabled.png


BIN
src/assets/img/sand_new/tools/bold.png


BIN
src/assets/img/sand_new/tools/italic-disabled.png


BIN
src/assets/img/sand_new/tools/italic.png


BIN
src/assets/img/sand_new/tools/line-color-disabled.png


BIN
src/assets/img/sand_new/tools/line-color.png


BIN
src/assets/img/sand_new/tools/line-height-disabled.png


BIN
src/assets/img/sand_new/tools/line-height.png


BIN
src/assets/img/sand_new/tools/line-style-bend-round.png


BIN
src/assets/img/sand_new/tools/line-style-bend.png


BIN
src/assets/img/sand_new/tools/line-style-disabled.png


BIN
src/assets/img/sand_new/tools/line-style-straight.png


BIN
src/assets/img/sand_new/tools/line-style.png


BIN
src/assets/img/sand_new/tools/line-type-disabled.png


BIN
src/assets/img/sand_new/tools/line-type.png


BIN
src/assets/img/sand_new/tools/line-width-disabled.png


BIN
src/assets/img/sand_new/tools/line-width.png


BIN
src/assets/img/sand_new/tools/redo-disabled.png


BIN
src/assets/img/sand_new/tools/redo.png


BIN
src/assets/img/sand_new/tools/select-icon.png


BIN
src/assets/img/sand_new/tools/text-align-disabled.png


BIN
src/assets/img/sand_new/tools/text-align.png


BIN
src/assets/img/sand_new/tools/text-color-disabled.png


BIN
src/assets/img/sand_new/tools/text-color.png


BIN
src/assets/img/sand_new/tools/underline-disabled.png


BIN
src/assets/img/sand_new/tools/underline.png


BIN
src/assets/img/sand_new/tools/undo-disabled.png


BIN
src/assets/img/sand_new/tools/undo.png


BIN
src/assets/img/set_m/down_black.png


BIN
src/assets/img/set_m/slide_black.png


+ 1 - 6
src/main.js

@@ -151,12 +151,7 @@ router.beforeEach(async(to, from, next) => {
 
   /* 沙盘详情name添加 */
   if (to.path === "/sandflow") {
-    to.matched[1].name =
-      to.query.type === "view"
-        ? "查看沙盘"
-        : to.query.id
-        ? "编辑沙盘"
-        : "添加沙盘";
+    to.matched[1].name = to.query.SandboxId? "编辑逻辑": "添加逻辑";
   }
 
   if (to.path === "/analyseVariety") {

+ 17 - 12
src/routes/modules/chartRoutes.js

@@ -142,15 +142,6 @@ export default [
 					pathName: "混合表格",
 				}
 			},
-			{
-				path:"editSheetAnalysis",
-				name:"编辑表格",
-				component:()=>import('@/views/datasheet_manage/customAnalysis/edit.vue'),
-				meta: { 
-					pathFrom: "sheetAnalysisList",
-					pathName: "自定义分析",
-				}
-			},
 			{
 				path:"sheetAnalysisList",
 				name:"自定义分析",
@@ -175,15 +166,29 @@ export default [
 		component: home,
 		name: 'ETA逻辑',
 		hidden: false,
-		children: [{
+		children: [
+			// {
+			// 	path: "sandlist", // 旧版本
+			// 	name: 'ETA逻辑',
+			// 	component: () => import('@/views/sandbox_manage/index.vue'),
+			// 	hidden: false,
+			// },
+			// 改版后的ETA逻辑图
+			{
 				path: "sandlist",
 				name: 'ETA逻辑',
-				component: () => import('@/views/sandbox_manage/index.vue'),
+				component: () => import('@/views/sandbox_manage/index_new_version.vue'),
 				hidden: false,
 			},
+			// {
+			// 	path: "sandflow", // 旧版本
+			// 	component: () => import('@/views/sandbox_manage/sandFlow/index.vue'),
+			// 	hidden: true,
+			// },
 			{
 				path: "sandflow",
-				component: () => import('@/views/sandbox_manage/sandFlow/index.vue'),
+				name: '添加逻辑',
+				component: () => import('@/views/sandbox_manage/sandFlowNew/index.vue'),
 				hidden: true,
 			}
 		]

+ 9 - 0
src/routes/modules/dataRoutes.js

@@ -192,6 +192,15 @@ export default [
         name: "期货数据库",
         component: () => import("@/views/futures_manage/futuresBase.vue"),
       },
+      {
+        path: "databankBase",
+        component: () => import("@/views/dataEntry_manage/thirdBase/DatabankBase.vue"),
+        name: "数据宝",
+        hidden: false,
+        meta: {
+          keepAlive: false,
+        },
+      },
     ],
   },
 ];

+ 60 - 1
src/styles/global.scss

@@ -4,7 +4,7 @@ a[href="https://froala.com/wysiwyg-editor"], a[href="https://www.froala.com/wysi
 
 body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,button,input,textarea,th,td { margin:0; padding:0; }
 body{ font-size:12px; font-style:normal; font-family:"\5FAE\8F6F\96C5\9ED1", Helvetica, sans-serif,; }
-html{ overflow:auto; min-width:1000px; }
+html{ overflow:auto; /* min-width:1000px; */ }
 small{ font-size:12px; }
 h1{ font-size:18px; }
 h2{ font-size:16px; }
@@ -74,4 +74,63 @@ button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusri
   border-radius: 5px;
   color: #3994fb;
   background-color: #dcecfc;
+}
+
+//收缩目录按钮样式
+.slide-btn-icon{
+    padding: 20px 0;
+    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    background-color: #fff;
+    cursor: pointer;
+    position: absolute;
+    top: 50%;
+    transform: translateY(-50%);
+    z-index: 99;
+    &:hover {
+        background-color: #e0e0e0;
+    }
+}
+//图库相关-图表列表 公共样式
+.chart-list-item-wrap{
+    display: flex;
+    gap: 20px;
+    flex-wrap: wrap;
+    overflow-x: hidden;
+    .chart-list-item{
+        //width,min-width在页面内设置
+        background-color: #FFFFFF;
+        overflow: hidden;
+        border: 1px solid #EBEEF5;
+        border-radius: 4px;
+        .chart-item-top,.chart-item-bottom{
+            padding:10px;
+            text-align: left;
+        }
+        .chart-item-top{
+            //ellipsis在页面内设置
+            font-size: 16px;
+            font-weight: 600;
+            box-shadow: 0 3px 6px rgba(37, 37, 239, 0.1);
+        }
+        .chart-item-img{
+            margin:10px;
+            margin-bottom: 0;
+            height: 0;
+            padding-bottom: 67%;
+            cursor: pointer;
+        }
+        .chart-item-bottom{
+            font-size: 12px;
+            color: #666;
+        }
+    }
+}
+
+//el-dialog,适应小屏样式
+.fit-screen-dialog{
+    //max-width在页面设置
+    width:85vw;
+    margin-top:6vh;
+    margin-bottom: 0;
 }

+ 5 - 1
src/utils/buttonConfig.js

@@ -425,10 +425,14 @@ export const etaTablePermission = {
  * --------------------------------------------------------------------------ETA逻辑------------------------------------------------
 */
 export const sandboxPermission = {
-    sandbox_variety:'sandbox:variety',//沙盘品种选择,控制筛选项和列表项
+    sandbox_variety:'sandbox:variety',//沙盘品种选择,添加目录的时候控制显示
     sandbox_addMy:'sandbox:addMy',//复制图片
     sandbox_del:'sandbox:del',//删除
     sandbox_saveView:'sandbox:saveView',//添加/编辑/查看
+    sandbox_search:'sandbox:search',//搜索
+    sandbox_classify_move:'sandbox:classify:move',//分类操作:移动
+    sandbox_classify_del:'sandbox:classify:del',//分类操作:删除
+    sandbox_classify_addEdit:'sandbox:classify:addEdit',//分类操作:添加/编辑
 }
 /*
  * --------------------------------------------------------------------------语义分析------------------------------------------------

+ 11 - 9
src/views/Home.vue

@@ -274,16 +274,14 @@
           class="content-container"
           id="displayMain"
           ref="displayMain"
-          :style="dynamicContStyle"
         >
           <el-row
             class="grid-content bg-purple-light contentc"
-            style="min-width: 900px"
+            style="min-width: 1000px"
           >
             <el-col
               :span="24"
               class="content-wrapper"
-              :style="!isHaveAside ? 'padding: 0 30px 0 0;' : ''"
             >
               <transition name="fade" mode="out-in">
                 <router-view :key="$route.fullPath"></router-view>
@@ -1029,6 +1027,7 @@ export default {
     width: 100%;
     overflow: hidden;
     background: #f5f7f9;
+    position: relative;
     .main_right_top {
       // width: 100%;
       background: #fff;
@@ -1171,15 +1170,16 @@ export default {
       margin-left: -1px;
     }
     .content-container {
-      height: calc(100vh - 90px);
+      //height: calc(100vh - 90px);
       background: #F2F6FA;
       // position: relative;
       overflow-y: auto;
       position: absolute;
-      padding-top: 22px;
-      left: 200px;
-      top: 68px;
-      right: 0;
+      //padding-top: 22px;
+      left: 0;
+      right:0;
+      top: 68px; //应该是60px 但为了留出header的box-shadow多移了8px
+      bottom: 0;
       z-index: 100;
       /*修改滚动条样式*/
       &::-webkit-scrollbar {
@@ -1206,7 +1206,9 @@ export default {
         overflow: auto;
         .content-wrapper {
           width: 100%;
-          padding: 0 30px 20px;
+          //padding-top:22px,是给header的box-shadow留出位置;
+          //padding-bottom:22px,是给内容页的滚动条留出位置
+          padding: 22px 30px;
           box-sizing: border-box;
           overflow: auto;
         }

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

@@ -0,0 +1,188 @@
+* {
+  box-sizing: border-box;
+}
+$mini-font: 12px;
+$normal-font: 14px;
+.pub-chart-box {
+  .slide-icon {
+    padding: 20px 0;
+    /* display: block; */
+    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
+    border-radius: 5px;
+    cursor: pointer;
+    position: absolute;
+    top: 50%;
+    transform: translateY(-50%);
+    z-index: 99;
+    &:hover {
+      background-color: rgba(0, 0, 0, 0.05);
+    }
+    &.slide-left {
+      right: 0;
+    }
+    &.slide-right {
+      left: 0;
+    }
+  }
+  .data-sheet-main {
+    display: flex;
+
+    .main-left {
+      width: 400px;
+      min-width: 300px;
+      background: #fff;
+      margin-right: 20px;
+      border: 1px solid #ececec;
+      border-radius: 4px;
+      box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
+      height: calc(100vh - 120px);
+      overflow: hidden;
+      position: relative;
+      box-sizing: border-box;
+
+      .datasheet_top {
+        padding: 20px;
+        background: #fff;
+        border: 1px solid #ececec;
+        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
+        margin-bottom: 20px;
+      }
+      .search-cont {
+        padding: 0 20px;
+      }
+
+      .left-tab {
+        display: flex;
+        align-items: center;
+        padding: 20px 20px 0;
+        .tab {
+          cursor: pointer;
+          font-size: 16px;
+          border-bottom: 2px solid transparent;
+          margin-right: 40px;
+          padding-bottom: 5px;
+          &.act {
+            color: #409eff;
+            border-color: #409eff;
+          }
+          &:hover {
+            color: #409eff;
+          }
+        }
+      }
+
+      .tree-cont {
+        padding: 30px 20px;
+        max-height: calc(100vh - 280px);
+        overflow: auto;
+      }
+      .target_tree {
+        color: #333;
+        .custom-tree-node {
+          display: flex !important;
+          justify-content: space-between;
+          align-items: center;
+          display: block;
+          flex: 1;
+          .node_label {
+            margin-right: 2px;
+          }
+          .el-icon-view {
+            color: #409eff;
+            font-size: 18px;
+            margin-left: 5px;
+          }
+        }
+      }
+      .noDepart {
+        margin: 60px 0;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        color: #409eff;
+        font-size: 16px;
+        cursor: pointer;
+      }
+      .move-btn {
+        height: 100%;
+        width: 4px;
+        /* opacity: 0; */
+        position: absolute;
+        right: 0px;
+        top: 0;
+        &:hover {
+          cursor: col-resize;
+          /* background-color: orange */
+        }
+      }
+    }
+
+    .main-right {
+      width: 80%;
+      .chart-detail-wrapper {
+        height: calc(100vh - 120px);
+        border: 1px solid #ececec;
+        border-radius: 4px;
+        box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
+        overflow: auto;
+        background: #fff;
+        padding: 30px;
+
+        .bottom-min {
+          border: 1px solid #dcdfe6;
+          margin-bottom: 20px;
+
+          .chart-show-cont {
+            padding: 0 160px 0 120px;
+            position: relative;
+            min-height: 400px;
+            .chart-title {
+              font-size: 16px;
+              font-weight: normal;
+              text-align: center;
+              margin-bottom: 10px;
+            }
+            .chart-author {
+              font-size: 14px;
+              color: #333;
+              position: absolute;
+              bottom: 0;
+              right: 50px;
+            }
+            .chartWrapper {
+              position: relative;
+              .range-cont {
+                position: absolute;
+                top: 13%;
+                .min-data-input {
+                  width: 60px;
+                  display: block;
+                }
+                &.left {
+                  left: -80px;
+                }
+                &.right {
+                  right: -65px;
+                }
+                &.rightTwo {
+                  right: -130px;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+
+    @media screen and (min-width: 1711px) {
+      .min-data-input {
+        margin-top: 360px;
+      }
+    }
+    @media screen and (max-width: 1710px) {
+      .min-data-input {
+        margin-top: 290px;
+      }
+    }
+  }
+}

+ 49 - 0
src/views/chartRelevance_manage/css/pub.scss

@@ -0,0 +1,49 @@
+.pub-chart-box {
+	.label-input .el-input__inner {
+		height: 25px;
+		line-height: 25px;
+		padding: 0 10px;
+	}
+
+	.range-cont .el-input__inner {
+		padding: 0 3px;
+	}
+
+	.el-tree__drop-indicator{
+		height:3px;
+		background-color:#409EFF;
+	}
+	.el-tree-node__content {
+		margin-bottom: 14px !important;
+	}
+	.el-tree-node__children {
+		.el-tree-node {
+			/* margin-bottom: 8px !important; */
+			margin-bottom: 0px !important;
+			padding-left: 18px;
+		}
+		.el-tree-node__content {
+			margin-bottom: 5px !important;
+			padding-left: 0 !important;
+		}
+	}
+	.expanded.el-icon-caret-right:before {
+		content: url('~@/assets/img/set_m/down.png') !important;
+	}
+	.el-icon-caret-right:before {
+		content: url('~@/assets/img/set_m/slide.png') !important;
+	}
+	.el-tree-node__expand-icon.is-leaf.el-icon-caret-right:before {
+		content: '' !important;
+	}
+	.el-tree-node__expand-icon.expanded {
+		-webkit-transform: rotate(0deg);
+		transform: rotate(0deg);
+	}
+	.el-tree-node.is-current > .el-tree-node__content {
+		background-color: #f0f4ff !important;
+	}
+	.el-tree-node__content {
+		padding-right: 10px !important;
+	}
+}

+ 3 - 301
src/views/chartRelevance_manage/fittingEquationList.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="fittingEquation-chart-container" v-if="showData">
+	<div class="fittingEquation-chart-container pub-chart-box" v-if="showData">
 		<span
 			class="slide-icon slide-right"
 			@click="isSlideLeft = !isSlideLeft"
@@ -634,307 +634,9 @@ export default {
 }
 </script>
 <style lang='scss' scoped>
-*{ box-sizing: border-box;}
-$mini-font: 12px; $normal-font: 14px;
-.fittingEquation-chart-container {
-	.slide-icon {
-		padding: 20px 0;
-		/* display: block; */
-		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
-		border-radius: 5px;
-		cursor: pointer;
-		position: absolute;
-		top: 50%;
-		transform: translateY(-50%);
-		z-index: 99;
-		&:hover {
-			background-color: rgba(0, 0, 0, 0.05);
-		}
-		&.slide-left {
-			right: 0;
-		}
-		&.slide-right {
-			left: 0;
-		}
-	}
-	.data-sheet-main {
-		display: flex;
-
-		.main-left {
-			width: 400px;
-			min-width: 300px;
-			background: #fff;
-			margin-right: 20px;
-			border: 1px solid #ececec;
-			border-radius: 4px;
-			box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-			height: calc(100vh - 120px);
-			overflow: hidden;
-			position: relative;
-			box-sizing: border-box;
-
-			.datasheet_top {
-				padding: 20px;
-				background: #fff;
-				border: 1px solid #ececec;
-				box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-				margin-bottom: 20px;
-				display: flex;
-				justify-content: space-between;
-				align-items: center;
-			}
-			.search-cont {
-				padding: 0 20px;
-			}
-
-
-
-			.tree-cont {
-				padding: 30px 20px;
-				max-height: calc(100vh - 280px);
-				overflow: auto;
-			}
-			.target_tree {
-				color: #333;
-				.custom-tree-node {
-					display: flex !important;
-					justify-content: space-between;
-					align-items: center;
-					display: block;
-					flex: 1;
-					.node_label {
-						margin-right: 2px;
-					}
-					.el-icon-view {
-						color: #409EFF;
-						font-size: 18px;
-						margin-left: 5px;
-					}
-				}
-			}
-			.noDepart {
-				margin: 60px 0;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				color: #409eff;
-				font-size: 16px;
-				cursor: pointer;
-			}
-			.move-btn {
-				height: 100%;
-				width: 4px;
-				/* opacity: 0; */
-				position: absolute;
-				right: 0px;
-				top: 0;
-				&:hover {
-				cursor: col-resize;
-					/* background-color: orange */
-				}
-			}
-		}
-
-		.main-right {
-			width: 80%;
-			.chart-detail-wrapper {
-				height: calc(100vh - 120px);
-				border: 1px solid #ececec;
-				border-radius: 4px;
-				box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-				overflow: auto;
-				background: #fff;
-				padding: 30px;
-				.bottom-min {
-					border: 1px solid #DCDFE6;
-					margin-bottom: 20px;
-					.right-actions {
-						/* max-width: 160px; */
-						height: 100%;
-						padding: 20px 10px;
-						border-left: 1px solid #DCDFE6;
-						li {
-							margin-bottom: 15px;
-						}
-						@media screen and (max-width: 1710px) {
-							font-size: 12px;
-						}
-						.span-item {
-							color: #409eff;
-							cursor: pointer;
-							&:hover {
-								text-decoration: underline;
-							}
-							.el-icon-collection,
-							.el-icon-document-copy {
-								color: #409eff;
-							}
-						}
-					}
-					.chart-show-cont {
-              padding: 0 160px 0 120px;
-              position: relative;
-							min-height: 400px;
-              .chart-title {
-                font-size: 16px;
-                font-weight: normal;
-                text-align: center;
-                margin-bottom: 10px;
-              }
-              .chart-author {
-                font-size: 14px;
-                color: #333;
-                position: absolute;
-                bottom: 0;
-                right: 50px;
-              }
-              .chartWrapper {
-                position: relative;
-                .range-cont {
-                  position: absolute;
-                  top: 13%;
-                  .min-data-input {
-                    width: 60px;
-                    display: block;
-                  }
-                  &.left {
-                    left: -80px;
-                  }
-                  &.right {
-                    right: -65px;
-                  }
-                  &.rightTwo {
-                    right: -130px;
-                  }
-                }
-              }
-          }
-				}
-			}
-
-			.chart-list-cont {
-				color: #333;
-				.el-card .el-card__header,
-				.el-card__body {
-					padding: 10px;
-				}
-
-				.chartList-wrapper {
-					margin-top: 10px;
-					display: flex;
-					flex-wrap: wrap;
-					max-height: calc(100vh - 143px);
-					overflow: hidden;
-					overflow-y: auto;
-					.drag-cont {
-						width: 100%;
-						display: flex;
-						flex-wrap: wrap;
-					}
-					.dragShdow {
-						box-shadow: 0 1px 8px rgba(64, 158, 255, 0.8);
-						opacity: 0.5;
-					}
-					.sheet-item {
-						position: relative;
-						.item-top {
-							display: flex;
-							justify-content: space-between;
-							align-items: center;
-							font-size: 16px;
-							font-weight: 600;
-						}
-						.chart-img {
-							width: 100%;
-							height: 230px;
-							object-fit: contain !important;
-							cursor: pointer;
-						}
-						.item-bottom {
-							margin-top: 10px;
-							display: flex;
-							justify-content: space-between;
-							font-size: 12px;
-							color: #666;
-							.collected {
-								color: #f00;
-								cursor: pointer;
-							}
-							.join_txt {
-								color: #409eff;
-								cursor: pointer;
-							}
-						}
-					}
-				}
-				.nodata {
-					text-align: center;
-				}
-			}
-		}
-		
-		@media screen and (min-width: 1711px){
-			.min-data-input {
-				margin-top: 360px;
-			}
-		}
-		@media screen and (max-width: 1710px){
-			.min-data-input {
-				margin-top: 290px;
-			}
-		}
-	}
-}
+@import './css/index.scss';
 </style>
 
 <style lang="scss">
-.fittingEquation-chart-container {
-	.label-input .el-input__inner {
-		height: 25px;
-		line-height: 25px;
-		padding: 0 10px;
-	}
-
-	.range-cont .el-input__inner {
-		padding: 0 3px;
-	}
-
-	.el-tree__drop-indicator{
-		height:3px;
-		background-color:#409EFF;
-	}
-	.el-tree-node__content {
-		margin-bottom: 14px !important;
-	}
-	.el-tree-node__children {
-		.el-tree-node {
-			/* margin-bottom: 8px !important; */
-			margin-bottom: 0px !important;
-			padding-left: 18px;
-		}
-		.el-tree-node__content {
-			margin-bottom: 5px !important;
-			padding-left: 0 !important;
-		}
-	}
-	.expanded.el-icon-caret-right:before {
-		content: url('../../assets/img/set_m/down.png') !important;
-	}
-	.el-icon-caret-right:before {
-		content: url('../../assets/img/set_m/slide.png') !important;
-	}
-	.el-tree-node__expand-icon.is-leaf.el-icon-caret-right:before {
-		content: '' !important;
-	}
-	.el-tree-node__expand-icon.expanded {
-		-webkit-transform: rotate(0deg);
-		transform: rotate(0deg);
-	}
-	.el-tree-node.is-current > .el-tree-node__content {
-		background-color: #f0f4ff !important;
-	}
-	.el-tree-node__content {
-		padding-right: 10px !important;
-	}
-}
+@import './css/pub.scss';
 </style>

+ 4 - 320
src/views/chartRelevance_manage/list.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="comodity-chart-container" v-if="showData">
+  <div class="comodity-chart-container pub-chart-box" v-if="showData">
     <span
       class="slide-icon slide-right"
       @click="isSlideLeft = !isSlideLeft"
@@ -745,326 +745,10 @@ export default {
   },
 };
 </script>
-<style lang="scss" scoped>
-* {
-  box-sizing: border-box;
-}
-$mini-font: 12px;
-$normal-font: 14px;
-.comodity-chart-container {
-  .slide-icon {
-    padding: 20px 0;
-    /* display: block; */
-    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
-    border-radius: 5px;
-    cursor: pointer;
-    position: absolute;
-    top: 50%;
-    transform: translateY(-50%);
-    z-index: 99;
-    &:hover {
-      background-color: rgba(0, 0, 0, 0.05);
-    }
-    &.slide-left {
-      right: 0;
-    }
-    &.slide-right {
-      left: 0;
-    }
-  }
-  .data-sheet-main {
-    display: flex;
-
-    .main-left {
-      width: 400px;
-      min-width: 300px;
-      background: #fff;
-      margin-right: 20px;
-      border: 1px solid #ececec;
-      border-radius: 4px;
-      box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-      height: calc(100vh - 120px);
-      overflow: hidden;
-      position: relative;
-      box-sizing: border-box;
-
-      .datasheet_top {
-        padding: 20px;
-        background: #fff;
-        border: 1px solid #ececec;
-        box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-        margin-bottom: 20px;
-      }
-      .search-cont {
-        padding: 0 20px;
-      }
-
-      .left-tab {
-        display: flex;
-        align-items: center;
-        padding: 20px 20px 0;
-        .tab {
-          cursor: pointer;
-          font-size: 16px;
-          border-bottom: 2px solid transparent;
-          margin-right: 40px;
-          padding-bottom: 5px;
-          &.act {
-            color: #409eff;
-            border-color: #409eff;
-          }
-          &:hover {
-            color: #409eff;
-          }
-        }
-      }
-
-      .tree-cont {
-        padding: 30px 20px;
-        max-height: calc(100vh - 320px);
-        overflow: auto;
-      }
-      .target_tree {
-        color: #333;
-        .custom-tree-node {
-          display: flex !important;
-          justify-content: space-between;
-          align-items: center;
-          display: block;
-          flex: 1;
-          .node_label {
-            margin-right: 2px;
-          }
-          .el-icon-view {
-            color: #409eff;
-            font-size: 18px;
-            margin-left: 5px;
-          }
-        }
-      }
-      .noDepart {
-        margin: 60px 0;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        color: #409eff;
-        font-size: 16px;
-        cursor: pointer;
-      }
-      .move-btn {
-        height: 100%;
-        width: 4px;
-        /* opacity: 0; */
-        position: absolute;
-        right: 0px;
-        top: 0;
-        &:hover {
-          cursor: col-resize;
-          /* background-color: orange */
-        }
-      }
-    }
-
-    .main-right {
-      width: 80%;
-      .chart-detail-wrapper {
-        height: calc(100vh - 120px);
-        border: 1px solid #ececec;
-        border-radius: 4px;
-        box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-        overflow: auto;
-        background: #fff;
-        padding: 30px;
-        .bottom-min {
-          border: 1px solid #dcdfe6;
-          margin-bottom: 20px;
-          .right-actions {
-            /* max-width: 160px; */
-            height: 100%;
-            padding: 20px 10px;
-            border-left: 1px solid #dcdfe6;
-            li {
-              margin-bottom: 15px;
-            }
-            @media screen and (max-width: 1710px) {
-              font-size: 12px;
-            }
-            .span-item {
-              color: #409eff;
-              cursor: pointer;
-              &:hover {
-                text-decoration: underline;
-              }
-              .el-icon-collection,
-              .el-icon-document-copy {
-                color: #409eff;
-              }
-            }
-          }
-          .chart-show-cont {
-            padding: 0 160px 0 120px;
-            position: relative;
-            min-height: 400px;
-            .chart-title {
-              font-size: 16px;
-              font-weight: normal;
-              text-align: center;
-              margin-bottom: 10px;
-            }
-            .chart-author {
-              font-size: 14px;
-              color: #333;
-              position: absolute;
-              bottom: 0;
-              right: 50px;
-            }
-            .chartWrapper {
-              position: relative;
-              .range-cont {
-                position: absolute;
-                top: 13%;
-                .min-data-input {
-                  width: 60px;
-                  display: block;
-                }
-                &.left {
-                  left: -80px;
-                }
-                &.right {
-                  right: -65px;
-                }
-                &.rightTwo {
-                  right: -130px;
-                }
-              }
-            }
-          }
-        }
-      }
-
-      .chart-list-cont {
-        color: #333;
-        .el-card .el-card__header,
-        .el-card__body {
-          padding: 10px;
-        }
-
-        .chartList-wrapper {
-          margin-top: 10px;
-          display: flex;
-          flex-wrap: wrap;
-          max-height: calc(100vh - 143px);
-          overflow: hidden;
-          overflow-y: auto;
-          .drag-cont {
-            width: 100%;
-            display: flex;
-            flex-wrap: wrap;
-          }
-          .dragShdow {
-            box-shadow: 0 1px 8px rgba(64, 158, 255, 0.8);
-            opacity: 0.5;
-          }
-          .sheet-item {
-            position: relative;
-            .item-top {
-              display: flex;
-              justify-content: space-between;
-              align-items: center;
-              font-size: 16px;
-              font-weight: 600;
-            }
-            .chart-img {
-              width: 100%;
-              height: 230px;
-              object-fit: contain !important;
-              cursor: pointer;
-            }
-            .item-bottom {
-              margin-top: 10px;
-              display: flex;
-              justify-content: space-between;
-              font-size: 12px;
-              color: #666;
-              .collected {
-                color: #f00;
-                cursor: pointer;
-              }
-              .join_txt {
-                color: #409eff;
-                cursor: pointer;
-              }
-            }
-          }
-        }
-        .nodata {
-          text-align: center;
-        }
-      }
-    }
-
-    @media screen and (min-width: 1711px) {
-      .min-data-input {
-        margin-top: 360px;
-      }
-    }
-    @media screen and (max-width: 1710px) {
-      .min-data-input {
-        margin-top: 290px;
-      }
-    }
-  }
-}
+<style lang='scss' scoped>
+@import './css/index.scss';
 </style>
 
 <style lang="scss">
-.comodity-chart-container {
-  .label-input .el-input__inner {
-    height: 25px;
-    line-height: 25px;
-    padding: 0 10px;
-  }
-
-  .range-cont .el-input__inner {
-    padding: 0 3px;
-  }
-
-  .el-tree__drop-indicator {
-    height: 3px;
-    background-color: #409eff;
-  }
-  .el-tree-node__content {
-    margin-bottom: 14px !important;
-  }
-  .el-tree-node__children {
-    .el-tree-node {
-      /* margin-bottom: 8px !important; */
-      margin-bottom: 0px !important;
-      padding-left: 18px;
-    }
-    .el-tree-node__content {
-      margin-bottom: 5px !important;
-      padding-left: 0 !important;
-    }
-  }
-  .expanded.el-icon-caret-right:before {
-    content: url("../../assets/img/set_m/down.png") !important;
-  }
-  .el-icon-caret-right:before {
-    content: url("../../assets/img/set_m/slide.png") !important;
-  }
-  .el-tree-node__expand-icon.is-leaf.el-icon-caret-right:before {
-    content: "" !important;
-  }
-  .el-tree-node__expand-icon.expanded {
-    -webkit-transform: rotate(0deg);
-    transform: rotate(0deg);
-  }
-  .el-tree-node.is-current > .el-tree-node__content {
-    background-color: #f0f4ff !important;
-  }
-  .el-tree-node__content {
-    padding-right: 10px !important;
-  }
-}
+@import './css/pub.scss';
 </style>

+ 3 - 215
src/views/chartRelevance_manage/statisticFeatureList.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="fittingEquation-chart-container" v-if="showData">
+	<div class="fittingEquation-chart-container pub-chart-box" v-if="showData">
 		<span
 			class="slide-icon slide-right"
 			@click="isSlideLeft = !isSlideLeft"
@@ -602,221 +602,9 @@ export default {
 }
 </script>
 <style lang='scss' scoped>
-*{ box-sizing: border-box;}
-$mini-font: 12px; $normal-font: 14px;
-.fittingEquation-chart-container {
-	.slide-icon {
-		padding: 20px 0;
-		/* display: block; */
-		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
-		border-radius: 5px;
-		cursor: pointer;
-		position: absolute;
-		top: 50%;
-		transform: translateY(-50%);
-		z-index: 99;
-		&:hover {
-			background-color: rgba(0, 0, 0, 0.05);
-		}
-		&.slide-left {
-			right: 0;
-		}
-		&.slide-right {
-			left: 0;
-		}
-	}
-	.data-sheet-main {
-		display: flex;
-
-		.main-left {
-			width: 400px;
-			min-width: 300px;
-			background: #fff;
-			margin-right: 20px;
-			border: 1px solid #ececec;
-			border-radius: 4px;
-			box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-			height: calc(100vh - 120px);
-			overflow: hidden;
-			position: relative;
-			box-sizing: border-box;
-
-			.datasheet_top {
-				padding: 20px;
-				background: #fff;
-				border: 1px solid #ececec;
-				box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-				margin-bottom: 20px;
-			}
-			.search-cont {
-				padding: 0 20px;
-			}
-
-
-
-			.tree-cont {
-				padding: 30px 20px;
-				max-height: calc(100vh - 280px);
-				overflow: auto;
-			}
-			.target_tree {
-				color: #333;
-				.custom-tree-node {
-					display: flex !important;
-					justify-content: space-between;
-					align-items: center;
-					display: block;
-					flex: 1;
-					.node_label {
-						margin-right: 2px;
-					}
-					.el-icon-view {
-						color: #409EFF;
-						font-size: 18px;
-						margin-left: 5px;
-					}
-				}
-			}
-			.noDepart {
-				margin: 60px 0;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				color: #409eff;
-				font-size: 16px;
-				cursor: pointer;
-			}
-			.move-btn {
-				height: 100%;
-				width: 4px;
-				/* opacity: 0; */
-				position: absolute;
-				right: 0px;
-				top: 0;
-				&:hover {
-				cursor: col-resize;
-					/* background-color: orange */
-				}
-			}
-		}
-
-		.main-right {
-			width: 80%;
-			.chart-detail-wrapper {
-				height: calc(100vh - 120px);
-				border: 1px solid #ececec;
-				border-radius: 4px;
-				box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
-				overflow: auto;
-				background: #fff;
-				padding: 30px;
-				.bottom-min {
-					border: 1px solid #DCDFE6;
-					margin-bottom: 20px;
-					.chart-show-cont {
-              padding: 0 160px 0 120px;
-              position: relative;
-							min-height: 400px;
-              .chart-title {
-                font-size: 16px;
-                font-weight: normal;
-                text-align: center;
-                margin-bottom: 10px;
-              }
-              .chart-author {
-                font-size: 14px;
-                color: #333;
-                position: absolute;
-                bottom: 0;
-                right: 50px;
-              }
-              .chartWrapper {
-                position: relative;
-                .range-cont {
-                  position: absolute;
-                  top: 13%;
-                  .min-data-input {
-                    width: 60px;
-                    display: block;
-                  }
-                  &.left {
-                    left: -80px;
-                  }
-                  &.right {
-                    right: -65px;
-                  }
-                  &.rightTwo {
-                    right: -130px;
-                  }
-                }
-              }
-          }
-				}
-			}
-		}
-		
-		@media screen and (min-width: 1711px){
-			.min-data-input {
-				margin-top: 360px;
-			}
-		}
-		@media screen and (max-width: 1710px){
-			.min-data-input {
-				margin-top: 290px;
-			}
-		}
-	}
-}
+@import './css/index.scss';
 </style>
 
 <style lang="scss">
-.fittingEquation-chart-container {
-	.label-input .el-input__inner {
-		height: 25px;
-		line-height: 25px;
-		padding: 0 10px;
-	}
-
-	.range-cont .el-input__inner {
-		padding: 0 3px;
-	}
-
-	.el-tree__drop-indicator{
-		height:3px;
-		background-color:#409EFF;
-	}
-	.el-tree-node__content {
-		margin-bottom: 14px !important;
-	}
-	.el-tree-node__children {
-		.el-tree-node {
-			/* margin-bottom: 8px !important; */
-			margin-bottom: 0px !important;
-			padding-left: 18px;
-		}
-		.el-tree-node__content {
-			margin-bottom: 5px !important;
-			padding-left: 0 !important;
-		}
-	}
-	.expanded.el-icon-caret-right:before {
-		content: url('../../assets/img/set_m/down.png') !important;
-	}
-	.el-icon-caret-right:before {
-		content: url('../../assets/img/set_m/slide.png') !important;
-	}
-	.el-tree-node__expand-icon.is-leaf.el-icon-caret-right:before {
-		content: '' !important;
-	}
-	.el-tree-node__expand-icon.expanded {
-		-webkit-transform: rotate(0deg);
-		transform: rotate(0deg);
-	}
-	.el-tree-node.is-current > .el-tree-node__content {
-		background-color: #f0f4ff !important;
-	}
-	.el-tree-node__content {
-		padding-right: 10px !important;
-	}
-}
+@import './css/pub.scss';
 </style>

+ 1 - 1
src/views/classify_manage/chapterSetting.vue

@@ -262,7 +262,7 @@ import PermissionDialog from './components/PermissionDialog.vue'
 
 <style lang="scss" scoped>
   #chapter-settring-container{
-    min-height: calc(100vh - 110px);
+    min-height: calc(100vh - 120px);
     box-sizing: border-box;
     .head-buttons-zone{
       background-color: white;

+ 2 - 2
src/views/classify_manage/classifylist.vue

@@ -68,7 +68,7 @@
 				<img :src="isadd?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<span style="fontSize:16px;">{{isadd?'添加分类':'编辑分类'}}</span>
 			</div>
-			<el-form :model="aeForm" :rules="aerules" ref="aeForm" label-position="right" label-width="140px" class="demo-aeForm" id="login-container" @submit.native.prevent>
+			<el-form :model="aeForm" :rules="aerules" ref="aeForm" label-position="right" label-width="140px" class="aeForm"  @submit.native.prevent>
 				<el-form-item prop="classify_name" label="分类名称">
 					<el-input type="text" v-model="aeForm.classify_name" placeholder="请输入" size="small" style="width:400px;"></el-input>
 				</el-form-item>
@@ -938,7 +938,7 @@ export default{
 		transform: translate(-50%,-50%);
 		margin-top: 0 !important;
 		.el-dialog__body {
-			max-height: 600px;
+			height:65vh;
     		overflow-y: auto;
 		}
 	}

+ 30 - 20
src/views/dataEntry_manage/adjustdata/adjustData.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="adjust-data-container">
     <div class="wrap-top">
-      <div>
+      <div class="left-handle">
         <ul class="min-top" v-if="!edb_id">
           <li>
             <label style="margin-right:5px;">选择指标:</label>
@@ -39,7 +39,21 @@
           <span style="display:inline-block;margin-right:30px">原指标ID:{{EDBInfoOfCalculateData.FromEdbCode}}</span>
           <span>原指标名称:{{EDBInfoOfCalculateData.FromEdbName}}</span>
         </div>
-        <el-form
+      </div>
+      <div class="right-handle">
+        <div>
+          <el-button type="primary" size="medium" @click="saveSheetHandle">保存</el-button>
+          <el-button type="primary" size="medium" plain @click="$router.go(-1)">取消</el-button>
+        </div>
+        <el-tooltip>
+          <div slot="content" v-html="tips"></div>
+          <div class="tips-cont">
+            <span>使用说明</span>
+            <i class="el-icon-question" style="color: #999;"></i>
+          </div>
+        </el-tooltip>
+      </div>
+      <el-form
           ref="form"
           label-position="right"
           inline
@@ -57,7 +71,7 @@
           <el-form-item label="单位" prop="unit">
             <selectUnit 
 							v-model="formData.unit" 
-							style="width: 150px"
+							style="width: 120px"
 						/>
           </el-form-item>
           <el-form-item label="指标目录" prop="menu">
@@ -79,7 +93,7 @@
             <el-select
               v-model="formData.frequency"
               placeholder="请选择频度"
-              style="width: 150px"
+              style="width: 120px"
               clearable
             >
               <el-option
@@ -92,21 +106,6 @@
             </el-select>
           </el-form-item>
         </el-form>
-
-      </div>
-      <div class="right-handle">
-        <div>
-          <el-button type="primary" size="medium" @click="saveSheetHandle">保存</el-button>
-          <el-button type="primary" size="medium" plain @click="$router.go(-1)">取消</el-button>
-        </div>
-        <el-tooltip>
-          <div slot="content" v-html="tips"></div>
-          <div class="tips-cont">
-            <span>使用说明</span>
-            <i class="el-icon-question" style="color: #999;"></i>
-          </div>
-        </el-tooltip>
-      </div>
     </div>
     
     <div class="main">
@@ -538,6 +537,7 @@ export default {
 .adjust-data-container {
   .wrap-top {
     display: flex;
+    flex-wrap: wrap;
     justify-content: space-between;
     /* align-items: center; */
     margin-bottom: 20px;
@@ -550,15 +550,25 @@ export default {
     .min-top {
       margin-bottom: 10px;
       display: flex;
+      flex-wrap: wrap;
       align-items: center;
       color: #606266;
       li { margin-right: 35px; }
     }
+    .left-handle{
+        flex: 1;
+    }
     .right-handle {
       min-width: 155px;
+      display: flex;
+      flex-direction: row-reverse;
+      align-items: center;
+    }
+    .el-form{
+        width:100%;
     }
     .tips-cont {
-      margin-top: 20px;
+      margin-right: 20px;
     }
   }
   .main {

+ 25 - 66
src/views/dataEntry_manage/chartSetting.vue

@@ -893,9 +893,6 @@ export default {
         let [search_obj] = this.searchOptions.filter(
           (item) => item.ChartInfoId === newval
         );
-        // 查找图表的父级id
-        let arr = this.findParentNodeHandle(this.treeData,search_obj.ChartClassifyId);
-        this.defaultShowNodes = arr;
         this.select_node = search_obj.UniqueCode;
       
         this.selected_chartClassify = search_obj.ChartClassifyId; //图表所属分类
@@ -908,24 +905,6 @@ export default {
         this.select_date = [search_obj.StartDate, search_obj.EndDate];
         this.selected_chartType = search_obj.ChartType; //图表类型
         this.selected_chartid = newval;
-
-         //滚动到高亮节点位置
-        setTimeout(() => {
-          this.$refs.treeRef.setCurrentKey(this.select_node);
-          let node = document.getElementById(`node${this.select_node}`);
-          let parent = document.getElementsByClassName('tree-cont')[0];
-
-          //parent可视区间:[scrollTop,scrollTop+offsetHeight]
-          //node位置:node.offsetTop
-          const overTop = node.offsetTop+node.clientHeight+15<parent.scrollTop
-          const overBottom = node.offsetTop+node.clientHeight+15>parent.scrollTop+parent.offsetHeight
-          if(overTop){
-              parent.scrollTop = node.offsetTop-30
-          }
-          if(overBottom){
-            parent.scrollTop =  node.offsetTop - parent.offsetHeight/2
-          }
-        },400)
       }
     },
 
@@ -1452,18 +1431,10 @@ export default {
     // 树节点展开
     handleNodeExpand(data) {
       // 保存当前展开的节点
-      let flag = false;
-      this.defaultShowNodes.some((item) => {
-        if (item === data.UniqueCode) {
-          // 判断当前节点是否存在, 存在不做处理
-          flag = true;
-          return true;
-        }
-      });
-      if (!flag) {
-        // 不存在则存到数组里
-        this.defaultShowNodes.push(data.UniqueCode);
-      }
+      let flag = this.defaultShowNodes.some((item) => item === data.UniqueCode);
+			if (!flag) { // 不存在则存到数组里
+				this.defaultShowNodes.push(data.UniqueCode)
+			}
     },
     // 树节点关闭
     handleNodeCollapse(data) {
@@ -1473,7 +1444,6 @@ export default {
           this.defaultShowNodes.length = index;
         }
       });
-      // console.log(this.defaultShowNodes)
     },
 
     // 懒加载tree
@@ -1580,8 +1550,28 @@ export default {
       //将指标添加进标签列表中
       const {ChartNameEn,ChartName,ChartInfoId,UniqueCode,ChartClassifyId}=res.Data.ChartInfo
       this.addLabel({code:UniqueCode,id:ChartInfoId,classifyId:ChartClassifyId,EdbName:ChartName,EdbNameEn:ChartNameEn,chartData:res.Data.ChartInfo})
-      this.defaultShowNodes=this.findParentNodeHandle(this.treeData,ChartClassifyId)
+      this.defaultShowNodes=this.findParentNodeHandle(this.treeData,ChartClassifyId).reverse();
       this.changeTreeNode()
+
+
+      //滚动到高亮节点位置
+      this.$refs.treeRef.setCurrentKey(this.select_node);
+      setTimeout(() => {
+        let node = document.getElementById(`node${this.select_node}`);
+        let parent = document.getElementsByClassName('tree-cont')[0];
+
+        //parent可视区间:[scrollTop,scrollTop+offsetHeight]
+        //node位置:node.offsetTop
+        const overTop = node.offsetTop+node.clientHeight+15<parent.scrollTop
+        const overBottom = node.offsetTop+node.clientHeight+15>parent.scrollTop+parent.offsetHeight
+        console.log(overBottom)
+        if(overTop){
+            parent.scrollTop = node.offsetTop-30
+        }
+        if(overBottom){
+          parent.scrollTop =  node.offsetTop - parent.offsetHeight/2
+        }
+      },400)
     },
 
     /* 设置默认时间选中项 */
@@ -2043,8 +2033,6 @@ export default {
       // 查找选中的节点信息
       let select_obj = chartData?chartData:await this.findNode(deep_arr, id);
       // 查找图表的分类父级id
-      let arr = this.findParentNodeHandle(this.treeData,select_obj.ChartClassifyId); // 父的父的父-父的父-父
-      this.defaultShowNodes = arr;
       this.select_node = code;
       
       // 重置筛选状态
@@ -2055,23 +2043,6 @@ export default {
       this.select_date = [select_obj.StartDate, select_obj.EndDate]; //曲线日期选择
       this.selected_chartType = select_obj.ChartType;
       this.selected_chartid = id;
-
-      //滚动到高亮节点位置
-        setTimeout(() => {
-            this.$refs.treeRef.setCurrentKey(this.select_node);
-            let node = document.getElementById(`node${this.select_node}`);
-            let parent = document.getElementsByClassName('tree-cont')[0];
-            //parent可视区间:[scrollTop,scrollTop+offsetHeight]
-            //node位置:node.offsetTop
-            const overTop = node.offsetTop+node.clientHeight+15<parent.scrollTop
-            const overBottom = node.offsetTop+node.clientHeight+15>parent.scrollTop+parent.offsetHeight
-            if(overTop){
-                parent.scrollTop = node.offsetTop-30
-            }
-            if(overBottom){
-                parent.scrollTop =  node.offsetTop - parent.offsetHeight/2
-            }
-        },400)
     },
     
     /* 根据图表id 查找对象 */
@@ -2105,12 +2076,6 @@ export default {
         this.expandKey.length && this.expandKey[0] === row.EdbCode
           ? []
           : [row.EdbCode];
-      //曲线图点击行 自动置底
-      // if (this.selected_chartType === 1) {
-      //   this.$nextTick(() => {
-      //     $('.chart-min-cont')[0].scrollTop = 10000;
-      //   });
-      // }
     },
     
     /* 设置row-key */
@@ -2123,12 +2088,6 @@ export default {
         this.expandKey.length && this.expandKey[0] === row.EdbCode
           ? []
           : [row.EdbCode];
-      //曲线图点击行 自动置底
-      // if (this.selected_chartType === 1) {
-      //   this.$nextTick(() => {
-      //     $('.chart-min-cont')[0].scrollTop = 10000;
-      //   });
-      // }
       this.$refs.tableRef.setCurrentRow(row);
     },
     // 查找树节点所有父节点

+ 29 - 5
src/views/dataEntry_manage/databaseComponents/addTargetDiaBase.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="addTargtDia-box" v-if="isAddTarget">
 		<el-dialog :visible.sync="isAddTarget" :close-on-click-modal="false" :modal-append-to-body='false'
-			@close="cancelHandle" custom-class="dialog" top="11vh" center width="1200px" v-dialogDrag>
+			@close="cancelHandle" custom-class="custom-dialog fit-screen-dialog" top="5vh" center width="85vw" v-dialogDrag>
 			<div slot="title" style="display:flex;alignItems:center;">
 				<img :src="$icons.add" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<span style="fontSize:16px;">添加指标</span>
@@ -69,7 +69,7 @@
 
 <script>
 import { dataBaseInterface } from '@/api/api.js'
-import { fromArr, fromCode } from './util';
+import { fromArr, fromCode ,frequencyArr} from './util';
 export default {
 	name: '',
 	props: {
@@ -110,6 +110,13 @@ export default {
 			search_company_txt: ''
 		};
 	},
+	watch:{
+		isAddTarget(newVal){
+			if(newVal){
+				this.getTargetSource()
+			}
+		}
+	},
 	methods: {
 		init() {
 			this.fromType = 'wind'
@@ -169,12 +176,18 @@ export default {
 							unit: res.Data.SearchItem.Unit,
 							frequency: res.Data.SearchItem.Frequency,
 						} : {}
+						let jy_params = Number(this.fromCode.get(this.fromType))>1000?{
+							edb_name:res.Data.SearchItem.EdbName,
+							unit:res.Data.SearchItem.Unit,
+							frequency:frequencyArr.includes(res.Data.SearchItem.Frequency)?res.Data.SearchItem.Frequency:''
+						}:{}
 						this.add_params = {
 							EdbCode: res.Data.SearchItem.EdbCode,
 							EndDate: res.Data.SearchItem.EndDate,
 							StartDate: res.Data.SearchItem.StartDate,
 							Source: Number(this.fromCode.get(this.fromType)),
-							...opther_params
+							...opther_params,
+							...jy_params
 						}
 						this.status = res.Data.Status;
 						let classify_arr = res.Data.ClassifyList || [];
@@ -223,22 +236,33 @@ export default {
 		},
 		getTargetSource(){
 			this.fromArr = []
+			this.fromCode = []
 			dataBaseInterface.getDataSource({IsBase:1}).then(res=>{
 				if(res.Ret!==200) return
 				if(res.Data){
 					this.fromArr = res.Data.map(i=>{
 						return i.SourceName
 					})
+					this.fromCode = new Map(res.Data.map(i=>{
+						return [i.SourceName,i.EdbSourceId]
+					}))
 				}
 			})
 		}
 	},
 	created() { },
 	mounted() {
-		this.getTargetSource()
+		//this.getTargetSource()
 	},
 }
 </script>
+<style lang="scss">
+.addTargtDia-box {
+    .custom-dialog{
+        max-width: 1200px !important;
+    }
+}
+</style>
 <style lang='scss' scoped>
 .addTargtDia-box {
 	.dialog-top {
@@ -274,7 +298,7 @@ export default {
 	}
 
 	.dia-bot {
-		margin: 60px 0;
+		margin: 30px 0;
 		display: flex;
 		justify-content: center;
 	}

+ 21 - 2
src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue

@@ -2,7 +2,7 @@
 	<div class="chart-trend-render">
 		<div class="header">
 			<template v-if="chart_type===1">
-				<el-button
+				<!-- <el-button
 					type="primary"
 					v-for="item in yearSelector"
 					:key="item.value"
@@ -11,7 +11,25 @@
 					class="year-btn"
 					@click.native="changeYear(item)"
 					>{{ item.name }}</el-button
-				>
+				> -->
+				<el-popover 
+					placement="bottom" 
+					trigger="click" 
+					popper-class="btn-select-popover"
+					width="460" style="display: inline-block;">
+					<div class="btn-wrap">
+						<el-button
+							type="primary"
+							v-for="item in yearSelector"
+							:key="item.value"
+							size="mini"
+							:plain="item.value !== year_select"
+							class="year-btn"
+							@click.native="changeYear(item)"
+							>{{ item.name }}</el-button>
+					</div>
+					<el-button type="primary" plain size="mini" class="year-btn" slot="reference" style="margin-right:15px;background-color: #e6eefb;color:#0052D9;">时间段</el-button>
+				</el-popover>
 				<el-button type="primary" plain size="mini" class="btn-sty" @click="openDateDia">{{
 					dateTip
 				}}</el-button>
@@ -776,6 +794,7 @@ export default {
 .chart-trend-render {
 	width:100%;
 	box-sizing: border-box;
+	overflow-x: hidden;
 	@media screen and (min-width: 1711px) {
 		.min-data-input { margin-top: 300px; }
 	}

+ 9 - 3
src/views/dataEntry_manage/databaseComponents/computedDialog.vue

@@ -4,10 +4,9 @@
 		:close-on-click-modal="false"
 		:modal-append-to-body="false"
 		@close="cancelHandle"
-		custom-class="computed-dialog"
+		custom-class="computed-dialog fit-screen-dialog"
 		center
-		width="1090px"
-		top="8vh"
+		top="6vh"
 		v-dialogDrag
 	>
 		<div slot="title" style="display: flex; align-items: center">
@@ -444,6 +443,8 @@ export default {
 </script>
 <style lang="scss">
 .computed-dialog {
+    max-width: 1200px !important;
+    width:85vw;
 	overflow: hidden;
 	div::-webkit-scrollbar {
 		width: 6px !important;
@@ -454,6 +455,11 @@ export default {
 	}
 	.dialog-main {
 		padding: 25px 42px 25px 25px;
+		@media screen and (max-height:850px){
+			box-sizing: border-box;
+			height: 65vh;
+			overflow-y: auto;
+		}
 		.el-cascader .el-input {
 			width: 340px;
 		}

+ 39 - 8
src/views/dataEntry_manage/databaseComponents/dataAssociateChart.vue

@@ -4,14 +4,30 @@
             <tableNoData text="该指标暂无关联图"/>
         </div>
         <template v-else>
-        <p style="position:relative;top:-20px;font-size:16px">共 {{chartTotal}} 张图表</p>
+        <p style="position:relative;font-size:16px">共 {{chartTotal}} 张图表</p>
         <div
             class="chart-public-list"
             v-infinite-scroll="load"
             infinite-scroll-immediate="false"
             :infinite-scroll-disabled="finished"
         >
-            <el-col
+            <div class="chart-list-item-wrap">
+                <div class="chart-list-item" v-for="chart in list" :key="chart.ChartInfoId">
+                    <div class="chart-item-top text_oneLine"><span class="text_oneLine">{{ chart.ChartName }}</span></div>
+                    <div class="chart-item-img" @click="detailShowHandle(chart)"
+                        :style="chart.ChartImage?{background: `no-repeat top/cover url('${chart.ChartImage}')`}:{}"></div>
+                    <div class="chart-item-bottom">
+                        <span>创建时间: {{ chart.CreateTime.slice(0,10) }}</span>
+                        <span class="join_txt" @click="addMychartHandle(chart)">
+                            <img :src="$icons.chart_join_ico"
+                                style="width: 13px; height: 12px; vertical-align: middle"/>
+                            加入我的图库
+                        </span>
+                    </div>
+                </div>
+
+            </div>
+            <!-- <el-col
                 :span="6"
                 style="margin-bottom: 20px; padding-right: 20px"
                 v-for="chart in list"
@@ -42,7 +58,7 @@
                         </span>
                     </div>
                 </el-card>
-            </el-col>
+            </el-col> -->
         </div>
         </template>
 
@@ -180,6 +196,12 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+.associate-chart{
+    height: 100%;
+    overflow: hidden;
+    display: flex;
+    flex-direction: column;
+}
 .empty-list{
     min-height: calc(100vh - 300px);
     background-color: #fff;
@@ -187,11 +209,20 @@ export default {
     padding-top: 100px;
 }
 .chart-public-list{
-    display: flex;
-      flex-wrap: wrap;
-      max-height: calc(100vh - 143px);
-      overflow: hidden;
-      overflow-y: auto;
+    flex: 1;
+    width: 100%;
+    margin-top:20px;
+    /* max-height: calc(100vh - 220px); */
+    overflow-y: auto;
+      .chart-list-item{
+          width:23%;
+          min-width: 235px;
+          .join_txt {
+            float: right;
+            color: #409eff;
+            cursor: pointer;
+          }
+      }
 }
 .public-chart-item {
         .item-top {

+ 2 - 2
src/views/dataEntry_manage/databaseComponents/operationDialog.vue

@@ -4,9 +4,8 @@
 		:close-on-click-modal="false"
 		:modal-append-to-body="false"
 		@close="cancelHandle"
-		custom-class="operation-dialog"
+		custom-class="operation-dialog fit-screen-dialog"
 		center
-		width="1200px"
 		top="5vh"
 		v-dialogDrag
 	>
@@ -729,6 +728,7 @@ export default {
 </script>
 <style lang='scss'>
 .operation-dialog {
+	max-width: 1200px !important;
 	position: relative;
 	div::-webkit-scrollbar {
 		width: 6px !important;

+ 2 - 1
src/views/dataEntry_manage/databaseComponents/updateDialog.vue

@@ -71,6 +71,7 @@ export default {
       if (newval) {
         this.getTotal();
         this.getDataList();
+        this.getTargetSource();
         this.$nextTick(() => {
           this.loadMoveHandler();
         })
@@ -405,7 +406,7 @@ export default {
   },
   created() { },
   mounted() {
-      this.getTargetSource()
+      //this.getTargetSource()
   },
 };
 </script>

+ 2 - 0
src/views/dataEntry_manage/databaseComponents/util.js

@@ -153,6 +153,8 @@ export const computedBatchTypes = [
 	}
 ]
 
+//频度
+export const frequencyArr = ['日度','周度','旬度','月度','季度','年度']
 //添加基础指标来源
 export const fromArr = ['wind','同花顺','彭博','彭博财务','路透','手工指标','隆众指标','SMM','Mysteel','郑商所',
 '大商所','上期所','中金所','上期能源','欧洲天然气','中国煤炭市场网','谷歌出行指数','EIA STEO报告','UN','卓创数据(红桃3)',

+ 209 - 139
src/views/dataEntry_manage/databaseList.vue

@@ -1,7 +1,7 @@
 <template>
 	<div class="database_container">
 		<div class="database_top">
-			<div>
+			<div class="top-left">
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_addEdb"
 					type="primary" @click="addHandler">添加指标</el-button>
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_calcuEdb"
@@ -28,7 +28,7 @@
 					remote
 					clearable
 					placeholder="指标ID/指标名称"
-					style="width: 400px;margin-left:10px;"
+					style="width: 260px;"
 					:remote-method="searchHandle"
 					@click.native="inputFocusHandle"
 				>
@@ -54,8 +54,16 @@
 				/>
 		</div>
 		<div class="database_main box" id="box" v-if="showData">
+			<!-- 展开收起目录按钮 -->
+			<span
+				v-show="!isMainLeftShow"
+				class="slide-btn-icon slide-right"
+				@click="isMainLeftShow = !isMainLeftShow"
+			>
+				<i :class="{'el-icon-d-arrow-left':isMainLeftShow,'el-icon-d-arrow-right':!isMainLeftShow}"></i>
+			</span>
 			<!-- <target-tree /> -->
-			<div class="main-left left" id="left">
+			<div class="main-left left" id="left" v-show="isMainLeftShow">
 				<div class="tree-cont">
 					<el-tree
 						ref="menuTree"
@@ -173,6 +181,13 @@
 				</div>
 				<span class="move-btn resize" v-drag id="resize" @mousemove="dynamicNode&&resetNodeStyle(dynamicNode)">
 				</span>
+				<span
+					v-show="isMainLeftShow"
+					class="slide-btn-icon slide-left"
+					@click="isMainLeftShow = !isMainLeftShow"
+				>
+					<i :class="{'el-icon-d-arrow-left':isMainLeftShow,'el-icon-d-arrow-right':!isMainLeftShow}"></i>
+				</span>
 			</div>
 			<!-- 指标关联图模块 -->
 			<div class="main-right right" id="right" style="background:transparent;border:none;box-shadow:none" v-if="showAssociateChart">
@@ -185,108 +200,125 @@
 			<div class="main-right right list" id="right" v-show="isShowList">
 				<p>共{{Total||0}}个指标</p>
 				<div class="list-wrap" ref="listRef" @scroll="loadMoreHandle" v-if="Total">
-					<div class="list-item" v-for="item in chartList" :key="item.EdbInfoId">
-						<div class="header">
-							<span v-show="currentLang=='ch'">{{ item.EdbName }}</span> 
-							<span v-show="currentLang=='en'">{{ item.EdbNameEn || item.EdbName }}</span>
-						</div>
-						<div class="image" @click="detailShowHandle(item)">
-							<img :src="item.ChartImage" alt=""/>
-						</div>
-						<div class="info">
-							创建时间:{{item.CreateTime.substring(0,10)}}
+					<div class="chart-list-item-wrap">
+						<div class="list-item" v-for="item in chartList" :key="item.EdbInfoId">
+							<div class="header">
+								<span v-show="currentLang=='ch'">{{ item.EdbName }}</span> 
+								<span v-show="currentLang=='en'">{{ item.EdbNameEn || item.EdbName }}</span>
+							</div>
+							<div class="image" @click="detailShowHandle(item)"
+								:style="item.ChartImage?{background: `no-repeat top/cover url('${item.ChartImage}')`}:{}">
+								<!-- <img :src="item.ChartImage"/> -->
+							</div>
+							<div class="info">
+								创建时间:{{item.CreateTime.substring(0,10)}}
+							</div>
 						</div>
 					</div>
-					<p style="height: 40px;line-height:40px;width: 100%;"></p>
+					
 				</div>
 				<div v-if="!Total" class="nodata">
 					<tableNoData text="暂无指标"/>
 				</div>
 			</div>
 			<!-- 指标详情 -->
-			<div class="main-right right detail" id="right" v-show="isShowDetail">
-				<div class="header">
-					<el-tabs v-model="activeTab" @tab-click="rePainChart">
-						<el-tab-pane label="走势图" name="Chart">
-						</el-tab-pane>
-						<el-tab-pane label="数据详情" name="Data">
-						</el-tab-pane>
-					</el-tabs>
-					<div class="edb-tool">
-						<el-button v-if="isEdbBtnShow('update')"
-							type="text" @click="refreshTargetHandle" >刷新</el-button>
-						<el-button v-if="isEdbBtnShow('edit')"
+			<div class="main-right right detail-wrap" id="right" v-show="isShowDetail">
+				<div class="detail">
+					<div class="header">
+						<el-tabs v-model="activeTab" @tab-click="rePainChart">
+							<el-tab-pane label="走势图" name="Chart">
+							</el-tab-pane>
+							<el-tab-pane label="数据详情" name="Data">
+							</el-tab-pane>
+						</el-tabs>
+						<div class="edb-tool-icon edb-tool" style="align-items: center;">
+							<el-button v-if="isEdbBtnShow('update')"
+								type="text" @click="refreshTargetHandle" >刷新</el-button>
+							<el-button v-if="isEdbBtnShow('edit')"
 								type="text" :disabled="!(EdbData.Button.OpButton)"
-								@click="editNode({},EdbData)"
-							>编辑</el-button>
-						<!-- 指保存指标的上下限,在走势图才显示 -->
-						<el-button v-if="activeTab==='Chart'&&isEdbBtnShow('saveEdb')"
-							type="text" @click.stop="saveEdbLimit">保存</el-button>
-						<el-button v-if="isEdbBtnShow('setEn')"
-							type="text" @click="openEnNameDia">设置英文名称</el-button>
-						<el-button v-if="EdbData.Button.InsertNewDataButton&&isEdbBtnShow('newValue')"
-							type="text" @click.stop="updateNewestDataHandle" >{{(EdbData.DataInsertConfig.Date)?'编辑最新值':'添加最新值'}}</el-button>
-						<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('calculateAgain')"
-							type="text" @click.stop="reCalculateHandler" :loading="calculateLoading">重新计算</el-button>
-						<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('toSource')"
-							type="text" @click="isLookHistory=true;lookEdbId=selected_edbid">指标溯源</el-button>
-						<el-button v-if="EdbData.EdbType===1&&isEdbBtnShow('refreshAll')"
-							type="text" @click.stop="refreshBaseHandler" :loading="refreshLoading">全部刷新</el-button>
-						<el-button v-if="isEdbBtnShow('copyData')"
-							type="text" @click="copyCode">复制数据</el-button>
-						<el-button v-if="EdbData.Button.DeleteButton&&isEdbBtnShow('deleteEdb')"
-							type="text" @click="removeNode(_,EdbData)" style="color:#C54322;">删除</el-button>
-					</div>
-				</div>
-				<div class="container" id="detail-container">
-					<div class="chart" v-show="activeTab==='Chart'">
-						<chart-trend-render
-							:edbid="selected_edbid"
-							:chartLang="currentLang"
-							:isShowChartBasis="isEdbBtnShow('showChartBasis')"
-							:isAllowSwitchSeason="isEdbBtnShow('switchSeason')"
-							:isAllowEditLimit="isEdbBtnShow('editLimit')"
-							ref="createChart"
-							@editEnName="openEnNameDia"/>
-						<div class="info">
-							<span>数据来源:{{EdbData.SourceName}}</span>
-							<span>添加人:{{EdbData.SysUserRealName}}</span>
+								@click="editNode({},EdbData)">编辑</el-button>
+							<!-- 指保存指标的上下限,在走势图才显示 -->
+							<el-button v-if="activeTab==='Chart'&&isEdbBtnShow('saveEdb')"
+								type="text" @click.stop="saveEdbLimit">保存</el-button>
+							<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('toSource')"
+								type="text" @click="isLookHistory=true;lookEdbId=selected_edbid">指标溯源</el-button>
+							<el-popover 
+								placement="left" 
+								trigger="hover"
+								popper-class="edb-tool-popover"
+								width="320" style="display: inline-block;">
+								<div class="edb-tool-wrap">
+									<el-button v-if="isEdbBtnShow('setEn')"
+										type="text" @click="openEnNameDia">设置英文名称</el-button>
+									<el-button v-if="EdbData.Button.InsertNewDataButton&&isEdbBtnShow('newValue')"
+										type="text" @click.stop="updateNewestDataHandle" >{{(EdbData.DataInsertConfig.Date)?'编辑最新值':'添加最新值'}}</el-button>
+									<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('calculateAgain')"
+										type="text" @click.stop="reCalculateHandler" :loading="calculateLoading">重新计算</el-button>
+									<el-button v-if="EdbData.EdbType===1&&isEdbBtnShow('refreshAll')"
+										type="text" @click.stop="refreshBaseHandler" :loading="refreshLoading">全部刷新</el-button>
+									<el-button v-if="isEdbBtnShow('copyData')"
+										type="text" @click="copyCode">复制数据</el-button>
+									<el-button v-if="EdbData.Button.DeleteButton&&isEdbBtnShow('deleteEdb')"
+										type="text" @click="removeNode(_,EdbData)" style="color:#C54322;">删除</el-button>
+								</div>
+								<div class="edb-btn" slot="reference">
+									<el-button type="text">更多操作</el-button>
+									<i class="el-icon-more" style="font-size: 14px;transform: rotate(90deg);cursor: pointer;color: #3375e1;"/>
+								</div>
+							</el-popover>
 						</div>
-						<ul class="value-ul"
-							v-show="showTable&&dataList.length">
-							<li class="value-item" style="background-color: #EBEFF6;">
-								<span style="width:240px">日期(频度:{{EdbData.Frequency}})</span>
-								<span style="flex:1;">值</span>
-							</li>
-							<li class="value-item"
-								v-for="item in dataList.slice(0,3)"
-								:key="item.EdbDataId">
-								<span class="value-label date" style="width:240px">
-									<span style="position: relative;">
-										<i class="new-tag" v-if="EdbData.LatestDate===item.DataTime"></i>
-										{{item.DataTime}}
-									</span>
-								</span>
-								<span :class="['value-label',{'predict-act': EdbData.DataInsertConfig.Date===item.DataTime}]" style="flex:1;">
-									<span :class="['value-style',{'predict-act': EdbData.DataInsertConfig.Date===item.DataTime}]">{{item.Value}}</span>
-								</span>
-							</li>
-							<li class="nodata value-item" v-if="!dataList.length">暂无数据</li>
-						</ul>
 					</div>
-					<div class="list" v-show="activeTab==='Data'">
-						<edb-detail-data 
-							ref="edb_detail_data"
-							:current-lang="currentLang"
-							:table-data="tableData"
-							:table-colums-one="tableColumsOne"
-							:table-colums-two="tableColumsTwo"
-							:data-list="dataList"
-							:haveMore="haveMore"
-							@getNextData="()=>{page_no++;getDataList();}"
-						/>
+					<div class="container" id="detail-container">
+						<div class="chart" v-show="activeTab==='Chart'">
+							<chart-trend-render
+								:edbid="selected_edbid"
+								:chartLang="currentLang"
+								:isShowChartBasis="isEdbBtnShow('showChartBasis')"
+								:isAllowSwitchSeason="isEdbBtnShow('switchSeason')"
+								:isAllowEditLimit="isEdbBtnShow('editLimit')"
+								ref="createChart"
+								@editEnName="openEnNameDia"/>
+							<div class="info">
+								<span>数据来源:{{EdbData.SourceName}}</span>
+								<span>添加人:{{EdbData.SysUserRealName}}</span>
+							</div>
+							<ul class="value-ul"
+								v-show="showTable&&dataList.length">
+								<li class="value-item" style="background-color: #EBEFF6;">
+									<span style="width:240px">日期(频度:{{EdbData.Frequency}})</span>
+									<span style="flex:1;">值</span>
+								</li>
+								<li class="value-item"
+									v-for="item in dataList.slice(0,3)"
+									:key="item.EdbDataId">
+									<span class="value-label date" style="width:240px">
+										<span style="position: relative;">
+											<i class="new-tag" v-if="EdbData.LatestDate===item.DataTime"></i>
+											{{item.DataTime}}
+										</span>
+									</span>
+									<span :class="['value-label',{'predict-act': EdbData.DataInsertConfig.Date===item.DataTime}]" style="flex:1;">
+										<span :class="['value-style',{'predict-act': EdbData.DataInsertConfig.Date===item.DataTime}]">{{item.Value}}</span>
+									</span>
+								</li>
+								<li class="nodata value-item" v-if="!dataList.length">暂无数据</li>
+							</ul>
+						</div>
+						<div class="list" v-show="activeTab==='Data'">
+							<edb-detail-data 
+								ref="edb_detail_data"
+								:current-lang="currentLang"
+								:table-data="tableData"
+								:table-colums-one="tableColumsOne"
+								:table-colums-two="tableColumsTwo"
+								:data-list="dataList"
+								:haveMore="haveMore"
+								@getNextData="()=>{page_no++;getDataList();}"
+							/>
+						</div>
 					</div>
 				</div>
+				
 			</div>
 		</div>
 		<!-- 输入英文指标弹窗 -->
@@ -332,7 +364,7 @@
 		:modal-append-to-body='false'
 		@close="isOpenComputed=false;"
 		custom-class="dialog-computed"
-		top="12vh"
+		top="6vh"
 		center
 		width="920px"
 		v-dialogDrag>
@@ -512,40 +544,39 @@ export default {
 		SmoothEdbDialog,
 	},
 	directives: {
-    drag(el, bindings) {
-      el.onmousedown = function(e) {
+		drag(el, bindings,vnode) {
+			el.onmousedown = function(e) {
 				var init = e.clientX;
-				// console.log(init);
 				var box = $("#box")[0]
-				// console.log(box.clientWidth)
 				let total_wid = box.offsetWidth
-        var left = $("#left")[0];
-        var right = $("#right")[0];
-        var initWidth = left.offsetWidth;
-        document.onmousemove = function(e) {
-          var end = e.clientX;
-					// console.log(total_wid,initWidth,end);
+				var left = $("#left")[0];
+				var right = $("#right")[0];
+				var initWidth = left.offsetWidth;
+				document.onmousemove = function(e) {
+					var end = e.clientX;
 					if(end > 310){
-            var newWidth = end - init + initWidth;
-						// right.style.width = total_wid-end+80 +'px'
+						var newWidth = end - init + initWidth;
 						right.style.width = total_wid - newWidth + 'px'
-            left.style.width = newWidth + "px";
-          }else{
-            end = 350;
-            // 最小宽度300
-            left.style.width = 300 + "px";
+						left.style.width = newWidth + "px";
+					}else{
+						end = 350;
+						// 最小宽度300
+						left.style.width = 300 + "px";
 						// right.style.width = total_wid-300-20 +'px'
-          }
-        };
-        document.onmouseup = function() {
-          document.onmousemove = document.onmouseup = null;
+					}
+					
+				};
+				document.onmouseup = function() {
+					document.onmousemove = document.onmouseup = null;
 					e.releaseCapture && e.releaseCapture();
-        };
+					//移动结束触发重绘
+					vnode.context.rePainChart()
+				};
 				e.setCapture && e.setCapture();
 				return false;
-      };
-    }
-  },
+			};
+		}
+	},
 	data() {
 		return {
 			showData: false,
@@ -696,7 +727,9 @@ export default {
 			chartList:[],
 
 			activeTab:'',
-			activeName:'second'
+			activeName:'second',
+
+			isMainLeftShow:true,
 		};
 	},
 	watch: {
@@ -732,7 +765,10 @@ export default {
 				this.CurrentIndex = 1
 				this.getEdbChartList()
 			}
-		}
+		},
+		isMainLeftShow(newVal){
+			this.rePainChart()
+		},
 	},
 	computed: {
 			/* 计算弹窗控制 */
@@ -927,7 +963,7 @@ export default {
 			let scrollTop = this.$refs.listRef.scrollTop;
 			let clientHeight = this.$refs.listRef.clientHeight;
 			let scrollHeight = this.$refs.listRef.scrollHeight;
-			if(scrollTop + clientHeight >= scrollHeight-10 && !this.IsListEnd){
+			if(scrollTop + clientHeight >= scrollHeight-210 && !this.IsListEnd){
 				this.CurrentIndex++;
 				this.getEdbChartList();
 			}
@@ -1918,6 +1954,10 @@ export default {
 		next()
 	},
 	mounted() {
+		if (document.body.clientWidth <= 1400) {
+			//小屏适配
+			this.isMainLeftShow = false;
+		}
 		this.getlabelList()
 		this.getEdbChartList()
 		this.$route.query.code 
@@ -1983,14 +2023,26 @@ export default {
 		border: 1px solid #ececec;
 		border-radius: 4px;
 		box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-		.top-right {
+		.top-right,.top-left{
 			display: flex;
 			align-items: center;
+			gap:20px;
+			flex-wrap: wrap;
+			.el-button + .el-button{
+				margin-left: 0;
+			}
 		}
+		/* .top-left{
+			display: flex;
+			
+		} */
 	}
 	.database_main {
 		display: flex;
 		margin-top: 20px;
+		position:relative;
+		width:100%;
+		overflow-x: auto;
 		div::-webkit-scrollbar {
 			width: 5px !important;
 		}
@@ -2172,16 +2224,12 @@ export default {
 				background-color: transparent;
 				box-shadow: none;
 				border:none;
-				padding:0 30px;
+				padding-left:30px;
 				display: flex;
 				flex-direction: column;
 				.list-wrap{
 					flex: 1;
 					margin-top: 20px;
-					display: flex;
-					gap: 20px;
-					flex-wrap: wrap;
-					overflow-x: hidden;
 					overflow-y: auto;
 					.dragShdow {
 						box-shadow: 0 1px 8px rgba(64, 158, 255, 0.8);
@@ -2189,22 +2237,20 @@ export default {
 					}
 					.list-item{
 						width:23%;
-						height:375px;
+						min-width: 210px;
 						background-color: #fff;
 						display: flex;
 						flex-direction: column;
 						box-sizing: border-box;
-						/* padding: 0 10px; */
 						border-radius: 4px;
 						border:1px solid #DCDFE6;
 						box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
 						.header,.info{
-							padding:20px;
+							padding:10px;
 							box-sizing: border-box;
 							text-align: left;
 						}
 						.header{
-							//border-bottom: 1px solid #DCDFE6;
 							white-space: nowrap;
 							overflow: hidden;
 							text-overflow: ellipsis;
@@ -2213,21 +2259,23 @@ export default {
 							box-shadow: 0 3px 6px rgba(37, 37, 239, 0.1);
 						}
 						.image{
-							padding:20px 20px 0 20px;
-							flex: 1;
+							margin:10px;
+							margin-bottom: 0;
+							height: 0;
+							padding-bottom: 67%;
 							cursor: pointer;
-							img{
-								width:100%;
-								height: 230px;
-								object-fit: fill !important;
-							}
 						}
 					}
 				}
 			}
-			&.detail{
+			&.detail-wrap{
+				overflow-x:auto;
+			}
+			.detail{
 				display: flex;
 				flex-direction: column;
+				min-width: 780px;
+				height:100%;
 				>.header{
 					display: flex;
 					position: relative;
@@ -2297,6 +2345,14 @@ export default {
 			}
 
 		}
+		.slide-btn-icon{
+			&.slide-left{
+				right:0;
+			}
+			&.slide-right{
+				left: 0;
+			}
+		}
 	}
 	.dialog-computed {
 		.el-dialog__header {
@@ -2306,7 +2362,9 @@ export default {
 			}
 		}
 		.computed-ul {
+			box-sizing: border-box;
 			max-height: 600px;
+			height:65vh;
 			overflow-y: auto;
 			padding: 40px 92px;
 			display: flex;
@@ -2314,6 +2372,8 @@ export default {
 			.cpmputed-li {
 				width: 180px;
 				padding: 19px 0;
+				height: 60px;
+				box-sizing: border-box;
 				color: $theme-color;
 				font-size: 16px;
 				background:#ECF5FF;
@@ -2338,4 +2398,14 @@ export default {
 		}
 	}
 }
+.edb-tool-popover{
+	.edb-tool-wrap{
+		display: flex;
+		flex-wrap: wrap;
+		gap:0 10px;
+		.el-button + .el-button{
+			margin-left: 0;
+		}
+	}
+}
 </style>

+ 1 - 1
src/views/dataEntry_manage/onlineExcelCopy.vue

@@ -576,7 +576,7 @@ created() {
 <style lang="scss" scoped>
   .excel-data-container{
     display: flex;
-    height: calc(100vh - 110px);
+    height: calc(100vh - 120px);
     .online-excel{
       flex-grow: 1;
       height: 100%;

+ 203 - 0
src/views/dataEntry_manage/thirdBase/DatabankBase.vue

@@ -0,0 +1,203 @@
+<template>
+    <!-- 数据宝页面 -->
+    <div class="data-bank-base-wrap">
+        <div class="select-box">
+            <!-- <el-radio-group v-model="choosedSource" size="medium" @input="handleCurrentChange(1)">
+                <el-radio-button v-for="source in sourceList" 
+                    :key="source.EdbSourceId" 
+                    :label="source.EdbSourceId">{{source.SourceName}}</el-radio-button>
+            </el-radio-group> -->
+            <el-select v-model="choosedSource">
+                <el-option v-for="source in sourceList" 
+                :key="source.EdbSourceId"
+                :value="source.EdbSourceId"
+                :label="source.SourceName"
+                ></el-option>
+            </el-select>
+            <el-select v-model="selectValue" @change="handleCurrentChange(1)"
+                placeholder="请选择频度"
+                clearable
+                style="width:240px;margin-left: auto;">
+                <el-option v-for="item in frequencyList" 
+                    :key="item" :value="item" :label="item" />
+            </el-select>
+            <el-input v-model="inputValue" @input="handleCurrentChange(1)"
+            placeholder="指标ID/指标名称"
+            clearable
+            prefix-icon="el-icon-search"
+            style="width:240px;margin-left:30px;"></el-input>
+        </div>
+        <div class="table-box">
+            <el-table :data="tableData" border  @sort-change="sortChange" 
+                v-loading="tableLoading" element-loading-text="数据加载中...">
+                <el-table-column v-for="column in tableColumnList" 
+                    align="center"
+                    :key="column.key"
+                    :label="column.label"
+                    :prop="column.key"
+                    :min-width="column.minWidth"
+                    :sortable="column.sortable"></el-table-column>
+                <div class="empty-box" slot="empty">
+                    <tableNoData text="暂无数据"/>
+                </div>
+            </el-table>
+        </div>
+        <div class="page-box">
+          <el-pagination
+                layout="total,prev,pager,next,jumper"
+                background
+                :current-page="pageNo"
+                @current-change="handleCurrentChange"
+                :page-size="pageSize"
+                :total="total"
+            >
+          </el-pagination>
+        </div>
+    </div>
+</template>
+
+<script>
+import { databankInterface } from "@/api/api.js";
+export default {
+    data() {
+        return {
+            sourceList:[],//数据源列表
+            choosedSource:'',//选择的数据源
+
+            frequencyList:[],//频度列表
+            selectValue:'',//选择的频度
+
+            inputValue:'',//搜索框
+
+            tableColumnList:[
+                {
+                    key:'Id',
+                    label:'指标ID'
+                },
+                {
+                    key:'Code',
+                    label:'指标编码'
+                },
+                {
+                    key:'Name',
+                    label:'指标名称',
+                    minWidth:170,
+                },
+                {
+                    key:'Frequency',
+                    label:'频度'
+                },
+                {
+                    key:'Unit',
+                    label:'单位'
+                },
+                {
+                    key:'DateFirst',
+                    label:'指标开始时间',
+                    sortable:true,
+                },
+                {
+                    key:'DateLast',
+                    label:'指标最新时间',
+                    sortable:true
+                },
+                {
+                    key:'TimeLastUpdate',
+                    label:'更新时间',
+                    sortable:true
+                }
+            ],
+            tableData:[],//表格数据
+            pageNo:1,
+            pageSize:15,
+            total:0,
+            SortField:0,
+            SortRule:0,
+            tableLoading:false,
+        };
+    },
+    watch:{
+        choosedSource(newVal){
+            if(newVal){
+                this.handleCurrentChange(1)
+            }
+        }
+    },
+    methods: {
+        getFrequencyList(){
+            databankInterface.getFrequencyList().then(res=>{
+                if(res.Ret!==200) return 
+                this.frequencyList = res.Data||[]
+            })
+        },
+        getSourceList(){
+            databankInterface.getSourceList().then(res=>{
+                if(res.Ret!==200) return
+                this.sourceList = res.Data||[]
+                this.choosedSource = this.sourceList[0].EdbSourceId
+            })
+        },
+        getTableData(){
+            this.tableLoading=true
+            databankInterface.getDataList({
+                Source:Number(this.choosedSource),
+                CurrentIndex:this.pageNo,
+                PageSize:this.pageSize,
+                Frequency:this.selectValue,
+                Keyword:this.inputValue,
+                SortField:this.SortField,
+                SortRule:this.SortRule
+            }).then(res=>{
+                if(res.Ret!==200) return 
+                if(!res.Data) return 
+                this.tableData = res.Data.List
+                this.total = res.Data.Paging.Totals
+                this.tableLoading=false
+            })
+        },
+        handleCurrentChange(page){
+            this.pageNo = page
+            this.getTableData()
+        },
+        sortChange({prop,order}){
+            const propMap = {
+                'DateFirst':1,
+                'DateLast':2,
+                'TimeLastUpdate':3
+            }
+            const orderMap = {
+                'ascending':1,
+                'descending':2
+            }
+            this.SortRule = orderMap[order]||0
+            this.SortField = propMap[prop]||0
+            this.handleCurrentChange(1)
+        }
+
+    },
+    mounted(){
+        this.getSourceList()
+        this.getFrequencyList()
+    }
+};
+</script>
+
+<style scoped lang="scss">
+.data-bank-base-wrap{
+    box-sizing: border-box;
+    background-color: #fff;
+    padding:20px 30px;
+    border-radius: 4px;
+    .select-box{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+    }
+    .table-box{
+        margin:30px 0;
+    }
+    .page-box{
+        text-align: right;
+    }
+}
+</style>

+ 1 - 1
src/views/dataEntry_manage/thirdBase/UNdata.vue

@@ -243,7 +243,7 @@ import { dataInterence } from "@/api/api.js";
 <style lang="scss" scoped>
   #UN-data-container{
     background-color: white;
-    min-height: calc(100vh - 110px);
+    min-height: calc(100vh - 120px);
     position: relative;
     padding-bottom: 50px;
     box-sizing: border-box;

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

@@ -129,7 +129,7 @@
       v-loading="dataloading"
       element-loading-text="获取数据中..."
     >
-      <template v-if="rightShow">
+      <div v-if="rightShow">
         <el-button
         v-permission="permissionBtn.dataSourcePermission.mysteelData_refresh"
           type="primary"
@@ -176,7 +176,7 @@
             >{{ item.key }}</el-button
           >
         </div>
-      </template>
+      </div>
       <div v-else class="nodata-cont">
         <tableNoData text="暂无数据"/>
       </div>
@@ -340,7 +340,6 @@ export default {
           CurrentIndex: this.page_no,
         })
         .then((res) => {
-          this.rightShow = true;
           if (res.Ret !== 200) return;
 
           // 找出最多的页码 判断是否还有数据
@@ -396,6 +395,8 @@ export default {
             }
 
           this.dataloading = false;
+          
+          this.rightShow = true;
           this.page_no === 1 &&
             this.$nextTick(() => {
               this.initWidth();

+ 4 - 6
src/views/datasheet_manage/addSheet.vue

@@ -98,11 +98,7 @@ export default {
   methods: {
 
     backHandle() {
-      // if(this.sheetId){
-      //   this.$router.back()
-      // }else{
-        window.close();
-      // }
+      window.close();
     },
 
     /* 获取分类 */
@@ -135,7 +131,8 @@ export default {
         },1000)
         return 
       }
-      const { ExcelInfoId,ExcelName,ExcelClassifyId,ExcelType,ModifyTime,Content,Source} = res.Data;
+      const { ExcelInfoId,ExcelName,ExcelClassifyId,ExcelType,ModifyTime,Content,Source,Button} = res.Data;
+      this.sheetButton=Button
       this.sheetForm = {
         infoId:ExcelInfoId,
         name: ExcelName,
@@ -159,6 +156,7 @@ export default {
 
     },
     autoSaveFun:_.debounce(async function(){
+      // cancelAutoSave -- 由于是延时自动保存 防止用户在聚焦文本框时点击保存,文本框失焦后又发起自动保存的情况
       if(!this.sheetId && this.sheetInit || this.cancelAutoSave) return
       const { name,classify,infoId } = this.sheetForm;
       luckysheet.exitEditMode()

+ 5 - 9
src/views/datasheet_manage/components/CustomTable.vue

@@ -516,18 +516,14 @@ export default {
 
       //如果有文本行 文本行的数据长度也要增加
       if(this.config.textRowData.length) {
-        let cell_len = this.config.textRowData[0].length - 1;
-        console.log(cell_len)
-        let row = new Array(this.config.data.length-cell_len).fill('').map(_ =>({
+        let cell_item = {
           ShowValue: '',
           Value: '',
           DataType: 3,
           DataTime: '',
-        }))
-        this.config.textRowData.forEach(_ => {
-          row.forEach(cell=> {
-            _.push(cell)
-          })
+        }
+        this.config.textRowData.forEach(row => {
+            row.push(_.cloneDeep(cell_item))
             
         })
       }
@@ -602,7 +598,7 @@ export default {
           DataType: 3,
           DataTime: '',
         }))
-        this.config.textRowData.push(row)
+        this.config.textRowData.push(_.cloneDeep(row))
         console.log(this.config.textRowData)
     },
 

+ 3 - 3
src/views/datasheet_manage/components/sheetListWrap.vue

@@ -29,12 +29,12 @@
                 @click="$emit('downloadExcel',cell)"
                 >下载</span
               >
-              <span
-                v-if="($parent.sheetDetailInfo.Button && $parent.sheetDetailInfo.Button.DeleteButton && $parent.isSheetBtnShow('del'))"
+              <!-- <span
+                v-if=" $parent.isSheetBtnShow('del')"
                 class="deletesty"
                 @click="$emit('delSheetHandle',{cell, type:'del-list'})"
                 >删除</span
-              >
+              > -->
             </div>
           </div>
         </el-card>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно